挂载NFS协议类型文件系统到云服务器(Linux)
当创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享使用文件系统的目的。
裸金属服务器、容器(CCE&CCI)操作与云服务器一致。
将SFS Turbo文件系统挂载至CCE:请参考存储管理-CSI-存储概述或存储管理-Flexvolume-极速文件存储卷,并在CCE界面完成SFS Turbo部署至CCE的操作。
SFS Turbo文件系统暂不支持挂载至Windows系统的云服务器。
前提条件
- 确定云服务器操作系统类型,不同操作系统安装NFS客户端的命令不同。
- 已完成创建SFS Turbo文件系统,并获取到SFS Turbo文件系统的挂载地址。
- 存在至少一台与SFS Turbo文件系统所属VPC相同的云服务器。
- 云服务器(ECS)上已配置了用于内网解析SFS Turbo文件系统域名的DNS服务器的IP地址。
- 使用域名(DNS)挂载SFS Turbo文件系统时,不支持跨区域(Region)挂载,但可以通过指定IP的方式跨区域(Region)挂载,网络互通方式具体参考云连接CC“跨区域VPC互通”。
约束与限制
该约束仅针对本地挂载路径(即挂载点),不影响其他文件或目录。
暂不支持修改本地挂载路径(即挂载点)的元数据,即不支持对挂载点的元数据做如下操作:
- touch:更新文件的访问时间和修改时间
- rm:删除文件或目录
- cp:复制文件或目录
- mv:移动文件或目录
- rename:重命名文件或目录
- chmod:修改文件或目录的权限
- chown:修改文件或目录的所有者
- chgrp:修改文件或目录的所属组
- ln:创建硬链接
- link:创建硬链接
- unlink:删除硬链接
本地挂载路径(即挂载点根目录)的atime、ctime和mtime属性是当前时间,每次查询根目录属性返回的都是服务端当时时间的值。
操作步骤
- 以root用户登录弹性云服务器。
若以非root用户登录弹性云服务器,具体操作请参考使用非root的普通用户挂载文件系统到Linux云服务器。
- 安装NFS客户端。
- 执行如下命令,查看是否能解析文件系统共享路径中的域名。
nslookup 文件系统域名
- 文件系统域名如:xxx.sfsturbo.internal(xxx为文件系统ID)。文件系统域名请从文件系统的共享路径中获取。
- 无法使用nslookup命令时,需要先安装bind-utils软件包。(可通过执行yum install bind-utils命令安装)
- 执行如下命令,创建用于挂载文件系统的本地路径。
mkdir 本地路径
如果本地路径已挂载其他磁盘等资源,为被占用状态时,需要新建其它目录进行挂载(nfs客户端不会对重复挂载进行拦截,当重复挂载时会表现为最后一次成功挂载的信息)。
- 执行如下命令,将文件系统挂载到与文件系统所属VPC相同的云服务器上。文件系统目前仅支持NFSv3协议挂载到Linux云服务器。
其中变量说明见表1。
SFS Turbo文件系统执行命令:mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp 挂载地址 本地路径
已挂载文件系统的云服务器重启后,该云服务器上的挂载信息将会丢失,您可以通过在fstab文件中配置自动挂载来保证云服务器重启时自动挂载文件系统,具体操作请参见自动挂载文件系统。
表1 参数说明 参数
说明
vers
文件系统版本,目前只支持NFSv3。取值:3。
timeo
NFS客户端重传请求前的等待时间(单位为0.1秒)。建议值:600。
noresvport
指定NFS客户端向NFS服务端重新发起建立连接时使用新的TCP端口。
强烈建议使用 noresvport 参数,这可以保障网络发生故障恢复事件后文件系统服务不会中断。
lock/nolock
选择是否使用NLM协议在服务器上锁文件。当选择nolock选项时,锁对于同一主机的应用有效,对不同主机不受锁的影响。建议值:nolock。如不加此参数,则默认为lock,就会发生其他服务器无法对此文件系统写入的情况。
proto
NFS客户端向服务器发起传输请求使用的协议,可以为UDP或者TCP。
当前通用文件系统不支持UDP传输协议,需要设置为TCP传输协议,即proto=tcp。
挂载地址
SFS Turbo标准型、标准型-增强版、性能型、性能型-增强版文件系统的格式为:文件系统IP:/,例如192.168.0.0:/。
SFS Turbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB和HPC缓存型文件系统的格式为:域名地址:/,例如xxx.sfsturbo.internal:/。
如图1所示。
说明:- x是数字或字母。
- 由于挂载地址名称较长,需要拉宽该栏以便完整显示。
本地路径
云服务器上用于挂载文件系统的本地路径,例如“/local_path”。
挂载文件系统时,更多性能调优的挂载参数,可参考表2配置,各参数之间以逗号进行分隔。例如:
mount -t nfs -o vers=3,timeo=600,nolock,rsize=1048576,wsize=1048576,hard,retrans=3,tcp,noresvport,ro,async,noatime,nodiratime 挂载地址 本地路径
表2 挂载参数 参数
说明
rsize
每次向服务器读取文件的最大字节数。实际数据小于或等于此值。rsize必须是1024倍数的正整数,小于1024时自动设为4096,大于1048576时自动设为1048576。默认时,服务器和客户端进行协商后设置。
建议设置为最大值1048576。
wsize
每次向服务器写入文件的最大字节数。实际数据小于或等于此值。wsize必须是1024倍数的正整数,小于1024时自动设为4096,大于1048576时自动设为1048576。默认时,服务器和客户端进行协商后设置。
建议设置为最大值1048576。
soft/hard
取值为soft,即软挂载方式挂载系统,如果NFS请求超时,则客户端向调用程序返回错误;取值为hard,即使用硬连接方式,如果NFS请求超时,则客户端一直重新请求直至成功。
默认为hard。
retrans
客户端返回错误前的重传次数。建议值:1。
tcp/udp
不指定mountproto时,客户端默认先尝试使用udp协议挂载,如果udp网络不通则会在卡顿几秒后再尝试tcp协议挂载。
当前默认没有放通安全组入方向mount协议的udp端口号,需要将mount挂载协议设置为TCP传输协议,即mountproto=tcp。
ro/rw
- ro:表示采用只读的方式挂载。
- rw:表示采用读写的方式挂载。
默认为rw。未写明ro/rw时,则默认为采用rw读写的方式挂载。
noresvport
指定NFS客户端向NFS服务端重新发起建立连接时使用新的TCP端口。
强烈建议使用 noresvport 参数,这可以保障网络发生故障恢复事件后文件系统服务不会中断。
sync/async
sync为同步写入,表示将写入文件的数据立即写入服务端;async为异步写入,表示将数据先写入缓存,再写入服务端。
同步写入要求NFS服务器必须将每个数据都刷入服务端后,才可以返回成功,时延较高。建议设置为async。
noatime
如果不需要记录文件的访问时间,可以设置该参数。避免频繁访问时,修改访问时间带来的开销。
nodiratime
如果不需要记录目录的访问时间,可以设置该参数。避免频繁访问时,修改访问时间带来的开销。
没有“使用建议”的参数推荐使用默认参数。
- 挂载完成后,执行如下命令,查看已挂载的文件系统。
mount -l
如果回显包含如下类似信息,说明挂载成功。挂载地址 on /local_path type nfs (rw,vers=3,timeo=600,nolock,addr=)
- 挂载成功后,用户可以在云服务器上访问文件系统,执行读取或写入操作。
支持写入的单个文件最大容量为1PB。