NFS文件共享服务
实验背景:
公司的某个软件项目处于内部测试期间,有2台应用服务器短期内需要共享使用不少于500GB的磁盘空间,要求当软件在执行读写操作时能像访问本机的目录一样,相关条件和需求如下所述。
1.将服务器192.168.1.2的/ptest目录作为共享,此目录已经挂载一个容量为500GB的逻辑卷。
2./ptest目录仅允许指定的2台服务器(192.168.1.7、192.168.1.8)访问。
3.当从192.168.1.8挂载/ptest共享时,保留root的身份及完整权限
4.当从192.168.1.7挂载/ptest共享时,只有读取权限,不可写入,所有用户均视为nfsnobody对待。
实验设计:
使用2台RHEL5虚拟机,其中一台作为NFS共享服务器(192.168.1.2)、另外一台作为测试用的NFS客户机(192.168.1.8或兼做其他IP的测试机)
实验实现:
1.配置NFS网络文件系统,发布/ptest共享。
1)软件包及目录准备(本实验主要练习NFS配置,省略LVM逻辑卷创建及挂载过程)
#rpm -q nfs-utils portmap
# mkdir /ptest //创建共享测试目录
# echo "Welcome to NFS station" > /ptest/nfs.txt //创建测试文件
#ls -ld /ptest
2)修改/etc/exports配置文件,添加/ptest共享设置。
默认情况下并没有exports配置文件,需要手动建立。
由于要共享给2个单独的主机,因此建议直接以IP地址来表示客户机地址;在网络内的主机都可信时,也可以适当简化配置,例如用通配符?,表示为192.168.1.?可匹配192.168.1.1-192.168.1.9,或者以192.168.1.0/24表示整个网段。
保留挂在后的root权限,可以采用no_root_squash指定;而要将所有的客户极端权限映射为nfsnobody,只需启用all_squash即可。配置操作及内容如下所示:
# vim /etc/exports /ptest 192.168.1.7(rw,all_squash) 192.168.1.8(rw,no_root_squash)
# vim /etc/exports
/ptest 192.168.1.7(rw,all_squash) 192.168.1.8(rw,no_root_squash)
3)启用NFS相关服务程序,确认发布的共享资源。
# service portmap restart //确保启动portmap
# chkconfig portmap on //设置portmap自启动
# service nfs restart //确保启动nfs
# chkconfig nfs on //设置nfs自启动
#showmount -e //查看本机当前已发布的共享资源列表
2.使用NFS客户机,查看及访问/ptest共享。
1)#service portmap restart//客户端的rpc也需要启动
#chkconfig portmap on
2)从客户机上查看服务器的NFS共享资源列表。
# showmount -e 192.168.1.2
或者
# rpcinfo -p 192.168.1.2 //rpcinfo 命令也可以检查目标服务器的NFS服务状态
3)从客户机192.168.1.8上挂载/ptest共享,并测试读写权限。
# mkdir /mnt/nfsdir
# mount 192.168.1.2:/ptest /mnt/nfsdir/
# cat /mnt/nfsdir/nfs.txt //可读
# mkdir /mnt/nfsdir/tdir8 //能创建子目录,可写入
# touch /mnt/nfsdir/tfile.txt //能创建测试文件,可写入
#ls /mnt/nfsdir
4)从客户机192.168.1.7上挂载/ptest共享,并测试读写权限
# umount /mnt/nfsdir/ ////卸载NFS共享
# ifconfig eth0:0 192.168.1.7/24 //修改IP地址
#mount 192.168.1.2:/ptest /mnt/nfsdir/ //重新挂载
# cat /mnt/nfsdir/nfs.txt //仍然有读取权限
# mkdir /mnt/nfsdir/tdir7 //建子目录失败,无写入权限
# touch /mnt/nfsdir/tfile2.txt //建文件失败,无写入权限
5)设置开机后自动挂载NFS共享资源。
与挂载普通文件系统类似,同样要修改/etc/fstab配置文件,需要注意的是,文件系统类型应指定为nfs
~# umount /mnt/nfsdir/ //卸载已挂载的/ptest共享
# vim /etc/fstab //添加NFS挂载设置
# mount /mnt/nfsdir/ //根据fstab执行挂载
# mount | tail -1 //检查挂载结果
192.168.1.2:/ptest on /mnt/nfsdir type nfs (rw,addr=192.168.1.2)