美文网首页
CentOS 6.X 上安装配置 NFS 目录共享

CentOS 6.X 上安装配置 NFS 目录共享

作者: 雨林_a1d6 | 来源:发表于2018-08-07 01:51 被阅读35次

    NFS 简介


    NFS(Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。在 NFS 的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一样。

    目前 NFS 主要有三个版本(NFSv2,NFSv3,NFSv4)。 NFSv2 和 NFSv3 除了 3 版本支持更多的新特性以外,最主要的区别应该就是 NFSv2 是使用 UDP 协议进行传输的,所以 NFSv2 的连接在复杂网络环境下可能没有那么可靠,而 NFSv3 同时支持 UDP 和 TCP 协议。而 NFSv4 则是在 NFSv3 的基础上提升了性能,强制了安全策略,引入有状态的协议等...

    当 Client 端要挂载 NFS 共享卷的时候,会发送 RPC 请求给服务端,而 NFS 服务端会在用户验证后将一个随机的 Cookie 传送至客户端,以便客户端使用这个 Cookie 来认证那些要访问的共享卷。
    NFS 的验证支持内置的 IP/主机权限分配,同时也被 tcp wrappers 所限制。

    NFS 架构图

    上面这段话以及架构图都是我从网上找的,主要的作用大概就是撑个场子这样,你懂的。如果你只想快速地搭建一个 CentOS 上的 NFS 环境,跳过这段 ...

    一、环境


    1 软件环境

    Windows 10 x64
    
    VMWare 12 x64
    
    CentOS 6.7 x64 * 3
    
    nfs-utils
    
    nfs-utils-lib
    
    rpcblind
    

    2 服务器规划

    IP OS Function Modlue Shared Folder Mount Folder
    192.168.174.200 CentOS 6.7 x64 NFS Server /data/shared
    192.168.174.201 CentOS 6.7 x64 NFS Client /data/shared
    192.168.174.202 CentOS 6.7 x64 NFS Client /data/shared

    注:

    • NFS Client 的数量可以根据实际情况自行调增更多。

    二、NFS Server 环境准备


    1 创建共享目录

    登录连接到规划的 NFS Server 节点,使用 root 用户执行如下命令创建共享目录

    [root@hadoop1 ~]# mkdir -p /data/shared
    

    注:

    • 创建的共享目录的位置根据实际情况而定。比如,如果你的服务器上专门挂载了一块用于存放数据的大容量磁盘,该磁盘挂载到了 /data1 目录,那么你可以将共享目录创建在 /data1 下面(/data1/shared)

    • 这个共享目录是实际存放数据文件的位置,其他的 NFS Client 访问该位置获取共享的文件信息。

    2 给共享目录读写权限

    root 用户执行如下命令

    [root@hadoop1 data]# cd /data
    
    [root@hadoop1 data]# pwd
    
    /data
    
    [root@hadoop1 data]# chmod -R 777 shared
    
    [root@hadoop1 data]# ll -d shared
    
    drwxrwxrwx. 2 root root 4096 Aug  6 06:18 shared
    

    三、安装与配置 NFS Server


    可以根据服务器的配置以及具体的业务需求选取一台服务器作为 NFS Server,NFS Server 是用作文件物理存储的节点。因此,要考虑的是 NFS Server 服务器的磁盘资源是否满足需求。此处我选取 192.168.174.200 作为 NFS Server。SSH 连接到 192.168.174.200 服务器过程省略...

    1 检查服务器是否已经安装有 nfs-utils

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

    如果已经安装了 nfs-utils 及 nfs-utils-lib 包,可以直接跳过第 2 步

    2 安装 nfs-utils

    root 用户执行如下命令安装 nfs-utils

    [root@hadoop1 ~]# yum install -y nfs-utils
    

    注:

    • 执行如上命令会安装 nfs-utils.x86_64 1:1.2.3-78.el6 包以及其依赖的包(版本可能不同)
    nfs-utils-lib.x86_64 0:1.1.5-13.el6
    
    keyutils.x86_64 0:1.4-5.el6
    
    libgssglue.x86_64 0:0.1-11.el6
    
    libtirpc.x86_64 0:0.2.1-15.el6
    
    rpcbind.x86_64 0:0.2.0-16.el6
    ...
    
    • rpcbind 是用于端口映射的包,在 CentOS 5 上对应的是 portmap。

    3 配置 NFS Server

    NFS 的配置文件位于 /etc/exports,在 CentOS 6.7 中,/etc/exports 文件已经存在,内容为空。因此,我这儿使用 root 用户直接编辑此文件配置即可(如果没有此文件,可以直接创建此文件即可 touch /etc/exports 或者 vim /etc/exports)。

    [root@hadoop1 ~]# vim /etc/exports
    

    在文件中添加如下内容:

    /data/shared 192.168.174.201(rw,sync,all_squash)
    /data/shared192.168.174.202(rw,sync,all_squash)
    

    注:

    • /data/shared192.168.174.201(rw,sync,all_squash) 表示 NFS Server 上的共享目录 /data/shared 允许来自 192.168.174.201 服务器上的所有用户(all_squash)的读写(rw)操作权限。且数据文件采用同步(sync)方式进行共享

    • 上面的文件也可以配置成一行 /data/shared192.168.174.*(rw,sync,all_squash) ,表示允许 192.168.174 这个网段的所有机器的访问

    • 配置文件中的内容格式如下,'()' 中的选项列表之间没有空格

    <输出目录> [客户端1 选项(访问权限,同步方式,用户映射)] [客户端2 选项(访问权限,同步方式,用户映射)]

    4 NFS Server 防火墙配置

    root 用户执行如下命令编辑 iptables 文件

    [root@hadoop1 shared]# vim /etc/sysconfig/iptables
    

    添加如下内容,并保存退出

    ### rpcbind
    -A INPUT -p udp -m multiport --dports 111,875,892,2049,10053,32769 -m state --state NEW,ESTABLISHED -j ACCEPT
    -A INPUT -p tcp -m multiport --dports 111,875,892,2049,10053,32803 -m state --state NEW,ESTABLISHED -j ACCEPT
    -A OUTPUT  -p udp -m multiport --sports 111,875,892,2049,10053,32769 -m state --state ESTABLISHED -j ACCEPT
    -A OUTPUT  -p tcp -m multiport --sports 111,875,892,2049,10053,32803 -m state --state ESTABLISHED -j ACCEPT
    

    如下示例:

    防火墙配置

    注:

    • 如果 NFS Server 没有开启防火墙服务,则可以跳过此步骤。

    • 由于 rpcbind 即映射了 tcp 端口,也映射了 udp 端口,因此需要配置 tcp/udp

    • 上面配置的这些端口都是 nfs server 服务默认监听的端口,默认的配置在 /etc/sysconfig/nfs 文件中可以查看到

    5 启动 nfs

    在启动 nfs 之前必须先启动 rpcbind,root 用户执行如下命令启动 rpcbind

    [root@hadoop1 data]# service rpcbind start
    
    Starting rpcbind:                                          [  OK  ]
    

    root 用户执行如下命令启动 nfs

    [root@hadoop1 data]# service nfs start
    
    Starting NFS services:                                     [  OK  ]
    
    Starting NFS quotas:                                       [  OK  ]
    
    Starting NFS mountd:                                       [  OK  ]
    
    Starting NFS daemon:                                       [  OK  ]
    
    Starting RPC idmapd:                                       [  OK  ]
    

    四、配置 NFS Client


    使用 SSH 分别连接到 NFS Client 对应的两个节点 192.168.174.201/202

    1 安装 nfs 包

    使用 root 用户分别在两台客户端服务器上执行如下命令安装 nfs

    [root@hadoop2 ~]# yum install -y nfs-utils
    

    注:

    • NFS 客户端也要安装 nfs-utils 包,不然挂载不了

    2 创建本地挂载目录

    使用 root 用户分别在两台客户端服务器上执行如下命令创建两个本地目录,用于将 NFS Server 上的共享目录映射到本地目录。

    [root@hadoop3 ~]# mkdir -p /data/shared
    
    [root@hadoop3 ~]# cd /data
    
    [root@hadoop3 data]# pwd
    
    /data
    
    [root@hadoop3 data]# chmod -R 777 shared
    
    [root@hadoop3 data]# ll -d shared/
    
    drwxrwxrwx. 2 root root 4096 Aug  6 06:43 shared/
    

    注:

    • 上面命令我将 NFS 客户端的本地目录与 NFS Server 端的共享目录创建在相同的路径和相同的名称,但其实此处可以与 NFS Server 端不两只,此处我只是为了便于我好记忆。

    3 挂载 NFS Server 共享目录到本地

    [root@hadoop2 data] mount -t nfs 192.168.174.200:/data/shared /data/shared
    

    查看挂载后的服务器文件系统

    [root@hadoop2 ~]# df -h
    
    Filesystem            Size  Used Avail Use% Mounted on
    
    /dev/sda2              97G  4.3G   87G   5% /
    
    tmpfs                 1.9G   72K  1.9G   1% /dev/shm
    
    /dev/sda1             283M   41M  227M  16% /boot
    
    192.168.174.200:/data/shared
    
                           97G   16G   76G  18% /data/shared
    

    可以看到多出了一个将 192.168.174.200:/data/shared 挂载到本地的 /data/shared 目录的记录

    五、验证


    1 在 NFS Client 节点创建文件

    在 192.168.174.202 服务器上执行如下命令

    [root@hadoop3 data]# cd shared
    
    [root@hadoop3 shared]# vim test.text
    

    输入如下内容,保存退出:

    This is a test text!
    

    查看 192.168.174.202 服务器上的 /data/shared 目录,有 test.text 文件

    [root@hadoop3 shared]# pwd
    
    /data/shared
    
    [root@hadoop3 shared]# ll
    
    total 4
    
    -rw-r--r--. 1 nfsnobody nfsnobody 21 Aug  6 09:38 test.text
    
    [root@hadoop3 shared]# cat test.text
    
    This is a test text!
    

    2 查看另外两个节点的目录

    登录 192.168.174.200/201 服务器,查看 /data/shared 目录,可以看到两个节点上都能访问刚刚在 202 上创建的 test.text 文件,如下所示:

    200:

    [root@hadoop1 shared]# pwd
    
    /data/shared
    
    [root@hadoop1 shared]# ll
    
    total 4
    
    -rw-r--r--. 1 nfsnobody nfsnobody 21 Aug  6 09:38 test.text
    

    201:

    [root@hadoop2 shared]# pwd
    
    /data/shared
    
    [root@hadoop2 shared]# ll
    
    total 4
    
    -rw-r--r--. 1 nfsnobody nfsnobody 21 Aug  6 09:38 test.text
    

    3 在 NFS Client 上修改文件内容

    在 192.168.174.201 上修改文件,并在文件下方添加一行 Hello World 并保存退出

    [root@hadoop2 shared]# vim test.text
    
    This is a test text!
    
    Hello World
    

    4 查看另外两个节点的文件内容

    查看 192.168.174.200/202 上的 /data/shared/test.text 文件内容:

    200:

    [root@hadoop1 shared]# pwd
    
    /data/shared
    
    [root@hadoop1 shared]# cat test.text
    
    This is a test text!
    
    Hello World
    

    202:

    [root@hadoop3 shared]# pwd
    
    /data/shared
    
    [root@hadoop3 shared]# cat test.text
    
    This is a test text!
    
    Hello World
    

    可以看到更改后的内容也同时在另外两个节点上生效了。

    至此,我们在 CentOS 6.X 上安装配置 NFS 共享文件目录就完成了。

    附录:NFS 相关资料


    下面是收集的一些 NFS 相关的信息,如有兴趣可自行查阅。

    sourceforge 上的 Linux NFS 解释:
    http://nfs.sourceforge.net/

    Wikipedia 上关于 NFS 的解释:
    https://en.wikipedia.org/wiki/Network_File_System

    简体中文版本 NFS 解释:
    https://wiki.archlinux.org/index.php/NFS_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87

    Linux.die nfs:
    https://linux.die.net/man/5/nfs

    Freebsd nfs:
    https://www.freebsd.org/doc/handbook/network-nfs.html

    相关文章

      网友评论

          本文标题:CentOS 6.X 上安装配置 NFS 目录共享

          本文链接:https://www.haomeiwen.com/subject/xnwnvftx.html