Linux存储实验四:NFS的安装与配置

这周我们继续来做NFS的安装与配置实验:

        NFS(Network File System)被称为网络文件系统。NFS允许一个系统在网络上与他人共享目录或文件,位于网络上的用户就像使用本地文件一样使用远端系统上的文件。说到这里,大家肯定会想到Windows下的一个类似服务:即网上邻居。对了,它和NFS的原理是一样的,只是NFS只针对Linux客户端与服务器。NFS客户机与服务器之间进行通信是通过RPC(Remote Procedure Call Protocol,远程过程调用)协议。

       NFS需要服务器端和客户端,我们需要对它们分别进行配置,由于在机房的时候我只有一台虚拟机,不过有另外机子有没人用的,我就用那台机子上的虚拟机当客户端了,至于怎么设置的到后面我会提到,但是我做的时候是在自己PC机上,有两台的。

        试验环境:Linux RedHat6.2     # 注: Linux 6以上的版本,NFS是系统默认安装的,不用我们再手动下载安装包了;还有portmap已经改名了,改为rpcbind了。 

        # 注: 如下操作中如果出现rpc等不能启动的情况,检查一下现将防火墙关了。

                            RedHat6.2下默认安装的nfs包有:

[root@compute-0 mnt]# rpm -qa | grep nfs
nfs-utils-lib-1.1.5-4.el6.x86_64
nfs-utils-1.2.3-26.el6.x86_64

实验步骤:

        1. 服务器端操作

             1> 启动NFS服务                 

[root@compute-0 mnt]# service nfs restart
Shutting down NFS daemon:                                  [FAILED]
Shutting down NFS mountd:                                  [FAILED]
Shutting down NFS quotas:                                  [FAILED]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Stopping RPC idmapd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
[root@compute-0 mnt]# 

            2> 创建共享目录

                  我们一般会把/opt来做为共享目录,现在我们在/opt下创建一个我们自己的共享目录

[root@compute-0 /]# mkdir -p /opt/share
[root@compute-0 /]# cd /opt/
[root@compute-0 opt]# pwd
/opt
[root@compute-0 opt]# ll
total 4
drwxr-xr-x 2 root root 4096 Apr 19 01:40 share
[root@compute-0 opt]#

           3> 对/etc/exports进行配置,来共享我们的目录

[root@compute-0 opt]# vi /etc/exports 
[root@compute-0 opt]# 
[root@compute-0 opt]# 
[root@compute-0 opt]# cat /etc/exports 
/opt/share   *(rw,sync,no_root_squash)
[root@compute-0 opt]# 

              这里我们要说一下,我们可以针对局域网内的所有用户共享,也可以单独针局域网内的一台主机共享,如果我们要设置单独针对222.31.64.200这个用户共享,/etc/exports中就改写为:  /opt/share     222.31.64.200(rw,sync,no_root_squash) ,括号里面的东西代表的是客户端对共享的目录拥有什么权限。在这里rw代表读写权限;sync代表不使用缓存,直接同步;no_root_squash代表对root用户不映射为nfsnobody用户,他对共享的目录还是root的权限。(#注:我认为NFS的安装与配置都很简单,实际应用中难的是对权限的控制,所以如何针对具体应用设置合适的权限,还需要我们慢慢总结经验!)

所有的NFS中的权限列表如下:

                                                   

               4>  重新启动NFS服务,并查看本机共享的文件目录

[root@compute-0 opt]# service nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Stopping RPC idmapd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
[root@compute-0 opt]# showmount -e localhost
Export list for localhost:
/opt/share *
[root@compute-0 opt]#

               这里还有一种方式不需要重新启动NFS服务,当以后我们修改了/etc/exports文件之后可以重新停止在重新共享一下

[root@compute-0 opt]# exportfs -au   # 停止
[root@compute-0 opt]# showmount -e localhost
Export list for localhost:
[root@compute-0 opt]# exportfs -rv   # 重新共享
exporting *:/opt/share
[root@compute-0 opt]# showmount -e localhost
Export list for localhost:
/opt/share *
[root@compute-0 opt]# 

       2. 客户端操作

           1> 启动NFS服务

                 service nfs restart

           2> 查看可以挂载的远程主机的目录

[root@localhost ~]# showmount -e 222.31.64.100
Export list for 222.31.64.100:
/opt/share *
[root@localhost ~]# 

           3> 创建本地挂载目录

[root@localhost houqd]# mkdir -p /home/houqd/share
[root@localhost houqd]# pwd
/home/houqd
[root@localhost houqd]# ll
total 4
drwxr-xr-x. 2 root root 4096 Apr 19 09:05 share
[root@localhost houqd]#

          4> 将远程主机共享的目录挂载到本地

[root@localhost houqd]# showmount -e 222.31.64.100
Export list for 222.31.64.100:
/opt/share *
[root@localhost houqd]# mount -t nfs 222.31.64.100:/opt/share  /home/houqd/share/
[root@localhost houqd]# mount 
/dev/sda1 on / type ext4 (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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda2 on /export type ext4 (rw)
/dev/sda3 on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
222.31.64.100:/opt/share on /home/houqd/share type nfs (rw,vers=4,addr=222.31.64.100,clientaddr=222.31.64.101) # 已成功挂载
[root@localhost houqd]#

          5> 测试

               在远程主机的共享目录下创建一个文件,在本地我们就可以看到,从而实现了共享。

         6> 设置为开机自动挂载远程共享目录

[root@localhost ~]# vi /etc/fstab 
[root@localhost ~]# 
[root@localhost ~]# tail -n 1 /etc/fstab 
222.31.64.100:/opt/share     /home/houqd/share   nfs    defaults        0 0  # 添上这一句
[root@localhost ~]# 

  在机房用另一台机子做客户端的解决方法:

           将虚拟机设置为桥接模式,这样该虚拟机就可以作为局域网内单独的一台机子了,它和所在主机在局域网内的地位是同等的。在手动设置它的IP(setup),使他们处于同一个网段,当然是和主机都在一个网段,然后相互ping通就可以了。虚拟机真是个伟大的发明。

That's all .......

原文地址:https://www.cnblogs.com/xinyuyuanm/p/3031665.html