NFS,Network File Syttem,网络文件系统。它允许网络上运行不同操作系统的主机通过网络连接到运行NFS服务的主机上,以实现数据共享。NFS的配置非常简单,经过简单的设置既能快速使用NFS。
使用NFS,首先在服务端运行NFS服务,并设置共享指定的目录,客户端即可将该目录挂载到本地,以使用这些共享的目录。
1、NFS服务端配置
要运行NFS服务端需要以下软件包的支持:
rpcbind nfs-utils
请确保运行NFS服务端的主机已经安装了以上软件包。如果以上软件包尚未安装,可以使用YUM进行安装。
NFS服务端需要启动以下两个服务:
rpcbind nfs
NFS服务端的配置文件为:
/etc/exports
该文件默认为空。该文件的格式非常简单:
共享路径 客户端地址(选项)
- 共享路径:提供给客户端访问的目录
- 客户端地址:允许访问服务器共享资源的主机,可以是IP地址、主机名、域名,支持通配符
- 选项:可能为以下值, ro – read only,客户端对共享资源仅有只读的权限;rw – read write,客户端对共享资源拥有读写的权限;no_root_squash - 信任客户端root用户,如果客户端登录的用户为root,则客户端对共享资源拥有最高权限;root_squash - 默认值,不信任客户端root用户,如果客户端登录的用户为root,则将被映射成为nfsnobody,对于共享资源仅有只读的权限;all_squash - 不管客户端登录的是什么用户,都将被映射为nfsnobody;no_all_squash - 默认值,只有当客户端登录的用户UID和GID与共享资源的UID和GID一致时,该用户才对共享资源拥有读写权限;sync - 默认值,共享数据同步写入磁盘;async - 数据暂时保存在内存,不写入磁盘
在完成/etc/exports的配置之后,使用以下命令使配置立即生效:
exportfs [选项]
常用选项:
- -r:重新挂载共享目录
- -v:在屏幕上输出详细信息
2、连接NFS服务器
2.1、Linux主机连接NFS服务器
在需要连接到NFS服务器的主机上也必须安装以下软件包:
rpcbind nfs-utils
同时确保以下两个服务已经运行:
rpcbind nfs
使用mount命令即可连接到NFS服务器上指定的共享目录:
mount -t nfs NFS服务器:共享目录 本地目录
使用以下命令可以查看NFS服务器上的共享目录:
showmount -e NFS服务器
2.2、Windows连接NFS服务器
NFS支持不同的操作系统,所以Windows也可以连接到NFS服务器以使用共享的资源。这里以Windows 10为例介绍如何在Windows下连接NFS服务器。
安装Windows下的NFS支持软件:
打开控制面板,进入程序和功能,然后点击启用或关闭Windows功能选项,勾选以下内容
确定后等待功能安装完毕,然后进入命令提示符,使用以下命令连接NFS服务器:
mount \\NFS服务器\共享目录 盘符
3、一个例子
有主机A、B、C三台主机,在主机A上运行NFS服务,主机B和C做为客户端连接到主机A上使用同一个共享目录。
三台主机的状况如下:
- 主机A:IP地址为192.168.0.106,系统为CentOS 6.10
- 主机B:系统为CentOS 7.5.1804
- 主机C:系统为Windows 10
3.1、NFS服务端设置
使用YUM查看是否已经安装NFS需要的软件包:
[root@localhost ~]# yum list rpcbind nfs-utils 已加载插件:fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.cn99.com * extras: mirrors.cn99.com * updates: mirrors.163.com 已安装的软件包 nfs-utils.x86_64 1:1.2.3-78.el6_10.1 @updates rpcbind.x86_64 0.2.0-16.el6 @anaconda-CentOS-201806291108.x86_64/6.10
查看rpcbing和nfs服务是否已经启动:
[root@localhost ~]# service rpcbind status rpcbind (pid 1684) 正在运行... [root@localhost ~]# service nfs status rpc.svcgssd 已停 rpc.mountd (pid 2503) 正在运行... nfsd (pid 2519 2518 2517 2516 2515 2514 2513 2512) 正在运行... rpc.rquotad (pid 2498) 正在运行...
服务端设置允许任何主机连接,并设置rw及all_squash,共享目录为/data。在/etc/exports中写入如下内容:
/data *(rw,all_squash)
使配置立即生效:
[root@localhost ~]# exportfs -r