openMosix

Linux 的群集技术
授权协议 未知
开发语言 C/C++
所属分类 服务器软件、 集群/负载均衡
软件类型 开源软件
地区 不详
投 递 者 姜博
操作系统 Linux
开源组织
适用人群 未知
 软件概览

OpenMosix 将群集能力添加到 Linux 内核,从而允许任何标准 Linux 进程利用群集的资源。通过使用自适应负载均衡技术,运行在群集的一个节点上的进程可以透明地“迁移”到另一个节点(在该节点上,它们可以更快地执行)上。 因为 openMosix 对于所有运行中的程序都是完全透明的,所以被迁移的进程甚至不知道(或不需要知道)它正在远程系统上运行。就远程进程和运行在最初节点(称为“宿主节 点”)上的其它进程而言,该进程是在本地运行的。

openMosix 的这种透明性意味着不需要专门的编程,即可利用 openMosix 的负载均衡技术。实际上,缺省 openMosix 安装会自动地将进程迁移到“最佳”节点上。这使得 openMosix 成为了能够立即为大量应用程序带来好处的群集解决方案。

openMosix 真正的奇妙之处在于它可以将许多 Linux 机器转换成一个类似于大型虚拟 SMP(对称多处理器)系统的东西。但是,两者之间有一些差异。首先,在“真正的”SMP 系统上,两个或更多 CPU 之间可以很快地交换数据;但使用 openMosix 时,节点之间彼此通信的速度是由 LAN 的速度决定的。使用千兆位以太网或其它高带宽联网技术能够提高 openMosix 群集的效率。

当 然,openMosix 提供了许多传统的多处理器系统不能提供的好处。使用 openMosix 时,您可以使用便宜的 PC 硬件,创建由数十个甚至数百个节点组成的群集。与此相反,相对于您的预算而言,包含大量处理器的 SMP 系统价格可能会昂贵得惊人。对于许多应用程序,使用 openMosix 比使用传统超级计算机或大型机更“划算”。当然,您完全可以在许多高端多处理器系统上运行 OpenMosix。正如先前提到的,将 openMosix 与性能增强技术组合起来也是有益的,譬如将它与 Intel 超线程技术合并使用,后者可用于使用 Intel Xeon 处理器的 xSeries 服务器,目前 Linux 已支持该技术。超线程技术通过使单个 Xeon 处理器能够在操作系统上表现为两个虚拟处理器,以改进线程应用程序的性能。通过同时利用 SMP 和超线程,您可以从拥有多个物理和/或虚拟处理器中受益,并可享受 openMosix 本身的优点。甚至有可能(并且很轻松!)与现有的 MPI 或 PVM 程序一起使用 openMosix,以便进一步优化支持群集的应用程序的性能。

OpenMosix(象 SMP 系统一样)不能在多个物理 CPU 上同时执行单个进程。这意味着 openMosix 不能加速象 Mozilla 这样的单进程程序,而只能将它迁移到执行效率最高的节点上。此外,openMosix 目前不支持多个协作线程彼此隔离。

与 此相反,超线程技术允许多个线程同时在不同的逻辑处理器上执行。因此,关注性能的用户可能希望以创造性的方法组合超线程技术和 openMosix,因为这两种技术可以互补。通过将使用 Xeon 处理器的节点组装成群集节点,就能够使用超线程技术来提高每个节点处理多个协作线程的能力,这些协作线程是不能在 openMosix 节点之间分隔和分布的;根据您规划使用群集的方式,利用这些技术将导致显著的性能提升。

当然,openMosix 会考虑使并行执行在进程级别上的伸缩性非常好。OpenMosix 可以毫无问题地在节点之间迁移大多数标准 Linux 进程。如果一个应用程序派生出许多子进程,每个子进程都执行工作,那么 openMosix 能够将这些进程中的每一个都迁移到群集中的一个适当的节点上。即使特定应用程序并没有设计成使用多个可以独立迁移的子进程,您也可以利用这种能力。例如, 如果您想使用群集压缩 12 个数字音轨,则可以简单地同时启动所有 12 个音频编码进程。数秒之后,openMosix 会将每个进程都迁移到群集中的一个合适节点上。如果您的群集恰好有 12 个节点,那么完成音频编码作业的速度几乎比使用一台机器时快 12 倍。如果计划同时运行的进程数比群集中的节点数多,那么多进程和超线程将向您提供额外的性能优势。

OpenMosix 是最初 Mosix 项目的一个相当新的分支,Mosix 也为 Linux 提供了透明的群集解决方案。那么,为什么要使用 openMosix 呢?这里是一些很好的理由。在 2001 年末,Mosix 项目的领导决定在非 GPL 许可证下发布 Mosix 的所有新版本(它们原本是 GPL 代码)。实际上,除了版权和一句“All rights reserved”之外,现在新的 Mosix 代码根本不包含任何许可证。因为这个突如其来和意外的变化,所以不能将 Mosix 的新发行版看作是免费软件,并且,关于用户对新的 Mosix 代码拥有什么权利还不清楚。实际上,在今后的日子里,没有什么可以阻止 Mosix 的作者向 Mosix 用户收取版权费。

