goofys+NFS练手

https://blog.csdn.net/weixin_43582081/article/details/123932105
https://blog.csdn.net/liaomingwu/article/details/124313289

安装goofys可以参考<<linux安装goofys>>

192.168.1.232做NFSserver
192.168.1.231做NFS client

yum install nfs-utils rpcbind -y 客户端服务端都需要安装

后来看
只安装 nfs-utils 即可,rpcbind 属于它的依赖,也会安装上。

启动NFS
systemctl start nfs.service
systemctl start rpcbind.service
开机自启
systemctl enable nfs.service
systemctl enable rpcbind.service

服务端-192.168.1.232
创建共享目录
mkdir -p /home/nfs
chmod 777 -R /home/nfs

设置共享
修改 /etc/exports,添加共享目录

echo "/home/nfs 192.168.1.0/24(rw,no_all_squash,sync)" >> /etc/exports
上面配置会有个错误,目前不会报出来,exportfs -r requires fsid for nfs export 需要改成

echo "/home/nfs 192.168.1.0/24(fsid=0,rw,no_all_squash,sync)" >> /etc/exports

刷新配置使得修改立刻生效
exportfs -r

NFS配置参数权限
详情 命令行 查看linux手册 man exports
man-exports.txt

客户端-192.168.1.231
查看可挂载目录
showmount -e 192.168.1.232

创建空挂载点
mkdir -p /mnt/nfs
chmod 777 -R /mnt/nfs

挂载共享文件
mount -t nfs 192.168.1.232:/home/nfs /mnt/nfs

/goofys -f -debug_fuse -debug_s3 --endpoint http://172.16.1.232:9000/ s3fs-test /opt/goofys

fuses是没有完全兼容POSIX,然后NFS共享goofys挂载的对象目录到另外一个服务器后,在另外一个服务器,写文件会报错,读可以。
写的时候报错如下

测试大概如下,A服务装了对象存储和goofys,然后将对象的桶A挂载的目录/opt/goofys下
在A服务器的/opt/goofys目录下,所有操作(读写啊)都是可以的。
然后NFS共享到B服务,在B服务器上读是可以的,写就报上面的错。

有两个办法
1、从源头做起,找个完全兼容POSIX的对象共享挂载服务,juicefs官方写的是完全兼容。
2、从共享方式那里看看,NFS创建文件调用的是POSIX的MkNode,那有没有共享服务创建文件调的不是这个接口,掉的接口Goofys支持

https://github.com/kahing/goofys/issues/175

https://github.com/s3fs-fuse/s3fs-fuse/pull/1957

https://github.com/s3fs-fuse/s3fs-fuse/issues/1934

posted @ 2023-02-11 16:58  韦你而得  阅读(76)  评论(0)    收藏  举报