• 青蛙学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

  • 相关阅读:
    第一册:lesson forty five。
    第一册:lesson forty three。
    马化腾2015港大演讲。
    Swing实现文件选择(目录选择)附导出
    SVN强制注释
    Websphere内存溢出的日志
    sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXX". 的解决方法
    UML图例
    jSP的3种方式实现radio ,checkBox,select的默认选择值。
    通过js子页面回写父页面,改变父页面控件的值
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/10149260.html
Copyright © 2020-2023  润新知