这周我们继续来做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 .......