在CentOS7上开启和挂载NFS共享

NFS:Network File System 网络文件系统,可以让电脑在本地直接管理远端的硬盘。依赖RPC.
RPC:Remote Procedure Call 远程过程调用,计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。

服务端

关闭防火墙和selinux

1
2
3
4
5
6
7
8
9
10
#安装nfs和rpc
yum install -y rpc-bind nfs-utils

#配置要共享的目录
cat /etc/exports
/share (rw,no_root_squash)

#启动nfs和rpcbind
systemctl start nfs
systemctl start rpcbind

exports的文件格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<输出目录> 客户端(选项:访问权限,用户映射,其他]

输出目录是指NFS系统中所定义的共享给客户端使用的文件系统

客户端是定义网络中可以访问这个NFS共享目录的IP地址或网段或域名等
客户端常用的指定方式
指定ip地址的主机:192.168.100.1
指定一个子网:192.168.100.0/24 也可以写成:192.168.100.0/255.255.255.0
指定域名的主机:david.bsmart.cn
指定域中的所有主机:*.bsmart.cn
所有主机:*

选项用来设置输出目录的访问权限、用户映射等。
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的话默认是识别不了nfs的:

1
2
3
4
5
6
7
8
[root@CentOS7-copy ~]# mount 10.211.55.21:/share /home/media/
mount: 文件系统类型错误、选项错误、10.211.55.21:/share 上有坏超级块、
缺少代码页或助手程序,或其他错误
(对某些文件系统(如 nfs、cifs) 您可能需要
一款 /sbin/mount.<类型> 助手程序)

有些情况下在 syslog 中可以找到一些有用信息- 请尝试
dmesg | tail 这样的命令看看。

所以需要先安装yum -y install nfs-utils
经过测试,并不需要启动服务,装上就行

挂载测试

1
2
3
4
5
6
7
8
9
10
[root@CentOS7-copy ~]# mount 10.211.55.21:/share /home/media/
[root@CentOS7-copy ~]# dd if=/dev/zero of=/home/media/file2 bs=1M count=10
记录了10+0 的读入
记录了10+0 的写出
10485760字节(10 MB)已复制,0.0422486 秒,248 MB/秒
[root@CentOS7-copy ~]# ll /home/media/
总用量 20484
-rw-r--r-- 1 root root 10485760 6月 26 14:35 file1
-rw-r--r-- 1 root root 10485760 6月 26 14:42 file2
drwxr-xr-x 2 root root 4096 6月 26 14:33 sixsixsix

参考:
在CentOS7上实现NFS共享