办公室里有一堆不必要的工作系统块。所以我决定将它们组合成一个单一的计算机网络,实际上是一个由单一操作系统控制的普通计算机,但代表 3+ 个系统单元。
底线:我需要 5 个以上的盒子作为一个工作,虽然我不想单独管理每台服务器,但我的目标是在一个系统的控制下物理上由多个机器组成的单台机器。她会怎么做?任何东西,至少让它成为一个具有互联网 IP 的 Web 服务器,或者只是一个 Ubuntu 或 Fedora 工作站
办公室里有一堆不必要的工作系统块。所以我决定将它们组合成一个单一的计算机网络,实际上是一个由单一操作系统控制的普通计算机,但代表 3+ 个系统单元。
底线:我需要 5 个以上的盒子作为一个工作,虽然我不想单独管理每台服务器,但我的目标是在一个系统的控制下物理上由多个机器组成的单台机器。她会怎么做?任何东西,至少让它成为一个具有互联网 IP 的 Web 服务器,或者只是一个 Ubuntu 或 Fedora 工作站
答案归结为您需要创建一个运行类似 Linux 操作系统的计算机集群。
以下是一些现成的解决方案:
[无用链接:已删除]。
集群在家里。
以供参考:
在答案中描述整个过程是没有意义的。我觉得我的回答对你很有帮助。
在这种形式 - 你问:解决方案将是无效的。来自许多计算机(服务器)的系统是单独制作的,对于每个任务都有自己的任务,此外,程序 - 用于创建这样一个系统的操作 - 也是专门为某些服务器系统编写的。
它们被称为“高负载系统”,它们的创建/使用是一个非常昂贵的过程,称为“扩展”。此类系统的最大示例是社交网络:例如,VK 提供 10k 台机器,但其功率与家用计算机相当(根据所有者的说法)。是的,而且StackOverflow 本身当然不能在一台服务器上运行。
如果您真的对扩展感兴趣:那么值得掌握系统管理、docker 和阅读 highload 歌词https://ruhighload.com/scale
通常解决方案是从任务构建的,而不是从平台构建的
你到底想做什么?
根据个人经验 - 计费日志分析和重新计费:我通过在应用程序级别(Python 脚本)、一堆退役桌面、办公室 IBM eServer 上的帐户和 Windows 下的几个桌面上进行手动分片。
如果你在古老的 100mbit 以太网上有互连,而不是至少 1G(更不用说像 Infiniband 这样的特殊硬件) - 去商店买最糟糕的主板并将内存塞进眼球会更便宜,省钱昂贵的快速 1G 交换机和功耗
您的配置选项仅在一种情况下有效:所有并行线程完全独立,每个任务块完全适合一个节点的 RAM 和资源,计算任务得到很好的解决,在“一个节点 -一个计算块”架构
另一方面,作为集群工作站,这样的利用非常有趣并且拥有生命权,并且可能会成为一个成功的选择:工作站上活动的繁重任务不超过 2-3 个,其余的资源用于在浏览器、文本编辑器中存储千兆字节的选项卡,以及通过文件系统运行罕见的实用程序
似乎没有Linux实现:
因此,原始公式中问题的解决方案归结为全面掌握系统编程:编写提供所有必要 DOS 功能的 Linux 内核的类似物,调整基本库,包括。从 GNU 编译器(libc、libatomic、gomp、...)的分发,并将整个系统重建到您使用的整个软件包都可以工作的状态
也许更简单的解决方案可能是编写一个虚拟化层:仅重写应用程序软件使用的所有系统库的层,在常规的每个节点分布或虚拟机管理程序之上实现分布式 POSIX 功能(希望您对 Xen 源和libgcc/libstdc++ 八)
从实际的角度来看:
不幸的是,据我所知,分布式 Smalltalk 没有免费的实现,否则我首先建议它 - 作为一种选择,寻找用于主流语言对象之间分布式消息传递编程的库
最有可能的是,这种系统的能源效率(以及可能的可靠性)太低了。
集群系统的任务是实现这样的计算能力和容错能力,这对于单个现代服务器来说是很难(或不可能)实现的。而对于旧铁的处理,最好用其他方法;)
结果,我使用Linux Rocks 7内核上的操作系统成功搭建了10台机器的集群