NFS全称是network file system,NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。 假如有三台机器A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, B, C. 但是使用NFS只需要放到A上,然后A共享给B和C即可。访问的时候,B和C是通过网络的方式去访问A上的那个目录的。 


废话不多说,搭建走着。。。。。

首先先声明的是搭建环境为centos6.4

服务端ip:192.168.0.120

客户端ip:192.168.0.121

1、需要安装两个包(nfs-utils和rpcbind):

yum install -y nfs-utils rpcbind

2、提供nfs服务的机器上 vim /etc/exports  //内容如下:

/home/ 192.168.0.0/24(rw,sync,all_squash,anonuid=501,anongid=501)

(解释下这个:共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)第三部分就是小括号里面的,为一些权限选项。它表示:共享的目录为/home,信任的主机为192.168.0.0/24这个网段,权限为读写,同步,限定所有使用者,并且限定的uid和gid都为501。

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、启动 /etc/init.d/rpcbind start; /etc/init.d/nfs start

(注意先启动rpcbind,否则会报错)

4、客户端同样安装:yum install -y nfs-utils 

查看服务器端都共享了哪些目录:showmount -e 192.168.0.120  

在客户端上挂载服务端的nfs:     

mount -t nfs 192.168.0.120:/home/ /mnt/ 

df -h  查看挂载的情况

5、小技巧:

a)改变/etc/exports配置文件后,不用重启nfs服务直接用这个exportfs即可,如:exportfs -arv 

-a :全部挂载或者卸载;

-r :重新挂载;

-u :卸载某一个目录;

-v :显示共享的目录。

b)客户端在使用nfs时,常用一个选项就是 -o nolock,如:

mount -t nfs -o nolock 192.168.0.120:/home/text /mnt/

意思指挂载的时候指定这个文件不加锁。

c)客户端开机加载这个文件可以在/etc/rc.local加入:

mount -t nfs -o nolock 192.168.0.120:/home/text /mnt/


疑问:服务端设置/home/text 192.168.0.0/24(rw,sync,no_root_squash)时,客户端写的时候容易卡