无心人 发表于 2008-7-13 11:13:53

Gentoo架设OpenMosix集群


论坛总有人希望有用巨型机的机会
有条件的看下文
呵呵,只要有100台普通的菜羊
就能构建一个千亿次机器拉


http://man.ddvip.com/linux/gentoo/openmosix/index.html
原文更新:2003年11月20日
内容简介:这个HOWTO会帮助你使用 gentoo 创建 openMosix 集群

1. 介绍



关于本 HOWTO

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

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

关于 openMosix

       openMosix 是一个Linux内核补丁,允许多个主机充当单系统镜像(SSI)。这使得多个主机看起来像是一个多处理器的大主机。写作本文档的时候,我正在用最新的 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,键入:

代码 1.1: 获得补丁过的内核源码

# emerge openmosix-sources

2. 配置内核



关于内核

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

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

配置内核

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

重要: 像下边这样,把 /usr/src/linux 链接到 openmosix-sources 目录是极其重要的。

代码 2.1: 链接 /usr/src/linux 到 openmosix

# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux

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

代码 2.2: 编辑内核配置

# cd /usr/src/linux
# make menuconfig

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

代码 2.3: 备份主节点内核配置

# cp .config .config_working

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

代码 2.4: Menuconfig options

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

注释: 这些内核配置只是应当附加在你的系统特定配置上,而不是完全取代那些选项。

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

代码 2.5: 重编译内核和模块

# 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 ---
          o Prompt for development and/or incomplete code/drivers

3. openMosix 节点的配置



安装 openMosix 用户工具

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

代码 3.1: 安装 openMosix 用户方实用工具

# emerge openmosix-user

配置 openMosix 节点

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

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

代码 3.2: mkdir /mfs

# mkdir /mfs

代码 3.3: /etc/fstab 中的示例项

none                  /mfs            mfs             noauto,dfsa=1          0 0

注释: 不需要所有的节点都运行来使 openMosix 功能正常。

启动 openMosix

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

代码 3.4: 启动 openMosix

# /etc/init.d/openmosix start

4. openMosix 用户方实用工具



命令行实用工具

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

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

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

代码 4.1: Emerge openmosixtest

# emerge openmosixtest

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

图形化实用工具

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

代码 4.2: Emerge openmosixview

# emerge openmosixview

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

代码 4.3: 开始 openmosixview

# openmosixview

5. 资源



openMosix

    * http://openmosix.sf.net

openMosix add-ons (ebuilds 可用)

    * openMosixview
    * openMosix stress test
    * general openMosix daemon


本文档内容按照Creative Commons - Attribution / Share Alike协议发布。

chaoge 发表于 2008-7-14 10:10:21

高射炮打蚊子,复杂了点。如果能解决平台间的函数调度,注意不是进程调度,那这台高射炮就真的NB了。近来做格点计算颇有心得,不过难度不小,改了几个版本才出一个原型。

无心人 发表于 2008-7-14 10:51:44

是基于不同机器间的线程自由分配的
就是说一个程序的多个线程可不同机器运行

chaoge 发表于 2008-7-14 13:00:26

还是达不到要求。;P

无心人 发表于 2008-7-14 14:17:40

那,你就考虑小型机去
页: [1]
查看完整版本: Gentoo架设OpenMosix集群