设置 PXE 启动服务器
在网络上需要一台运行 DHCP 和 TFTP 服务器的计算机。安装并运行 CSM 管理节点的计算机是一个合适的替代方案。但是,如果目前在网络上还没有安装计算机,可以使用一台连接到网络并运行 Linux 的笔记本。确保 PXE 服务器在网络的正确位置(在同一子网内),或者确保交换机能把 DHPC 请求跨子网转发到正确的服务器。然后,完成以下步骤:
- 用 IP 地址 192.168.0.1 启动 PXE 服务器。
- 在同一台计算机上安装、配置、启动简单的 DHCP 服务器。下面是个示例配置:
ddns-update-style ad-hoc; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.2 192.168.255.254; filename "/pxelinux.0"; next-server 192.168.0.1; }
- 安装、配置和启动 TFTP 服务器,在
/tftpboot/
上运行。安装syslinux
,在 Suse 和 Red Hat Linux 上都以 RPM 包形式提供。 - 把随
syslinux
包一起安装的memdisk
和pxelinux.0
文件拷贝到/tftpboot/
。 - 创建目录
/tftpboot/pxelinux.cfg/
,存放配置文件,创建/tftpboot/firmware/
存放固件镜像。 - 将包含要更新的固件的内容的默认 PXE 配置写入
/tftpboot/pxelinux.cfg/default
, 就像下面这样:serial 0 9600 default local #default bmc #default bios #default broadcom label local localboot 0 label bmc kernel memdisk append initrd=firmware/bmc.img label bios kernel memdisk append initrd=firmware/bios.img label broadcom kernel memdisk append initrd=firmware/broadcom.img
作为参考,当计算机在 PXE 期间接收到 DHCP 地址时,就用特定顺序搜索 /tftpboot/pxelinux.cfg
下的配置文件,第一个找到的文件被用作请求计算机的启动配置。搜索顺序的确定方法是:把请求 DHCP 地址转换成 8 个 16 进制数字,通过扩展子网对配置目录搜索第一个匹配的文件名(每一次搜索后从右到左删除一位数字)。
例如,假设一台客户计算机在 PXE 启动期间从服务器得到地址 192.168.0.2
。第一次文件搜索是搜索这个 IP 地址的 16 进制形式 /tftpboot/pxelinux.cfg/C0A80002
。如果这个配置文件不存在,第二个搜索就查找 C0A8000
,依次类推。如果没有找到匹配,就用名为 default
的文件。所以,把以上 PXE 配置放在名为 default
的文件可以为所有计算机工作,而不论 DHCP 的配置如何。但是,如果把配置写入 C0A800
(192.168.0.0/24
子网)将减少搜索的次数。
更新基板管理控制器(BMC)固件和设置 IP 地址
注意:这里描述的产品用于基于 AMD 的集群节点。但是,对基于 Intel 的产品也可以采用类似过程。Intel BMC 的更新由 bmc_cfg.exe
程序(不是 lancfg.exe
)提供,用来设置 BMC 地址。可以用终端服务器,使用与 下载 部分提供的脚本类似的脚本驱动该过程。而且,对于基于 Intel 的计算机,通常可以在系统 BIOS 中设置 BMC 地址。
在节点上设置了 BMC 地址之后,就可以进行远程电源控制,这样的话就可以更加轻松地配置集群了。但是,更新 BMC 的这种方法依赖网络启动,所以如果计算机在 BIOS 中没有设置为 PXE 启动,只能先更新 BIOS,然后再回来对 BMC 进行更新。
下载最新的 BMC 固件更新 DOS 镜像,按照说明创建软盘启动镜像。这个镜像包含叫做 lancfg.exe
的程序,用它可以设置 BMC 的 IP 地址。执行的一般过程是插入软盘,并从软盘启动,用软盘进行更新。但是,首先在 PXE 启动服务器计算机上使用以下命令从软盘创建 PXE 启动镜像:
dd if=/dev/fd0 of=/tftpboot/firmware/bmc.img bs=1024 |
现在可以根据需要编辑 DOS 镜像。对于 BMC 更新来说,基本镜像本身不需要做修改,只要把 DOS 关机程序拷贝到镜像。从高层次来看,在计算机加电时,计算机通过 PXE 启动来刷新 BMC 固件,然后让计算机在 DOS 镜像中运行。可以用一个脚本来通过终端服务器设置 BMC 地址,然后关闭计算机。这样,就可以知道所有开着的计算机正在刷新 BMC 固件,或者等待设置 IP 地址。在所有关闭的计算机上,将结束该过程。请下载合适的基于 DOS 的关机命令,例如 atxoff.com
实用工具。有了关机实用工具之后,请按照下面的步骤把它拷贝到镜像中:
mount -o loop /tftpboot/firmware/bmc.img /mnt cp /path/to/poweroff.exe /mnt umount /mnt |
现在修改适当的注释,在前面创建的 /tftpboot/pxelinux.cfg/default
文件中设置 BMC 为默认项,确保 PXE 启动配置文件能发送正确的镜像。测试了一个节点之后,从关机状态启动所有计算机,这样所有需要的节点就都能得到更新。所有节点都启动了 PXE 镜像之后,请把配置修改回本地启动,从而最小化意外刷新计算机的情况(如果其中一个被重新启动的话)。
现在可以调用 lancfg
程序,并通过终端服务器操作它(假设 BIOS 设置通过串口导出了终端,与终端服务器配置相同)。可以在 Perl 脚本中用 lancfg
配置 BMC IP 地址,例如 下载 部分中可用的不支持的示例脚本。例如,要在网关地址 192.168.10.254
、子网掩码 255.255.255.0
的名为 Rack1
的节点组中设置所有计算机的 BMC 地址,请从 PXE 启动服务器计算机上运行以下命令:
perl set-bmc-address.pl -N Rack1 -g 192.168.10.254 -m 255.255.255.0 |
可以根据自己的设置定制这个脚本。脚本完成时,计算机在设置完 BMC IP 地址之后,用拷贝到启动镜像的 DOS 关机程序自动关闭。
更新 BIOS
如果将默认 BIOS 设置应用到所有计算机,那么可以在上面的 BMC 更新之前实现此步骤。刷新 BIOS 的过程包含两个阶段,如果执行没有被修改的话,将应用出厂的默认设置。所以,需要刷新并应用带有集群所需的修改的新配置。请下载最新的 BIOS 更新 DOS 镜像,并按说明创建软盘启动镜像。
需要一份针对自己需要的 BIOS 等级和设置的保存好的配置。为此,请手动更新一台计算机。用软盘镜像启动一台计算机(如果计算机没有软驱,可以使用 USB 软驱)。请根据自述文件应用更新,并等候更新正常完成。重新启动计算机,在 BIOS 中对需要的设置做修改。需要考虑的选项有:要关闭数字锁定键(如果在键盘上没有数字键盘)、启用串口、使用匹配终端服务器的设置通过串口设置控制台重定向、设置启动顺序(保证 Network 在 Hard Disk 之前)。完成修改之后,保存修改,关闭计算机。
在另一台计算机上(例如设置了 PXE 启动的计算机),装入包含 BIOS 更新的软盘。重新命名 autoexec.bat 文件,将其作为软盘上的备份,供以后使用。这可以防止再次使用这个磁盘启动系统时,再次刷新系统。把磁盘插回刚才更新完并设置好 BIOS 配置选项的计算机,从修改后的软盘镜像启动。
出现 DOS 提示符时,请确保当前工作目录是驱动器 a: 。在软盘上有个程序叫做 cmosram.exe
,用它可以把 BIOS 的配置保存到磁盘。运行这个程序把 BIOS 设置保存到软盘,如下所示:
cmosram /load:cmos.dat |
设置放入 autoexec.bat
文件之后,就可以应用更新了。作为完备性测试,请在一台计算机上测试软盘镜像,查看刷新是否自动进行,是否应用了正确的配置。可以注意到系统在 BIOS 刷新之后仍然开着。可以采用 BMC 更新节 中类似的方法,通过使用从 autoexec.bat
文件中调用的 DOS 关机工具,在 BIOS 刷新后自动关闭系统。
对修改后的 BIOS 更新镜像满意之后,就可以用以下命令用软盘创建 PXE 启动镜像:
dd if=/dev/fd0 of=/tftpboot/firmware/bios.img bs=1024 |
修改默认的 PXE 启动配置文件 /tftpboot/pxelinux.cfg/default
,让它在系统进行 PXE 启动时提供 BIOS 镜像。现在,开启连接到网络的系统,系统就会自动刷新 BIOS 而不需要用户输入,应用正确的 BIOS 设置,并自动关机。更新完成后,把默认 PXE 启动配置改为从本地磁盘启动,防止计算机再次发出 PXE 请求时发生意外。
更新 Broadcom 固件
更新完 BMC 固件和 BIOS 后,更新 Broadcom 固件只是相同概念的简单重复。请按以下步骤操作:
- 下载 Broadcom 固件 (请参阅 参考资料),并按说明创建软盘启动镜像。
- 用以下命令从软盘创建 PXE 启动镜像:
dd if=/dev/fd0 of=/tftpboot/firmware/broadcom.img bs=1024"
- 用以下命令循环装入镜像文件:
mount -o loop /tftpboot/firmware/broadcom.img /mnt
- 把基于 DOS 的关机程序拷贝到镜像目录。
- 修改
autoexec.bat
文件,用无人参与模式自动更新 Broadcom 固件,并在更新完成时自动关闭计算机。例如,对于 IBM Systems 326 ,机器类型为 8848,autoexec.bat
文件可能像下面这样:@echo off call sramdrv.bat echo. echo Extracting files... call a:\bin.exe -d -o %ramdrv%\update >NULL copy a:\command.com %ramdrv%\command.com copy a:\atxoff.com %ramdrv%\atxoff.com set COMSPEC=%ramdrv%\command.com if exist NULL del NULL %ramdrv% cd \update call update.bat 8848 cd \ atxoff
- 卸载镜像。
- 检查默认配置
/tftpboot/pxelinux.cfg/default
,确保计算机能为 Broadcom 适配器启动固件更新。 - 启动需要更新的计算机。
- 把配置恢复到本地磁盘 PXE 配置。
跨集群更新了固件之后,可以继续硬件的设置,因为有了最新的固件代码,很少会出现问题。但是,如果需要其他更新,随时可以重复更新过程。而且,这类固件更新使用的原则也可以应用到需要刷新的其他类型的固件,只要能从 PXE 启动得到固件更新。
.分页: [1] [2] [3]
- 上一篇:MOSIX集群系统简介
- 下一篇:Linux集群之系统管理软件和节点安装