GPFS有两种NFS导出方式,一是Cluster Export Services (CES) NFS,二是clustered NFS (CNFS)。CNFS使用Linux内核的nfsd,提供了较好小文件操作性能,当然也只支持NFS。CES使用用户空间Ganesha的nfsd,连续读写性能较好,CES还支持SMB和Object存储。
CNFS通过动态的调整IP地址来提供NFS的HA,只能提供故障转移不支持负载均衡,下面以nfs1,nfs2两个节点配置CNFS为例
- 确保所有服务端和客户端节点与同一个时钟源严格同步时间,服务端节点需要mmchlicense server
- 为了防止故障切换时出现写入问题,CNFS export共享目录的文件系统需指定syncnfs挂载选项
mmchfs fsyaoge123 -o syncnfs
- 在每个服务端上面配置相同的/etc/exports,不同目录的fsid必须不同,不同服务端上面同一个目录的fsid必须相同,1.1.1.10/1.1.1.11是客户端IP
/fsayaoge123/nfs 1.1.1.10(ro,fsid=11) 1.1.1.11(rw,fsid=11)
- 在每个服务端上面设置nfsd自动启动
systemctl enable nfs-server
- 定义CNFS的共享目录,最好是一个单独小的文件系统且不被NFS共享出去
mmchconfig cnfsSharedRoot=/fs2yaoge123/cnfs
- 每个服务端使用一个额外的静态IP(onboot=no)用于NFS共享,注意这个IP不能用于GPFS,将这个interface启动起来
- 在每个服务端上进行配置,ip_address_list为上面配置的专用于NFS的ip,node为这个节点在GPFS里面的主机名
mmchnode --cnfs-interface=ip_address_list -N node mmchnode --cnfs-interface=1.1.1.1 -N nfs1 //配置nfs1使用1.1.1.1做为NFS专用IP
- 查一下rpc.mountd绑定的端口号,配置上去
mmchconfig cnfsMountdPort=mountd_port -N node
- NFS客户端挂载时需加选项 -o sync,hard,intr,nfs1为主用
mount -o sync,hard,intr 1.1.1.1:/fsyaoge123/nfs /mnt
- 测试关机、停止nfsd、停止gpfs三种情况下是否会自动切换
查看CNFS节点
mmlscluster --cnfs
删除CNFS节点
mmchnode --cnfs-interface=DELETE -N "nfs1,nfs2"