服务端配置NFS
CentOS上使用NFS服务,需要安装两个包(nfs-utils和rpcbind),不过当使用yum安装nfs-utils 时会把rpcbind一起安装上
1 | yum install -y nfs-utils rpcbind |
修改配置文件,默认该文件为空,现在编辑它:
1 | vim /etc/exports |
写入以下内容:
1 | /mnt 192.168.189.0/24(rw,sync,all_squash,anonuid=501,anongid=501) |
这个配置文件就这样简单一行。共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)第三部分就是小括号里面的,为一些权限选项。下面简单介绍以下权限选项:
- w :读写;
- ro :只读;
- sync :同步模式,内存中数据时时写入磁盘;
- async :不同步,把内存中数据定期写入磁盘中;
- no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;
- root_squash:和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;
- all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身;
- anonuid/anongid :要和root_squash 以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。
我们刚才配置的文件意思为:其中分享的目录为/mnt,信任的主机为:192.168.189.0/24这个网段,权限为读写,同步,限定所有使用者,并且限定的uid和gid都为501。
编辑好配置文件后,就该启动NFS服务了
1 | /etc/init.d/rpcbind start |
客户端上挂载nfs
客户端在挂载NFS之前,我们需要先看一看服务端都共享了哪些目录
1 | showmount -e 192.168.189.131 #IP为服务端IP |
可以看到共享的目录为/mnt 信任的IP为192.168.189.0/24这个网段
挂载
1 | mount -t -onolock,nfsver=3 192.168.189.131:/mnt /opt #-o后面跟挂载选项,如果不加nfsver=3 则挂载目录下的文件属主和组都是nobody |
可以看到在多出来一个 /opt分区,它就是NFS的共享目录。
命令exportfs
该命令的个选项意义为:
- -a :全部挂载或者卸载;
- -r :重新挂载;
- -u :卸载某一个目录;
- -v :显示共享的目录;
当改变/etc/exports配置文件后,不用重启nfs服务而直接用exportfs -arv即可。
-o还有一个选项是-o nolock 了,即在挂载nfs服务时,不加锁。 启用这个选项后,我们可以把要挂载的nfs目录写到client上的/etc/fstab文件中:
1 | 192.168.189.131:/tmp/ /test nfs nolock 0 0 |
挂载时只需要执行 mount -a 即可。
1 | [root@Grapedlinux ~]# mount -a |