7 Star 0 Fork 16

src-openEuler / glusterfs

 / 详情

【22.03-RC4】【arm/x86】glusterfs和nfs组合场景使用时,使用nfs挂载glusterfs创建的分布式卷报错:mount.nfs: requested NFS version or transport protocol is not supported

已验收
缺陷
创建于  
2022-03-15 20:36

【环境信息】
系统:arm,x86虚拟机
内存:4g
cpu:4核
OS版本:
openeulerversion=openEuler-22.03-LTS
compiletime=2022-03-12-09-10-52
gccversion=10.3.1-9.oe1
kernelversion=5.10.0-60.9.0.40.oe1
openjdkversion=1.8.0.312.b07-11.oe1
备注:需要2个节点的机器,每个节点添加1个10G磁盘,节点1:172.168.216.47,节点2:172.168.224.165

【问题复现步骤】
1、安装glusterfs和nfs相关包
(1)节点1安装glusterfs相关包和nfs-utils包:dnf install glusterfs* -y
(2)节点2安装nfs-utils包:dnf install nfs-utils -y
2、节点1环境准备

mkdir -p /data/glusterfs/brick1
cp /etc/hosts /etc/hosts-bak
echo "172.168.216.47 server1" >>/etc/hosts
systemctl stop firewalld
getenforce | grep Enforcing && setenforce 0
systemctl start glusterd

3、节点2环境准备

cp /etc/hosts /etc/hosts-bak
echo '172.168.216.47 server1' >>/etc/hosts

4、查看节点1添加的磁盘名称,测试环境中为TEST_DISK=/dev/vdb
5、节点1上执行
(1)创建pv:pvcreate ${TEST_DISK}
(2)创建vg:vgcreate dummyvg ${TEST_DISK}
(3)创建thin pool:lvcreate -L 5G -T dummyvg/dummyvgpool -c 256k --poolmetadatasize 100M
(4)查看lvs:lvs -a | grep dummyvgpool
(5)创建空间为3G的thin lv:lvcreate -V 3G -T dummyvg/dummyvgpool -n dummylv
(6)创建文件系统:mkfs.ext4 /dev/dummyvg/dummylv
(7)创建brick 挂载:mount /dev/dummyvg/dummylv /data/glusterfs/brick1
(8)创建分布式卷:gluster volume create mylv server1:/data/glusterfs/brick1 force
(9)手动启用nfs,并重启volume mylv:

echo y| gluster volume set mylv nfs.disable off
gluster volume start mylv
gluster volume info mylv | grep 'Status: Started'

(10)创建测试文件:touch /data/glusterfs/brick1/test
(11)创建快照:gluster snapshot create mysnap mylv
(12)查看快照,获取快照名mysnap_name:mysnap_name=$(gluster snapshot list | grep mysnap)
6、节点2上执行:
(1)使用nfs挂载glusterfs创建的分布式卷mylv:mount -o mountproto=tcp -t nfs server1:mylv /mnt
(2)nfs挂载后查看节点1的新建的test文件是否共享成功:ls /mnt/test
(3)删除测试文件:

rm -rf /mnt/test
umount /mnt

7、节点1执行:
(1)从快照恢复

umount /mnt
echo y | gluster volume stop mylv
echo y | gluster snapshot restore "${mysnap_name}"
gluster volume start mylv

8、节点2执行:
(1)再次挂载:

mount -o mountproto=tcp -t nfs server1:mylv /mnt  
ls /mnt/test

【预期结果】
步骤1-5:执行成功,分布式卷mylv创建成功,快照创建成功;
步骤6:nfs挂载glusterfs创建的分布式卷mylv成功,并能看到节点1上的测试文件test
步骤7-8:删除测试文件以后,能够成功恢复快照

【实际结果】
步骤1-5:执行成功,分布式卷mylv创建成功,快照创建成功;
步骤6:nfs挂载glusterfs创建的分布式卷mylv失败,并报错:mount.nfs: requested NFS version or transport protocol is not supported
步骤7-8:删由于步骤6失败了,此步骤执行结果全部失败

【附件信息】
输入图片说明

评论 (3)

Emily_LiuLiu 创建了缺陷

Hi emily_liuliu, 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: Storage, and any of the maintainers: @liuzhiqiang , @linfeilong835 , @louhongxiang , @zero

openeuler-ci-bot 添加了
 
sig/Storage
标签
Emily_LiuLiu 计划截止日期2022-03-16 修改为2022-03-17

根因分析:
1.glusterfs软件包在升级到10.0版本后,spec文件变动较大,gNFS作为可选子包编译在编译过程中宏未开启,OE暂不提供glusterfs-gnfs子包,不支持gnfs的相关功能。
2.gNFS相关功能配置软件包glusterfs-ganesha,是基于NFS-Ganesh提供使用glusterfs作为NFS服务端的功能,目前已在提交PR:!22:Remove unnecessary subpackages 中删除使用,不支持gnfs挂载

适配方案建议:
将脚本挂载方案更改为glusterfs方式挂载,如:
mount -o mountproto=tcp -t glusterfs server1:mylv /mnt

markeryang 任务状态待办的 修改为已完成

将脚本挂载方案更改为glusterfs方式挂载,mount -t glusterfs server1:mylv /mnt,用例执行通过:
输入图片说明

Emily_LiuLiu 任务状态已完成 修改为已验收

登录 后才可以发表评论

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

搜索帮助