关于NFS的原理,我在这就不概诉了,其实非常简答的理解就是一个网络磁盘,你需要把它挂载到你的磁盘上使用而已。那接下来谈谈如和搭建NFS网络文件系统。
需要使用2台机器作此实验,我分别配置IP为192.168.2.69(服务器端) 192.168.2.66 (客户端)
1,首先在服务端上安装nfs-utils和rpcbind。
yum insall -y nfs-utils rpcbind
这里其实在yum安装的时候已经将rpcbind安装上去了。
2,编辑nfs配置文件。
vim /etc/exports
/data/ 192.168.2.66(rw,sync,no_root_squash) /data/表示要共享的目录 192.168.2.66 共享给谁,这里也可以写网段。 (rw,sync,no_root_squash) 读写、同步、不限制root用户。
这里有个地方要注意:在ip和权限之间是不能有空格的,否则会有报错提示。(这个是我经常犯的错误)
NFS配置的一些选项说明
rw :读写;
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。
3,启动rpcbind nfs服务。
/etc/init.d/rpcbind start (先启动)
/etc/init.d/nfs start
4,客户端挂载目录。
1,在挂载目录之前,需要用到showmount命令,所以要安装nfs-utils. yum install -y nfs-utils。
2,查看服务器端都共享了哪些目录。 showmount -e 192.168.2.69 可以看到
3,挂载。 mount -t nfs -onolock,nfsvers=3 192.168.2.69:/data/ /mnt/
如果不加 -onolock,nfsvers=3 ,挂载的时候会出现各种问题,所以我们要指定nfs版本为3。
df -h 查看挂载情况。
二,当服务端修改配置文件后,我们可以不用重启服务,使用exportfs -arv即可生效,当然你也可以重启服务。此时,客户端需要重新挂载一下。
exportfs 命令的使用
-a :全部挂载或者卸载;
-r :重新挂载;
-u :卸载某一个目录;
-v :显示共享的目录
在使用nfs时,常用一个选项就是 -o nolock
我们还可以把要挂载的nfs目录写到client上的/etc/fstab文件中 192.168.2.69:/data/ /mnt nfs nolock,nfsvers-3 0 0 然后 mount -a 即可。