用 nfs-kernel-server 做远程挂载

apt-get update
apt-get install -y nfs-kernel-server

配置

nano /etc/exports
示例/解释========================================================================
/www/wwwroot/site1 可以共享的文件夹和允许的客户端地址

NFS主要有3类选项:

访问权限选项:

设置输出目录只读:ro

设置输出目录读写:rw

用户映射选项:

all_squash: 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash: 与all_squash取反(默认设置);

root_squash: 将root用户及所属组都映射为匿名用户或用户组(默认设置);

no_root_squash:与rootsquash取反;

anonuid=xxx: 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

anongid=xxx: 将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项

secure: 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure: 允许客户端从大于1024的tcp/ip端口连接服务器;

sync: 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async: 将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay: 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay: 若有写操作则立即执行,应与sync配合使用;

subtree: 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

NFS 默认的mount参数为async,async 参数表示内核不会透传程序的IO请求给sever,对于写IO会延迟执行,积累一定的时间以便合并上层的IO请求以提高效率。
async异步写入,sync同步写入 使用async, 速度快些; 但有速据丢失风险;
示例/解释END========================================================================
/www/wwwroot/site1 *(rw,no_root_squash,async) 用同步写入
/www/wwwroot/site1 *(rw,sync,no_root_squash)

重启

systemctl restart nfs-server.service

/etc/init.d/nfs-kernel-server restart

示例/解释========================================================================
showmount -e
确认共享的目录是否正确 详细的配置参数可以查看 man 5 exports

mount -t nfs 服务器的IP:/media/alic/asus /home/alic/Alic/share
mount -t nfs -o nolock, vers=2 服务器的IP:/work/nfs /mnt

解释一下:

mount :挂载命令

nfs :使用的协议

nolock :不阻塞

vers : 使用的NFS版本号 挂接nfs server的client端执行nfsstat -m命令,可以得出nfs server端nfs版本为4 方法2:mount -v | grep /home/sam

IP : NFS服务器的IP(NFS服务器运行在哪个系统上,就是哪个系统的IP)

/work/nfs: 要挂载的目录(Ubuntu的目录)

/mnt : 要挂载到的目录(开发板上的目录,注意挂载成功后,/mnt下原有数据将会被隐藏,无法找到)
nfs mount 默认选项包括文件锁,依赖于portmap提供的动态端口分配功能。
解决方法:kill 文件锁(lockd)或者mount -o nolock

service nfslock restart
service rpcbind restart
示例/解释END========================================================================

挂载使用

在客户机创建这个目录
/home/nfstest

mount -t nfs -o nolock,vers=2 服务器的IP:/www/wwwroot/site1 /home/nfstest

mount -t nfs 服务器的IP:/www/wwwroot/site1 /home/nfstest
示例/解释========================================================================
如果出错
missing codepage or helper program, or other error

安装辅助
apt-get install nfs-common
安装之后,/sbin/下面多了两个mount文件,分别是mount.nfs和mount.nfs4:
ls /sbin/moun*

ufw disable 双方关闭防火墙

如果出错
mount.nfs: Protocol not supported

mount -t nfs4 -o nolock,vers=2 服务器的IP:/www/wwwroot/site1 /home/nfstest

非凡网 博客

我只是帮你筛选价值。

你也许喜欢

发表评论