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)