52 Star 68 Fork 366

openEuler / release-management

 / 详情

[openEuler 20.03 SP4]eNFS特性合入,提升NFS客户端的性能与可靠性

已完成
需求
创建于  
2023-08-17 16:53

【特性描述】
eNFS特性支持单个NFS挂载点使用多个IP进行访问,提升NFS的访问性能与故障切换能力。eNFS需要对内核做想要的适配改造,包括NFS,sunrpc模块。
【特性竞争力】
传统NFS客户端一个挂载点只能通过一个服务端的IP地址进行访问,该模式导致(1)访问性能受限于当个链路带宽,(2)单个链路故障后,无法进行故障切换,导致客户端无法访问NFS服务。
eNFS特性支持一个NFS挂载点使用多个IP进行访问,引入该特性后,(1)单个挂载点可以使用多条链路带宽,提升NFS访问性能;(2)某条链路发生故障后,NFS客户端可进行故障链路切换,保证NFS业务连续性,提升NFS协议访问的性能和可靠性,可用性。
【硬件架构】
Noarch
【特性约束】
NA
【涉及仓库】
https://gitee.com/src-openeuler/kernel
【交付个人/团队】
负责人: yanhaitao

【补充信息】
背景: 当前NFS客户端单挂载点只能使用一个服务端ip的机制, 造成无法充分发挥存储多节点/多网卡的硬件能力,在多个金融局点出现性能不能满足业务需求, 并且当单个链路出现故障后,业务卡死,可靠性问题有待解决.
基于openEuler的商业OS厂商希望eNFS这个特性合入20.03 SP4后续发货新版本解决性能和可靠性问题.

eNFS主要修改点:

  1. 在nfs层主要是在mount命令解析参数时回调eNFS的注册函数, eNFS将用户输入的ip列表解析并保存下来.
  2. nfs在使用sunrpc创建rpc_clnt时, eNFS将mount输入的ip列表进行组合生成多个xprt, 并维护xprt的连通性状态. 后续在nfs io调用rpc_call发送报文时回调eNFS, eNFS使用round robin将io分发到可用的xprt实现链路负载均衡提升性能. 当一个io出现ETIMEOUT等错误时, eNFS模块也会重新选择可用的xprt进行分发,解决可靠性问题

评论 (1)

闫海涛 创建了需求

Hi yan-haitao0415, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: sig-release-management, and any of the maintainers: @陈亚强 , @solarhu , @huangchengpiao , @mdche , @openeuler-ci-bot

openeuler-ci-bot 添加了
 
sig/sig-release-mana
标签
闫海涛 修改了描述
闫海涛 修改了描述
mingqian218472 通过src-openeuler/kernel Pull Request !1300任务状态新建 修改为已完成

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5329419 openeuler ci bot 1632792936
1
https://gitee.com/openeuler/release-management.git
git@gitee.com:openeuler/release-management.git
openeuler
release-management
release-management

搜索帮助