NFS(network file system),即网络文件系统;它用于在网络上共享存储。
这次试验准备两台虚拟机,一个作为服务端,一个为客户端。服务端共享一个目录,然后客户端挂载这个目录就可以实现共享存储了。
1、服务端配置NFS 首先需要安装两个包nfs-utils和rpcbind(用于服务端和客户端之间的通信,CentOS6版本以前都是安装portmap包,实际上是同一个东西)
[[email protected] ~]# yum install -y nfs-utils rpcbind
编辑配置文件
[[email protected] ~]# vim /etc/exports //写入以下内容
/home 192.168.0.0/24(rw,sync,all_squash,anonuid=501,anongid=501)
注:假设要共享的目录为/home,信任的主机为192.168.0.0/24这个网段,权限为读/写,同步模式,限定所有使用者,并且限定的uid和gid都为501,前提是本机的/etc/passwd中存在这个uid和gid。
启动NFS服务:
[[email protected] ~]# /etc/init.d/rpcbind start 先启动
[[email protected] ~]# /etc/init.d/nfs start
注:后期要是修改了/etc/exports这个配置文件,可以使用exportfs命令挂载不需要重启NFS服务。 # exportfs -arv
客户端挂载NFS
客户端也要安装nfs-utils和rpcbind两个包
[[email protected] ~]# yum install -y nfs-utils rpcbind
在挂载之前,我们先查看共享了哪些目录
[[email protected] ~]# showmount -e 192.168.137.22 //此为服务端IP
Export list for 192.168.137.22:
/home 192.168.0.0/24
注:要关闭服务端的防火墙,要不然客户端查看不到该共享,会报如下的错:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host
然后挂载NFS
[[email protected] ~]# mount -t nfs 192.168.137.33:/home/ /mnt/
[[email protected] ~]# df -h
使用命令df -h 我们可以看到增加了一个/mnt分区,它就是NFS共享的目录了
命令 exportfs
当改变/etc/exports配置文件后,使用exportfs命令挂载不需要重启NFS服务,如:
# vim /etc/exports //增加一行:
# /tmp/ 192.168.0.0/24(rw,sync,no_root_squash)
然后在服务端执行如下命令:
# exports -arv
exporting 192.168.0.0/24/tmp
exporting 192.168.0.0/24/home
-a:全部挂载或者卸载 -r:重新挂载
-u:卸载某一个目录 -v:显示共享的目录
mount命令,他要用-t nfs来指定挂载的类型为nfs,还常用-o nolock选项,即不加锁,例如在客户端执行如下命令:
# mkdir /test
# mount -t nfs -o nolock 192.168.137.33:/tmp/ /test/
我们还可以把要挂载的NFS目录写到客户端的/etc/fstab,挂载时只需执行mount -a即可,如:
[[email protected] opt]# vim /etc/fstab //添加下面一行
192.168.0.109:/tmp/ /test nfs nolock 0 0
因为刚我们挂载了NFS,所以先卸载
[[email protected] opt]# cd
[[email protected] ~]# umount /test
然后重新挂载,只要执行如下命令即可
[[email protected] ~]# mount -a
这样操作后,以后开机都会自动挂载NFS。
后记
若想把新建的文件都设置为root用户。
我们在服务端配置/etc/exports文件如下:
[[email protected] ~]# vim /etc/exports
/home 192.168.137.22(rw,sync,no_root_squash)
[[email protected] ~]# exportfs -arv //重新加载NFS服务
exporting 192.168.137.22:/mnt
在客户端/opt目录下新建文件
[[email protected] opt]# touch 1.txt
[[email protected] opt]# touch 123
[[email protected] opt]# ls -l
总用量 0 -rw-r--r--. 1 root root 0 9月 13 02:05 123
-rw-r--r--. 1 root root 0 9月 13 02:05 1.txt
由上可知文件所属主和所属组都为root