Skip to the content.

最小用户态 NFSv3 server

这是一个用于理解 NFSv3 基本数据路径的小型用户态 server,不是生产可用的 NFS server。

支持的 NFSv3 操作:

其他操作会有意返回 NFS3ERR_NOTSUPP

依赖

Fedora:

sudo dnf install -y gcc make rpcgen libtirpc-devel nfs-utils

构建

make -C docs/kernel/fs/nfs/user-nfsd

生成的二进制是 user-nfsd.out.out 后缀会被仓库规则忽略。

修改 nfs3.xmount3.x 之后,使用下面的命令重新生成 rpcgen 文件:

make -C docs/kernel/fs/nfs/user-nfsd regenerate

运行

mkdir -p /tmp/user-nfsd-root /tmp/user-nfsd-mnt
docs/kernel/fs/nfs/user-nfsd/user-nfsd.out /tmp/user-nfsd-root

在另一个 shell 中挂载:

sudo mount -t nfs \
  -o vers=3,proto=tcp,mountproto=tcp,port=3049,mountport=3050,nolock \
  127.0.0.1:/ /tmp/user-nfsd-mnt

测试基本文件 I/O:

echo hello > /tmp/user-nfsd-mnt/a
cat /tmp/user-nfsd-mnt/a
printf world >> /tmp/user-nfsd-mnt/a
rm /tmp/user-nfsd-mnt/a

卸载:

sudo umount /tmp/user-nfsd-mnt

限制

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。