自动挂载NFS文件系统

自动挂载NFS文件系统

前提条件

您已完成以下操作:

  1. 创建通用型NAS文件系统
  2. 添加挂载点
  3. 安装NFS客户端

容量型或性能型NAS

您可以在Linux系统中配置/etc/fstab 文件(推荐使用)或 /etc/rc.local 文件实现NFS文件系统自动挂载。

  1. 配置自动挂载。

    • 方案一(推荐使用): 打开

      /etc/fstab

      配置文件,添加挂载命令。

      说明 如果您是在CentOS 6.x系统中配置自动挂载,您需先执行chkconfig netfs on命令,保证netfs开机自启动。

      • 如果您要挂载NFS v4文件系统,添加以下命令:

        1
        file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
      • 如果您要挂载NFS v3文件系统,添加以下命令:

        1
        file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
    • 方案二:打开

      /etc/rc.local

      配置文件,添加挂载命令。

      说明 在配置/etc/rc.local文件前,请确保用户对/etc/rc.local和/etc/rc.d/rc.local文件有可执行权限。例如:CentOS 7.x系统,用户默认无可执行权限,需添加权限后才能配置/etc/rc.local文件。

      • 如果您要挂载NFS v4文件系统,添加以下命令:

        1
        sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt
      • 如果您要挂载NFS v3文件系统,添加以下命令:

        1
        sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt

      命令中各参数说明如下表所示。

      参数 说明
      file-system-id.region.nas.aliyuncs.com:/ /mnt 表示<挂载点地址>:<NAS文件系统目录> <当前服务器上待挂载的本地路径>,请根据实际情况替换。
      vers 文件系统版本,目前只支持nfs v3和nfs v4。
      _netdev 防止客户端在网络就绪之前开始挂载文件系统。
      0(noresvport 后第一项) 非零值表示文件系统应由dump备份。对于NAS,此值为0。
      0(noresvport 后第二项) 该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统,此值应为0,表示 fsck不应在启动时运行。
      挂载选项 挂载文件系统时,可选择多种挂载选项,详情情参见下表。
  2. 执行reboot命令,重启云服务器ECS。

极速型NAS

您可以在Linux系统中配置 /etc/fstab 文件实现NFS文件系统自动挂载。

  1. 打开 /etc/systemd/system/sockets.target.wants/rpcbind.socket 文件,注释掉IPv6相关的rpcbind参数,否则NFS的rpcbind服务自动启动会失败。

    1
    vi /etc/systemd/system/sockets.target.wants/rpcbind.socket

    注释rpcbind参数

    如果您是在CentOS 6.x系统中配置自动重启,您还需执行以下两个操作。

    1. 执行chkconfig netfs on命令,保证netfs开机自启动。
    2. 打开/etc/netconfig配置文件,注释掉inet6相关的内容。注释inet6相关内容
  2. 打开/etc/fstab配置文件,添加以下命令。

    1
    file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt nfs vers=3,nolock,noacl,proto=tcp,noresvport,_netdev 0 0

    命令中各参数说明如下表所示。

    参数 说明
    file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt 表示<挂载点地址>:<NAS文件系统目录> <当前服务器上待挂载的本地路径>,请根据实际情况替换。挂载点地址:file-system-id.region.extreme.nas.aliyuncs.com,您可以在文件存储NAS控制台上,找到目标文件系统,单击管理,进入详情页面获取挂载点地址。NAS文件系统目录:极速型NAS的共享目录必须以/share开头,例如:/share、/share/subdir。
    vers 文件系统版本,目前只支持nfs v3。
    _netdev 防止客户端在网络就绪之前开始挂载文件系统。
    0(noresvport 后第一项) 非零值表示文件系统应由dump备份。对于NAS,此值为0。
    0(noresvport 后第二项) 该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统,此值应为0,表示fsck 不应在启动时运行。
    挂载选项 挂载选项说明表,详情请参见容量型或性能型NAS
  3. 执行reboot命令,重启云服务器ECS。

  4. 执行mount -l命令,查看挂载结果。

    如果回显包含如下类似信息,说明挂载成功。

    查看挂载结果

手动挂载NFS文件系统

