本文介绍如何通过阿里云Linux ECS实例挂载NAS NFS协议文件系统,以实现多个云服务器共享访问文件系统的目的。
前提条件
步骤一:安装NFS客户端
在Linux系统挂载NFS协议文件系统时,需要先安装NFS客户端。确保每台Linux服务器执行一次配置即可,不需要在每次挂载时都执行。
连接ECS实例。具体连接方式,请参见连接ECS实例。
安装NFS客户端。
操作系统
安装命令
Alibaba Cloud Linux
sudo yum install nfs-utils
CentOS
Redhat
Ubuntu
依次执行以下安装命令:
sudo apt-get update
sudo apt-get install nfs-common
Debian
(可选)设置NFS客户端请求的并发能力。
请执行以下命令,将客户端的并发请求数量修改为128。更多信息,请参见如何修改同时发起的NFS请求数量?。
if (lsmod | grep sunrpc); then (modinfo sunrpc | grep tcp_max_slot_table_entries) && sysctl -w sunrpc.tcp_max_slot_table_entries=128 (modinfo sunrpc | grep tcp_slot_table_entries) && sysctl -w sunrpc.tcp_slot_table_entries=128 fi (modinfo sunrpc | grep tcp_max_slot_table_entries) && echo "options sunrpc tcp_max_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf (modinfo sunrpc | grep tcp_slot_table_entries) && echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf
步骤二:挂载NFS协议文件系统
在Linux操作系统中,NAS NFS协议文件系统支持通过手动挂载和自动挂载两种方式进行挂载。手动挂载适用于临时挂载,每次服务器启动或重启后都需要重新挂载。自动挂载适用于持久挂载,每次服务器启动或重启后都无需重新挂载。为避免服务器重启后,挂载信息丢失,导致无法查看已挂载的文件系统,建议您手动挂载成功后,配置自动挂载文件系统。
手动挂载NFS协议文件系统
您需要使用文件系统的挂载点地址,将NAS NFS协议文件系统挂载至Linux ECS实例。
推荐您通过NFS v3协议挂载文件系统,以获得最佳访问性能。
NFS v4.0支持文件锁(包括range lock),如果您需要使用多台Linux ECS实例同时修改一个文件,请使用NFS v4.0协议挂载文件系统。
文件存储NAS支持控制台一键挂载文件系统,提供更加方便、快捷的使用体验。推荐您使用控制台一键挂载功能。具体操作,请参见一键挂载NAS NFS协议文件系统。
挂载NFS协议文件系统。
如果您使用的是通用型NAS,请执行以下命令。
使用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文件系统中实际已存在的目录。
极速型NAS:必须以/share开头,例如:/share、/share/subdir。如果是子目录,请您确保子目录是NAS文件系统中实际已存在的目录。
当前服务器上待挂载的本地路径: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。
hard
如果参数未启用,当文件存储NAS不可用时,客户端可能会立即返回错误,而不进行重试,这可能会导致数据的不一致性或丢失。
建议启用该参数。
timeo
指定时长,单位为0.1秒,即NFS客户端在重试向文件系统发送请求之前等待响应的时间。
建议值:600(60秒)。
retrans
NFS客户端重试请求的次数。
建议值:2。
noresvport
在网络重连时使用新的TCP端口,保障在网络发生故障恢复时不会中断连接。
建议启用该参数。
说明如果您必须更改超时参数(timeo),建议您使用150或更大的值。该timeo参数的单位为0.1秒,因此150表示的时间为15秒。
如果您需要更改IO大小参数(rsize和wsize),建议您尽可能使用最大值(1048576),以避免性能下降。
rsize、wsize、hard、timeo、retrans、noresvport这些参数都是非必选挂载参数,您可以根据实际情况进行选择。在挂载时,请使用半角逗号进行分隔。
重要不建议使用soft选项,有数据一致性风险。如果您要使用soft选项,相关风险需由您自行承担。
避免设置不同于默认值的任何其他挂载选项。如果更改读或写缓冲区大小或禁用属性缓存,可能会导致性能下降。
验证挂载结果。
执行命令
mount -l
返回示例
如果返回信息包含如下类似信息,说明挂载成功。
挂载成功后,您还可以执行
df -h
命令,查看当前文件系统的容量信息。
如果挂载失败,请进行错误排查。具体操作,请参见挂载文件系统失败故障排查。
挂载成功后,您可以在Linux ECS上访问NAS文件系统,执行读取或写入操作。
您可以把NAS文件系统当作一个普通的目录来访问和使用,示例如下:
(可选)自动挂载NFS协议文件系统
您可以通过配置Linux ECS实例的/etc/fstab
文件,实现ECS重启时自动挂载NFS协议文件系统。
在配置自动挂载前,请先确认手动挂载成功,避免ECS启动失败。
如果您使用的是极速型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系统中配置自动挂载,您还需执行以下操作。
执行
chkconfig netfs on
命令,确保netfs服务开机自启动。打开/etc/netconfig配置文件,注释掉inet6相关的内容(如下图所示)。
打开/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
说明如果您是在CentOS 6.x系统中配置自动挂载,您需先执行
chkconfig netfs on
命令,确保netfs服务开机自启动。示例中主要参数说明,请参见挂载命令参数说明表。其余参数说明如下。
参数
说明
_netdev
防止客户端在网络就绪之前开始挂载文件系统。
0(noresvport后第一项)
非零值表示文件系统应由dump备份。对于NAS文件系统而言,此值默认为0。
0(noresvport后第二项)
该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统而言,此值默认为0,表示fsck不应在启动时运行。
执行以下命令,配置开机启动文件/etc/rc.local。
[ ! -f /etc/rc.local ] && echo '#!/bin/bash' > /etc/rc.local; echo "for ((i=1; i<=10; i++)); do if ping -c 1 -W 3 aliyuncs.com; then break; else sleep 1; fi; done" >> /etc/rc.local; echo "sleep 3; mount -a -t nfs" >> /etc/rc.local; chmod +x /etc/rc.local
执行
reboot
命令,重启云服务器ECS。重要重启云服务器会中断业务,建议您在业务低谷时期重启云服务器。
验证自动挂载配置成功。
在ECS重启后的一分钟内,执行
df -h
命令,确认挂载的NAS文件系统。