本文介绍如何通过阿里云 Linux ECS 实例挂载 NFS 文件系统。在 Linux ECS 实例中,安装 NFS 客户端后,可以通过手动或自动方式挂载 NFS 文件系统。

# 前提条件

已创建文件系统,详情参考文件系统创建
已配置挂载点,详情参考挂载点添加
已创建 ECS 实例,详情参考ecs 创建 (opens new window)

# 操作步骤

# 配置 Linux ECS 实例

在 Linux 系统挂载 NFS 文件系统时,需要配置 Linux ECS 实例。请您确保每台 Linux 服务器执行一次配置即可,不需要在每次挂载时都执行。

  1. 连接 ECS 实例,通过 ssh 连接或者 VNC 进行远程连接。

  2. 安装 NFS 客户端。

    • 如果您使用 CentOS、Redhat、Aliyun Linux 操作系统,请执行以下命令
      sudo yum install nfs-utils
      
    • 如果您使用 Ubuntu 或 Debian 操作系统,请执行以下命令
      sudo apt-get update
      
      sudo apt-get install nfs-common
      
  3. 增加同时发起的 NFS 请求的数量。请执行以下命令,将同时发起的 NFS 请求数量修改为 128。详情请参见如何修改同时发起的 NFS 请求数量。

    sudo echo "options sunrpc tcp_slot_table_entries=128" >>  /etc/modprobe.d/sunrpc.conf
    sudo echo "options sunrpc tcp_max_slot_table_entries=128" >>  /etc/modprobe.d/sunrpc.conf
    

# 手动挂载 NFS 文件系统

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

  1. 挂载 NFS 文件系统。

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

      说明
      推荐您通过NFS v3协议挂载文件系统,以获得最佳性能。
      如果您的应用依赖文件锁,即需要使用多台Linux ECS实例同时编辑一个文件,请使用NFS v4协议挂载文件系统。
      

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

      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 协议挂载文件系统:

      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,请执行以下命令

      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的共享目录必须以/share开头,例如:/share、/share/subdir
      当前服务器上待挂载的本地路径:Linux ECS 实例的根目录(/)或任意子目录(例如:/mnt),如果是子目录,请您确保子目录已存在
      vers 文件系统版本。
      vers=3:使用 NFS v3 协议挂载文件系统。
      vers=4:使用 NFS v4 协议挂载文件系统。
      容量型或性能型NAS:支持NFS v3和NFS v4。极速型NAS:只支持NFS v3,不支持NFS v4
      挂载选项 挂载文件系统时,可选择多种挂载选项,挂载选项使用英文逗号(,)分隔,说明如下:
      rsize:定义数据块的大小,用于客户端与文件系统之间读取数据。建议值:1048576。
      wsize:定义数据块的大小,用于客户端与文件系统之间写入数据。建议值:1048576。
      hard:在文件存储 NAS 暂时不可用的情况下,使用文件系统上某个文件的本地应用程序时会停止并等待至该文件系统恢复在线状态。建议启用该参数。
      timeo:指定时长,单位为 0.1 秒,即 NFS 客户端在重试向文件系统发送请求之前等待响应的时间。建议值:600(60 秒)。
      retrans:NFS 客户端重试请求的次数。建议值:2。
      noresvport:在网络重连时使用新的 TCP 端口,保障在网络发生故障恢复时不会中断连接。建议启用该参数。
  2. 执行mount -l命令,查看挂载结果。

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

    挂载成功后,您还可以执行 df -h 命令,查看当前文件系统的容量信息。

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

    您可以把 NAS 文件系统当作一个普通的目录来访问和使用。

# 自动挂载 NFS 文件系统

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

说明 :在配置自动挂载前,请先确认手动挂载成功,避免ECS启动失败。
  1. 如果您使用的是极速型 NAS,请执行以下命令。

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

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

    打开/etc/systemd/system/sockets.target.wants/rpcbind.socket 文件后,需要注释 IPv6 相关的 rpcbind 参数,否则 NFS 的 rpcbind 服务自动启动会失败。
    如果您是在 CentOS 6.x 系统中配置自动挂载,您还需执行以下操作。

    1) 执行chkconfig netfs on命令,确保 netfs 服务开机自启动。

    2) 打开/etc/netconfig 配置文件,注释掉 inet6 相关的内容(如下图所示)。

  2. 打开/etc/fstab 配置文件,添加挂载配置。

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

      • 使用 NFS v3 协议挂载文件系统
        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 协议挂载文件系统
        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,配置示例如下:

      file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt nfs vers=3,nolock,noacl,proto=tcp,noresvport,_netdev 0 0
      
  3. 执行reboot命令,重启云服务器 ECS。