青蛙学Linux—NFS

NFS,Network File Syttem,网络文件系统。它允许网络上运行不同操作系统的主机通过网络连接到运行NFS服务的主机上,以实现数据共享。NFS的配置非常简单,经过简单的设置既能快速使用NFS。

使用NFS,首先在服务端运行NFS服务,并设置共享指定的目录,客户端即可将该目录挂载到本地,以使用这些共享的目录。

1、NFS服务端配置

要运行NFS服务端依赖以下软件包:

rpcbind
nfs-utils

请确保运行NFS服务端的主机已经安装了以上软件包。如果以上软件包尚未安装,可以使用YUM进行安装。

NFS服务端需要启动以下两个服务:

rpcbind
nfs
nfslock    # 分布式锁,运行在服务端,由客户端进行请求加锁,一个可选的服务

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

使用mount命令即可连接到NFS服务器上指定的共享目录:

mount -t nfs NFS服务器:共享目录 本地目录

使用以下命令可以查看NFS服务器上的共享目录:

showmount -e NFS服务器

2.2、Windows连接NFS服务器

NFS支持不同的操作系统,所以Windows也可以连接到NFS服务器以使用共享的资源。这里以Windows 10为例介绍如何在Windows下连接NFS服务器。

安装Windows下的NFS支持软件:

打开控制面板,进入程序和功能,然后点击启用或关闭Windows功能选项,勾选以下内容

1

确定后等待功能安装完毕,然后进入命令提示符,使用以下命令连接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 /]# rpm -qa|grep rpcbind
rpcbind-0.2.0-16.el6.x86_64
[root@localhost /]# rpm -qa|grep nfs-utils
nfs-utils-lib-1.1.5-13.el6.x86_64
nfs-utils-1.2.3-78.el6_10.1.x86_64

查看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)

由于使用的是all_squash选项,客户端登录到NFS服务器的用户将被自动映射为nfsnobody,所以必须将/data目录的属主和属组设置为nfsnobody,这样客户端才可以读写共享目录:

[root@localhost /]# chown -R nfsnobody:nfsnobody data

使配置立即生效:

[root@localhost ~]# exportfs -r

3.2、主机B连接NFS服务器

主机B的操作系统为CentOS 7.5.1804,所以这里先检查下NFS依赖的软件包是否安装:

[root@localhost ~]# rpm -qa|grep rpcbind
[root@localhost ~]# rpm -qa|grep nfs-utils

无任何返回信息,表明依赖的软件包尚未安装,使用YUM安装这两个依赖包:

[root@localhost ~]# yum install rpcbind nfs-utils

安装好依赖包后使用mount命令挂载NFS服务器上的共享目录,挂载到主机B的/nfs目录下:

[root@localhost ~]# mount -t nfs 192.168.0.106:/data /nfs

使用df命令查看是否挂载成功:

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   22G  2.1G   20G   10% /
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G  8.8M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M   14% /boot
tmpfs                    783M     0  783M    0% /run/user/0
192.168.0.106:/data       22G  2.9G   18G   14% /nfs

通过返回的信息可以看到共享目录已经挂载到了/nfs。

3.3、主机C连接NFS服务器

首先查看控制面板-程序和功能-启用和关闭Windows功能下的NFS服务是否已经安装,安装完成后即可使用以下命令连接NFS服务器,并为共享目录分配 x: 盘符:

Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。

C:UsersFangYu>mount \192.168.0.106data x:
x: 现已成功连接到 \192.168.0.106data

命令已成功完成。

此时在资源管理器里就可以看到x盘了:

2

原文地址:https://www.cnblogs.com/yu2006070-01/p/10149260.html