NFS配置
1、安装NFS软件包
shell
yum -y install nfs-utils rpcbind
# ubuntu
sudo apt install -y nfs-kernel-server
2、设置开机自启以及启动服务
shell
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
3、新建存储文件夹
shell
mkdir -p /home/data/nfs
4、编辑配置
vim /etc/exports
shell
/home/data/nfs *(rw,async,no_root_squash)
# 可设置访问的网段
/home/data/nfs 192.168.1.0/24(rw,no_root_squash,no_subtree_check)
小括号内常用的权限参数如下:
- ro:共享目录只读;
- rw:共享目录可读可写
- sync:同步,将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
- async:异步,将数据先保存在内存缓冲区中,必要时才写入磁盘,效率高,但有丢失数据的风险;
- wdelay(默认):如果有多个客户端要对同一个共享目录进行写操作,则将这些操作集中执行。对有很多小的IO写操作时,使用该选项可以有效的提高效率;
- no_wdelay:如果有多个客户端要对同一个共享目录进行写操作则立即写入。当设置了async选项时,no_wdelay选项无效,应与sync配合使用;
- root_squash(默认):将来访的root用户映射为匿名用户或用户组;
- no_root_squash:来访的root用户保持root帐号权限;
- all_squash:所有访问用户都映射为匿名用户或用户组;
- no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
- anonuid:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
- anongid:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
- secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
- insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
- subtree_check :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
- no_subtree_check(默认) :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
- hide:共享一个目录时,不共享该目录的子目录;
- no_hide:共享子目录;
5、重新加载exportfs文件
shell
exportfs -a
# OR
exportfs -r
6、编辑nfs配置
vim /etc/sysconfig/nfs
ini
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
7、重新服务
shell
systemctl restart rpcbind
systemctl restart nfs-server
8、测试挂载是否正常
shell
mount -t nfs 127.0.0.1:/home/data/nfs /mnt
df -h ###查看有了代表成功
umount /mnt
showmount -e 192.168.0.10
Mac 挂载:
shell
showmount -e 192.168.0.10
sudo mount -t nfs -o resvport 192.168.0.10:/home/data /Volumes/dev_data
# Mac 需要加 nolocks 的参数
sudo mount -o nolocks,resvport,locallocks -t nfs 192.168.3.234:/e/video/ /Users/simonliu/nas/video/
sudo mount -o nolocks,rw -t nfs 192.168.3.234:/e/video/ /Users/simonliu/nas/video/
Mac 挂载需要 -o resvport
Mac解决方案2
让macOS使用NFS V4
编辑 vim /etc/nfs.conf
,添加如下内容
ini
nfs.client.mount.options =
vers=4