CNFS (Cluster Network File System)是 GPFS 中的一种模式,用于配置和管理多台服务器(节点)之间的文件共享和数据访问
它允许多个节点同时访问和共享文件系统的数据,以实现高性能、高可用性的存储解决方案
将原本的GPFS文件系统修改为cnfs文件系统:
- [root@node1 ~]# mmchfs gpfs1 -o syncnfs
- mmchfs: Propagating the cluster configuration data to all
- affected nodes. This is an asynchronous process.
修改配置文件/etc/exports(这是nfs服务器的配置文件),
- #| 共享目录 | 主机名 (权限)|
- /usr/qv123/nfsdata 192.168.73.0/24(rw)
man exports # 查看所有参数
| 权限参数值 | 说明 |
|---|---|
| rw/ro | rw:可读写,ro:只读,还是与文件系统的rwx有关 |
| sync/async | sync:数据会同步写入到内存与硬盘中,async:则代表数据会先暂存于内存当中 |
| no_root_squash/root_squash | no_root_squash表示就显示root用户和root组;root_squash表示将root用户和组映射为匿名用户和组(默认设置)。 |
| all_squash/no_all_squash | allsquash:客户端所有用户创建文件时,客户端会将文件的用户和组映射为匿名用户和组no_all_squash:客户端普通用户创建的文件的UID和GID是多少,服务端就显示为多少(默认设置) |
| anonuid=anongid= | 将文件的用户和组映射为指定的UID和GID,若不指定默认为65534(nfsnobody) |
- [root@node1 ~]# cat << eof > /etc/exports
- /gpfs1/nfs 192.168.10.0/24(rw,fsid=11)
- eof
- [root@node2 ~]# cat << eof > /etc/exports
- /gpfs1/nfs 192.168.10.0/24(rw,fsid=11)
- eof
使配置生效
- [root@node1 ~]# exportfs -r
- [root@node1 ~]# exportfs -r
在每个服务端上面设置nfsd自动启动
- [root@node1 ~]# systemctl enable nfs-server
- Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
- [root@node2 ~]# systemctl enable nfs-server
- Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
指定 CNFS 服务器的共享根目录,最好是一个单独小的文件系统且不被NFS共享出去
- [root@node1 ~]# mmchconfig cnfsSharedRoot=/gpfs1/cnfs
- mmchconfig: Command successfully completed
- mmchconfig: Propagating the cluster configuration data to all
- affected nodes. This is an asynchronous process.
指定 CNFS(Cluster Network File System)服务器节点上用于 CNFS 服务的网络接口
ip_address_list为上面配置的专用于NFS的ip,node为这个节点在GPFS里面的主机名;CNFS 允许多个 Spectrum Scale 节点通过 RDMA(远程直接内存访问)协议来访问共享数据。
- [root@node1 ~]# mmchnode --cnfs-interface=192.168.10.151 -N node1
- Wed Sep 27 05:24:58 EDT 2023: mmchnode: Processing node node1
- mmnfsinstall: CNFS has modified configuration file /etc/sysconfig/network-scripts/ifcfg-ens38.
- Restarting monitor
- mmchnode: Propagating the cluster configuration data to all
- affected nodes. This is an asynchronous process.
- [root@node2 ~]# mmchnode --cnfs-interface=192.168.10.152 -N node2
- Wed Sep 27 05:33:53 EDT 2023: mmchnode: Processing node node2
- mmnfsinstall: CNFS has modified configuration file /etc/sysconfig/network-scripts/ifcfg-ens38.
- Restarting monitor
- mmchnode: Propagating the cluster configuration data to all
- affected nodes. This is an asynchronous process.
指定 CNFS服务器上的 mountd 服务监听的端口号
- [root@node1 ~]# mmchconfig cnfsMountdPort=3000 -N node1
- mmchconfig: Command successfully completed
- mmchconfig: Propagating the cluster configuration data to all
- affected nodes. This is an asynchronous process.
- [root@node2 ~]# mmchconfig cnfsMountdPort=3000 -N node2
- mmchconfig: Command successfully completed
- mmchconfig: Propagating the cluster configuration data to all
- affected nodes. This is an asynchronous process.
查看集群里的CNFS节点:
- [root@node1 ~]# mmlscluster --cnfs
-
- GPFS cluster information
- ========================
- GPFS cluster name: gpfs.node1
- GPFS cluster id: 1484988891362745278
-
- Cluster NFS global parameters
- -----------------------------
- Shared root directory: /gpfs1/cnfs
- rpc.mountd port number: 3000
- nfsd threads: 32
- Reboot on failure enabled: yes
- CNFS monitor enabled: yes
-
- Node Daemon node name IP address CNFS state group CNFS IP address list
- -------------------------------------------------------------------------------------------
- 1 node1 192.168.10.101 enabled 0 192.168.10.151
- 2 node2 192.168.10.102 enabled 0 192.168.10.152
测试是否存在共享目录:
- [root@node1 ~]# showmount -e 192.168.10.151
- Export list for 192.168.10.151:
- /gpfs1/nfs 192.168.10.0/24
方式一:临时挂载
安装nfs-utils
[root@gpfs-client ~]# yum install -y nfs-utils 查看是否可以连接上共享目录:
- [root@gpfs-client ~]# showmount -e 192.168.10.151
- Export list for 192.168.10.151:
- /gpfs1/nfs 192.168.10.0/24
- [root@gpfs-client ~]# showmount -e 192.168.10.152
- Export list for 192.168.10.152:
- /gpfs1/nfs 192.168.10.0/24
创建挂载目录,挂载目录或解挂载目录
[root@gpfs-client ~]# mount -o sync,hard,intr 192.168.10.151:/gpfs1/nfs /mnt/nfs 查看挂载:
- [root@gpfs-client ~]# df -h | grep nfs
- 192.168.10.151:/gpfs1/nfs 20G 3.7G 17G 19% /mnt/nfs
方式二:自动挂载
安装autofs:
yum install -y autofs 配置文件:
- autofs.conf:针对服务autofs的配置
- timeout = 300, #
- dismount_interval = 300 # 挂载超时时间
- auto.master:是针对目录对应的挂载配置文件
- /misc这个目录自动挂载的信息autofs在 /etc/auto.misc中
- 配置语法: 目录 自动挂载配置文件的目录
- auto.xxx:具体的挂载的信息
- cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
- 挂载的目录 挂载的选项 :要挂载的设备
- boot -fstype=ext2 :/dev/hda1
修改配置文件:
- cat << eof > /etc/auto.master
- /mnt /etc/auto.nfs
- eof
- cat << eof > /etc/auto.nfs
- # 添加内容
- #本地端子目录 -挂载参数 服务器所提供的目录
- nfs 192.168.10.151:/gpfs1/nfs
- eof
| 参数 | 参数功能 |
|---|---|
| fgbg | 当执行挂载时,该挂载行为会在前台(fg)还是后台(bg)执行,若在前台执行,则mount会持续尝试挂载,直到成功或time out为止;若为后台执行,则mount会在后台持续多次进行mount,而不会影响到前台的程序运行。 |
| softhard | hard表示当两者之间的任何一台主机脱机,则RPC会持续地呼叫,直到对方恢复连接为止。如果是soft的话,那RPC会在time out后重复呼叫,而非持续呼叫 |
| intr | 当使用上面提到的hard方式挂载时,若加上intr这个参数,则当RPC持续呼叫时,该次的呼叫是可以被中断的 |
| rsizewsize | 读出(rsize)与写入(wsize)的区块大小。这个设置值可以影响客户端与服务器端传输数据的缓冲记忆容量 |
重启autofs服务
systemctl restart autofs 查看挂载信息:
mount | grep /nfs 触发自动挂载,进入到子目录中触发,退出挂载目录一定时间后触发解挂载:
cd /mnt/nfs mmchnode --cnfs-interface=DELETE -N "node1,node2"