下一页 上一页 目录

4. 设置、配置和维护

4.1 磁盘配置

本节介绍磁盘分区策略。我们的目标是保持机器的虚拟结构组织化,使其都符合逻辑。我们发现,随着硬件和软件(操作系统)的更改,物理映射到逻辑结构是不可持续的。目前,我们的策略如下

farm/cluster machines:

partition 1 on system disk     - swap  (2 * RAM)
partition 2 on system disk     - /     (remaining disk space)
partition 1 on additional disk - /maxa (total disk)

servers:

partition 1 on system disk        - swap  (2 * RAM)
partition 2 on system disk        - /     (4-8 GB)
partition 3 on system disk        - /home (remaining disk space)
partition 1 on additional disk 1  - /maxa (total disk)
partition 1 on additional disk 2  - /maxb (total disk)
partition 1 on additional disk 3  - /maxc (total disk)
partition 1 on additional disk 4  - /maxd (total disk)
partition 1 on additional disk 5  - /maxe (total disk)
partition 1 on additional disk 6  - /maxf (total disk)
partition 1 on additional disk(s) - /maxg (total disk space)

desktops:

partition 1 on system disk        - swap   (2 * RAM)
partition 2 on system disk        - /      (4-8 GB)
partition 3 on system disk        - /spare (remaining disk space)
partition 1 on additional disk 1  - /maxa  (total disk)
partition 1 on additional disk(s) - /maxb  (total disk space)

请注意,对于服务器和桌面,maxg 和 maxb 可以是单个磁盘或磁盘的集合。

4.2 软件包配置

为集群安装最少的软件包集合。允许用户根据自己的意愿配置桌面,前提是保持上述相同的虚拟结构。

4.3 操作系统安装和维护

个人克隆策略

我坚信拥有一个完全分布式的系统。这意味着每台机器都包含操作系统的副本。手动在每台机器上安装操作系统很麻烦。为了优化此过程,我的做法是首先完全按照我想要的方式设置和安装一台机器。然后,我创建整个系统的 tar 和 gzipped 文件,并将其放在可启动的 CD-ROM 上,然后在集群中的每台机器上克隆它。

我用来创建 tar 文件的命令如下

tar -czvlps --same-owner --atime-preserve -f /maxa/slash.tgz /

我使用一个名为 go 的脚本,它以机器编号作为参数,解压 CD-ROM 上的 slash.tgz 文件,并在适当的位置替换主机名和 IP 地址。go 脚本及其输入文件的版本可以在以下网址访问: http://www.ram.org/computing/linux/cluster/。这个脚本需要根据你的集群设计进行编辑。

为了使这项工作正常进行,我使用 Martin Purschke 的 Custom Rescue Disk ( http://www.phenix.bnl.gov/~purschke/RescueCD/) 创建一个可启动的 CD 镜像,其中包含代表克隆系统的 .tgz 文件,以及 go 脚本和其他相关文件。这被刻录到 CD-ROM 上。

有几篇文档描述了如何创建你自己的自定义可启动 CD,包括 Linux Bootdisk HOWTO ( http://www.linuxdoc.org/HOWTO/Bootdisk-HOWTO/),其中还包含指向其他预制启动/根磁盘的链接。

因此,你拥有一个系统,你所要做的就是插入 CDROM,打开机器,喝一杯咖啡(或一罐可乐),然后回来查看完整的克隆。然后,你对你拥有的每台机器重复此过程。这个过程对我来说非常有效,如果你有其他人实际做这项工作(插入和移除 CD-ROM),那么它就是理想的。在我的系统中,我通过指定机器的编号来指定 IP 地址,但这可以通过使用 DHCP 完全自动化。

Rob Fantini ( rob@fantinibakery.com) 贡献了他用于克隆 Mandrake 8.2 系统的上述脚本的修改版本,可在 http://www.ram.org/computing/linux/cluster/fantini_contribution.tgz 访问。

克隆和维护软件包

FAI

FAI ( http://www.informatik.uni-koeln.de/fai/) 是一个自动化系统,用于在 PC 集群上安装 Debian GNU/Linux 操作系统。你可以拿一台或多台全新的 PC,打开电源,几分钟后,Linux 就会在整个集群上安装、配置和运行,而无需任何交互。

SystemImager

SystemImager ( http://systemimager.org) 是一款自动化 Linux 安装、软件分发和生产部署的软件。

DHCP 与硬编码 IP 地址

如果你设置了 DHCP,那么你不需要重置 IP 地址,并且可以从 go 脚本中删除该部分。

DHCP 的优点是,只要 DHCP 服务器配置得当,你根本不需要处理 IP 地址。它的缺点是它依赖于中央服务器(就像我说的,我倾向于尽可能地分发事物)。此外,如果你希望例行更换机器或更改主机名,将硬件以太网地址链接到 IP 地址可能会很不方便。

4.4 已知硬件问题

总的来说,硬件对我们来说运行良好。具体问题如下

AMD 双核 1.2 GHz 机器运行非常热。房间里有两台这样的机器会显著升高温度。因此,虽然它们作为桌面电脑可能还可以,但在大型集群中使用它们时,散热和功耗是一个需要考虑的因素。前面描述的 AMD Palmino 配置似乎运行良好,但我强烈建议在机箱中安装两个风扇——这解决了我们所有的不稳定问题。

4.5 已知软件问题

一些 tar 可执行文件显然没有以他们应该有的那种好的方式创建 tar 文件(尤其是在引用和取消引用符号链接方面)。我发现的解决方案是使用一个可以做到这一点的 tar 可执行文件,比如 RedHat 7.0 中的那个。


下一页 上一页 目录