启动另一个操作系统与另一个系统并行运行

启动另一个操作系统与另一个系统并行运行

因此,在工作中,我们有一些系统在自己的硬件上运行,这些硬件与所有系统都相同。如果其中一个硬件发生故障,正在运行的系统之一将接管并启动发生故障的系统,完成两者的工作。所有基于 Linux 和 Intel cpu。

如何让一个操作系统启动另一个操作系统一起运行?它不仅仅是运行一个程序,它还运行整个程序。

我听说过一些事情,比如如何让 Windows 让另一个操作系统使用 cpu 上的一个核心进行并行计算。但我很好奇一个系统如何立即接管另一个系统。这太酷了,不幸的是我的同事也不明白它是如何完成的。

答案1

如何让一个操作系统启动另一个操作系统一起运行?它不仅仅是运行一个程序,它还运行整个程序。

你所描述的东西叫做虚拟机。过去 15 年的 X86 处理器已经过大幅优化,可以在几乎不降低性能的情况下运行此类虚拟化系统,因此在任何数据中心中,您管理的计算机都默认启动您的操作系统,但实际上并不是您的硬件,但只是你的虚拟机。

所以,这都是非常成熟的技术!

虚拟化功能是 Linux 内核的一部分(查看 kvm 是什么),对于实际运行的虚拟机,有许多前端可以做到这一点。存在哲学上的差异,以及您可能需要或可能不需要的解决方案的大小 - 从在手动声明的 Qemu 中运行的 KVM 支持的 VM,使用 libvirt/virsh/virtmmager 使用更可编程的方式运行此类 VM,到不考虑您的具有常规主 Linux 的机器,但所有工作始终在 VM 中完成(更像 Xen 的工作方式),管理充满服务器的机架,这些服务器除了运行多个 VM 外什么也不做,这些 VM 可以在运行时在计算机之间转移(您通常可以在其中找到 proxmox 和 VMware 的 ESXI 之类的东西。

实际上没有一种尺寸适合所有人,或者取决于您的需要:

如果其中一个硬件发生故障,正在运行的系统之一将接管

简单的一部分是在多台机器上运行虚拟机,作为随时可用的储备。更困难的部分,以及取决于这些机器实际在应用方面做什么的部分,是弄清楚所谓的故障转移这些都会发生。

对于静态文件 http 服务器之类的东西,这可能很简单,只需自动更改反向代理中的条目,或将故障系统的 IP 地址分配给备份系统即可。

对于更复杂的情况,事务可能会更改数据库中的数据,您可能需要连续复制活动服务器所做的所有数据库更改,以便在出现问题时做好准备。

对于其他事物,例如冗余存储集群访问服务器,您实际上可能需要实际的专用硬件(例如可以同时从两台不同计算机访问的硬盘驱动器控制器)。这在很大程度上是个例外。

一般来说,为了能够注意到何时发生故障,您需要一种机制来知道这一点 - 这又因应用程序空间而异。

因此,看到在您的工作场所发生的情况:如果您想知道您的系统具体是如何工作的,请询问设置系统的 IT 人员。

相关内容