基于CentOS 7 64位操作系统搭建NFS服务

1,380 阅读4分钟

一、NFS概念

  • 全称: Network File System. 一个基于网络的文件系统, 可以实现多台电脑共享文件夹的功能

二、搭建步骤

2.1 搭建环境

操作系统ip地址角色名称
CentOS 7 64位192.168.111.133HostNFS Host
CentOS 7 64位192.168.111.134ClientNFS Client1
CentOS 7 64位192.168.111.135ClientNFS Client2

2.2 搭建NFS host

  1. 安装依赖
    yum install rpcbind nfs-utils
    
  2. 分别为rpcbind和nfs服务设置开机启动服务
    systemctl start rpcbind
    systemctl enable rpcbind
    
    systemctl start nfs-server
    systemctl enable nfs-server
    
  3. 创建共享文件夹
    mkdir -p /share
    
  4. 编辑nfs服务器配置文件
    # 1. 编辑文件
    vim /etc/exports
    
    # 2. 新增如下内容
    /share 192.168.111.*(rw,no_root_squash) # rw表示可读可写; no_root_squash的配置可以让任何用户都能访问此文件夹
    
  5. reload配置文件
    exportfs -rv
    
  6. 关闭防火墙
    systemctl stop firewalld.service  # 停止防火墙服务
    systemctl disable firewalld.service # 禁止开机启动
    
  • 至此, NFS host的配置就完成了

2.3 搭建NFS Client1

  1. 安装nfs-utils依赖

    yum install nfs-utils
    
  2. 执行命令测试NFS Host是否配置了共享目录

    showmount -e 192.168.111.133
    

    在这里插入图片描述 => 若能出现上图长方形所圈住的信息, 那么标识NFS Host的配置成功了

  3. NFS Client1/root/testshare目录挂载在NFS Host的/share目录上

    # 在NFS Client1 机器上执行如下命令
    # 创建/root/testshare文件夹
    mkdir /root/testshare
    
    # 挂载目录, 命令规则: mount -t nfs NFS_HOST_IP:共享的目录 当前要挂载到NFSHOST共享目录的目录
    mount -t nfs 192.168.111.133:/share /root/testshare
    
  4. 查看挂载结果

    df -h 
    

    在这里插入图片描述

2.4 NFS服务功能测试

  1. NFS Client1中的/root/testshare目录下执行如下命令
    echo "Hello NFS Client1 192.168.111.134" > nfsclient1.html
    
  2. NFS HOST中的/share目录下执行命令
    ls && cat nfsclient1.html
    
    在这里插入图片描述 => 若能如上图所示, 那么: NFS服务搭建成功

2.5 NFS Client2的搭建步骤与 2.3一模一样, 这里就不阐述了

3 可能存在的问题

  • 因为mount命令的挂载是临时的, 当我们重启机器后, mount命令就会失效。

    • 解决方案: 每次开机再挂载一遍 这里可以采用添加自定义service或者利用rc.local的方式实现, 这里就不阐述了
  • 若突然发现/share容量不够, 改怎么办?

    • 解决方案:
      • 加硬盘
      • 将其他磁盘中剩余的空间分出一个区并将/share 文件夹挂载于此
    • 其实上面两种方案属于同一种, 即: 将/share文件夹挂载到容量大的磁盘中

4 以加硬盘的方式实现扩容

  • 由于本次demo的三台服务器是虚拟机, 所以我们可以直接为虚拟机添加硬盘(使用VMware), 步骤如下(注: 因为两台client是共享于Host的文件夹, 所以要对Host的/share目录进行扩容):
    1. NFS Host虚拟机关机

    2. 并按照如下步骤进行添加硬盘 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

    3. 开机, 并执行如下命令 fdish -l

      在这里插入图片描述

    4. 对硬盘进行分区和格式化(与window系统分盘一样), 分别执行如下操作

      • fdisk /dev/sdb # /dev/sdb就是上图中红框中的第一行的信息
      • 在这里插入图片描述
      • 在这里插入图片描述
      • 在这里插入图片描述
      • 在这里插入图片描述
      • 在这里插入图片描述
      • 在这里插入图片描述
    5. 按照上述步骤操作后, 25G的区被分出来了, 我们要使用它还得先格式化。 获取新分出来区的路径: fdisk -l 在这里插入图片描述

    6. 以ext3的格式格式化新建的分区: mkfs.ext3 /dev/sdb1

    7. 执行挂载命令mount /dev/sdb1 /share

    8. 查看结果 df -h 在这里插入图片描述

    9. 这个时候我们需要将NFS Client1和NFS Client2重新挂载下目录, 分别在两台机器中执行如下命令: mount -t nfs 192.168.111.133:/share /root/testshare. 执行完后, 我们之前存储的文件夹就没了, 所以如果有重要文件, 则需要对NFS Client1和NFC Client2的文件进行备份。

    10. 做完上述操作后, 我们可以用相同的方式进行测试, 在NFS Client1 中新建一个文件, 并在NFS Host中进行查看, 若能同步, 则表示NFS Host扩容成功.

    11. 同样的, 因为NFS Host也使用了mount命令, 所以也要对NFS Host设置开机自动挂载机制。

三、总结

  • 至此, NFS服务的搭建及测试就完成啦。在项目中使用NFS的案例也是蛮多的, 若项目没有足够的经费去购买OSS服务, 但项目中又要使用集群, 那么NFS是个实例间共享文件不错的选择
  • I am a slow walker, but I never walk backwards.