Gentoo 中的 openMosix 集群 Michael Imhof Michael Andrews Sven Vermeulen Xavier Neys Zhang Liqiang 这个HOWTO会帮助你使用 gentoo 创建 openMosix 集群 1.3 2003年11月20日 介绍
关于本 HOWTO

这个 HOWTO 会帮助你建立一个 openMosix 集群。它基于 Gentoo Linux d发布。 我有意使文档尽可能的友好,迎合 Linux 新手的需要。 当一个有经验的用户可以轻松的把 openMosix,无盘节点和网络方面的 HOWTO 扎在一起的时候, 我还在这个 HOWTO 上有各种我希望能够缓解的困难。

如果你计划使用无盘节点来建立你的 openMosix 集群,你要阅读下面内核部分, 来学习如何编译 openMosix 支持的内核,然后阅读我们的 无盘 HOWTO,再回来这里,继续进行实际的内核安装。
关于 openMosix

openMosix 是一个Linux内核补丁,允许多个主机充当单系统镜像(SSI)。这使得多个主机看起来像是一个多处理器的大主机。 OpenMosix is a patch to the Linux kernel that allows multiple hosts to act as a single system image (SSI). This results in multiple hosts appearing as one large multiprocessor host. 写作本文档的时候,我正在用最新的 openMosix 内核补丁,版本 2.4.20,openMosix 用户工具版本 0.2.4-r4。 在 http://openmosix.sourceforge.net 有非常广泛的关于 openMosix 的信息。 当我尝试集群不同版本修补过的内核源码时曾有过困难,并且发现补丁并不向后兼容。 当执行a.out或ELF格式二进制,或者重量级进程 fork时, OpenMosix 明确的迁移重量级进程。 它不能迁移多线程的进程,或是使用共享内存的重量级进程。

要得到更多关于openMosix的信息访问他们的 主页.

关于集群

我们的集群由共享运算资源的独立计算机(节点)组成,以增进全部节点的运算能力。 并不需要所有节点的构架相同,不过那将会使组建集群的任务更加容易。

开始之前

你应当已经在你的主节点上安装了 Gentoo, 并且上面有足够的空间存放要host从节点的文件系统。 另外,你应当有 openMosix 内核源码,已经由 Gentoo 方便的补丁过的。

要得到源码,简单的使用 emerge,键入:

# emerge openmosix-sources
配置内核
关于内核

内核是处在你的硬件和你在机器上加载的所有其他软件之间的软件,本质上说内核是操作系统的基本。 当你的计算机启动,BIOS 执行在硬盘引导空间找到的指令。这些指令一般就是加载你内核的引导程序。 当你的内核被加载后,所有的进程都将由内核处理(管理)。

要得到更多内核与内核配置的信息,可以查看这个很有帮助的 HOWTO, http://www.tldp.org/HOWTO/Kernel-HOWTO.html.

配置内核

内核可以如你所想的大和定制,但是有一些内核选项不能选。

像下边这样,把 /usr/src/linux 链接到 openmosix-sources 目录是极其重要的。
# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux

然后进入你的内核配置过程:

# cd /usr/src/linux
# make menuconfig

你会见到一个灰头土脸的 GUI,提供一个比手工修改 /usr/src/linux/.config 文件更安全的选择。 如果你的内核已经工作良好,你可能要退出 GUI,保存当前的配置文件。键入:

# cp .config .config_working

在 GUI 中,最顶上的菜单项应当是 openMosix ---。 如果不是的话,你需要 emerge 带有 openMosix 补丁的内核源码。 (code listing 1.1)。 进入下面的子菜单,确保下列项目选为内建而不是模块。

openMosix --->
    [*] openMosix process migration support
    [ ] Support clusters with a complex network topology
    [*] Stricter security on openMosix ports
    (1) Level of process-identity disclosure (0-3)
    [*] openMosix File-System
    [ ] Poll/Select exceptions on pipes
    [ ] Disable OOM Killer
    [ ] Load Limit

Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers

Networking options --->
    <*> Packet socket
    [ ]   Packet socket: mmapped IO
    < > Netlink device emulation
    [ ] Network packet filtering (replaces ipchains)
    [ ] Socket Filtering
    <*> Unix domain sockets
    [*] TCP/IP networking
    [*]   IP: multicasting

File systems --->
    [*] /proc file system support
    [*] /dev file system support (EXPERIMENTAL)
    [*]   Automatically mount at boot 
这些内核配置只是应当附加在你的系统特定配置上,而不是完全取代那些选项。

当你重新配置主节点内核之后,重新编译:

# make dep
# make clean bzImage modules modules_install
(确保 /boot 在复制前已经加载)
# cp arch/i386/boot/bzImage /boot/bzImage-openmosix

要为你的新内核增加项目到你的 lilo.conf 或者 grub.conf (取决于你使用哪种启动引导器)并使新内核成为缺省。 现在新的 bzImage 已经复制到你的 /boot 目录, 你需要做的就是重新启动。

缺少选项

如果你的内核配置缺少某些选项,确定你选中了下面的:

  • Code maturity level options ---
    • Prompt for development and/or incomplete code/drivers
openMosix 节点的配置
安装 openMosix 用户工具

为了使集群能够迁移进程,需要安装一些用户方程序。 另外,需要启动 openMosix 服务来使一个节点加入集群,并且应用 openMosix 所有能力。 要得到这些程序和文件,使用 emerge

# emerge openmosix-user
配置 openMosix 节点

编辑或创建 /etc/openmosix.map 已经不需要了。 新版本的用户方实用程序有自动搜索守护进程,可以自动的探测你网络中的所有节点。

在所有节点上创建 /mfs 目录并且如果你要使用 openMosix 文件系统的话加载它(强烈建议), 允许你访问你的所有节点。

# mkdir /mfs
none                    /mfs            mfs             noauto,dfsa=1          0 0
不需要所有的节点都运行来使 openMosix 功能正常。
启动 openMosix

启动 openMosix 真的很简单。下面的命令会启动你内核中 openMosix 的功能, 并启动自动搜索守护进程,保持跟踪所有可用节点。

# /etc/init.d/openmosix start
openMosix 用户方实用工具
命令行实用工具

openMosix-user 在你的系统上安装了几个有用的工具。介绍几个:

  • mosmon - openMosix 监视器。允许你查看你所有节点的状态,包括cpu使用,安装内存,使用内存等。
  • mtop - top 增强版,显示在节点上实际运行的进程。
  • mps - ps 增强版。还显示节点号。
  • mosctl whois - 这像 mosmon 一样非常有用,其它工具只能告诉你节点号。 通过 mosctl whois nodenumber 你能发现节点的 ip 或主机名。

openmosix 压力测试可以测试如果你集群中的所有都运转的话,在负载下它会怎样表现。 这个软件包叫做 openmosixtest

# emerge openmosixtest

ebuild 会告诉你如何运行测试。

图形化实用工具

要得到你的集群的图形化概观,查看被迁移的进程, 你可以使用 openmosixview.

# emerge openmosixview

要运行这个奇妙的应用只需键入 openmosixview:

# openmosixview
资源
openMosix
  • http://openmosix.sf.net
openMosix add-ons (ebuilds 可用)
  • openMosixview
  • openMosix stress test
  • general openMosix daemon