显然,这个突如其来的许可变化引起了许多 Mosix 当前用户的关注,由于 Mosix 网站未经说明就删除了代码和 Mosix 邮件列表档案本身这一事实,因而引起了更多的关注。令人欣慰的是,并不是只有这些用户才关注这一突然变化。Mosix 项目联合经理 Moshe Bar 不赞成放弃 GPL 许可。作为对这一变化的响应,Moshe 启动了 openMosix 项目,目的是确保广大用户可以继续使用 Mosix 的免费版本。

自从 openMosix 项目开始以来,原来安装了 Mosix 的大量用户都转而安装 openMosix — 据最保守估计有 350 例以上。此外,Moshe 更开放的新开发风格使 openMosix 的开发速度迅速加快。目前有 14 个人积极地从事 openMosix 开发工作,但只有 4 个人为 Mosix 工作。接下来,他们在 openMosix 代码中修正了许多错误并添加了性能增强,并正在开发许许多多与新的便利性、功能和性能相关的特性。既然“灰尘已经掸去”,看起来 openMosix/Mosix 的分家使得一个新的 Linux 群集解决方案得以诞生,它比原有的其它解决方案更好、更健壮并且开发得更迅速。

要设置 openMosix 群集,您需要两个或更多连接在 LAN 中的 Linux 系统。要运行 openMosix,这些系统应该能编译和运行 2.4 系列的内核。

以上是必需的。为了获取最大的群集性能,您可能会希望考虑使用下列推荐组件。

强 烈建议使用至少 100 兆位(快速)以太网。标准(10 兆位)以太网不会向您提供良好的群集性能,但如果您只是想玩玩 openMosix,这应该也不错。千兆位以太网是可选的,但却是有益的。千兆位以太网网卡还在不断降价;130 美元就可以买到可靠的千兆位以太网网卡。但是,请别误以为非要千兆位以太网不可;只要用快速以太网,openMosix 就可以出色地完成许多任务了。

将 机器的以太网卡连接到专用的高速交换机上也是很有益的。这样做,各个系统都能够以“全双工”方式通过以太网进行通信,从而有效地使带宽加倍。如果机器的数 量有限,则您可能考虑使用专门绕制的(specially-wired)以太网电缆将系统之间彼此直接地连接起来。这样做,能够以相当低的价格获得“类交 换机(switch-like)”的全双工性能。使用具有 2 个或 3 个节点的群集时,这个技巧很有用,因为这些配置只需要每台机器分别有一块或两块网卡(NIC)即可。

推荐使用大量交换空间。这将允许从群集中动态地除去节点而不至于使现有节点耗尽虚拟内存。再提一下,这是推荐作法,只有在您让群集超负荷运行的极端情况下,它才会显现出差异。

