我有两台物理服务器,我想设置它们以实现虚拟化。我希望以这种方式设置它们,以便满足以下目标:
- 如果我必须关闭一台物理服务器进行维护,则允许将客户操作系统从一台服务器实时迁移到另一台服务器。
- 如果其中一台服务器的硬件出现故障,我可以将其客户操作系统冷迁移到另一台服务器(即,两台物理服务器之间的所有数据始终同步)。
- 可以每小时或每天一次有效地对客户操作系统的底层存储进行快照(例如,使用 ZFS。我排除了 LVM,因为在 LVM 中拍摄多个快照效率低下)。
由于 OpenSolaris 提供 ZFS,我认为使用 OpenSolaris/xVM 作为 dom0 会很合适。但是,我的理解是,为了允许实时迁移,您需要有另一台服务器 (SAN) 用于共享存储,出于成本原因,我宁愿不添加另一台服务器。
如果不是因为 ZFS 不适用于 Linux(除非通过 FUSE,我宁愿避免),我知道我可以为 DRBD 设置类似的东西。我可以用 OpenSolaris 做类似的事情吗?我读过关于 AVS 的文章,但我不确定是否可以进行实时迁移。或者如果您有任何其他使用不同操作系统的建议,我也会接受。
谢谢!
答案1
您所要求的是不可能的。最接近的做法是,在每台主机上使用 iSCSI 作为 domU 存储,这样您就可以实时迁移到另一台主机,但您无法关闭主机,因为它仍将保留 iSCSI 卷。
为了能够在两台主机之间进行实时迁移,您需要第三台主机。您不必使用 SAN,只需使用第三台 OpenSolaris 来托管 iSCSI 卷即可。
答案2
Xen 实时迁移需要一些共享存储,这些存储可以被参与迁移的两个节点同时访问,并且在一端写入的数据必须立即在另一端可见。
iSCSI 可以提供这一点,在具有两个节点的集群中,其中一个节点可以提供 iSCSI 服务器(这意味着存储实际上是本地的,但它可以像 DRBD 一样被复制)。但是虚拟机喜欢看到不间断的 iSCSI,因此如果 iSCSI 服务器在节点之间移动,它应该很快。
但是,如果 iSCSI 服务器是外部的(不在其中一个节点上),则不太复杂。