本文主要是介绍openEuler NFS多路径,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介
网络文件系统 (NFS) 是一种分布式文件系统协议,最初由 Sun Microsystems (Sun) 于 1984 年开发,允许NFS客户端上的用户通过计算机网络访问NFS服务端上文件。随着NFS服务广泛应用于金融、EDA、AI、容器等行业,对NFS的性能和可靠性提出了更高的诉求。传统NFS存在以下缺点:
- 单个主机上的单个挂载点只能通过一个客户端IP和一个服务端IP进行访问,在客户端和服务端之间存在多条物理链路时,无法发挥多条链路的性能。
- 由于单个挂载点单条链路的缺陷,单挂载点下的单条链路故障后,无法进行链路切换,导致主机业务中断。
NFS多路径的诞生主要解决上述传统NFS在使用过程中遇到的缺陷,提出单个挂载点下客户端和服务端之间建立多条链路,支持IO在多条链路中进行传输,进而提升单个挂载点性能,同时周期性检测链路状态信息,支持链路故障IO快速切换。
NFS多路径具有以下功能:
- NFSv3支持Round Robin链路选路算法,实现多条链路性能均衡。
- NFSv3和NFSv4支持链路故障快速切换,提升NFS可靠性。
- 提供链路选路算法注册接口,支持NFS服务端开发者自定义选路算法。
- 支持周期性链路可用性检测。
- 支持查看链路状态。
安装与部署
软件要求
- 操作系统:openEuler 23.03
硬件要求
- x86_64架构
- ARM架构
环境准备
- 安装openEuler系统,安装方法参考 《openEuler 23.03 安装指南》。
安装NFS多路径
# 插入NFS多路径KO。
[root@openEuler ~]# modprobe nfs_multipath# 查看NFS多路径KO,回显中有nfs_multipath则表示安装成功。
[root@openEuler ~]# lsmod | grep nfs_multipath
nfs_multipath 36864 1
nfs 544768 3 nfs_multipath,nfsv3
sunrpc 704512 30 nfs_multipath,lockd,nfsv3,nfs_acl,nfs
使用方法
使用多路径参数挂载
执行如下命令挂载多路径:
mount -t nfs -o localaddrs=1.1.1.1~2.2.2.2,remoteaddrs=1.1.1.10~2.2.2.10 1.1.1.10:/test /mnt/fs1
新增可选参数localaddrs和remoteaddrs用于指定多路径:
- localaddrs表示客户端IP地址;
- remoteaddrs表示服务端IP地址;
- IP地址支持网段或者多个IP地址,网段使用"-",多个IP地址使用"~"。
例如:remoteaddrs=1.1.1.1-1.1.1.3表示指定3个服务端地址,分别为1.1.1.1, 1.1.1.2, 1.1.1.3; localaddrs=1.1.1.1~1.1.1.3表示指定2个客户端地址,分别为1.1.1.1, 1.1.1.3。
localaddrs和remoteaddrs均为可选参数,可指定其中的任意一个参数或者两个参数都指定,若都不指定,则未使能多路径功能。
多路径信息查询
- 执行如下命令查询多路径信息。
# cat /proc/fs/nfs/mutipath/conn_info
===============================Id:4 count 5 proto 3 start========================
index:0, client_ip:1.1.1.1, server_ip:1.1.1.10, status:connect, load:3
index:1, client_ip:1.1.1.1, server_ip:1.1.1.11, status:connect, load:3
index:2, client_ip:1.1.1.1, server_ip:1.1.1.12, status:connect, load:3
index:3, client_ip:1.1.1.1, server_ip:1.1.1.13, status:disconnect, load:0
index:4, client_ip:1.1.1.1, server_ip:1.1.1.14, status:disconnect, load:0
=========================================Id:4 end================================
- 回显信息解释。
- status表示该条链路连接状态,connect表示连接可用,disconnect表示连接不可用。
- load表示在该条链路上发送的NFS请求数量。
注意事项
- 客户端或者服务端IP地址最多支持8个IP地址,指定超过8个IP地址无法挂载。
- 最多支持8条多路径链路。
常见问题与解决方法
问题1:指定NFS多路径挂载失败,lsmod无法查询到多路径KO
报错信息:
- 挂载时报错如下:
mount.nfs: an incorrect mount option was specified
- 执行
lsmod | grep nfs_multipath
无法查询到多路径KO。
可能原因:未安装NFS多路径。
解决方法:参考《安装与部署》章节安装NFS多路径。
问题2:指定NFS多路径挂载失败
报错信息:
- 挂载时报错如下:
mount.nfs: an incorrect mount option was specified
/var/log/messages
日志报错如下:Mar 18 23:38:22 localhost kernel: [ 635.016793] [MULTIPATH:nfs_multipath_parse_ip_range] iplist for remote reached 8, more than supported limit 8
可能原因:挂载时指定IP地址个数超过8个。
解决方法:NFS挂载时,指定IP地址个数小于等于8个。
这篇关于openEuler NFS多路径的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!