应用场景
边缘裸金属服务器挂载文件存储,可以有多个应用场景,例如在数据密集型处理场景中,如气象数据分析、基因测序等,可将大量数据存储于文件存储,供多台边缘裸金属服务器快速读取和写入,提升数据处理效率。在需要共享存储的分布式计算场景里,如分布式数据库集群,通过挂载文件存储,各边缘裸金属服务器节点可共享配置文件、数据文件等资源,保障集群协同工作。
文件存储可提供高带宽、低延迟的数据访问,满足边缘裸金属服务器对存储性能的要求:
- 高可用性,文件存储具备冗余机制,能有效保障数据安全与业务连续性。
- 扩展性强,可依据业务增长灵活扩展存储容量,无需中断服务。
- 易于管理,集中化存储便于统一管理监控,降低运维难度。
前提条件
边缘裸金属服务器需和文件存储网络互通,需要采用 underlay vpc 网络。创建 underlay vpc 流程如下:
- 登录ECX控制台。
- 点击左侧【边缘网络】,选择【虚拟机私有云 > vpc和子网】
- 点击【+创建虚拟私有云】,在基础信息中,类型需要选择为underlay,子网类型为underlay并填写规划好的 vlan 号。
创建边缘裸金属服务器和文件存储时,均要选择对应创建的 underlay 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 客户端向服务端重新建立连接时用新 TCP 端口。强烈建议使用,可保障网络故障恢复后文件存储服务不中断。 |
lock/nolock | 选是否用 NLM 协议在服务器上锁文件。选 nolock 时,锁对同主机应用有效,不同主机不受影响。建议值:nolock 。不加此参数默认 lock,会导致其他服务器无法写入。当前文件存储不支持非本地锁操作,需显式加 nolock 参数防客户端调用非本地锁致抢锁失败写入慢问题。 |
proto | NFS 客户端向服务器传输请求用的协议,可为 UDP 或 TCP 。 |
挂载地址 | 文件存储格式:文件存储 ip:/ 路径,例如:192.168.0.10:/var/ecx/file-nvme-cv4lq0bkrj0lnj8u23n0 |
本地路径 | 边缘裸金属服务器上用于挂载文件存储的本地路径,例如 "/local_path" |
- 挂载文件存储时,还可使用更多性能调优参数,各参数间以逗号分隔。例如:
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 。未写明时,默认 rw 读写挂载。 |
sync/async | sync 为同步写入,将写入文件数据立即写入服务端;async 为异步写入,数据先写入缓存再写入服务端。同步写入要求 NFS 服务器必须将每个数据刷入服务端后,才可返回成功,时延较高。建议设为 async 。 |
noatime | 无需记录文件访问时间时可设置,避免频繁访问修改访问时间带来开销。 |
nodiratime | 无需记录目录访问时间时可设置,避免频繁访问修改访问时间带来开销。 |
说明未提及 “使用建议” 的参数推荐使用默认参数。
- 挂载完成后,执行命令查看已挂载文件存储:
mount -l
若回显包含如下类似信息,说明挂载成功。
挂载地址 on /local_path type nfs (rw,vers=3,timeo=600,nolock,addr=)
- 挂载成功后,用户可在边缘裸金属服务器上访问文件存储,执行读取或写入操作。