背景介绍

主要还是工作原因,需要搭建高性能计算集群,因此这里用虚拟机搭一个小的集群,学习一下。

NFS系统的搭建

基本概念

对于我们进行集群计算,远程多用户提交算例不仅要求每一台服务器上用户一样,必要程序的文件路径同样要求相同,因此需要将计算节点的部分文件夹挂载到控制节点。NFS(Network File System)就可以实现这样的功能。NFS 即网络文件系统。功能是让客户端通过网络访问不同主机上磁盘里的数据。特别是我们在控制节点上装上了某个软件,但是没有在计算节点上装,一定要把这个软件地址挂载到控制节点上,不然无法进行计算,要保证软件的路径相同。NFS的实现依赖于RPC(远程过程调用)机制,RPC充当NFS服务器和客户端的中介,以完成从远程到本地的映射过程,提供RPC支持的服务为rpcbind,提供NFS共享的服务为nfs-server

注意

关机的时候先关客户端再关服务端,开机的时候先开服务端再开客户端。

基本信息

主机名 系统 ip
master(服务端) Centos8 stream 172.16.34.122
node1(客户端) Centos8 stream 172.16.34.123

服务端和客户端共同配置

  1. 为了避免服务端和客户端无法通信,关闭防火墙和selinux
    systemctl stop firewalld
    systemctl disable firewalld
    vi /etc/selinux/config
    SELINUX=disabled
  2. 修改hosts文件
    vi /etc/hosts
    #添加
    172.16.34.122 master
    172.16.34.123 node1

服务端的配置

  1. 安装服务端需要的软件
    yum -y install nfs-utils
    注意我们只安装 nfs-utils 就可以,rpcbind 属于它的依赖,也会安装上。
  2. 启动 NSF 并开启开机自动启动
    systemctl enable rpcbind
    systemctl enable --now nfs-server
    systemctl start rpcbind
    systemctl start nfs-server
  3. 我们以挂载 \home 为例
    vi /etc/exports
    #添加
    /home 172.16.34.0/24(rw,sync,no_root_squash,no_all_squash)
  • 共享 /home 目录
  • 172.16.34.0/24 设置客户端的ip地址范围,* 代表所有,即没有限制
  • rw: 权限设置,可读可写。
  • ro: 权限设置,只读。
  • sync: 同步共享目录。
  • no_root_squash: 可以使用root授权。
  • no_all_squash: 可以使用普通用户授权。
  1. 刷新配置
    exportfs -rv
  2. 重启 NFS 服务
    systemctl restart nfs-server
  3. 检查一下本地的共享目录
    showmount -e 主机名

客户端的配置

  1. 安装客户端需要的软件
    yum -y install nfs-utils
  2. 启动 NFS 相关的服务并设置开机启动
    systemctl enable rpcbind
    systemctl enable --now nfs-server
    systemctl start rpcbind
    systemctl start nfs-server
  3. 检查服务端的共享目录
    showmount -e 服务端主机名
  4. 挂载共享文件夹
    mount -t nfs 服务端主机名:/home/ /home/
  5. 查看挂载
    mount
  6. 测试挂载,在客户端的共享区创建文件,在服务端可以看到相应的文件


    7.设置开机自动挂载
    vi /etc/rc.local
    #添加
    mount -t nfs 主机名:/home/ /home/
  7. 关机之后重启

参考