NFS网络文件系统

时间:2022-01-28 10:31:52

1、是UNIX和linux所特有的,可以在windows、linux、UNIX之间共享文件,共享以后可将远程的文件目录共享到本地的磁盘,可以复制、写、删除等操作,跟本地的文件是没什么区别的。

例如,A、B、C三台linux主机,需要访问同样的资源,就可以把资源放到A上,B、C通过NFS访问A的资源。

建议在centos5上搭建NFS,centos6上不稳定。

2、安装NFS

[root@client ~]# yum -y install nfs-utils   //安装nfs-utils包
Installing : rpcbind-0.2.0-11.el6.i686 1/3
Installing : nfs-utils-lib-1.1.5-6.el6.i686 2/3
Installing : 1:nfs-utils-1.2.3-39.el6.i686 3/3
Verifying : 1:nfs-utils-1.2.3-39.el6.i686 1/3
Verifying : nfs-utils-lib-1.1.5-6.el6.i686 2/3
Verifying : rpcbind-0.2.0-11.el6.i686 3/3
//rpcbind这个服务是用来将RPC程序号转换成端口号
Installed:
nfs-utils.i686 1:1.2.3-39.el6
Dependency Installed:
nfs-utils-lib.i686 0:1.1.5-6.el6 rpcbind.i686 0:0.2.0-11.el6

3、编写NFS配置文件/etc/exports

[root@client ~]# vim /etc/exports/tmp/123 192.168.0.0/24(rw,sync,all_squash,anonuid=503,anongid=505)/tmp/345 192.168.0.0/24(rw,sync,no_root_squash)/*共分为三部分,第一部分就是本地要共享出去的目录,/tmp/123第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)192.168.0.0/24第三部分就是小括号里面的,为一些权限选项。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。*/

4、启动NFS

[root@client 123]# /etc/init.d/nfs start  Starting NFS services:                                     [  OK  ]Starting NFS mountd:                                       [FAILED]Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)rpc.nfsd: unable to set any sockets for nfsd   //需要RPC支持                                                           [FAILED][root@client 123]# /etc/init.d/rpcbind startStarting rpcbind:                                          [  OK  ][root@client 123]# /etc/init.d/nfs startStarting NFS services:                                     [  OK  ]Starting NFS mountd:                                       [  OK  ]Starting NFS daemon:                                       [  OK  ]Starting RPC idmapd:                                       [  OK  ]

5、查看共享目录

[root@localhost 345]# showmount -e 192.168.0.105Export list for 192.168.0.105:/tmp/345 192.168.0.0/24/tmp/123 192.168.0.0/24

6、客户端挂载共享目录

[root@client ~]# yum install -y nfs-utils //安装NFS[root@client ~]# mount -t nfs 192.168.0.105:/tmp/123 /123[root@client ~]# mount -t nfs 192.168.0.105:/tmp/123 /345//挂载,-t指定文件系统类型,共享服务器IP地址和目录[root@localhost 345]# df -hFilesystem            Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root                      6.5G  2.0G  4.1G  33% /tmpfs                 250M     0  250M   0% /dev/shm/dev/sda1             485M   30M  430M   7% /boot/dev/sdb1            1020M   34M  935M   4% /guazai192.168.0.105:/tmp/123                       15G  2.0G   12G  15% /123192.168.0.105:/tmp/345                       15G  2.0G   12G  15% /345

测试all-squash

[root@localhost 123]# mkdir yuan cheng   //客户端没有权限mkdir: cannot create directory `yuan': Permission deniedmkdir: cannot create directory `cheng': Permission deniedroot@client 123]# chmod 777 /tmp/123   //服务端给目录设置权限[root@localhost 123]# mkdir yuan cheng   //客户端[root@localhost 123]# lltotal 20-rw-r--r-- 1 root   root      0 Apr 21 01:08 cccccdrwxr-xr-x 2 nobody nobody 4096 Apr 21 01:13 cheng   //所属主是nobodydrwxr-xr-x 2 root   root   4096 Apr 21 01:08 ttdrwxr-xr-x 2 root   root   4096 Apr 21 01:08 uuu-rw-r--r-- 1 root   root      0 Apr 21 01:08 xxxxcdrwxr-xr-x 2 nobody nobody 4096 Apr 21 01:13 yuandrwxr-xr-x 2 root   root   4096 Apr 21 01:08 yyy-rw-r--r-- 1 root   root      0 Apr 21 01:08 zz

测试no-root-squash

[root@localhost 345]# mkdir yuan cheng[root@localhost 345]# lltotal 20drwxr-xr-x 2 root root 4096 Apr 21 01:24 cheng   //所属主和所属组都是rootdrwxr-xr-x 2 root root 4096 Apr 21 01:04 ee-rw-r--r-- 1 root root    0 Apr 21 01:04 fff-rw-r--r-- 1 root root    0 Apr 21 01:04 ggggdrwxr-xr-x 2 root root 4096 Apr 21 01:04 qqdrwxr-xr-x 2 root root 4096 Apr 21 01:04 wdrwxr-xr-x 2 root root 4096 Apr 21 01:24 yuan

7、exportfs用法

[root@client 123]# exportfs -v   //查看本机共享目录/tmp/123        192.168.0.0/24(rw,wdelay,root_squash,all_squash,no_subtree_check,anonuid=503,anongid=505)/tmp/345        192.168.0.0/24(rw,wdelay,no_root_squash,no_subtree_check)

-a :全部挂载或者卸载;
-r :重新挂载;
-u :卸载某一个目录;
-v :显示共享的目录


本文出自 “linux成长之路” 博客,请务必保留此出处http://linuxlovers.blog.51cto.com/6787002/1399032