- 浏览: 232386 次
- 性别:
- 来自: 深圳
文章分类
最新评论
从多个独立的硬件和软件,包括 System x™ 和 IBM TotalStorage®,创建一个可运行的 Linux® 集群。第 4 部分提供了设置存储后端所需的操作指导的后半部分内容,包括在每个节点上安装 GPFS(General Parallel File System)代码,以及为存储节点配置 Qlogic 适配器。最后,本文将带领您遍历创建 GPFS 集群的步骤。<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --> <!--END RESERVED FOR FUTURE USE INCLUDE FILES-->
本 文是系列文章中的第 4 部分,也是最后一部分。该系列文章涵盖了安装和设置一个大型 Linux 计算机集群的全部内容。有关如何从多个独立的硬件和软件创建一个可运行的 Linux(R) 集群的资源很多,本系列力求把这些公共领域里的资源中的最新信息集中起来以供您参考。本系列文章无意为您提供有关如何设计一个新的大型 Linux 集群的基础知识;要获得一般性的架构方面的知识,请参考本文中提到的相关参考资料和 Redbooks™。
本系列是针对系统架构师和系统工程师使用 IBM eServer™ Cluster 1350 框架(关于该框架的更多信息,请参见 参考资料 )计划和实现 Linux 集群而设计的。其中的一部分内容可能会与集群管理员的日常集群操作有关。本文的每个章节都针对相同的示例安装。
本系列的 第 1 部分 详细阐述了设置集群硬件的操作指导。 第 2 部分 带您亲历了硬件配置的后续步骤:安装软件,这其中会用到 IBM systems 管理软件、Cluster Systems Management (CSM) 和节点安装。
第 3 部分 和本文(介绍集群存储后端)全面介绍了存储的硬件配置以及 IBM 共享文件系统 GPFS(General Parallel File System)的安装和配置。 第 3 部分 详细讨论了存储系统的架构、硬件准备以及存储区域网络(Storage Area Network,SAN)的设置。本文是系列文章的第 4 部分,也是最后一部分,提供了有关特定于此示例集群存储后端的 CSM 的详细信息,尤其是如何执行存储系统的节点安装以及 GPFS 的集群配置。
|
|
本 节详细介绍了与示例集群的存储后端相关的集群服务器管理(CSM)细节。内容包括在每个节点上安装 GPFS 代码,以及为存储节点配置 Qlogic 适配器。请注意这种配置并不一定需要使用 CSM 执行;也可以手工完成。本文中的例子使用 CSM 几乎实现了新服务器安装的自动化,包括存储服务器。
在阅读本节之前,先阅读一下本系列 第 1 部分 中有关总体集群架构的章节将会很有益处。阅读 第 3 部分 中有关存储架构的章节将会获益良多。理解整个架构可以使您更好的利用本文中的信息。
按照正确的顺序进行安装是解决后面介绍的 ROM 溢出问题所必须的,因为该配置中使用的 xSeries™ 346 系统没有使用 RAID 7K 卡。请按照以下顺序完成这些步骤:
- 在管理服务器上运行
csmsetupks -vxn <nodename>
。
- 断开存储服务器与 SAN 上的连接,从而避免在 SAN 磁盘上安装操作系统,这些磁盘会被首先找到。
- 在管理服务器上运行
installnode -vn <nodename>
。
- 当存储节点重新启动时在控制台上按 F1 键进入 BIOS。
- 进入 Start Options,并将 PXEboot 从
disabled
修改为enabled for planar ethernet 1
。
- 让节点重新启动,开始安装。
- 从终端服务器上监视安装过程,让节点全部引导。
- 登录到节点中,监视 csm 安装
log /var/log/csm/install.log
。
- 在 post-reboot 任务完成时重新启动节点。
- 当节点重新启动时,按 F1 键进入 BIOS。
- 进入 Start Options,将 PXEboot 修改为
disabled
。
- 插上 SAN 线,让节点完全引导。
- 按照 配置磁盘路径和负载均衡 中介绍的方法使用 MSJ 配置磁盘路径。
GPFS 需要 GPFS 集群中的所有节点都能够使用根用户 ID 访问其他节点,而不需要提供密码。GPFS 使用这个中间节点的访问允许 GPFS 集群中的任何节点在其他节点上运行相关命令。例如,此处就使用了安全 shell(ssh)来提供这种访问能力,不过您也可以使用远程 shell(rsh)。为此,请创建一个集群范围内的密钥和相关配置文件,然后按照下面的步骤使用 CSM 分发这些文件:
- 创建两个新目录
/cfmroot/root/.ssh
和/cfmroot/etc/ssh
。
- 输入
ssh-keygen -b 1024 -t rsa -f /cfmroot/etc/ssh/ssh_host_rsa_key -N "" -C "RSA_Key"
,创建一个 RSA 密钥对,即验证使用的公钥和私钥 -
ssh-keygen -b 1024 -t dsa -f /cfmroot/etc/ssh/ssh_host_dsa_key -N "" -C "DSA_Key"
,创建一个 DSA 密钥对,即验证使用的公钥和私钥 - 创建一个包含公钥的授权文件,如下所示。SSH 使用这个文件来确定是否提示输入密码。
cat /root/.ssh/id_rsa.pub > /cfmroot/root/.ssh/authorized_keys2
cat /root/.ssh/id_dsa.pub >> /cfmroot/root/.ssh/authorized_keys2
cat /cfmroot/etc/ssh/ssh_host_rsa_key.pub >> /cfmroot/root/.ssh/authorized_keys2
cat /cfmroot/etc/ssh/ssh_host_dsa_key.pub >> /cfmroot/root/.ssh/authorized_keys2
- 停止 CSM 维护
known_hosts
文件,如下所示。这个文件中包含了很多主机名。如果一个主机已经出现在这个文件中,那么 SSH 就不会提示用户确认连接。CSM 会试图维护这个文件,但是在一个不需要根密码访问的混合集群环境中,这可能会成为一种障碍。stopcondresp NodeFullInstallComplete SetupSSHAndRunCFM
startcondresp NodeFullInstallComplete RunCFMToNode
perl -pe 's!(.*update_known_hosts.*)!#$1!' -i /opt/csm/csmbin/RunCFMToNode
- 生成一个系统范围的
known_hosts
文件。这最好通过创建一个脚本来实现,如下所示。运行这个脚本并将输出重定向到/cfmroot/root/.ssh/known_hosts
中。#!/bin/bash
RSA_PUB=$(cat "/cfmroot/etc/ssh/ssh_host_rsa_key.pub")
DSA_PUB=$(cat "/cfmroot/etc/ssh/ssh_host_dsa_key.pub")
for node in $(lsnodes); do
ip=$(grep $node /etc/hosts | head -n 1 | awk '{print $1}')
short=$(grep $node /etc/hosts | head -n 1 | awk '{print $3}')
echo $ip,$node,$short $RSA_PUB
echo $ip,$node,$short $DSA_PUB
done
该示例脚本只能用于单个接口。您可以对其稍加修改,从而允许跨多个接口的无密码连接。known_hosts
文件的格式已经超出了本文的范围,但是对每一行都使用一个以逗号分隔开的主机名会非常有用。
- 通过链接所生成的密钥可以允许无密码的根用户访问,如下所示。
cd /cfmroot/root/.ssh
ln -s ../../etc/ssh/ssh_host_dsa_key id_dsa
ln -s ../../etc/ssh/ssh_host_dsa_key.pub id_dsa.pub
ln -s ../../etc/ssh/ssh_host_rsa_key id_rsa
ln -s ../../etc/ssh/ssh_host_rsa_key.pub id_rsa.pub
- 您 可能希望确保这种配置在安装时(操作系统重新启动之前)就安装到了每个系统上。CSM 并不能确保后安装过程的执行顺序,因此如果有任何后安装任务依赖于这种配置,就可能会失败。但也可能会成功,因此安装成功与否无法预测。例如,您可能有一 个 GPFS 的后安装脚本,并且需要将一个节点添加到 GPFS 集群中,然后挂载 GPFS 文件系统。实现这种功能的一种方法是为此处创建的所有文件创建一个 tar 包,并使用一个 CSM 的 post-installation pre-reboot 脚本解包。
对于本例来说,我们定义了两个主要的 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 需要每个集群成员都安装一个基本的 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 |
一旦在存储服务器上安装 GPFS 之后,您可能还会希望自动安装 FAStT MSJ 工具,这可以以静寂(非交互)模式来完成。MSJ 用于 Qlogic 适配器、故障恢复和多路径等配置,这将在 HBA 配置 一节中详细进行介绍。安装并不是基于 RPM 的,因此默认情况下无法简单地集成到 CSM 中。要安装它,需要在 GPFS 安装程序的末尾添加一个脚本来检查这个节点是否是一个存储服务器,然后再安装 MSJ。要以静寂模式完成安装,请使用
FAStTMSJ*_install.bin -i silent
命令。
示例集群使用的是 Qlogic qla2300 驱动程序,版本为 7.01.01,用于 Qlogic QLA 2342 适配器。存储节点组中的每个节点都有两个这种 PCI 适配器。qla2300 驱动程序已经成为 Red Hat Enterprise Linux 3 update 4 发行版中的标准组件了。然而,为了满足这个示例集群的需要,您需要进行以下修改:
- 修改 qla2300 驱动程序以执行故障恢复功能。这使您能够利用多个磁盘路径,如果首选路径失败,可以进行故障恢复。默认情况下没有设置这个功能。
使用脚本进行第一次修改(这个脚本在使用 CSM 安装过程中重启之前运行)。实现这种功能的脚本在
/csminstall/csm/scripts/installprereboot/
目录中。这个脚本包含了以下命令:#! /bin/bash
# Adds lines to /etc/modules.conf to enable failover for the qla2300 drivers
echo "options qla2300 ql2xfailover=1 ql2xmaxsectors=512 ql2xmaxsgs=128" >>
/etc/modules.conf
echo "Updating initrd with new modules.conf set up"
mkinitrd -f /boot/initrd-`uname -r`.img `uname -r`
- 设置每台主机上到磁盘的首选路径,使其可以匹配每个 DS4500 上的设置。使用通过 HBA0 看到的奇数编号的数组,以及通过 HBA1 看到的偶数编号的数组。
第二个修改需要在对存储节点重新安装时手动执行。详细信息在 在存储服务器上定义 HBA 配置 一节中介绍。
将该示例中提供的几行代码添加到每个节点上的 /etc/sysctl.conf
文件中,用来对 GPFS 网络进行调优。这是通过 CSM 使用的 post-reboot 安装脚本完成的。这个脚本位于
/csminstall/csm/scripts/installpostreboot
目录中,包含以下内容:
FILE=/etc/sysctl.conf |
GPFS 可移植层(PL)是内核特有的,必须为集群中的每个操作系统级别单独创建。PL 的作用和为示例集群创建它的过程将在 生成并安装可移植层 一节中详述。CSM 使用 CFM 文件传输工具来管理 PL 二进制文件的分发。将 PL 二进制文件拷贝到管理服务器上的 /cfmroot/usr/lpp/mmfs/bin
目录中,并对文件进行命名,使它们只会分发到相关组中具有特定内核版本的节点上。例如:
/cfmroot/usr/lpp/mmfs/bin/dumpconv._<nodegroup> |
注意在大型集群中,为了减轻 CFM 的负载,可以将这 4 个文件添加到定制 RPM 中,并使用上文介绍的 GPFS RPM 安装方法与 GPFS 一起安装。
简 单地安装 GPFS RPMS 和可移植层无法在新安装的节点上挂载并配置 GPFS 集群中的文件系统。在小型集群中,这可以手工进行管理。然而,扩展到更大规模的集群之后,就需要自动化完成这个步骤。这可以通过使用 CSM 的监视功能来完成:监视整个新节点的安装过程,并启动一个脚本在集群中的新节点上配置和挂载 GPFS。
清单 1 给出了一个示例脚本,可以用来配置 GPFS。您可能需要针对自己的配置对这个脚本稍加修改。清单 1 提供了一些基本内容。这个脚本会接收节点名(由 CSM 监视器传入),将其添加到 GPFS 集群中,并尝试在这个节点上启动 GPFS,这个过程会提供一点错误处理功能。
清单 1. 配置 GPFS 使用的示例脚本
|
当节点完成基本操作系统的安装时,您可以使用 CSM 自动运行如清单 1 所示的脚本,这样在节点引导时,就可以自动挂载 GPFS 文件系统了。首先需要将这个脚本定义为 CSM 监视器中的一种响应机制。例如:
mkresponse -n SetupGPFS -s /path/to/script/SetupGPFS.sh SetupGPFS
。
现在就有一个名为 SetupGPFS 的响应了,它会运行这个脚本。接下来应该将这个响应关联到默认的 CSM 条件 NodeFullInstallComplete
,方法如下:
startcondresp NodeFullInstallComplete SetupGPFS
。
现在每当安装一个新节点时,CSM 都会在管理服务器上自动运行这个脚本。在 CSM 管理服务器上,现在当运行 lscondresp
命令时,应该可以看到
NodeFullInstallComplete
条件与
SetupGPFS
响应关联。这个条件或响应应该被列为 Active
。
xSeries 346 上可用 ROM 的空间数量存在一个问题,在引导时可能会出现 PCI 分配错误。消息说明系统 ROM 空间已满,没有空间来为其他使用 ROM 空间的适配器使用了(更详细内容请参看 参考资料)。
如果启用了 PXE 引导,这个问题就会影响存储节点,其中 Qlogic PCI 适配器没有足够的空间正确进行初始化。针对这个问题的一个解决方案如下;
- 禁用 GPFS 网络使用的 Broadcom PCI 卡上的 PXE 引导功能。使用下载的诊断工具 b57udiag -cmd,选择设备,然后禁用 PXE 引导。
- 通过 CSM 利用 PXE 引导来安装节点,然后使用 BIOS 禁用两个 onboard 适配器中的 PXE 引导功能(详细步骤在 按照正确顺序安装存储节点 一节中介绍)。
避免这个问题的另外一种解决方案是在每台 xSeries 346 上都使用一个 RAID 7K 卡。这可以减少 SCSI BIOS 所使用的 ROM 数量,并允许 Qlogic BIOS 成功加载,即使启用了 PXE 也没有问题。
示例集群中 xSeries 346 存储服务器上使用的 HBA 是 IBM DS4000 FC2-133 Host Bus Adapter(HBA)型号的适配器。它也称为 Qlogic
2342 适配器。本例使用了 1.43 版本的固件,以及上一节提到的 v7.01.01-fo qla2300 驱动程序。驱动程序中的
-fo
表示具有故障恢复功能,这不是驱动程序的默认选项。可以通过修改每个存储节点上的
/etc/modules.conf
的设置启用。这是在安装过程中使用 CSM 实现的,将在 配置 Qlogic 故障恢复 一节中介绍。
下一节介绍了更新固件和每个存储服务器上 HBA 设置所需要的步骤,以及重新安装驱动以在两个 HBA 之间启用负载均衡所需要的手工步骤。
您可以从 IBM System x 支持 Web 站点(请参看 参考资料)上下载 FC2-133 HBA 的固件。固件可以使用 IBM Management Suite Java 或可引导的磁盘和 flasutil 程序进行更新。
对于这个示例集群来说,需要对 HBA 的默认设置进行以下修改。这些值位于所下载的驱动程序提供的 README 中。您可以使用 Qlogic BIOS 完成这些修改,在引导过程中出现提示符时使用
<ctrl>-q
可进入 Qlogic BIOS,或者使用 MSJ 工具 修改。设置如下:
- 主机适配器设置
- Loop reset delay:8
- 高级适配器设置
- LUNs per target:0
- Enable target reset:Yes
- Port down retry count:12
IBM FAStT Management Suite Java(MSJ)是一个基于 Java 的 GUI 应用程序,可以管理存储服务器中的 HBA。这个工具可以用来进行配置和诊断。有关下载软件的链接,请参看 参考资料。
示
例设置使用 CSM 将 MSJ 作为 GPFS 安装的一部分在每个存储节点上进行安装。这个二进制文件是包含 GPFS RPM 的 tar
文件的一部分,这个文件是在 CSM 节点安装过程中由 CFS 进行分发的。由一个 post 脚本解压这个 tar 文件,接着运行 tar
文件里面包含的安装脚本。本文的示例在这次安装中使用了 32 位的 FAStT MSJ 来防止在安装 64
位版本时可能出现的问题。示例脚本使用了下面的命令安装 MSJ: FAStTMSJ*_install.bin -i silent
。
这 会同时安装应用程序和代理。注意由于这是一个 32 位版本的 MSJ,因此即使示例使用了静寂安装模式,代码也会查找并加载 32 位版本的库。因此,使用已经安装好的 32 位版本的 XFree86-libs,以及基本 64 位安装附带的 64 位版本。32 位库包含在 XFree86-libs-4.3.0-78.EL.i386.rpm 文件中,该文件包含在 tar 文件中。这个 rpm 的安装是通过 install.sh 脚本进行的,然后会安装 MSJ。
每 个存储节点上都需要使用 MSJ 手工配置到 DS4500s 上的磁盘阵列的路径,以及在每台计算机上两个 HBA 卡之间实现负载均衡。如果没有执行这种配置,默认情况下磁盘阵列只能通过每台计算机上的第一个适配器 HBA0 以及每个 DS4500s 上的控制器 A 进行访问。通过将磁盘分布在 HBA 之间,以及 DS4500s 的控制器之间,就可以实现负载均衡,并提高后端的性能。
注意负载均衡的配置是一个手工执行的步骤,每次重新安装存储节点时,必须在每个存储节点上都重新执行。对于这个示例集群来说,配置负载均衡的步骤如下所示:
- 从新安装的具有 xforwarding 设置(
ssh <nodename> -X
)的服务器的本地计算机上打开一个新窗口。
- 在一个会话中输入
# qlremote
。
- 在另外一个会话中运行
# /usr/FAStT MSJ &
以启动 MSJ GUI。
- 在 MSJ GUI 中,高亮显示 HBA 选项卡下面的一个适配器,并选择
Configure
。此时会出现一个类似于图 1 所示的窗口。
图 1. 选择 DS4500 时 MSJ 的视图
- 要启用负载均衡,请右键单击节点名高亮显示存储子系统,然后从菜单中选择下面的内容:LUNs
> Configure LUNs。这样就会出现 LUN 配置窗口。您可以通过选择 Tools > Load
Balance 自动配置负载均衡。现在会看到一个类似于图 2 所示的窗口。
图 2. 在配置故障恢复时 MSJ 的视图
- 在配置好逻辑驱动器之后,LUN 配置窗口就会关闭,并将配置保存到 Port Configuration 窗口中的主机系统(默认密码是
config
)。如果配置成功保存,就会看到一条确认消息。配置会保存到一个名为/etc/qla2300.conf
的文件中。有几个新的选项应该已经被添加到/etc/modules.conf
的 qla2300 驱动程序行中,说明这个文件已经存在且应该能够使用。
- 切换回启动 qlremote 进程的窗口,并使用
<ctrl>-c
命令停止这个进程。这是非常重要的一步。
- 要 启用新配置,请重新加载 qla2300 驱动模块。如果磁盘被挂载在一个连接到使用该驱动程序的适配器的 Fibre Channel 子系统上,那就无法执行这种操作。配置主机适配器驱动程序,通过初始 RAM 磁盘进行加载,初始 RAM 磁盘将在引导过程中加载适配器模块时对冗余磁盘应用配置数据。注意:只要逻辑磁盘的配置发生变化,都必须执行这个过程将有效配置保存到磁盘上。
在一个具有多个存储节点并且需要进行负载均衡的配置中,使用 MSJ 最有效的方法是保持 MSJ 在一个节点上打开,然后在其他每个节点上运行 qlremote,并使用一个 MSJ 会话连接到其他相应的会话。
|
|
本节将详细介绍在创建 GPFS 集群过程中所需要的步骤。此处假设所有节点都已经按照本文前面的介绍进行了安装和配置,或者已经手工执行了下面的配置:
- 每台计算机上已经安装了 GPFS RPM。
- PATH 已经修改为包括 GPFS 二进制文件目录。
- 已经配置好存储接口。
- 不用输入密码就可以以根用户身份在节点之间以 ssh 连接。
- 已经在 sysctl 中完成了网络调优设置。
- NSD 服务器可以看到一块 SAN 磁盘。
在本系列文章的 第 3 部分 的 “存储架构” 一节中可以看到对这个示例集群的 GPFS 架构的详细介绍。
请结合 GPFS 文档阅读本节内容(请参看 参考资料),尤其是以下内容:
-
GPFS V2.3 Administration and Programming Reference,其中包含了对很多管理任务和 GPFS 命令的详细介绍。
-
GPFS V2.3 Concepts, Planning, and Installation Guide,详细介绍了对 GPFS 集群的规划考虑,以及在安装新集群过程中所执行的步骤。
- GPFS V2.3 Problem Determination Guide,其中包含了进行故障诊断时所包含的步骤,以及 GPFS 的错误消息。
GPFS
可移植层(PL)是一组二进制文件,需要从源代码开始进行本地编译,以便匹配作为 GPFS 集群一部分的计算机上的 Linux
内核和配置。对于这个示例集群来说,这个过程是在一个存储节点上进行的。所生成的文件会使用 CSM 和 CFM 拷贝到每个节点上。(详细信息请参看
分发 GPFS 可移植层 一节的内容)。这是一个有效的方法,因为所有计算机都使用相同的架构,并且使用的是相同的内核。编译 GPFS PL 的命令可以在
/usr/lpp/mmfs/src/README
中找到。这个示例集群使用的步骤如下所示:
- 导出
SHARKCLONEROOT=/usr/lpp/mmfs/src
。
- 输入
cd /usr/lpp/mmfs/src/config, cp site.mcr.proto site.mcr
。
- 编辑新文件 site.mcr 来匹配要使用的配置。确保以下行没有被注释掉:
-
#define GPFS_LINUX
-
#define GPFS_ARCH_X86_64
-
LINUX_DISTRIBUTION = REDHAT_AS_LINUX
-
#define LINUX_DISTRIBUTION_LEVEL 34
-
#define LINUX_KERNEL_VERSION 2042127
a #
不代表注释。)
-
- 输入
cd /usr/lpp/mmfs/src
。
- 使用
make World
创建 GPFS PL。
- 使用
make InstallImages
将 GPFS PL 拷贝到/usr/lpp/mmfs/bin
目录中。GPFS PL 中包含以下 4 个文件:-
tracedev
-
mmfslinux
-
lxtrace
-
dumpconv
-
- 拷贝一组这些文件(每个对应内核使用一个)到 CSM 结构中,以便使用 CFM 进行分发。
您可以使用几个独特的步骤为这个例子创建 GPFS 集群。尽管所有这些步骤都不是必须的,但是处理集群中不同类型的节点(存储节点或其他节点)是一种好方法。
第一个步骤是创建一个只包含存储节点和 quorum 节点的集群:一共有 5 个节点。在创建包含要包括的所有节点的存储接口的主机简写名时,请使用描述符文件,描述符文件之后再加上以下信息:
- 管理节点或客户机:定义节点是否构成从中提取配置和文件系统管理器的一个资源池的一部分。示例集群中只包括了这个资源池中的存储节点。
- Quorum 或 nonquorum:定义节点是否应该算做一个 quorum 节点。示例集群中的 quorum 节点是存储节点和 tiebreaker 节点
quor001
。
创建集群的命令如下:
mmcrcluster -n stor.nodes -C gpfs1 -p stor001_s -s stor002_s -r /usr/bin/ssh -R |
-
-C
标志设置了集群名。
-
-p
设置主配置服务器节点。
-
-s
设置次配置服务器节点。
-
-r
为 GPFS 使用的远程 shell 程序设置完整路径。
-
-R
设置 GPFS 使用的远程文件拷贝程序。
下面是示例集群中使用的 stor.nodes
节点描述符文件:
stor001_s:manager-quorum |
对要加入集群中的所有其他节点,例如计算节点、用户节点和管理节点,请在以后步骤中添加类似于
<nodename>_s:client-nonquorum
的项。
在 quorum 节点上启用 unmountOnDiskFail
下一个步骤是在 tiebreaker 节点上使用 mmchconfig unmountOnDiskFail-yes quor001_s
启用 unmountOnDiskFail
选项。这可以防止 SAN 配置中的虚假磁盘错误被误报给文件系统管理器。
下一个步骤是使用 mmcrnsd –F disc#.desc
命令创建 GPFS 所使用的磁盘。运行这个命令为每个磁盘创建一个全局名,这是一个必要的步骤,因为磁盘在 GPFS
集群中的每个节点上可能有不同的 /dev 名。对 GPFS 文件系统要使用的所有磁盘运行该命令。现在,为每个磁盘定义主 NSD 服务器和次
NSD 服务器;它们用于代表 NSD 客户机的 I/O 操作,NSD 客户机不能够本地访问 SAN 存储。
定义为 NSD 的磁盘的磁盘描述符包含在一个文件里,-F
标志就用来指向这个文件。为了保证示例集群的可管理能力,请在每个 DS4500 的 LUN 上执行一次该过程,并在 tiebreaker 磁盘上执行一次该过程。每个磁盘阵列或 DS4500 上的每个 LUN 在所使用的文件中都有一个描述符。下面是从 disk1.desc
中摘录出来的一行:
sdc:stor001_s:stor002_s:dataAndMetadata:1:disk01_array01S |
下面是该行中的几个字段,按顺序依次显示:
- 主 NSD 服务器上的本地磁盘名
- 主 NSD 服务器
- 次 NSD 服务器
- 数据类型
- 故障组
- 所生成的 NSD 的名称
通过使用上面的描述符文件,可以在这个配置中定义下面的 3 个故障组:
- 第一个 DS4500 中的磁盘,即
disk01
。
- 第二个 DS4500 中的磁盘,即
disk02
。
- quorum 节点上的 tiebreaker 磁盘。
下一个步骤是使用下面的命令在集群范围内启动 GPFS:
- 在所有 NSD 服务器上启动 GPFS,同时防止 NSD 被标记为 down 状态。请使用下面的命令:
mmstartup -w stor001_s,stor002_s,stor003_s,stor004_s
。
- 在所有不是 NSD 服务器的其他节点(包括 tiebreaker 节点)上启动 GPFS。请使用下面的命令:
mmstartup -w quor001_s,mgmt001_s,...
- 从管理节点上在所有计算节点上启动 GPFS。请使用下面的命令:
dsh -N ComputeNodes /usr/lpp/mmfs/bin/mmstartup
。
- 检查所有节点的状态,方法为:监视当前文件系统管理器上的
/var/adm/log/mmfs.log.latest
文件(使用mmlsmgr <filesystem>
命令时可以找到),并监视下面这个命令的输出结果:mmgetstate -w <nodenames> dsh -N ComputeNodes /usr/lpp/mmfs/bin/mmgetstate
。
mmstartup –a
。这对于小型集群来说可以正常工作,但是对于大型集群来说,可能会需要花费很长一段时间来返回,在大型集群中,可能有些节点会由于各种原因而变得不可访问,例如网络问题。
对于本例来说,使用所有定义为 GPFS 的 NSD 创建了一个大型的 GPFS 文件系统。注意所使用的命令使用上面的 mmcrnsd
命令中的不同磁盘描述符文件作为参数。这需要将创建 NSD 的每个步骤中的输出结果连接到一个文件中。
示例集群使用了以下设置:
- 所有 NSD(使用
-F
设置)
- Mountpoint:
/gpfs
- Automount:是(使用
-A
设置)
- Blocksize:256KB(使用
-B
设置)
- 复制:数据和元数据都有两个拷贝(使用
-m, -M, -r, -R
设置)
- 挂载文件系统的节点估计数:1200(使用
-n
设置)
- 启用配额(使用
-Q
设置)
下面是完整的命令:
mmcrfs /gpfs /dev/gpfs -F disk_all.desc -A yes -B 256K -m 2 -M 2 |
在创建 /gpfs
之后,要手工进行第一次挂载。然后,如果启用了 automount,就可以在节点启动 GPFS 时自动挂载。
上面 mmcrfs
命令的
-Q
标志在
/gpfs
文件系统上启用配额。可以为每个用户或组用户定义配额。默认配额已经进行了设置,可以适用于任何新用户或组。可以使用命令
mmdefquotaon
启用默认配额。使用 mmdefedquota
命令编辑默认配额。这个命令打开了一个编辑窗口,其中可以指定配额的范围。下面的示例演示了配额范围的设置:
gpfs: blocks in use: 0K, limits (soft = 1048576K, hard = 2097152K) |
使用
mmedquota –u <username>
命令可以为一个用户或组编辑特定配额。用户可以使用命令 mmlsquota
显示自己的配额。超级用户可以使用 mmrepquota gpfs
命令显示文件系统的配额状态。
这个集群经过配置后,当服务器引导时,使用 mmchconfig autoload=yes
命令在 /etc/inittab
中添加一项,GPFS 就可以自动启动。
使用 GPFS pagepool
可以缓存用户数据和文件系统元数据。pagepool
机制允许 GPFS 将读请求与写请求异步实现。增加 pagepool
的大小可以增大 GPFS 可以缓存的数据或元数据量,而不需要执行同步 I/O。 pagepool 的默认值是 64 MB。最大 GPFS pagepool
大小是 8 GB。所允许的最小值是 4 MB。在 Linux 系统上,
pagepool
的最大值是计算机物理内存的一半
pagepool
的理想大小取决于应用程序以及对其重新访问的数据的有效缓存的需要。如果系统中的应用程序可以访问大型文件、重用数据、可以从 GPFS 数据预取获益或具有随机 I/O 模式,增加
pagepool
的值可能会进一步获益。然而,如果该值设置得太大,那么 GPFS 就无法启动。
对于示例集群来说,集群中所有节点的
pagepool
所使用的值都是 512 MB。
要对网络性能进行优化,GPFS 通过将存储网络适配器的 MTU 的大小设置为 9000 来启用巨帧。始终启用
/proc/sys/net/ipv4/tcp_window_scaling
,因为这是默认设置。TCP 窗口设置在安装时使用 CSM 脚本进行了调优,方法是将下面几行添加到 NSD 服务器和 NSD 客户机的
/etc/sysctl.conf
文件中:
# increase Linux TCP buffer limits |
存储服务器缓存设置如果设置错误,可能会影响 GPFS 性能。本例在 DS4500s 上使用了以下设置,这也是 GPFS 文档的推荐设置:
- Read cache:启用
- Read ahead multiplier:0
- Write cache:禁用
- Write cache mirroring:禁用
- Cache block size:16K
|
|
就是这样!您应该已经按照本系列文章中的例子成功安装了一个大型的 Linux 集群。在自己的安装中应用这些原则就可以成功安装另外一个大型 Linux 集群。
相关推荐
GPFS 安装配置是 GPFS 环境搭建的重要步骤,包括配置 ssh 信任关系、AIX 安装 GPFS 软件、Linux 安装 GPFS 软件、GPFS 集群配置等。 * 配置 ssh 信任关系:需要配置 ssh 信任关系,以确保 GPFS 集群中的节点可以...
【安装大型Linux集群】系列教程主要面向系统架构师和工程师,旨在集中介绍如何在IBM eServer集群1350框架中构建和安装大型Linux集群。本文档的第一部分着重于硬件设置,包括理解集群架构、规划逻辑网络设计、设置...
《安装大型 Linux 集群》系列文章旨在为读者提供一个全面的指南,帮助他们了解如何构建和配置大型 Linux 集群。本文作为系列的第一篇,重点介绍集群安装的基本概念和技术。 #### 二、集群安装概览 ##### 2.1 硬件...
这篇归纳涵盖了从硬件配置到软件安装的全过程,适合用于大型Linux集群的规划和实施。 首先,硬件配置是集群搭建的基础,包括理解架构、规划逻辑网络设计、设置终端服务器以及更新固件等关键环节。在物理设计阶段,...
建立集群是 GPFS 安装的重要步骤,包括创建集群文件系统、显示集群文件系统和创建 NSD 等。 创建 NSD 创建 NSD 是 GPFS 安装的重要步骤,包括创建 NSD 和创建文件系统等。 GPFS for Linux 安装与实施是一个复杂的...
4. **扩展性**:GPFS可以轻松地添加或移除节点,以适应不断变化的工作负载和数据增长需求。这种横向扩展能力使其能够在大规模集群中保持高效运行。 5. **文件系统管理**:基础包中的管理工具允许管理员配置和监控...
在GPFS集群配置阶段,需要建立GPFS集群、修改配置并添加节点。紧接着,配置GPFS的共享盘,建立Network Shared Disk(NSD),这是GPFS用于管理共享存储的机制。然后,建立并配置GPFS的共享文件系统,这样不同的节点...
Linux下的IBM GPFS(Global Parallel File System)是一个强大的文件系统,设计用于在大规模集群环境中提供高可用性和高性能的数据访问。GPFS将多个物理磁盘整合为一个逻辑文件系统,允许多台服务器同时读写数据,...
- **显示集群配置信息**:提供了命令来查看 GPFS 集群的当前配置状态。 - **添加节点到 GPFS 集群**:详细说明了将新节点加入现有 GPFS 集群的过程。 - **从 GPFS 集群删除节点**:指导用户如何安全地移除不再需要的...
4. IBM GPFS mmd 守护进程的配置:这部分涉及如何启动GPFS集群,创建网络共享磁盘(NSD)以及如何在集群中创建和挂载文件系统。 5. 新增IBM GPFS客户端:说明如何为已有的GPFS集群新增客户端节点,包括配置SSH互信...
GPFS文件系统与Linux集群结合使用时,能够带来诸多优势: 1. **提高系统性能**:GPFS允许多进程或应用使用标准文件系统调用来并发访问同一文件,通过将读写操作分布到多个磁盘上,极大地提升了文件系统的带宽。 2. ...
4. GPFS集群概念:文件系统管理层中的集群技术,例如Replication(复制)和Quorum(法定人数)概念。Quorum用于集群节点间的决策,确保集群操作的一致性。例如,“quorum=1+sizeof(quorumnodes)/2”表明法定人数是...
Linux集群是一种将多台计算机通过网络连接,协同工作,形成一个整体系统的技术。它能够提供高可用性(High Availability, HA)、高性能计算(High Performance Computing, HPC)以及负载均衡等服务,是企业级数据...
其次,要设计好GPFS集群的拓扑结构,考虑节点间的通信方式和数据分布策略。最后,对文件系统的容量、性能需求进行预估,以便合理分配资源。 2. GPFS实施 实施GPFS主要分为软件需求和软件安装两个阶段: 2.1 软件...
- 安装所有集群节点的操作系统、软件和补丁,划分共享存储,配置网络。 - 确保集群内所有主机名均能正确解析(DNS/主机文件)。 - 配置RSH/SSH,确保节点间通信正常。 - 集群内所有主机的时间同步,便于后期故障...
- **Oracle 10g Clusterware安装**:安装Oracle Clusterware,并配置集群资源,包括监听器和数据库实例。 - **Oracle 10g Clusterware补丁集更新**:应用最新的补丁集,以确保系统的稳定性和安全性。 - **Oracle 10g...
- GPFS 提供了每个集群节点对单个文件的并发读写访问能力。 - 这种设计使得多台服务器能够同时访问同一份数据,极大地提高了应用性能和资源利用率。 4. **高可靠性和可用性** - 通过冗余路径和自动故障恢复机制...
1. 自动在各个节点间同步配置文件和文件系统信息,并在同一个节点内,对 GPFS 的管理可以在任一个节点上进行,实现简单管理。 2. 支持大部分的操作系统,如 AIX/Linux/Windows 环境,并支持混合部署,达到不同...