windows和Linux用SAMBA服务器,但是Linux和Linux主机如何共享资源呢?答案是NFS(network file system)NFS是SUN公司与1984年开发的,它是一种分布式文件系统。它的原理是在客户端上,通过网络将远程主机共享的文件系统利用安装mount的方式加入本机的文件系统,此后操作就像本地操作一样。这样的好处就是除了提成资源的使用效率,还可以大大节省硬盘的空间,因为每台主机不需要将所有的文件都复杂到本地上,同时也可以做到资源集中管理。

    目前nfs有两个版本NFSV2,NFSV3,NFS用RPC来传递客户端和服务端间的信息,因此在双方进行NFS时,必须启动portmap服务,并且适当的RUN level。而且portmap服务在运行时,也需要以下协作rpc.mountd  rpc.nfsd,如果确定portmap服务已经启动,可以运行rpc.info指令,假设已经使用portmap服务的nfs服务器为ns1.zh888.com

centos6.0以上变更了portmap服务为rpcbind,在使用nfs时这点与centos5不同,下面配置一个nfs系统,用来使局域网内的所有用户均可访问该目录。

[root@zh888 ~]# yum -y install nfs-utils.i686 //安装nfs-utils.i686软件,如果不知道可以用yum search nfs来查看。


[root@zh888 home]# vi /etc/exports  

/usr/share/nginx/html 192.168.200.0/24(ro,no_root_squash) //这一行表明本机的/usr/share/nginx/html这个目录为nfs共享目录,可访问的ip地址区间为192.168.200.0-192.168.200.254,权限为只读,当访问者为root用户时方位该目录具有root权限

在设置/etc/exports文件需要注意空格的使用

在/etc/exports中输入共享目录以后一定要用

exportfs命令

 在/etc/exports文件中的每一条记录都代表一个共享资源以及访问权限设置,它的格式如下:

共享目录 【客户端 (访问权限,选项,用户ID对应】
 但注意共享目录是绝对路径如果是相对路径客户端并无法得知本地的相对路径。

客户端:单一主机(ip,别名,主机名)指定超过一个主机,则必须空格加分隔

群组:可以使用“@群组名称”的格式来指定允许nfs服务器群组。如@WORKGROUP

万用字符:可以用*,?来指定允许连接的 NFS服务端的客户端,例如:*.NS1.COM表示允许来自ns1.com网域所有连接主机。

网络节点:如果要指定ip网络节点客户端,那么可以使用符合cidr格式的表示法,如192.168.0.0/24或192.168.0.0/255.255.255.0

访问权限:nfs客户端权限分为两种rw,ro

选项/etc/exports文件中允许使用的选项有很多。

用户id对应 root_squash,no_root_squash,all_squash,no_all_squash

[root@zh888 home]# service rpcbind restart //启动portmap服务现在变成rpcbind。
Stopping rpcbind:                                          
Starting rpcbind:    

[root@zh888 home]# service nfs restart //启动nfs网络文件系统
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]

[root@zh888 home]# chkconfig --level 3 nfs on //设置runlevel 3启动nfs服务

[root@zh888 home]# exportfs -rv
exporting 192.168.200.0/24:/usr/share/nginx/html

[root@zh888 home]# showmount -e 192.168.200.196 //查看nfs服务器上的共享资源
Export list for 192.168.200.196:
/usr/share/nginx/html 192.168.200.0/24

 

[root@zh888 home]# mount -t nfs 192.168.200.196:/usr/share/nginx/html /mnt  //安装nfs服务器共享资源
mount nfs服务器:共享目录 本地安装目录

[root@zh888 home]# mount //查看所有挂在的文件
/dev/sda2 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.200.196:/usr/share/nginx/html on /mnt type nfs (rw,vers=4,addr=192.168.200.196,clientaddr=192.168.200.196) //这里就是挂在的目录


最后修改开机自动挂载工具/etc/fstab文件如下:

下是一个/etc/fstab中的挂载NFS的一条记录。
 <server>:</remote/export> </local/directory> nfs < options> 0 0 

[root@zh888 home]# echo "192.168.200.196:/usr/share/nginx/html /mnt nfs defaults 
0 0">>/etc/fstab