• 搭建CNFS文件系统


    1.概念:

    • CNFS (Cluster Network File System)是 GPFS 中的一种模式,用于配置和管理多台服务器(节点)之间的文件共享和数据访问

    • 它允许多个节点同时访问和共享文件系统的数据,以实现高性能、高可用性的存储解决方案

    2.创建CNFS文件系统:

    • 将原本的GPFS文件系统修改为cnfs文件系统:

      1. [root@node1 ~]# mmchfs gpfs1 -o syncnfs
      2. mmchfs: Propagating the cluster configuration data to all
      3. affected nodes. This is an asynchronous process.

    • 修改配置文件/etc/exports(这是nfs服务器的配置文件),

      1. #|   共享目录     | 主机名       (权限)|
      2. /usr/qv123/nfsdata  192.168.73.0/24(rw)
      man exports    # 查看所有参数
      权限参数值说明
      rw/rorw:可读写,ro:只读,还是与文件系统的rwx有关
      sync/asyncsync:数据会同步写入到内存与硬盘中,async:则代表数据会先暂存于内存当中
      no_root_squash/root_squashno_root_squash表示就显示root用户和root组;root_squash表示将root用户和组映射为匿名用户和组(默认设置)。
      all_squash/no_all_squashallsquash:客户端所有用户创建文件时,客户端会将文件的用户和组映射为匿名用户和组no_all_squash:客户端普通用户创建的文件的UID和GID是多少,服务端就显示为多少(默认设置)
      anonuid=anongid=将文件的用户和组映射为指定的UID和GID,若不指定默认为65534(nfsnobody)
      1. [root@node1 ~]# cat << eof > /etc/exports
      2. /gpfs1/nfs 192.168.10.0/24(rw,fsid=11)
      3. eof
      4. [root@node2 ~]# cat << eof > /etc/exports
      5. /gpfs1/nfs 192.168.10.0/24(rw,fsid=11)
      6. eof

    • 使配置生效

      1. [root@node1 ~]# exportfs -r
      2. [root@node1 ~]# exportfs -r

    • 在每个服务端上面设置nfsd自动启动

      1. [root@node1 ~]# systemctl enable nfs-server
      2. Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
      3. [root@node2 ~]# systemctl enable nfs-server
      4. Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

    • 指定 CNFS 服务器的共享根目录,最好是一个单独小的文件系统且不被NFS共享出去

      1. [root@node1 ~]# mmchconfig cnfsSharedRoot=/gpfs1/cnfs
      2. mmchconfig: Command successfully completed
      3. mmchconfig: Propagating the cluster configuration data to all
      4. affected nodes. This is an asynchronous process.

    • 指定 CNFS(Cluster Network File System)服务器节点上用于 CNFS 服务的网络接口

      ip_address_list为上面配置的专用于NFS的ip,node为这个节点在GPFS里面的主机名;CNFS 允许多个 Spectrum Scale 节点通过 RDMA(远程直接内存访问)协议来访问共享数据。

      1. [root@node1 ~]# mmchnode --cnfs-interface=192.168.10.151 -N node1
      2. Wed Sep 27 05:24:58 EDT 2023: mmchnode: Processing node node1
      3. mmnfsinstall: CNFS has modified configuration file /etc/sysconfig/network-scripts/ifcfg-ens38.
      4. Restarting monitor
      5. mmchnode: Propagating the cluster configuration data to all
      6. affected nodes. This is an asynchronous process.
      7. [root@node2 ~]# mmchnode --cnfs-interface=192.168.10.152 -N node2
      8. Wed Sep 27 05:33:53 EDT 2023: mmchnode: Processing node node2
      9. mmnfsinstall: CNFS has modified configuration file /etc/sysconfig/network-scripts/ifcfg-ens38.
      10. Restarting monitor
      11. mmchnode: Propagating the cluster configuration data to all
      12. affected nodes. This is an asynchronous process.

    • 指定 CNFS服务器上的 mountd 服务监听的端口号

      1. [root@node1 ~]# mmchconfig cnfsMountdPort=3000 -N node1
      2. mmchconfig: Command successfully completed
      3. mmchconfig: Propagating the cluster configuration data to all
      4. affected nodes. This is an asynchronous process.
      5. [root@node2 ~]# mmchconfig cnfsMountdPort=3000 -N node2
      6. mmchconfig: Command successfully completed
      7. mmchconfig: Propagating the cluster configuration data to all
      8. affected nodes. This is an asynchronous process.

    • 查看集群里的CNFS节点:

      1. [root@node1 ~]# mmlscluster --cnfs
      2. GPFS cluster information
      3. ========================
      4. GPFS cluster name:         gpfs.node1
      5. GPFS cluster id:           1484988891362745278
      6. Cluster NFS global parameters
      7. -----------------------------
      8. Shared root directory:               /gpfs1/cnfs
      9. rpc.mountd port number:               3000
      10. nfsd threads:                         32
      11. Reboot on failure enabled:            yes
      12. CNFS monitor enabled:                 yes
      13. Node Daemon node name           IP address       CNFS state group CNFS IP address list
      14. -------------------------------------------------------------------------------------------
      15.   1   node1                       192.168.10.101   enabled        0   192.168.10.151
      16.   2   node2                       192.168.10.102   enabled        0   192.168.10.152

    • 测试是否存在共享目录:

      1. [root@node1 ~]# showmount -e 192.168.10.151
      2. Export list for 192.168.10.151:
      3. /gpfs1/nfs 192.168.10.0/24

    3.客户端挂载:

    • 方式一:临时挂载

      • 安装nfs-utils

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

      • 查看是否可以连接上共享目录:

        1. [root@gpfs-client ~]# showmount -e 192.168.10.151
        2. Export list for 192.168.10.151:
        3. /gpfs1/nfs 192.168.10.0/24
        4. [root@gpfs-client ~]# showmount -e 192.168.10.152
        5. Export list for 192.168.10.152:
        6. /gpfs1/nfs 192.168.10.0/24

      • 创建挂载目录,挂载目录或解挂载目录

        [root@gpfs-client ~]# mount -o sync,hard,intr 192.168.10.151:/gpfs1/nfs /mnt/nfs

      • 查看挂载:

        1. [root@gpfs-client ~]# df -h | grep nfs
        2. 192.168.10.151:/gpfs1/nfs   20G  3.7G   17G  19% /mnt/nfs

    • 方式二:自动挂载

      • 安装autofs:

        yum install -y autofs

      • 配置文件:

        1. autofs.conf:针对服务autofs的配置
        2. timeout = 300,               #
        3. dismount_interval = 300      # 挂载超时时间
        1. auto.master:是针对目录对应的挂载配置文件
        2. /misc这个目录自动挂载的信息autofs在 /etc/auto.misc中
        3. 配置语法: 目录   自动挂载配置文件的目录
        1. auto.xxx:具体的挂载的信息
        2. cd             -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
        3. 挂载的目录 挂载的选项   :要挂载的设备
        4. boot     -fstype=ext2   :/dev/hda1

      • 修改配置文件:

        1. cat << eof > /etc/auto.master
        2. /mnt   /etc/auto.nfs
        3. eof
        1. cat << eof > /etc/auto.nfs
        2. # 添加内容
        3. #本地端子目录 -挂载参数 服务器所提供的目录
        4. nfs 192.168.10.151:/gpfs1/nfs
        5. eof
        参数参数功能
        fgbg当执行挂载时,该挂载行为会在前台(fg)还是后台(bg)执行,若在前台执行,则mount会持续尝试挂载,直到成功或time out为止;若为后台执行,则mount会在后台持续多次进行mount,而不会影响到前台的程序运行。
        softhardhard表示当两者之间的任何一台主机脱机,则RPC会持续地呼叫,直到对方恢复连接为止。如果是soft的话,那RPC会在time out后重复呼叫,而非持续呼叫
        intr当使用上面提到的hard方式挂载时,若加上intr这个参数,则当RPC持续呼叫时,该次的呼叫是可以被中断的
        rsizewsize读出(rsize)与写入(wsize)的区块大小。这个设置值可以影响客户端与服务器端传输数据的缓冲记忆容量
      • 重启autofs服务

        systemctl restart autofs

      • 查看挂载信息:

        mount | grep /nfs

      • 触发自动挂载,进入到子目录中触发,退出挂载目录一定时间后触发解挂载:

        cd /mnt/nfs   

    3.删除cnfs节点:

    mmchnode --cnfs-interface=DELETE -N "node1,node2"

  • 相关阅读:
    JSON decoding error: Invalid UTF-8 start byte 0xb6
    面试官:你是如何保障MySQL数据库与Redis缓存的数据一致性?
    JSP 人力资源管理系统myeclipse开发mysql数据库BS模式java编程网页设计
    Tomcat:Java Web
    AArch64 TrustZone
    PMP刷题小结2
    昨日阅读量898
    Qlik Sense 内联加载详解(Load * Inline)
    操作系统的发展与分类
    .NET周刊【12月第2期 2023-12-13】
  • 原文地址:https://blog.csdn.net/qq_56776641/article/details/133903712