安装大型 Linux 集群,第 2 部分: 配置管理服务器和安装节点

大型 Linux 集群入门

从多个独立的硬件和软件,包括 System x™ 和 IBM TotalStorage® 系统,创建一个可运行的 Linux® 集群。这个系列包含多个部分,本文是其中的第 2 部分,阐述了如何配置集群中的管理服务器以及如何安装节点。

Graham White (gwhite@uk.ibm.com), 系统管理专家, IBM

Graham White 照片Graham White 是位于英国的 IBM Hursley Park 办公室新兴技术服务部门的 Linux 集成中心的系统管理专家。他是 Red Hat 认证工程师,专攻各种开源、开放标准和 IBM 技术,Graham 专业领域包括 LAMP、Linux、安全性、集群和所有 IBM Systems 硬件平台。他在 2000 年获得 Exeter 大学的计算机科学与管理科学的理学学士学位(荣誉)。



Mandie Quartly (mandie_quartly@uk.ibm.com), 信息技术工程师, IBM

Photo of Mandie QuartlyMandie Quartly 是 IBM 英国全球技术服务团队的 IT 专家。Mandie 执行跨品牌角色,目前正在使用 Intel 和 POWER™ 平台的实现以及 AIX 和 Linux(Red Hat 和 Suse)。她专门研究 IBM 的产品 —— 通用并行文件系统(GPFS)。她在 2001 年获得了 Leicester 大学的天体物理学博士学位。



2007 年 3 月 13 日

简介

本文是系列文章中的第 2 部分,该系列涵盖了安装和设置一个大型 Linux 计算机集群的全部内容。有关如何从多个独立的硬件和软件创建一个可运行的 Linux(R) 集群的资源很多,本系列力求把这些公共领域里的资源中的最新信息集中起来以供您参考。本系列文章无意为您提供有关如何设计一个新的大型 Linux 集群的基础知识;要获得一般性的架构方面的知识,请参考本文中提到的相关参考资料和 Redbooks™。

本系列是针对系统架构师和系统工程师使用 IBM eServer™ Cluster 1350 框架(关于该框架的更多信息,请参见 参考资料)计划和实现 Linux 集群而设计的。其中的一部分内容可能会与集群管理员的日常集群操作有关。

本系列的 第 1 部分 详细阐述了设置集群硬件的操作指导。第 2 部分将带您亲历硬件配置的后续步骤:安装软件,这其中会用到 IBM systems 管理软件、Cluster Systems Management (CSM) 和节点安装。

本系列的后续部分会介绍有关集群后端存储的内容,包括存储硬件配置和 IBM 共享文件系统 General Parallel File System (GPFS) 的安装和配置。


配置管理服务器

设置集群的软件需要两个阶段:首先,按照本系列第 1 部分所述安装集群管理服务器,然后,安装集群的剩余部分,如 “安装节点” 一节所示。遵循这样的步骤进行操作让您可以使用管理服务器来帮助配置集群的剩余部分,而且会非常有助于安装后的维护和操作。

安装 Linux

在管理服务器上安装全新的操作系统。确定管理服务器具有如下配置。本例使用的是 System x 346 机器,一款典型的 IBM 管理服务器,其上运行 Red Hat Enterprise Linux (RHEL) 3,当然您也可以使用运行其他 Linux 版本,比如 Suse Linux Enterprise Server (SLES),的其他计算机。System x 346 具有 64 位处理能力,所以安装的操作系统是 RHEL 3 的 x86_64 架构,并带 ServeRAID 7k 卡和双磁盘镜像。当然,您的环境可以与之不同,但安装 CSM 管理服务器的基本配置应该大体与之类似。

用最新的 IBM ServeRAID 支持 CD 引导服务器来为 RAID 1(镜像)配置板载磁盘,前提是服务器内至少有两个磁盘,并且需要为操作系统启用磁盘故障保护。

将磁盘配置为单一镜像之后,用第一个 RHEL CD 引导服务器来安装 RHEL 操作系统。根据控制台的不同,您可能需要更改安装的外观。例如,对于一个低分辨率的控制台,您可能需要通过在引导提示符后键入 linux vga=normal 来引导 CD。当看到 Linux 安装 GUI 时,请按照以下指导正常进行安装:

  1. 选择语言、键盘图、鼠标类型等。
  2. 配置磁盘分区,如下所示:
    • 128Mb /boot 主分区。
    • 2 GB 交换分区。
    • 将剩余空间分配给 LVM 分区且不进行格式化
  3. 执行逻辑卷 (LVM) 设置,如下所示:
    • 命名卷组系统。
    • 添加逻辑卷,如 表 1 所示。
  4. 设置网络接口,如下所示:
    • 根据以上的示例主机文件,激活 boot 上具有固定 IP 地址 192.168.0.253/24 的 eth0 。
    • 将主机名设置为 mgmt001.cluster.com.
    • 在此阶段,不需要设置网关/DNS ,如果有外部 IP 信息,可以在安装过程中再对其进行配置。
  5. 将防火墙设置为 no firewall 以允许所有连接。如果需要 IP 表,可以在后面对之进行配置。
  6. 应用本地设置,选择合适的时区。
  7. 设置 root 密码;本例中的密码是 cluster
  8. 定制安装包使之包括如下内容:
    • X Window 系统
    • KDE(即,K 桌面环境)
    • Graphical internet
    • 服务器配置工具
    • FTP 服务器
    • 网络服务器
    • 遗留软件开发
    • 管理工具
  9. 开始安装。
表 1. 逻辑卷布局
逻辑卷挂载点大小
Root/8192 MB
Var/var8192 MB
Usr/usr8192 MB
Opt/opt4096 MB
Tmp/tmp2048 MB
Csminstall/csminstall10240 MB

安装完成后,需要逐一处理所有安装后的设置屏幕。针对您自己的环境对管理服务器进行安装后的定制。比如,您可能需要配置 X 服务器使之适合您自己的 KVM(键盘、视频和鼠标)设置。

安装 CSM

在支持系统上安装 Cluster Systems Management (CSM) 软件总的来说多少比较简单。在 IBM Linux 集群文档库(参见 参考资料)可以找到 HTML 格式和 PDF 格式的相关文档。

第一步是将软件复制到管理服务器。因为必须要以 root 用户身份执行安装,所以可以将其存储到 root 根目录。表 2 给出了一种合适的目录结构。

表 2. CSM 软件
目录描述
/root/manuals/csm/ PDF 格式的 CSM 文档
/root/manuals/gpfs/PDF 格式的 GPFS 文档
/root/manuals/rsct/PDF 格式的 RSCT 文档
/root/csm/CSM 软件(CSM 压缩包的内容)
/root/csm/downloads/开源 RPMS for CSM 下载(例如 autorpm

要安装 CSM,需安装 csm.core i386 RPM 包。该包也适用于 the x86_64 架构。安装完该包之后,就可以安装 CSM 管理服务器了。首先,将 /etc/profile.d/Csm.sh 引入到当前的 shell 来获得新的路径设置。然后,运行 installms 命令并将 CSM 许可证应用到系统。以下是需要输入的命令:

rpm -ivh /root/csm/csm.core*.i386.rpm
. /etc/profile.d/Csm.sh
installms -p /root/csm/downloads:/root/csm
csmconfig -L <Your License File>

注意:如果没有 CSM 许可证文件,同样可以运行 csmconfig -L 命令接受 60 天的试用许可证。60 天的试用期过后,您必须要应用正式的 CSM 许可证以继续 CSM 功能。

针对大型集群进行优化

CSM 本身就具有可伸缩性。Red Hat Linux 在许多标准条件下也能很好地正常工作。但为了让大型的集群环境能顺利运行,还是需要对管理服务器进行一些优化。以下列举了优化方法的一些样例:

侦听在特定接口上的 DHCP 请求。
编辑 /etc/sysconfig/dhcpd DHCPD 配置文件以使 DHCPDARGS 设置为合适的接口。变量 DHCPDARGS 存在于 Red Hat Linux 的 /etc/init.d/dhcpd DHCPD 启动脚本中,用来启动具有特定参数的 DHCP 守护程序。为了能够在 eth0 侦听,请确保多个参数均已包含在引号之内,如下所示:
DHCPDARGS="eth0"
增加 ARP 表大小和超时设置。
如果一个很大的网络的同一个子网上具有很多或全部集群,ARP 表就可能会过载,就会让人觉得 CSM 和网络请求的响应速度太慢。为了避免上述现象,需要对运行中的系统做如下更改,并将这些更改添加到 /etc/sysctl.conf 文件,以使更改能够持久有效:
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.neigh.default.gc_thresh1 = 512
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.default.gc_stale_time = 240
增加 NFS 守护程序的数量。
默认地,标准的 CSM 扇出值为 16。这意味着跨集群运行的命令会一次运行 16 个节点,节点安装也是如此。Red Hat Linux 的标准 NFS 设置是 8 个可同时运行的守护程序。您可以扩展 NFS,方法是增加 NFSD 线程数到 16 以匹配默认的 CSM 扇出值。如果增加扇出值,您可能也会想增加 NFS 的线程数。一般地,扇出值为 32、NFS 线程数为 32 对于保证速度和可靠性已经足够,而且还能允许同时安装具 32 节点的单个 rack。要实现这一目的,创建配置文件 /etc/sysconfig/nfs 并添加如下行:
RPCNFSDCOUNT=16
设置 NTP 服务器。
默认的 Red Hat Linux 配置应该也适用于 NTP 服务器。向 /etc/ntp.conf NTP 配置文件添加一个配置行以允许集群网络上的节点能够与管理服务器的时钟同步,如下所示:
restrict 192.168.0.253 mask 255.255.255.0 notrust nomodify notrap

如果管理服务器能够连到一个外部的时钟服务器,通过添加如下一行来将该管理服务器的时钟与这个外部时钟服务器同步:
server server.full.name

通过如下指令确保 NTP 服务器在运行并会在引导时自动启动:
chkconfig ntpd on
service ntpd start

安装节点

完成所有的设置和配置步骤之后,CSM 管理服务器就安装完毕了。在安装节点之前,需要在 CSM 管理服务器上完成一些额外的配置来定义节点安装的方式。在 CSM 管理服务器上执行本节所示的安装步骤。

定义节点

可以参考有关定义节点手册页来定义节点。但定义大量节点的一种更为简单的方法是通过节点定义文件。具体做法是先创建一个 stanza 文件,然后将它作为参数传递给 CSM 来定义所有列出的节点。创建 stanza 文件很容易。

清单 1 给出了一个简短的示例节点定义文件。如果其他节点具有与之相同的属性,可以在默认 stanza 文件的顶部定义它们。之后,每个 stanza 都应该代表一个节点名,下跟特定于节点的属性。这个例子显示了应该如何定义示例集群中的这三个机器 —— 两个计算节点,一个存储服务器。

清单 1. 示例节点定义文件
  default:
  ConsoleMethod = mrv
  ConsoleSerialDevice = ttyS0
  ConsoleSerialSpeed = 9600
  InstallAdapterName = eth0
  InstallCSMVersion = 1.4.1
  InstallMethod = kickstart
  InstallOSName = Linux
  InstallPkgArchitecture = x86_64
  ManagementServer = mgmt001.cluster.com
  PowerMethod = bmc
node001.cluster.com:
  ConsolePortNum = 1
  ConsoleServerName = term002
  HWControlNodeId = node001
  HWControlPoint = node001_d.cluster.com
  InstallDistributionName = RedHatEL-WS
  InstallDistributionVersion = 4
  InstallServiceLevel = QU1
node002.cluster.com:
  ConsolePortNum = 2
  ConsoleServerName = term002
  HWControlNodeId = node002
  HWControlPoint = node002_d.cluster.com
  InstallDistributionName = RedHatEL-WS
  InstallDistributionVersion = 4
  InstallServiceLevel = QU1
stor001.cluster.com:
  ConsolePortNum = 2
  ConsoleServerName = term001
  HWControlNodeId = stor001
  HWControlPoint = stor001_d.cluster.com
  InstallDistributionName = RedHatEL-AS
  InstallDistributionVersion = 3
  InstallServiceLevel = QU5

对于大型集群来说,节点定义文件的脚本要比本例中的这个脚本长很多。当如果将以下命令传递给 CSM ,它可以非常迅速地创建节点:

definenode -f <node-def-filename>

注意 node-def-filename 可被改为您在其中存储节点定义文件的文件名,例如,definenode -f //tmp/my_nodes.def

CSM 节点数据库现在应该包含所有节点。对于本例中这个小型的集群来说,节点数据库应该包含 16 个计算节点、1 个用户节点、1 个调度器节点和 1 个存储服务器。CSM 管理服务器并不出现在 CSM 数据库内。可以通过 lsnodes 命令查看节点列表。还可以使用 lsnode -F 命令来查看更加详细的列表,该列表可用来备份 CSM 节点定义。如果将该命令的输出重定向到一个文件,您就可以使用 definenode -f 命令来重新定义节点了。

定义节点组

CSM 允许通过一些条件来对节点进行分组,这样,以后就可以针对某一组节点应用 CSM 命令了。对于需要引用具有相同属性的同类节点的情况来说,这一点将非常有用。

CSM 既支持动态节点组又支持静态节点组。静态节点组包含节点名的一个固定列表,该列表可由管理员手动维护。比如,使用静态节点组,您必须手动将新定义的节点添加到相应的节点组中。在大型集群中,动态节点组更为常见,而且如果能被很好地设置还能节省大量时间和减少在命令行内的输入。动态节点组定义了这样的一个节点列表,该列表中的成员由特定的条件定义,而且如果一个节点(包括新定义的节点)满足这个给定的条件,它就会被自动放到相应的节点组。表 3 给出了一些动态节点组的定义。

表 3: 动态节点组
定义命令注释
Nodegrp -w "Hostname like 'node%'" ComputeNodes创建一个 ComputeNodes 节点组
Nodegrp -w "Hostname like 'schd%'" SchedulerNodes创建一个 SchedulerNodes 节点组
Nodegrp -w "Hostname like 'stor%'" StorageNodes创建一个 StorageNodes 节点组
Nodegrp -w "Hostname like 'user%'" UserNodes创建一个 UserNodes 节点组
Nodegrp -w "Hostname like 'node%' && ConsoleServerName=='term002'" Rack02 nodegrp -w "Hostname like 'node%' && ConsoleServerName=='term003'" Rack03 nodegrp -w "Hostname like 'node%' && ConsoleServerName=='term...'" Rack... 基于 HostnameConsoleServerName 为每个 rack 创建一个节点组。假设每个 rack autorpm 有一个控制台服务器。

准备 Linux 发布版

CSM 管理服务器应该包含需要跨集群安装的所有 Linux 发布版的 CD 上的全部内容。它也应该为在客户机上进行 CSM 安装做好准备,这是在任何安装进行之前都必须要做的。CSM 为此提供了两个命令,您必须为每个要安装的 Linux 发布版都要运行这两个命令。

要用所需的 CSM 数据准备 /csminstall/Linux 树,可以运行 copycsmpkgs 命令。例如:

copycsmpkgs -p /path/to/csm:/path/to/downloads InstallDistributionName=RedHatEL-WS 
	InstallDistributionVersion=4 InstallServiceLevel=QU1
copycsmpkgs -p /path/to/csm:/path/to/downloads InstallDistributionName=RedHatEL-AS 
	InstallDistributionVersion=3 InstallServiceLevel=QU5

要用所需的 Linux 发布版 CD 准备 /csminstall/Linux 树,可以运行 copycds 命令,例如:

copycds InstallDistributionName=RedHatEL-WS InstallDistributionVersion=4 
	InstallServiceLevel=QU1
copycds InstallDistributionName=RedHatEL-AS InstallDistributionVersion=3 
	InstallServiceLevel=QU5

一旦为这些 CD 设置好目录结构,您就能添加任意的定制包来在系统安装过程中进行安装或更新,例如:

  • Copy to /csminstall/Linux/.../x86_64/install to ensure they are installed.
  • Copy to /csminstall/Linux/.../x86_64/updates to install only if an existing version is present.

可以用节点组名创建子目录以便在特定节点组上只安装或更新 RPMS(如果需要这么做的话)。

设置 CFM

CSM 具有称为 Configuration File Manager (CFM) 的机制,可以用来跨集群分布文件。使用 CFM 可以跨集群发送相同的文件。如果在节点安装之前就做好设置,文件就会在安装过程中被分发。

CFM 可以包含到管理服务器上的其他目录中的文件的链接。这些链接在被发送到节点时是跟随过来的而不是被复制过来的。这一点对于 hosts 之类的文件非常有用,如下所示:

mkdir /cfmroot/etc
ln -s /etc/hosts /cfmroot/etc/hosts

除了链接文件外,还可以复制文件到 CFM,例如:

  • 复制默认的 NTP 配置文件到 /cfmroot/ntp.conf
  • 为管理服务器添加服务器行,如下所示:
    /cfmroot/etc/ntp
    echo "management.server.full.name" gt; /cfmroot/etc/ntp/step-tickers

文件将会跨集群分发。

在需要将少量文件发送到集群上的特定地点时,可以使用 CFM。但如果是要分发大型集群上的大量文件,最好不要使用 CFM 。例如,不要使用 CFM 来从一个 tar 归档文件安装额外的软件。如果在大型集群硬要使用 CFM,CFM 会花很长的时间运行,使之异常难用。请务必坚持用受支持的安装机制来安装软件。例如,使用 RPM 而非 tar 文件来安装软件并只复制配置文件(即那些很可能会随时间而更改的文件)到 CFM。

定制节点构建

对于您计划安装在每个节点的操作系统来说,CSM 都有到标准网络安装机制的接口,比如 NIM on AIX®、autoYaST on Suse Linux 和 kickstart on Red Hat Linux。这里以 Red Hat 为例说明如何使用 kickstartkickstart 配置文件进行节点安装。

在开始设置 kickstart 之前,先要检查您是否拥有对所有节点的 rpower 控制权。这有助于 CSM 获得计算机的 UUID,尤其是在更新的 CSM 版本中。如果 UUID 不可用,或者 CSM 版本低于 1.4.1.3,CSM 就会尝试从节点的第一个 Ethernet 设备获得 MAC 地址。为了使 CSM MAC 地址收集可用,终端服务器配置必须匹配节点 BIOS 中的设置。使用 rconsole 命令可检查终端服务器连接。当成功建立起 rpower 控制和终端服务器连接(如果合适的话 )之后,就可以继续 kickstart 配置了。

CSM 在文件 /opt/csm/install/kscfg.tmpl.* 中提供了默认的 kickstart 模板。如果需要的话,可以将这些模板复制到不同的文件并加以定制以更好地满足您自己的环境要求。这些模板是一个很好的起点,一般来说,您都应该采取对这些模板文件进行定制的方式而不是使用任何其他标准 kickstart 文件。原因是这些模板包含各种 CSM 函数(例如运行一个安装后脚本)的宏。CSM 通常在生成最终的 kickstart 文件供节点使用之前会先分析 kickstart 模板文件,这对于 kickstart 过程非常有帮助。最终的文件包含所有解析过的宏并包含针对模板内定义的一切内容的全部脚本。

通常,可以通过如下方式对模板进行更改:

  • 更改磁盘分区,可能需要包括 LVM
  • 改变默认密码
  • 编辑要被安装的包列表

编辑完 kickstart 模板之后,运行 CSM setup 命令来生成最终的 kickstart 文件,并按如下所示进行最初的 UUID 或 MAC 地址收集:

csmsetupks -n node001 -k /opt/csm/install/your.kickstart.file -x

注意:需要使用 -x 开关,因为先前运行了 copycds 命令。

更新驱动程序

即使在集群中安装了操作系统不能直接支持的硬件,也仍然可能会有相应的驱动程序可以使用。在必要的时候,这个过程也适用于驱动程序更新。如果最终安装和安装操作系统时所用的 RAM 磁盘需要更新驱动程序,CSM 可以自动将附加或替换的驱动程序包括进来。

在使用 System x 硬件的例子时,您通常会希望获得板载 Broadcom Ethernethard 适配器的 Broadcom 网络驱动程序所提供的性能和稳定性。要实现这一目的,可按如下步骤操作,这些步骤使用的是 Broadcom bcm5700 驱动程序而不是 Red Hat Linux 提供的标准的 tg3 网络驱动程序:

  1. 因为处理的是一个内核模块,所以要确保针对目标系统安装的内核源匹配内核等级和类型(UP 或 SMP)。
  2. 从 Broadcom (参看 参考资料)下载最新的 bcm57xx 驱动程序并解包驱动程序源代码。
  3. 从解包后的 bcm 驱动程序的 src 目录运行 make 来针对当前的运行内核进行构建。
  4. 将构建驱动程序 (bcm5700.ko for 2.6 kernel 或 bcm5700.o for 2.4 kernels)复制到管理服务器上的 /csminstall/csm/drivers/lt;kernel versiongt;/x86_64
  5. 如果想针对其他内核版本进行构建,可以运行 make clean 来清除当前的构建,然后再运行 make LINUX=/path/to/your/kernel/source

CSM 在构建 RAM 磁盘映像时,使用目录结构 /csminstall/csm/drivers/lt;kernel versiongt;/lt;architecturegt 之下的驱动程序;当内核版本匹配 RAM 磁盘内核版本时,这些映像用来在安装过程中引导系统。注意当为安装映像创建驱动程序时一定要小心:安装内核的内核版本号可能会不一样。例如 Red Hat 通常会在版本字符串尾部追加单词 BOOT。如果内核版本与所安装系统的运行内核相匹配,驱动程序对当前的操作系统也可用。如果您不能确认内核的版本,可以在 RAM 磁盘映像内进一步深入研究,如以下一节所述。

修改 RAM 磁盘

通常,这一步骤不推荐使用。但有时候又不得不这么做,比如不能确认内核版本的情况。在由于更新应用程序或其他情况而需要深入研究 RAM 磁盘映像时,以下命令会很有帮助。

当使用主机总线适配器 (HBA) 将存储直接被连到 Red Hat Linux 系统时,存储驱动程序(例如 qlogic qla2300 驱动程序)可能会在 ServeRAID 驱动程序(用于内部系统磁盘即操作系统磁盘)之前加载。如果是这样,就意味着安装在错误的磁盘上了。/dev/sda 代表的是附加存储介质而非本地磁盘上的 LUN。在这种情况下,在安装新的操作系统时,对重写 SAN 上而非本地磁盘上的数据要格外小心。为避免其发生,请从 CSM 用来创建引导映像的默认 Red Hat RAM 磁盘上移除 qlogic 驱动程序。当然,系统运行时也需要驱动程序,所以请使用另外一种机制,例如 post 安装脚本来为运行中的操作系统安装驱动程序。由于默认 Red Hat qlogic 驱动程序通常都不是故障转移驱动程序,所以推荐采用上述做法。

例如,从 Red Hat Enterprise Linux Advanced Server Version 3 的默认 RAM 磁盘映像移除 qla2300 驱动程序。表 4 给出了能实现此目的的命令。

表 4: RAM 磁盘命令
命令目的
cd /csminstall/Linux/RedHatEL-AS/3/x86_64/RedHatEL-AS3-QU5/images/pxeboot 转到包含所需更改的 RAM 磁盘映像的那个目录。
cp initrd.img initrd.img.orig 备份原始映像。
mkdir mnt 创建一个挂载点。
gunzip -S .img initrd.img 解包这个映像。
mount -o loop initrd.img /mnt 将这个映像挂载到挂载点。
手动步骤手动移除所有到 mnt/modules/* 中的 qla[23]00 的引用。
cp mnt/modules/modules.cgz 将模块归档文件从映像复制到当前目录。
gunzip -c modules.cgz | cpio -ivd 解包这个模块归档文件。
rm modules.cgz 删除这个模块归档文件。
rm 2.4.21-32.EL/ia32e/qla2*从解包后的模块归档文件中删除 qlogic 模块。
find 2.4.21-32.EL -type f | cpio -–o -H crc | gzip -c -9 > modules.cgz 删除 qlogic 模块后,打包剩余模块。
rm -rf 2.4.21-32.EL 删除解包后的模块归档文件。
mv -f modules.cgz mnt/modules 用新的模块归档文件代替旧的模块归档文件。
umount mnt 卸载这个 RAM 磁盘映像。
rmdir mnt 移除挂载点。
gzip -S .img initrd 再次打包这个 RAM 磁盘映像。

注意:要修改 Suse 或 SLES 的 RAM 磁盘,必须确保 ips(ServeRAID 驱动程序)出现在 INITRD_MODULES stanza 之下的 /etc/sysconfig/kernel 文件内的所有 HBA 驱动程序之前。用于创建 RAM 磁盘映像的 Suse 或 SLES 机制可确保驱动程序被顺序加载。

安装重新引导前和重新引导后脚本

由于每个环境和集群都是不相同的,您可能需要应用一些安装后脚本来根据您自己的特定需求定制操作系统安装。可以在重新引导到新安装的系统之前或之后进行这些操作。对于配置备用网络适配器来说,这十分有用,CSM 针对此目的提供了一个示例脚本。由于双网络设置(到每个节点都有一个计算网络和一个存储网络)的原因,这个示例集群将需要使用备用适配器配置。具体的步骤如下所示:

  1. 将 CSM 提供的默认适配器配置脚本复制到 installprereboot 脚本执行目录以使脚本可以在安装时运行,确保它能运行,如下所示:
    cp /csminstall/csm/scripts/adaptor_config_Linux /csminstall/csm/scripts/
    	installprereboot/100_adapter_config._LinuxNodes
    chmod 755 /csminstall/csm/scripts/installprereboot/100_adaptor_config._LinuxNodes
  2. 生成适配器 stanza 文件 /csminstall/csm/scripts/data/Linux_adapter_stanza_file,可如下所示编写头部:
    default:
    machine_type=secondary
    network_type=eth
    interface_name=eth1
    DEVICE=eth1
    STARTMODE=onboot
    ONBOOT=yes
    BROADCAST=192.168.1.255
    NETMASK=255.255.255.0
    MTU=9000
  3. 这会配置所有备用 (eth1) 适配器在引导时启动,并采用针对广播地址、网络掩码和 MTU 大小的默认设置。在附加的 stanza 行内还可以以一种与节点定义文件相同的方式配置特定于计算机的网络细节,如下所示:
    for node in $(lsnodes)
    do
      ip=$(grep $node /etc/hosts | head -n 1 | awk '{print $1}')
      echo -e "$node:\n  IPADDR=$ip" gt;gt; Linux_adaptor_stanza_file
    done
  4. 这会把输出追加到适配器 stanza 文件以为每个计算机配置不同的 IP 地址,如下所示:
    node001.cluster.com:
      IPADDR: 192.168.1.1
    node002.cluster.com:
      IPADDR: 192.168.1.2
    node003.cluster.com:
      IPADDR: 192.168.1.3

安装

在节点安装过程中有两个主要的 shell 环境变量:CSM_FANOUTCSM_FANOUT_DELAY。前一个变量控制向多少节点同时发送 CSM 指令,比如有多少节点从管理服务器被重新引导。后一个变量控制在重新引导下一组要安装的节点时 CSM 要等待多长时间(以秒为单位)。这两个变量的设置分别为 16 个节点用来扇出和在重新引导下一组节点之前要等待 20 分钟。这些默认值对于大多数安装来说是可以接受的,但也可以针对大型集群有所增加。

要以传统方式安装集群,请完成以下步骤:

  1. 配置此安装并按如下所示安装计算节点:
    csmsetupks -N ComputeNodes -k 
    /opt/csm/install/your.kickstart.file.nodes -x
    installnode -N ComputeNodes
  2. 配置此安装并按如下所示安装用户节点:
    csmsetupks -N UserNodes -k /opt/csm/install/your.kickstart.file.user -x
    installnode -N UserNodes
  3. 配置此安装并按如下所示安装调度器节点:
    csmsetupks -N SchedulerNodes -k 
    /opt/csm/install/your.kickstart.file.schd -x
    installnode -N SchedulerNodes
  4. 配置此安装并按如下所示安装存储节点:
    csmsetupks -N StorageNodes -k 
    /opt/csm/install/your.kickstart.file.stor -x
    installnode -N StorageNodes

对于大型集群的安装,需要使用安装服务器来进行分阶段安装,并按如下所示使安装过程并行进行:

  1. 在 CSM 内设置 InstallServer 属性。对于每一个想从安装服务器安装的节点,将 InstallServer 属性设置为该节点所使用的安装服务器的主机名。如果没有设置这一属性,就会使用其默认值,即从中心管理服务器安装。在大型集群环境,比方说,每个 rack 有 32 个节点,可以选择每个 rack 底部的节点作为此集群的安装服务器。在本例中,要将 rack 1 中的 node002node032 配置成从 node001 安装并让 node001 从管理服务器安装,可以使用如下命令:
    chnode -n node002-node032 InstallServer=node001
  2. 按如下所示创建一个包含所有安装服务器的动态节点组和一个包含客户机的动态节点组:
    nodegrp -w "InstallServer like '_%'" InstallServers
    nodegrp -w "InstallServer not like '_%'" InstallClients
  3. 配置此安装并按如下所示安装安装服务器:
    csmsetupks -N InstallServers -x
    installnode -N InstallServers
  4. 要充分利用安装服务器提供的带宽,可增加 CSM 扇出值来同时重新引导更多节点。在这个每个 rack 32 节点的例子中,CSM 的最佳扇出值应该是 32 乘以安装服务器数量(或者在每个 rack 一个节点的情况下,就是 rack 的数量)。在本例中,您也可以将每个安装服务器上的 NFS 线程数增加到 32 来更好地扩展 NFS。使用这种方法,您可以同时安装成百上千台机器。
  5. 配置此安装并按如下所示安装安装客户机:
    csmsetupks -N InstallClients -x
    installnode -N InstallClients

结束语

完成本系列前两个部分给出的所有步骤之后,您就完成了集群的硬件和软件设置,包括设置系统管理软件和节点安装。本系列的后续部分将带您亲历设置后端存储的全过程,具体来说,就是执行存储硬件配置以及安装和配置 IBM 共享文件系统 General Parallel File System (GPFS)。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Linux
ArticleID=201655
ArticleTitle=安装大型 Linux 集群,第 2 部分: 配置管理服务器和安装节点
publish-date=03132007