NFS
2017-12-13 13:20
113 查看
一:NFS服务简介
nfs是network file system的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由sun公司开发,于1984年向外公布。功能是通过网络让不同的机器,不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是实现磁盘共享的一种方法。
NFC的基本原则是“容许不同的客户端即服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件即操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议,RPC,远程过程调用(Remote Procedure Call)是能使客户端执行其他系统中程序的一种机制,NFS本身没有提供信息传递的协议和功能,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其他的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
二:NFS的安装和配置
1.
![](https://img-blog.csdn.net/20171213115014975?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
2,服务端火墙策略配置
![](https://img-blog.csdn.net/20171213115058772?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171213115129242?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注意:rpc-bind用于管理接口,实现数据的可传输
![](https://img-blog.csdn.net/20171213115227737?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注意:mountd的加入是为了允许共享目录在客户端被允许挂载
查看火墙配置情况:
![](https://img-blog.csdn.net/20171213115601006?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3.共享目录的建立及测试
![](https://img-blog.csdn.net/20171213115417554?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171213115435981?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注:/westos/nfs 为共享目录;* 表示所有人都可以;sync表示为实时同步更新到内存与硬盘中。
客户端查看共享目录:
![](https://img-blog.csdn.net/20171213115753096?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
4.客户端实施挂载:
![](https://img-blog.csdn.net/20171213115830726?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
三:自动挂载/卸载
1. yum install autofs.x86_64 -y
Autofs与Mount/Umount的不同之处在于,它是一种看守程序。如果它检测到用户正试图访问一个尚未挂接的文件系统,它就会自动检测该文件系统,如果存在,那么Autofs会自动将其挂接。另一方面,如果它检测到某个已挂接的文件系统在一段时间内没有被使用,那么Autofs会自动将其卸载。因此一旦运行了Autofs后,用户就不再需要手动完成文件系统的挂接和卸载。
2. 只有打开auto服务,才可以进入/net/目录
![](https://img-blog.csdn.net/20171213120129862?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171213120202659?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3.进入共享目录,实现自动挂载
![](https://img-blog.csdn.net/20171213120253618?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
4.客户端指定挂载点(使用autofs,默认挂载目录为/net/服务端ip/共享目录)
(1)vim /etc/auto.master
![](https://img-blog.csdn.net/20171213120719965?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注:/xaut自定义挂载点的上层目录
(2)vim /etc/auto.nfs
![](https://img-blog.csdn.net/20171213120922624?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注意:第一个nfs表示挂载点
(3)进入自定义挂载目录,测试是否挂载:
![](https://img-blog.csdn.net/20171213121056178?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
挂载成功!
(4)卸载
当切出共享目录后,系统会自动卸载,但是需要一段时间。
(1)更改其卸载时间
![](https://img-blog.csdn.net/20171213121307092?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171213121327134?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(2)测试
![](https://img-blog.csdn.net/20171213121359190?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171213121417777?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
四:客户端对于共享目录的权限更改
(1)默认挂载目录的权限更改
![](https://img-blog.csdn.net/20171213121623797?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
更改服务端的/etc/exportfs文件
![](https://img-blog.csdn.net/20171213121703508?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171213121721555?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
测试:
![](https://img-blog.csdn.net/20171213121752513?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(2)自定义挂载目录的权限更改
vim /etc/auto.nfs
![](https://img-blog.csdn.net/20171213122116676?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
挂载方式可读写
测试:
![](https://img-blog.csdn.net/20171213122711291?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(3)不更新共享文件的更改时间
默认情况下,共享文件的更改时间会随客户端的访问而改变
![](https://img-blog.csdn.net/20171213130015175?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
当N个客户端频繁访问时,为缓解服务器的压力,可以选择不更新文件更改的时间
vim /etc/auto.nfs
![](https://img-blog.csdn.net/20171213123020370?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
noatime表示不更新文件被更改的时间
测试:
![](https://img-blog.csdn.net/20171213125121182?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171213125147590?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
五:指定用户id身份对共享目录下文件操作
默认情况下,客户端新建的文件身份默认是nfsnobody
![](https://img-blog.csdn.net/20171213130458537?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
服务端:vim /etc/exportfs
![](https://img-blog.csdn.net/20171213130542512?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
客户端测试:
![](https://img-blog.csdn.net/20171213130611405?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
如果客户端有id为1001的用户,则:
![](https://img-blog.csdn.net/20171213130753806?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
服务端:
![](https://img-blog.csdn.net/20171213130826777?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
可见是根据id确定所有人,所有组,因为服务端和客户端的id号为1001的用户名称不同,所以显示不同。
六:恢复客户端在共享目录下新建文件的root身份
不指定用户id和组id,服务端在共享目录中建立文件,默认以root身份:
![](https://img-blog.csdn.net/20171213131304406?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
客户端默认以nfsnobody的身份:
![](https://img-blog.csdn.net/20171213131347596?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
现要恢复客户端在共享目录下新建文件的root身份
(1)服务端:vim /etc/exportfs
![](https://img-blog.csdn.net/20171213131039346?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
exportfs -rv
(2)客户端测试:
![](https://img-blog.csdn.net/20171213131537196?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
七:其他
只允许主机78对共享目录可读写,并且其root执行root身份
服务端:vim /etc/exportfs
![](https://img-blog.csdn.net/20171213131702245?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171213131721196?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
78主机测试:
![](https://img-blog.csdn.net/20171213131752828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
主机1-10对于共享目录只读,并不可具备写权限,同时只允许主机78对共享目录可读写,并且其root执行root身份
![](https://img-blog.csdn.net/20171213131831376?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171213131848476?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDIxMDg1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
测试请读者自行尝试。
nfs是network file system的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由sun公司开发,于1984年向外公布。功能是通过网络让不同的机器,不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是实现磁盘共享的一种方法。
NFC的基本原则是“容许不同的客户端即服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件即操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议,RPC,远程过程调用(Remote Procedure Call)是能使客户端执行其他系统中程序的一种机制,NFS本身没有提供信息传递的协议和功能,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其他的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
二:NFS的安装和配置
1.
2,服务端火墙策略配置
注意:rpc-bind用于管理接口,实现数据的可传输
注意:mountd的加入是为了允许共享目录在客户端被允许挂载
查看火墙配置情况:
3.共享目录的建立及测试
注:/westos/nfs 为共享目录;* 表示所有人都可以;sync表示为实时同步更新到内存与硬盘中。
客户端查看共享目录:
4.客户端实施挂载:
三:自动挂载/卸载
1. yum install autofs.x86_64 -y
Autofs与Mount/Umount的不同之处在于,它是一种看守程序。如果它检测到用户正试图访问一个尚未挂接的文件系统,它就会自动检测该文件系统,如果存在,那么Autofs会自动将其挂接。另一方面,如果它检测到某个已挂接的文件系统在一段时间内没有被使用,那么Autofs会自动将其卸载。因此一旦运行了Autofs后,用户就不再需要手动完成文件系统的挂接和卸载。
2. 只有打开auto服务,才可以进入/net/目录
3.进入共享目录,实现自动挂载
4.客户端指定挂载点(使用autofs,默认挂载目录为/net/服务端ip/共享目录)
(1)vim /etc/auto.master
注:/xaut自定义挂载点的上层目录
(2)vim /etc/auto.nfs
注意:第一个nfs表示挂载点
(3)进入自定义挂载目录,测试是否挂载:
挂载成功!
(4)卸载
当切出共享目录后,系统会自动卸载,但是需要一段时间。
(1)更改其卸载时间
(2)测试
四:客户端对于共享目录的权限更改
(1)默认挂载目录的权限更改
更改服务端的/etc/exportfs文件
测试:
(2)自定义挂载目录的权限更改
vim /etc/auto.nfs
挂载方式可读写
测试:
(3)不更新共享文件的更改时间
默认情况下,共享文件的更改时间会随客户端的访问而改变
当N个客户端频繁访问时,为缓解服务器的压力,可以选择不更新文件更改的时间
vim /etc/auto.nfs
noatime表示不更新文件被更改的时间
测试:
五:指定用户id身份对共享目录下文件操作
默认情况下,客户端新建的文件身份默认是nfsnobody
服务端:vim /etc/exportfs
客户端测试:
如果客户端有id为1001的用户,则:
服务端:
可见是根据id确定所有人,所有组,因为服务端和客户端的id号为1001的用户名称不同,所以显示不同。
六:恢复客户端在共享目录下新建文件的root身份
不指定用户id和组id,服务端在共享目录中建立文件,默认以root身份:
客户端默认以nfsnobody的身份:
现要恢复客户端在共享目录下新建文件的root身份
(1)服务端:vim /etc/exportfs
exportfs -rv
(2)客户端测试:
七:其他
只允许主机78对共享目录可读写,并且其root执行root身份
服务端:vim /etc/exportfs
78主机测试:
主机1-10对于共享目录只读,并不可具备写权限,同时只允许主机78对共享目录可读写,并且其root执行root身份
测试请读者自行尝试。
相关文章推荐
- WINDOWS 2003 R2 NFS共享问题
- 添加nas盘基于nfs
- 解决挂NFS超时问题
- Ubuntu搭建NFS文件服务器
- NFS服务器配置
- centos 6.5 上安装nfs服务器,并测试
- centos/fedora nfs的配置
- ti processor sdk linux am335x evm /bin/setup-targetfs-nfs.sh hacking
- nfs服务器安装与客户端安装
- linux下通过NFS将远程磁盘mount到本地
- 如何使用编译生成的release搭建nfs boot环境
- Ansible+Corosync+Pacemaker+nfs实现http高可用
- fedora下NFS的配置与iozone测试
- ubuntu NFS sfu配置指南
- nfs:server is not responding,still trying 原因与解决方案
- 分布式文件系统:NFS(3)
- ubuntu配置nfs步骤
- DRBD+Heartbeat+NFS高可用实战 推荐
- Fedora 14安装配置NFS
- 嵌入式linux开发环境搭建(二)——NFS服务器的搭建