搭建nfs服务器
使用centos 7系统作为安装环境
yum -y install nfs-utils
修改nfs的配置文件/etc/exports(默认不存在)
$ vi exports
/home/nfs_share 172.16.187.0/24(insecure,ro,no_root_squash)
使配置文件生效
exportfs -r
/home/nfs_share 为共享目录 172.16.187.0/24 客户端的ip,网段或者域名(域名支持通配符 如 *.qq.com) 如果需要共享多个文件夹,则添加多个记录 访问权限选项
* 这里输入引用文本设置输出目录只读: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服务器启动
systemctl start nfs.service
查看服务状态
# systemctl status nfs.service
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
Active: active (exited) since Sat 2017-02-04 16:25:42 CST; 1min 21s ago
Process: 3252 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 3251 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=1/FAILURE)
Main PID: 3252 (code=exited, status=0/SUCCESS)
Memory: 0B
CGroup: /system.slice/nfs-server.service
Feb 04 16:26:39 localhost.localdomain systemd[1]: Started NFS server and services.
Hint: Some lines were ellipsized, use -l to show in full.
# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 45763 status
100024 1 tcp 34424 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 52967 nlockmgr
100021 3 udp 52967 nlockmgr
100021 4 udp 52967 nlockmgr
100021 1 tcp 44023 nlockmgr
100021 3 tcp 44023 nlockmgr
100021 4 tcp 44023 nlockmgr
服务已经启动成功,往里面创建添加一个文件测试
touch /home/nfs_share/hello
搭建nfs客户端
安装nfs,同服务端
yum -y install nfs-utils
查看可用的挂载
# showmount -e 172.16.187.191
Export list for 172.16.187.191:
/home/nfs_share 172.16.187.0/24
客户端挂载
# mount -t nfs 172.16.187.191:/home/nfs_share /home/client_nfs/
# cd /home/client_nfs/
# ls
hello
到此结束,自己动手试试吧
客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认是用UDP协议,换成TCP协议即可:
mount -t nfs 192.168.1.97:/opt/test /mnt -o proto=tcp -o nolock