NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS 的基本原则是“容许不同的客户端及服务端通过一组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是负责负责信息的传输。
Linux NFS服务器的安装与配置 - Merlin_Tang - 博客园 (cnblogs.com)
1、开启portmap和nfs服务
service portmap start
(记得有的系统不存在这服务,这个服务名字改成其他的了
Mostly this could be auto-enabled on boot by using chkconfig command. While working on similar issue today, I found out that this service is not present in RHEL 6
service portmap status portmap: unrecognized service
The portmap service was used to map RPC program numbers to IP address port number combinations in earlier versions of Red Hat Enterprise Linux.
As per RHEL6 docs, portmap service has been replaced by rpcbind in Red Hat Enterprise Linux 6 to enable IPv6 support.
So following command will work
service rpcbind status rpcbind (pid 1587) is running...
)
service nfs start
2、将要共享的目录写到exports文件中 假设共享的目录为 /sharedisk/
vim /etc/exports
在exports文件中添加
/sharedisk 192.168.0.0/24(rw,no_root_squash,async)
#表示将/sharedisk这个目录共享给192.168.0.*这些客户机,括号中的参数设置意义为:
ro 该主机对该共享目录有只读权限
rw 该主机对该共享目录有读写权限
root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash 客户机用root访问该共享文件夹时,不映射root用户
all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
anonuid 将客户机上的用户映射成指定的本地用户ID的用户
anongid 将客户机上的用户映射成属于指定的本地用户组ID
sync 资料同步写入到内存与硬盘中
async 资料会先暂存于内存中,而非直接写入硬盘
insecure 允许从这台机器过来的非授权访问
3、重启nfs 或者使用exportfs命令使设置生效
重启nfs:
service nfs restart
用exportfs
exportfs -rv
#exportfs用法
-a :全部mount或者unmount /etc/exports中的内容
-r :重新mount /etc/exports中分享出来的目录
-u :umount 目录
-v :将详细的信息输出到屏幕上
这样nfs的服务器端就设置好了。
4、在客户端挂载该目录:
在本地创建挂载的目录
mkdir /sharedisk
mount -t nfs 192.168.0.10:/sharedisk /sharedisk
#将服务器192.168.0.10上的/sharedisk/ 路径挂载到本地
此时,如果服务器端的防火墙有开着的话,将会提示错误,如:
mount: mount to NFS server '192.168.0.10' failed: System Error: No route to host.
我在挂载的时候就被卡在这里了。
只需关闭防火墙即可。
service iptables stop
科学网—NFS设置以及防火墙配置,解决No route to host.或者mount.nfs ti - 杜波的博文 (sciencenet.cn)
解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory._一点不好吃的博客-CSDN博客
网友评论