再 说一遍,这些建议全部都是可选的,完全有可能使用两台运行 Pentium 系列处理器的机器在标准以太网上建立群集。网络越快,openMosix 在群集中的节点之间就能够更有效地迁移进程。用快速网络玩 openMosix 更有乐趣。说到玩 openMosix,请关注我的下一篇文章,那时我将向您演示如何设置真正属于您自己的 openMosix 群集。在本系列文章的第三部分中,我们要准备好享受很多乐趣,因为那时我们将看到 openMosix 运行起来。

  • 以下是以RH9为蓝本 下载Linux kernel 2.4.22.tar.gz, 下载OpenMosix 2.4.22.tar.gz,openmosix-tools-0.3.6-2.i386.rpm 下载freeswan-2.06.k2.4.patch.gz freeswan-module-2.06_2.4.20_8-0.i386.rpm,freeswan-userland-2.06_2.4.20

  • 作者:Liu Hong Fei 发表于:2003-12-04 [img:eaf3e35f01]http://bbs.whatisnet.net/uploads/post-26-1070293114.jpg[/img:eaf3e35f01] 以下是我架设openmosix集群的过程,写下来供大家交流参考。 一. 我的硬件配置 CPU INTEL PIV 3.06G RAM DDR 1G HD Sg

  • 2.4.22-1内核架设openmosix集群(转)[@more@]以下是我架设openmosix集群的过程,写下来供大家交流参考。 一. 我的硬件配置 CPU INTEL PIV 3.06G RAM DDR 1G HD Sg 120G-sata接口 NIC INTEL 82540千兆卡 共12台,交换机是DELL的24口RJ45千兆交换,因为openmosix集群在计算这一层应用上每台机器的关系

  • 1. Michael Andrews 的 Gentoo openMosix 和无盘节点 这个是此兄 写的HowTO, 指导你用Gentoo 搭建无盘的openMosix集群 2. Matthias Rechenburg 的 openMosix API 一般来说程序是不需要修改就可以上mosix的,不够Matthias Rechenburg开始做了这组openMosix API,里面的程序例子是用s

  • 架设openmosix集群的过程,写下来供大家交流参考。 一. 硬件配置 CPU INTEL PIV 3.06G RAM DDR 1G HD Sg 120G-sata接口 NIC INTEL 82540千兆卡 共12台,交换机是DELL的24口RJ45千兆交换,因为openmosix集群在计算这一层应用上每台机器的关系完全是平等的,所以无所谓服务器或工作站,用配置完全相同的机器就可以。 二. 软件

  • 使用 coLinux 和 openMosix 构建异构集群 组合使用 coLinux 与支持 openMosix 的内核来构建混合式集群的实验案例研究 http://www-128.ibm.com/developerworks/cn/linux/l-colinux/index.html

  • <原原本本的经过,没有重新整理,请阅读本文的朋友见谅> 2004年7月22日11:42:51 ★☆内核升级试验☆★ smbmount //10.42.96.28/ftp /pc -o username=pc cd /usr/src rm linux tar -zvxf /pc/linux-2.4.18.tar.gz cd /usr/src ls   //显示存在linux目录 mv linux l

 相关资料
  • 问题内容: 我对SQL(Server2008)的较低层次的了解是有限的,现在我们的DBA对此提出了挑战。让我解释一下这种情况:(我已经提到一些明显的陈述,希望我是对的,但是如果您发现有问题,请告诉我)。 我们有一张桌子,上面放着人们的“法院命令”。创建表(名称:CourtOrder)时,我的创建方式如下: 然后,我将非聚集索引应用于主键(以提高效率)。我的理由是,这是一个唯一字段(主键),应该像我

  • Cluster Cluster.EdsClusterConfig Cluster.OutlierDetection Cluster.LbSubsetConfig Cluster.LbSubsetConfig.LbSubsetSelector Cluster.LbSubsetConfig.LbSubsetFallbackPolicy (Enum) Cluster.RingHashLbConfig C

  • 一、负载均衡 负载均衡算法 转发实现 二、集群下的 Session 管理 Sticky Session Session Replication Session Server 一、负载均衡 集群中的应用服务器(节点)通常被设计成无状态,用户可以请求任何一个节点。 负载均衡器会根据集群中每个节点的负载情况,将用户请求转发到合适的节点上。 负载均衡器可以用来实现高可用以及伸缩性: 高可用:当某个节点故障

  • 集群为一组LBAgent转发节点的集合。 负载均衡集群是一组转发节点LBAgent的集合,一般情况下一个集群下配置两个LBAgent节点互为主备即可,同一集群下的LBAgent节点的VRRP路由ID必须相同。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “网络/负载均衡集群/集群” 菜单项,进入集群页面。 创建集群 该功能用于创建负载均衡集群。 单击列表上方 “新建” 按钮,弹出

  • 帮助用户快速搭建Kubernetes集群。 云管平台支持创建和纳管Kubernetes集群,目前支持以下纳管集群的方式。 基于 云联壹云 、Aliyun、AWS 平台的虚拟机创建 Kubernetes 集群。 导入已创建的集群,支持纳管 Kubernetes 集群和 OpenShift 集群。 Kubernetes集群是容器运行所需要的云资源的集合。一个Kubernetes集群由1~3个控制节点和

  • 集群章节帮助用户快速搭建集群,并帮助用户管理节点、命名空间以及RBAC授权管理等。 集群 帮助用户快速搭建Kubernetes集群。 节点 节点是Pod的实际运行环境。 存储类 存储类用于定义容器集群中的不同存储类型。 命名空间 命名空间用于逻辑上隔离Kubernetes集群中的资源。 角色 角色定义了对集群的指定命名空间下资源的权限。 集群角色 集群角色定义了对集群下资源的权限。 角色绑定 角色

  • etcd 集群 下面我们使用 Docker Compose 模拟启动一个 3 节点的 etcd 集群。 编辑 docker-compose.yml 文件 version: "3.6"services: node1: image: quay.io/coreos/etcd:v3.4.0 volumes: - node1-data:/etcd-data expose:

  • 主版本和次版本升级 Seafile 在主版本和次版本中添加了新功能。有可能需要修改一些数据库表,或者需要更新搜素索引。一般来说升级集群包含以下步骤: 更新数据库 更新前端和后端节点上的符号链接以指向最新版本。 更新每个几点上的配置文件。 更新后端节点上的搜索索引。 一般来说,升级集群,您需要: 在一个前端节点上运行升级脚本(例如:./upgrade/upgrade_4_0_4_1.sh) 在其他所