我试图了解各种虚拟化厂商(尤其是Amazon EC2,还有VMware和Xen)如何使软件供应商能够在虚拟化服务器的环境中提供真正的HA解决scheme。
具体来说,如果我正在运行任何HA应用程序(交换,数据库等),我需要确保我的冗余虚拟“服务器”不在同一台物理服务器上。
使用内部虚拟化解决scheme(VMware,Xen等),我可以相应地configuration以及检查虚拟 – >物理安排。 然而,我可能会意外地对相同的物理硬件“vmotion”。
有了EC2,我甚至无法在提供时间select不同的物理服务器。 由于他们的集群计算实例是每个物理服务器1个虚拟服务器,这似乎是唯一的方法来保证我没有冗余的错觉。
任何想法或想法都会有所帮助。 别人在做什么呢? 如果供应商提供了一个API,我可以得到像一个独特的物理系统标识符这样简单的东西,我至less可以知道我是否会遇到问题。
-Tim
我只能真正对VMWare说话。 如果您正在使用DRS,则可以创build将计算机保留在同一实体框中的规则,或将它们保留在单独的实体框中。 即使你不小心把机器放在箱子上,也会马上closures。
如果您使用托pipe的托pipe解决scheme,那么您只需要找出您的合同所说的内容。 在这种情况下,你不是在pipe理机器,而是在购买服务。 找出你要买的东西。 如果您购买的软件包说没有单点故障,那么您所能做的就是假设他们将虚拟机保留在不同的硬件上。 如果他们不这样做,那就失败了,希望你的合同说你可以拿回一些钱,免费的一个月,等等。
如果你无法pipe理系统,为什么他们会给你任何访问权限来告诉你的虚拟机在什么物理机上运行? 你不能做任何事情。 即使可以确保它们不在同一个物理主机上,例如,如何确定SAN具有双重结构?
对于信誉良好的供应商提供的托pipe解决scheme,只需要注意您购买的产品。
编辑 – 从EC2页面:如果你购买一个地区的机器,你得到99.95%的正常运行时间。 您可以购买不同可用区域中的机器以获得更好的可靠性。
这些通常运行在共享存储设备(SAN或类似设备)上,并且物理主机都连接到该设备。 因此,2台能够运行虚拟机的服务器都使用集群文件系统连接到共享存储。 当其中一台服务器出现故障时,另一台服务器开始运行 – 并且它会读取存储器上的文件,因此不会中断。
如果其中一台服务器已经死亡,那么很难将30Gb的访客数据从一台服务器迁移到另一台服务器。
共享存储本身通常被设置为完全冗余的RAID磁盘和冗余光纤通道/ iScsi交换机。