goofys+NFS练手

安装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

 

客户端-192.168.1.121

查看可挂载目录

showmount -e 192.168.1.122

创建空挂载点

mkdir -p /mnt/nfs

chmod 777 -R /mnt/nfs

挂载共享文件

mount -t nfs 192.168.1.122:/home/nfs /mnt/nfs

/goofys -f -debug_fuse -debug_s3 --endpoint http://172.16.1.122: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支持

Goofys needs support for mknod to work in NFS client environments.. · Issue #175 · kahing/goofys · GitHub

Fixed a bug that regular files could not be created by mknod by ggtakec · Pull Request #1957 · s3fs-fuse/s3fs-fuse · GitHub

s3fs1.91 : can't touch file using NFS · Issue #1934 · s3fs-fuse/s3fs-fuse · GitHub

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值