一、NFS
的安装和使用
NFS
全称是network file system
,NFS
允许一个系统在网络上与他人共享目录和文件。通过使用NFS
,用户和程序可以像访问本地文件一样访问远端系统上的文件。
假如有三台机器A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, B, C. 但是使用NFS只需要放到A上,然后A共享给B和C即可。访问的时候,B和C是通过网络的方式去访问A上的那个目录的。
二、安装、配置NFS
服务
需要安装两个包(nfs-utils
和rpcbind)
yum install -y nfs-utils
会同时安装上rpcbind
提供nfs
服务的机器上
vim /etc/exports
## 内容如下:
/home/ 192.168.1.0/24(rw,sync,all_squash,anonuid=501,anongid=501)
共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)第三部分就是小括号里面的,为一些权限选项。它表示:共享的目录为/home,信任的主机为<code class="prettyprint" >192.168.1.0/24
这个网段,权限为读写,同步,限定所有使用者,并且限定的uid和gid都为501。
启动服务:
/etc/init.d/rpcbind start /etc/init.d/nfs start
三、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
NFS
的常用目录
/etc/exports
## NFS服务的主要配置文件
/usr/sbin/exportfs
## NFS服务的管理命令
/usr/sbin/showmount
## 客户端的查看命令
/var/lib/nfs/etab
## 记录NFS分享出来的目录的完整权限设定值
/var/lib/nfs/xtab
## 记录曾经登录过的客户端信息
四、客户端上挂载NFS
客户端同样安装 yum install -y nfs-utils
查看服务器端都共享了哪些目录
showmount -e 192.168.1.5
在客户端上挂载服务端的nfs
mount -t nfs -onolock,nfsvers=3 192.168.1.5:/home/ /mnt/
## 如果不加 -onolock,nfsvers=3
则在挂载目录下的文件属主和组都是nobody
,如果指定nfsvers=3
则显示root
df -h
查看挂载的情况
五、exportfs
命令的使用
-a
:全部挂载或者卸载;
-r
:重新挂载;
-u
:卸载某一个目录;
-v
:显示共享的目录
改变/etc/exports
配置文件后,不用重启nfs
服务直接用这个exportfs
即可
exportfs -arv
使配置生效
在使用nfs
时,常用一个选项就是 -o nolock
我们还可以把要挂载的nfs目录写到client上的
/etc/fstab文件中 192.168.1.5:/tmp/ /test nfs nolock 0 0
然后 mount -a
错误:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
关闭iptables
防火墙
service iptables stop