NFS挂载
1.NFS简介
NFS,英文全称Network File System。网络文件系统,最早由Sun公司开发,它的功能是在不同的机器、不同的操作系统之间实现文件的共享。NFS传输数据时使用的端口是一个随机端口。RPC,远程过程调用。它的功能是指定每个NFS功能对应的端口号,当NFS服务器启动时会随机启用数个端口号,并主动向RPC注册,这样RPC就知道每个端口号对应的功能了,RPC使用111号端口来监听客户机的请求并回应正确的端口号。启动NFS之前要先启动RPC,否则NFS无法向RPC注册,当RPC重新启动后,原来注册的端口数据会丢失,这时,它管理的所有程序都必须重新向RPC注册。
2.NFS工作原理
1)客户机发送RPC请求到远程NFS服务器中。2)NFS服务器利用PORTMAP或者rpcbind服务查询NFS的工作端口。(redhat5为portmap,6为rpcbind)
3)客户机联系要装载的分区,同时服务器会验证客户机是否有权加载。
4)客户机更新MTAB文件,表示加载成功。
3.REHL5和RHEL6需要的软件同异
3.1 相同点
配置一个NFS系统目的使局域网内的所有用户均可访问该目录,可将该目录配置成yum源,供内网机器安装软件。首先安装NFS套件,命令如下:
yum install nfs-utils.x86_64(64位系统)
yum install nfs-utils(32位系统)
3.2 不同点
REHL5+对应portmap软件,而在REHL6+中对应同功能的rpcbind软件。安装命令如下:yum install rpcbind(redhat6)
yum install portmap(redhat5)
如果使用yum不能够安装,可采用下载相应的压缩包单独进行安装。
4.REHL6+的NFS具体部署方法
前提:本人的Linux操作系统平台是RedHat 6.2版本,内核是2.6.32,以下全在该平台操作。下面是环境说明:192.168.3.141 对应de21, 192.168.3.142对应de22;目的实现将de21机器中/root/RAMCloud的目录挂载到de22的/root/RAMCloud 目录上。假设将de21作为服务端,de22作为客户端。
4.1 配置NFS服务端de21
vi /etc/exports
/root/RAMCloud 192.168.3.0/24(rw,sync,no_root_squash)
4.2 重启NFS服务并将NFS服务加入开机启动
(1)重启NFS服务命令如下:
/etc/init.d/rpcbind start
/etc/init.d/nfs start
(2)将nfs加入开机启动项
chkconfig nfs on
4.3 客户端de22配置
(1)在客户端root主目录下查看是否能访问nfs服务[root@de22 ~]# showmount -e 192.168.3.141
Export list for 192.168.3.141:
/root/RAMCloud 192.168.3.0/24
上面结果表明de22可以访问de21中的/root/RAMCloud目录,如果不可访问,需要进一步查看de21服务端的NFS服务是否启用,防火墙是否允许通过。局域网NFS挂载建议关闭防火墙。
(2)在de21上新建/root/RAMCloud目录
mkdir /root/RAMCloud
上面/root/RAMCloud目录读者需要自定义想要共享的目录。如/home/xiaorz/helloworld等;
(3)通过mount命令将服务端de21的目录挂载到客户端de22对应的目录中
客户端mount命令具体如下
mount 192.168.3.141:/root/RAMCloud/ /root/RAMCloud/
正常情况到这一步就已经成功了。当然也会由于如下原因会导致NFS目录挂在不成功的情况:
a)服务端防火墙没有关闭
在服务段de21关闭防火墙命令如下:
service iptables stop
b)需要挂载的目录操作权限不够
解决办法是赋予相应的权限。常见错误是假如要挂载的目录/home/xiaorz/helloworld是用root账号创建的,而普通用户xiaorz则不能够进行操作。
(4)客户端卸载挂载目录命令:
umount /root/RAMCloud
上面的目录读者只需要将/root/RAMCloud替换成自己想要的挂载目录即可。
说明:由于本人水平有限,可能并没有考虑周全。如果读者在NFS挂载碰到其它具体的问题,欢迎与我讨论,我会尽力给予解答。