操作场景
当创建文件存储后,您需要使用边缘虚拟机来挂载该文件存储,以实现多个边缘虚拟机共享使用文件存储的目的。
- 同一文件存储不能同时支持 NFS 协议和 SMB 协议。
- 边缘裸金属服务器操作与边缘虚拟机一致,但裸金属服务器使用的是 underlay 的 VPC 网络挂载文件存储。
前提条件
- 在需要操作的地域创建虚拟私有云 VPC。
- 已创建该 VPC 下的边缘虚拟机,并根据操作系统类型,安装相应的 NFS 客户端。
- 已创建该 VPC 下的文件存储,协议类型为 NFS,并获取到文件存储的挂载点名称。
- 如果需要跨 VPC 访问文件存储,需要配置对等连接以确保 VPC 网络互通。
操作步骤
- 以 root 用户登录弹性边缘虚拟机。
- 安装 NFS 客户端。
- 查看系统是否安装 NFS 软件包。
说明CentOS、Red Hat、Oracle Enterprise Linux、SUSE、Euler OS、Fedora或OpenSUSE系统下,执行如下命令:
rpm -qa|grep nfs
Debian或Ubuntu系统下,执行如下命令:
dpkg -l nfs-common
- 不同操作系统回显会有所不同,如果回显如下类似信息,说明已经成功安装 NFS 软件包。
说明CentOS、Red Hat、Euler OS、Fedora 或 Oracle Enterprise Linux 系统下,回显如下类似信息:
libnfsidmap
nfs-utils
SUSE 或 OpenSUSE 系统下,回显如下类似信息:
nfsidmap
nfs-client
Debian 或 Ubuntu 系统下,回显如下类似信息:
nfs-common
- 如果查看到未安装,根据不同的操作系统,执行不同命令。
注意执行以下命令前要求边缘虚拟机已连接到互联网,否则安装 NFS 客户端失败。
说明CentOS、Red Hat、Euler OS、Fedora 或 Oracle Enterprise Linux 系统下,执行如下命令:
sudo yum -y install nfs-utils
Debian 或 Ubuntu 系统下,执行如下命令:
sudo apt-get install nfs-common
SUSE 或 OpenSUSE 系统下,执行如下命令:
zypper install nfs-client
- 执行如下命令,创建用于挂载文件存储的本地路径。
mkdir 本地路径
说明如果本地路径已挂载其他磁盘等资源,为被占用状态时,需要新建其它目录进行挂载(nfs 客户端不会对重复挂载进行拦截,当重复挂载时会表现为最后一次成功挂载的信息)。
- 执行如下命令,将文件存储挂载到与文件存储所属 VPC 相同的边缘虚拟机上。
mount -t nfs -o vers=3,timeo=600,noresvport,nolock 挂载地址 本地路径
- 参数说明
参数 | 说明 |
---|---|
vers | 文件存储版本,支持 NFSv3 和 NFSv4。如果您的业务场景不包含多台实例同时编辑同一个文件,建议您选择 NFSv3,达到最优性能。 |
timeo | NFS 客户端重传请求前的等待时间(单位为 0.1 秒)。建议值:600。 |
noresvport | 指定 NFS 客户端向 NFS 服务端重新发起建立连接时使用新的 TCP 端口。强烈建议使用 noresvport 参数,这可以保障网络发生故障恢复事件后文件存储服务不会中断。 |
lock/nolock | 选择是否使用 NLM 协议在服务器上锁文件。当选择 nolock 选项时,锁对于同一主机的应用有效,对不同主机不受锁的影响。建议值:nolock。如不加此参数,则默认为 lock,就会发生其他服务器无法对此文件存储写入的情况。ECX文件存储暂不支持非本地锁操作,需要显式添加 nolock 参数防止客户端调用非本地锁而导致抢锁失败的写入慢问题。 |
proto | NFS 客户端向服务器发起传输请求使用的协议,可以为 UDP 或者 TCP。 |
挂载地址 | 文件存储的格式为:文件存储 ip:/ 路径,例如:192.168.0.10:/var/ecx/file-nvme-cv4lq0bkrj0lnj8u23n0。 |
本地路径 | 边缘虚拟机上用于挂载文件存储的本地路径,例如 “/local_path”。 |
注意请将上述命令中的 “挂载地址” 替换为实际的文件存储 IP 地址及路径,将 “本地路径” 替换为在边缘虚拟机上创建的具体本地路径。
- 挂载文件存储时,更多性能调优的挂载参数,可参考更多参数配置,各参数之间以逗号进行分隔。例如:
mount -t nfs -o vers=3,timeo=600,nolock,rsize=1048576,wsize=1048576,hard,retrans=3,tcp,noresvport,ro,async,noatime,nodiratime 挂载地址 本地路径
- 更多参数
参数 | 说明 |
---|---|
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=)
- 挂载成功后,用户可以在边缘虚拟机上访问文件存储,执行读取或写入操作。