您可以使用文件系统的挂载地址,将NFS文件系统挂载至Linux ECS实例。

  1. 挂载NFS文件系统。

    • 如果您使用的是容量型或性能型NAS,请执行以下命令。

      说明

      • 推荐您通过NFS v3协议挂载文件系统,以获得最佳访问性能。
      • NFS v4.0支持文件锁(包括range lock),如果您需要使用多台Linux ECS实例同时修改一个文件,请使用NFS v4.0协议挂载文件系统。

      使用NFS v3协议挂载文件系统:

      1
      sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt

      使用NFS v4协议挂载文件系统:

      1
      sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt                                
    • 如果您使用的是极速型NAS,请执行以下命令。

      1
      sudo mount -t nfs -o vers=3,nolock,noacl,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt

    挂载命令中的参数说明如下表所示。

    参数 描述
    容量型或性能型NAS:file-system-id.region.nas.aliyuncs.com:/ /mnt极速型NAS:file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt 表示<挂载地址>:<NAS文件系统目录> <当前服务器上待挂载的本地路径>,请根据实际情况替换。挂载地址:您可以在文件存储NAS控制台文件系统列表页面,单击目标文件系统后的管理,进入挂载使用页面获取挂载地址。更多信息,请参见管理挂载点。NAS文件系统目录:NAS的根目录(/)或任意子目录(例如:/share),如果是子目录,请您确保子目录是NAS文件系统中实际已存在的目录。说明 极速型NAS的共享目录必须以/share开头,例如:/share、/share/subdir。当前服务器上待挂载的本地路径:Linux ECS实例的根目录(/)或任意子目录(例如:/mnt),如果是子目录,请您确保子目录已存在。
    vers 文件系统版本。vers=3:使用NFS v3协议挂载文件系统。vers=4:使用NFS v4协议挂载文件系统。其中,minorversion为协议次版本号,NAS支持的NFS v4协议版本为4.0,因此使用NFS v4协议挂载文件系统时,次版本号为0。说明容量型或性能型NAS:支持NFS v3和NFS v4.0。极速型NAS:只支持NFS v3,不支持NFS v4。
    挂载选项 挂载文件系统时,可选择多种挂载选项,挂载选项使用半角逗号(,)分隔,说明如下:rsize:定义数据块的大小,用于客户端与文件系统之间读取数据。建议值:1048576。wsize:定义数据块的大小,用于客户端与文件系统之间写入数据。建议值:1048576。说明 如果您需要更改IO大小参数(rsize和wsize),建议您尽可能使用最大值(1048576),以避免性能下降。hard:在文件存储NAS暂时不可用的情况下,使用文件系统上某个文件的本地应用程序时会停止并等待至该文件系统恢复在线状态。建议启用该参数。timeo:指定时长,单位为0.1秒,即NFS客户端在重试向文件系统发送请求之前等待响应的时间。建议值:600(60秒)。说明 如果您必须更改超时参数(timeo),建议您使用150或更大的值。该timeo参数的单位为0.1秒,因此150表示的时间为15秒。retrans:NFS客户端重试请求的次数。建议值:2。noresvport:在网络重连时使用新的TCP端口,保障在网络发生故障恢复时不会中断连接。建议启用该参数。注意不建议使用soft选项,有数据一致性风险。如果您要使用soft选项,相关风险需由您自行承担。避免设置不同于默认值的任何其他挂载选项。如果更改读或写缓冲区大小或禁用属性缓存,可能会导致性能下降。
  2. 执行mount -l命令,查看挂载结果。

    如果返回信息包含如下类似信息,说明挂载成功。查看挂载结果挂载成功后,您可以执行df -h命令,查看当前文件系统的容量信息。

    如果挂载失败,请进行错误排查。具体操作,请参见挂载失败的排查方法与解决方案

  3. 挂载成功后,您可以在Linux ECS上访问NAS文件系统,执行读取或写入操作。

    您可以把NAS文件系统当作一个普通的目录来访问和使用,示例如下:读写操作

自动挂载NFS文件系统

为避免已挂载文件系统的云服务器ECS重启后,挂载信息丢失,您可以通过在Linux ECS实例中配置/etc/fstab文件,实现在云服务器ECS设置重启时NFS文件系统自动挂载。

说明 在配置自动挂载前,请先确认手动挂载成功,避免ECS启动失败。

  1. 如果您使用的是极速型NAS,请执行以下命令。

    如果您使用的是容量型或性能型NAS,请跳过此步骤,直接执行步骤2

    1
    vi /etc/systemd/system/sockets.target.wants/rpcbind.socket

    打开/etc/systemd/system/sockets.target.wants/rpcbind.socket文件后,需要注释IPv6相关的rpcbind参数(如下图所示),否则NFS的rpcbind服务自动启动会失败。注释rpcbind参数

    如果您是在CentOS 6.x系统中配置自动挂载,您还需执行以下操作。

    1. 执行chkconfig netfs on命令,确保netfs服务开机自启动。
    2. 打开/etc/netconfig配置文件,注释掉inet6相关的内容(如下图所示)。注释inet6相关内容
  2. 打开/etc/fstab配置文件,添加挂载配置。

    • 如果您使用的是容量型或性能型NAS,配置示例如下。

      • 使用NFS v3协议挂载文件系统:

        1
        file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
      • 使用NFS v4协议挂载文件系统:

        1
        file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
    • 如果您使用的是极速型NAS,配置示例如下。

      1
      file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt nfs vers=3,nolock,noacl,proto=tcp,noresvport,_netdev 0 0

    说明

    • 如果您是在CentOS 6.x系统中配置自动挂载,您需先执行chkconfig netfs on命令,确保netfs服务开机自启动。

    • 如果您是在Ubuntu系统中配置自动挂载,请先执行以下命令:

      1
      [ ! -f /etc/rc.local ] && echo '#!/bin/bash' > /etc/rc.local; echo "mount -a -t nfs" >> /etc/rc.local; chmod +x /etc/rc.local

      请在自动挂载参数

      1
      noresvport

      后加入

      1
      ,x-systemd.automount

      ,并保留“ 0 0”。

    • 如果您是在Aliyun Linux系统中配置自动挂载,请先执行以下命令:

      1
      [ ! -f /etc/rc.local ] && echo '#!/bin/bash' > /etc/rc.local; echo "mount -a -t nfs" >> /etc/rc.local; chmod +x /etc/rc.local

      请在自动挂载参数

      1
      noresvport

      后加入

      1
      ,x-systemd.automount,x-systemd.requires=systemd-resolved.service,x-systemd.after=systemd-resolved.service

      ,并保留“ 0 0”。

    示例中主要参数说明,请参见挂载命令参数说明表。其余参数说明如下。

    参数 说明
    _netdev 防止客户端在网络就绪之前开始挂载文件系统。
    0(noresvport后第一项) 非零值表示文件系统应由dump备份。对于NAS文件系统而言,此值默认为0。
    0(noresvport后第二项) 该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统而言,此值默认为0,表示fsck不应在启动时运行。
  3. 执行reboot命令,重启云服务器ECS。

    说明 在重启云服务器ECS前,请确认手动挂载成功,避免ECS重启失败。另外,如果自动挂载配置成功,在ECS重启后的一分钟内,可以通过df -h命令查看到挂载的NAS文件系统。