分类: LINUX
2008-04-28 22:17:11
更新驱动程序
即使在集群中安装了操作系统不能直接支持的硬件,也仍然可能会有相应的驱动程序可以使用。在必要的时候,这个过程也适用于驱动程序更新。如果最终安装和安装操作系统时所用的 RAM 磁盘需要更新驱动程序,CSM 可以自动将附加或替换的驱动程序包括进来。
在使用 System x 硬件的例子时,您通常会希望获得板载 Broadcom Ethernethard 适配器的 Broadcom 网络驱动程序所提供的性能和稳定性。要实现这一目的,可按如下步骤操作,这些步骤使用的是 Broadcom bcm5700 驱动程序而不是 Red Hat Linux 提供的标准的 tg3 网络驱动程序:
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 给出了能实现此目的的命令。
命令 | 目的 |
---|---|
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[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 针对此目的提供了一个示例脚本。由于双网络设置(到每个节点都有一个计算网络和一个存储网络)的原因,这个示例集群将需要使用备用适配器配置。具体的步骤如下所示:
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 |
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 |
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 |
node001.cluster.com: IPADDR: 192.168.1.1 node002.cluster.com: IPADDR: 192.168.1.2 node003.cluster.com: IPADDR: 192.168.1.3 |