我想在一台运行 Ubuntu KVM 的机器上设置三台虚拟化服务器。我还想在集群上安装第二台机器来镜像上述内容,这样如果第一台机器物理上发生故障,这台机器就可以接管。
这种设置是否可行?如果可行,是否有人有关于此的文章或演练的链接?
答案1
是的,你可以做到。我手头没有任何文章,但我们正在使用 DRBD、heartbeat、一些简单的 shell 脚本和 Puppet 来自动配置、复制、故障转移和维护我们的虚拟机。
答案2
取决于你希望故障转移的具体方式。如果你指的是如果一台主机发生故障,所有虚拟机都会在另一台主机上重新启动的情况 - RHEV 可以轻松做到这一点。如果你希望实现零停机时间 - 你需要 vmware FT,但价格昂贵
答案3
也许 Ubuntu 的新云计算解决方案(基于 KVM)值得一看。http://www.ubuntu.com/cloud/private
我没有真正的经验,但也许这是解决你的问题的一种现代方法。:-)
答案4
这个问题似乎太宽泛了,无法给出有意义的回答。所以,让我回答一个更狭隘的问题吧!
Canonical(Ubuntu 背后的公司)目前拥有以下产品:
- 规范的OpenStack,https://ubuntu.com/openstack
- 微云,https://microcloud.is
- 典型 MAAS,https://maas.io
- Ubuntu LXD,https://ubuntu.com/lxd
它们每个都能够管理在多个 Ubuntu 主机上运行的一组 KVM 虚拟机。
对于 MAAS (Metal-As-A-Service),请注意它可以协调预先配置的 libvirt 机器(启动它们、通过网络启动它们、配置操作系统...),也可以与 libvirt(以及 LXD)通信以创建新的虚拟机。请参阅https://maas.io/tutorials/create-kvm-pods-with-maas
与其他解决方案相比(并且与不在 Ubuntu 上运行相比),Ubuntu 的主要优势(tm)可能是 Ubuntu FAN 网络,它是一个(几乎)零配置覆盖网络。https://news.ycombinator.com/item?id=9764391
此外,Canonical 很高兴您运行 Kubernetes
- Ubuntu Kubernetes,https://ubuntu.com/kubernetes
- 规范的MicroK8s,https://microk8s.io
- 规范 MicroStack,https://microstack.run
这意味着你可以安装它,然后在其上安装 KubeVirt 来运行 KVM 机器https://kubevirt.io/user-guide/operations/installation/
或者使用 MicroStack,即 Kubernetes 上的 OpenStack。这可能是 Canonical 希望你做的事情(而不是使用 KubeVirt)。
总的来说,考虑一下您是否需要所有典型的集群功能(例如实时 VM 迁移),或者您是否可以放弃这些功能以换取更简单的设置。对于 LXD,实时迁移会阻止使用 Ubuntu Fan 网络,并且需要共享存储,例如 Ceph。