您查看的文章来源于http://www.oklinux.cn
定义与 GPFS 有关的 CSM 组
对于本例来说,我们定义了两个主要的 CSM 组在配置 GPFS 过程中使用,如下所示。
StorageNodes
,其中只包括那些直接连接到 SAN 上的节点,例如 nodegrp -w "Hostname like 'stor%'" StorageNodes
。
NonStorageNodes
,其中包括了构成 GPFS 集群的所有其他节点,例如 nodegrp -w "Hostname not like 'stor%'" NonStorageNodes
。
这两个组在安装过程中用来确保执行存储节点角色的服务器可以接收特定的二进制文件和配置文件,这在下面会详细进行介绍。注意本节没有介绍 CSM 所执行的详细安装步骤。有关对这个过程的介绍,请参看本系列文章的 第 1 部分 和 第 2 部分。
安装过程被总结为以下阶段:
- 从安装服务器上进行 PXE/DHCP 引导
- 从安装服务器上开始 NFS 安装
- 执行 Pre-reboot 脚本
- 重新启动
- 执行 Post-reboot 脚本
- CFM 文件传输
- CSM 后安装配置
本文中的配置修改都是在 pre-reboot 和 CFM 文件传输阶段进行的。
安装 GPFS RPM
GPFS 需要每个集群成员都安装一个基本的 GPFS RPM 集。样例安装所使用的 GPFS 版本是 2.3.0-3。这些 RPM 的安装是一个两阶段的过程:安装 2.3.0-1 基本版本,然后更新到 2.3.0-3。这个安装使用的 RPM 有:
- gpfs.base
- gpfs.docs
- gpfs.gpl
- gpfs.msg.en_US
注意:由于本文中的例子使用的是 GPFS Version 2.3,因此并不需要安装 Reliable Scalable Cluster Technology(RSCT)并创建一个对应的域。Version 2.3 之前版本的 GPFS 需要这些手工设置这些步骤。
CSM 可以采用多种方法来安装 GPFS RPM。本文推荐在安装基本操作系统时安装 RPM。CSM 提供了一个包含定制的 RPM 的安装和更新目录结构,然而,对于最初的 RPM 安装,以及之后升级到 GPFS 2.3.0-3 所需的 RPM 安装,CSM 提供的结构不一定能够工作。
另一种方法是为 CSM 编写一些 pre-reboot post-installation 脚本来根据需要安装 RPM。在这种情况中,要将所有的 GPFS RPM(包括更新 RPM)全部拷贝到管理服务器上的 /csminstall/Linux
目录中。CSM 通常为脚本数据预留的目录是 /csminstall/csm/scripts/data
,在安装过程中它会被挂载到节点上,这样就可以通过 NFS 来使用所需要的 RPM。
编写安装脚本 /csminstall/csm/scripts/installprereboot/install-gpfs.sh
来安装 GPFS。下面是一个安装脚本的示例:
#! /bin/bash
# Installs GPFS filesets and updates to latest levels
# CSMMOUNTPOINT environment variable is set by CSM
DATA_DIR=$CSMMOUNTPOINT/csm/scripts/data
cd $DATA_DIR
rpm -ivh gpfs.*2.3.0-1*.rpm
rpm -Uvh gpfs.*2.3.0-3*.rpm
echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > /etc/profile.d/gpfs.sh
|
一旦在存储服务器上安装 GPFS 之后,您可能还会希望自动安装 FAStT MSJ 工具,这可以以静寂(非交互)模式来完成。MSJ 用于 Qlogic 适配器、故障恢复和多路径等配置,这将在 HBA 配置 一节中详细进行介绍。安装并不是基于 RPM 的,因此默认情况下无法简单地集成到 CSM 中。要安装它,需要在 GPFS 安装程序的末尾添加一个脚本来检查这个节点是否是一个存储服务器,然后再安装 MSJ。要以静寂模式完成安装,请使用 FAStTMSJ*_install.bin -i silent
命令。
配置 Qlogic 故障恢复
示例集群使用的是 Qlogic qla2300 驱动程序,版本为 7.01.01,用于 Qlogic QLA 2342 适配器。存储节点组中的每个节点都有两个这种 PCI 适配器。qla2300 驱动程序已经成为 Red Hat Enterprise Linux 3 update 4 发行版中的标准组件了。然而,为了满足这个示例集群的需要,您需要进行以下修改: