准备 Linux 发布版2 v7 j8 g8 A9 h
CSM 管理服务器应该包含需要跨集群安装的所有 Linux 发布版的 CD 上的全部内容。它也应该为在客户机上进行 CSM 安装做好准备,这是在任何安装进行之前都必须要做的。CSM 为此提供了两个命令,您必须为每个要安装的 Linux 发布版都要运行这两个命令。
1 S8 ? D$ i T$ A8 e# H- j 要用所需的 CSM 数据准备 /csminstall/Linux 树,可以运行 copycsmpkgs 命令。例如:
: r; [/ S+ L$ A. o+ f copycsmpkgs -p /path/to/csm:/path/to/downloads InstallDistributionName=RedHatEL-WS InstallDistributionVersion=4 InstallServiceLevel=QU1copycsmpkgs -p /path/to/csm:/path/to/downloads InstallDistributionName=RedHatEL-AS InstallDistributionVersion=3 InstallServiceLevel=QU5要用所需的 Linux 发布版 CD 准备 /csminstall/Linux 树,可以运行 copycds 命令,例如:. Y1 N( \& T5 s$ ~
copycds InstallDistributionName=RedHatEL-WS InstallDistributionVersion=4 InstallServiceLevel=QU1copycds InstallDistributionName=RedHatEL-AS InstallDistributionVersion=3 InstallServiceLevel=QU5一旦为这些 CD 设置好目录结构,您就能添加任意的定制包来在系统安装过程中进行安装或更新,例如:
( e5 X' x2 Q$ R Copy to /csminstallhttp://Linux.chinaitlab.com/.../x86_64/install to ensure they are installed. Copy to /csminstallhttp://Linux.chinaitlab.com/.../x86_64/updates to install only if an existing version is present.
# ^& X& k* |7 n7 e 可以用节点组名创建子目录以便在特定节点组上只安装或更新 RPMS(如果需要这么做的话)。
: @ s& e! ]5 {; f! T 设置 CFM
. R5 @. ~) u' w/ C+ R& a CSM 具有称为 Configuration File Manager (CFM) 的机制,可以用来跨集群分布文件。使用 CFM 可以跨集群发送相同的文件。如果在节点安装之前就做好设置,文件就会在安装过程中被分发。8 E* q4 A" C5 I& j! |5 f9 x+ H
CFM 可以包含到管理服务器上的其他目录中的文件的链接。这些链接在被发送到节点时是跟随过来的而不是被复制过来的。这一点对于 hosts 之类的文件非常有用,如下所示: </p>mkdir /cfmroot/etcln -s /etc/hosts /cfmroot/etc/hosts除了链接文件外,还可以复制文件到 CFM,例如:# Z7 C/ n- U5 N7 L x* M
复制默认的 NTP 配置文件到 /cfmroot/ntp.conf 为管理服务器添加服务器行,如下所示:
2 ^0 B4 S8 C- X /cfmroot/etc/ntpecho "management.server.full.name" gt; /cfmroot/etc/ntp/step-tickers文件将会跨集群分发。* j4 \: I6 Z1 f% G& V( T
在需要将少量文件发送到集群上的特定地点时,可以使用 CFM。但如果是要分发大型集群上的大量文件,最好不要使用 CFM 。例如,不要使用 CFM 来从一个 tar 归档文件安装额外的软件。如果在大型集群硬要使用 CFM,CFM 会花很长的时间运行,使之异常难用。请务必坚持用受支持的安装机制来安装软件。例如,使用 RPM 而非 tar 文件来安装软件并只复制配置文件(即那些很可能会随时间而更改的文件)到 CFM。5 E$ O) O% `8 B; `- A- z/ u4 S
定制节点构建
6 r7 `' W9 m( f3 t 对于您计划安装在每个节点的操作系统来说,CSM 都有到标准网络安装机制的接口,比如 NIM on AIX?、autoYaST on Suse Linux 和 kickstart on Red Hat Linux。这里以 Red Hat 为例说明如何使用 kickstart 和 kickstart 配置文件进行节点安装。
7 L( M) n! l R2 ]& [" Q 在开始设置 kickstart 之前,先要检查您是否拥有对所有节点的 rpower 控制权。这有助于 CSM 获得计算机的 UUID,尤其是在更新的 CSM 版本中。如果 UUID 不可用,或者 CSM 版本低于 1.4.1.3,CSM 就会尝试从节点的第一个 Ethernet 设备获得 MAC 地址。为了使 CSM MAC 地址收集可用,终端服务器配置必须匹配节点 BIOS 中的设置。使用 rconsole 命令可检查终端服务器连接。当成功建立起 rpower 控制和终端服务器连接(如果合适的话)之后,就可以继续 kickstart 配置了。
2 k: F3 {3 {; m- p0 L r CSM 在文件 /opt/csm/install/kscfg.tmpl.* 中提供了默认的 kickstart 模板。如果需要的话,可以将这些模板复制到不同的文件并加以定制以更好地满足您自己的环境要求。这些模板是一个很好的起点,一般来说,您都应该采取对这些模板文件进行定制的方式而不是使用任何其他标准 kickstart 文件。原因是这些模板包含各种 CSM 函数(例如运行一个安装后脚本)的宏。CSM 通常在生成最终的 kickstart 文件供节点使用之前会先分析 kickstart 模板文件,这对于 kickstart 过程非常有帮助。最终的文件包含所有解析过的宏并包含针对模板内定义的一切内容的全部脚本。
. ]! R* ?9 p+ }" F* y/ a- i 通常,可以通过如下方式对模板进行更改:
6 z$ j5 |" i6 ~3 R8 y0 g) V' C 更改磁盘分区,可能需要包括 LVM 改变默认密码 编辑要被安装的包列表
8 l5 E" F O$ X! f2 ~( e! i 编辑完 kickstart 模板之后,运行 CSM setup 命令来生成最终的 kickstart 文件,并按如下所示进行最初的 UUID 或 MAC 地址收集:
) [4 [$ ]: ^/ @" q" V csmsetupks -n node001 -k /opt/csm/install/your.kickstart.file -x注意:需要使用 -x 开关,因为先前运行了 copycds 命令。
; {/ y5 w4 x( ?1 } 更新驱动程序
- w6 }5 Y- z/ Z4 U 即使在集群中安装了操作系统不能直接支持的硬件,也仍然可能会有相应的驱动程序可以使用。在必要的时候,这个过程也适用于驱动程序更新。如果最终安装和安装操作系统时所用的 RAM 磁盘需要更新驱动程序,CSM 可以自动将附加或替换的驱动程序包括进来。
2 G3 K$ s: H8 B. I' @1 z 在使用 System x 硬件的例子时,您通常会希望获得板载 Broadcom Ethernethard 适配器的 Broadcom 网络驱动程序所提供的性能和稳定性。要实现这一目的,可按如下步骤操作,这些步骤使用的是 Broadcom bcm5700 驱动程序而不是 Red Hat Linux 提供的标准的 tg3 网络驱动程序:
1 x X8 i/ d, O$ D" U. y 因为处理的是一个内核模块,所以要确保针对目标系统安装的内核源匹配内核等级和类型(UP 或 SMP)。从 Broadcom (参看 参考资料)下载最新的 bcm57xx 驱动程序并解包驱动程序源代码。从解包后的 bcm 驱动程序的 src 目录运行 make 来针对当前的运行内核进行构建。将构建驱动程序 (bcm5700.ko for 2.6 kernel 或 bcm5700.o for 2.4 kernels)复制到管理服务器上的 /csminstall/csm/drivers/lt;kernel versiongt;/x86_64。如果想针对其他内核版本进行构建,可以运行 make clean 来清除当前的构建,然后再运行 make LINUX=/path/to/your/kernel/source。
N9 s e. }6 O- C# e CSM 在构建 RAM 磁盘映像时,使用目录结构 /csminstall/csm/drivers/lt;kernel versiongt;/lt;architecturegt 之下的驱动程序;当内核版本匹配 RAM 磁盘内核版本时,这些映像用来在安装过程中引导系统。注意当为安装映像创建驱动程序时一定要小心:安装内核的内核版本号可能会不一样。例如 Red Hat 通常会在版本字符串尾部追加单词 BOOT。如果内核版本与所安装系统的运行内核相匹配,驱动程序对当前的操作系统也可用。如果您不能确认内核的版本,可以在 RAM 磁盘映像内进一步深入研究,如以下一节所述。
5 R7 D. O+ U+ n3 u4 C0 f: `+ k* p 修改 RAM 磁盘4 D ~7 K, E7 y9 H0 a" g6 z3 I
通常,这一步骤不推荐使用。但有时候又不得不这么做,比如不能确认内核版本的情况。在由于更新应用程序或其他情况而需要深入研究 RAM 磁盘映像时,以下命令会很有帮助。
3 H; h0 E/ U) @5 U8 h( R& m/ K 当使用主机总线适配器 (HBA) 将存储直接被连到 Red Hat Linux 系统时,存储驱动程序(例如 qlogic qla2300 驱动程序)可能会在 ServeRAID 驱动程序(用于内部系统磁盘即操作系统磁盘)之前加载。如果是这样,就意味着安装在错误的磁盘上了。/dev/sda 代表的是附加存储介质而非本地磁盘上的 LUN。在这种情况下,在安装新的操作系统时,对重写 SAN 上而非本地磁盘上的数据要格外小心。为避免其发生,请从 CSM 用来创建引导映像的默认 Red Hat RAM 磁盘上移除 qlogic 驱动程序。当然,系统运行时也需要驱动程序,所以请使用另外一种机制,例如 post 安装脚本来为运行中的操作系统安装驱动程序。由于默认 Red Hat qlogic 驱动程序通常都不是故障转移驱动程序,所以推荐采用上述做法。0 ~2 i3 q/ P: z6 ]
例如,从 Red Hat Enterprise Linux Advanced Server Version 3 的默认 RAM 磁盘映像移除 qla2300 驱动程序。表 4 给出了能实现此目的的命令。
. M+ c" u, i5 d) W. { 表 4: RAM 磁盘命令命令目的cd /csminstallhttp://Linux.chinaitlab.com/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 6 s% x2 Y- O: p" z/ p- r1 H/ [
安装
7 f, l5 L& M' B9 C 在节点安装过程中有两个主要的 shell 环境变量:CSM_FANOUT 和 CSM_FANOUT_DELAY。前一个变量控制向多少节点同时发送 CSM 指令,比如有多少节点从管理服务器被重新引导。后一个变量控制在重新引导下一组要安装的节点时 CSM 要等待多长时间(以秒为单位)。这两个变量的设置分别为 16 个节点用来扇出和在重新引导下一组节点之前要等待 20 分钟。这些默认值对于大多数安装来说是可以接受的,但也可以针对大型集群有所增加。( H4 ^% G/ k$ ]3 O" \, C& E" _
要以传统方式安装集群,请完成以下步骤:
5 f. g( b, \. ]" [ 配置此安装并按如下所示安装计算节点:
# o. d/ s- j* {8 N+ F- F csmsetupks -N ComputeNodes -k /opt/csm/install/your.kickstart.file.nodes -xinstallnode -N ComputeNodes配置此安装并按如下所示安装用户节点:: o; P6 C( o$ B P, k: |
csmsetupks -N UserNodes -k /opt/csm/install/your.kickstart.file.user -xinstallnode -N UserNodes配置此安装并按如下所示安装调度器节点:+ g6 O9 J& N# o+ D- D. [
csmsetupks -N SchedulerNodes -k /opt/csm/install/your.kickstart.file.schd -xinstallnode -N SchedulerNodes配置此安装并按如下所示安装存储节点:
' _/ B" ?, N- J7 f csmsetupks -N StorageNodes -k /opt/csm/install/your.kickstart.file.stor -xinstallnode -N StorageNodes对于大型集群的安装,需要使用安装服务器来进行分阶段安装,并按如下所示使安装过程并行进行:% t; h) a/ O7 p8 P" U; M
在 CSM 内设置 InstallServer 属性。对于每一个想从安装服务器安装的节点,将 InstallServer 属性设置为该节点所使用的安装服务器的主机名。如果没有设置这一属性,就会使用其默认值,即从中心管理服务器安装。在大型集群环境,比方说,每个 rack 有 32 个节点,可以选择每个 rack 底部的节点作为此集群的安装服务器。在本例中,要将 rack 1 中的 node002 到 node032 配置成从 node001 安装并让 node001 从管理服务器安装,可以使用如下命令:
3 L9 W; H- J1 z5 Q" U* Z' a+ t( r. z chnode -n node002-node032 InstallServer=node001按如下所示创建一个包含所有安装服务器的动态节点组和一个包含客户机的动态节点组:, Y) _4 T. X, w0 ^/ b2 _. h7 ?
nodegrp -w "InstallServer like ‘_%‘" InstallServersnodegrp -w "InstallServer not like ‘_%‘" InstallClients配置此安装并按如下所示安装安装服务器:0 T6 y# p# H$ u* q6 @5 P+ S
csmsetupks -N InstallServers -xinstallnode -N InstallServers要充分利用安装服务器提供的带宽,可增加 CSM 扇出值来同时重新引导更多节点。在这个每个 rack 32 节点的例子中,CSM 的最佳扇出值应该是 32 乘以安装服务器数量(或者在每个 rack 一个节点的情况下,就是 rack 的数量)。在本例中,您也可以将每个安装服务器上的 NFS 线程数增加到 32 来更好地扩展 NFS。使用这种方法,您可以同时安装成百上千台机器。 配置此安装并按如下所示安装安装客户机:% T" Z& v3 |2 |8 T- |9 R
csmsetupks -N InstallClients -xinstallnode -N InstallClients结束语
* }% I7 } o; \+ N, u; @; B 完成本系列前两个部分给出的所有步骤之后,您就完成了集群的硬件和软件设置,包括设置系统管理软件和节点安装。本系列的后续部分将带您亲历设置后端存储的全过程,具体来说,就是执行存储硬件配置以及安装和配置 IBM 共享文件系统 General Parallel File System (GPFS)。 |