如果我要设置物理服务器来运行业务关键型网站,我绝对会在该环境中建立冗余。我会努力避免单点故障,并至少运行两个服务器(两个 Web 服务器、两个数据库服务器等)。即使我选择在这些服务器上添加虚拟化层,我仍然会努力实现冗余(在这种情况下,还要确保数据库分布在不同的主机上)。
但是,我不确定这种思维方式是否适用于基于 openstack 等的云服务器产品。首先,我总是可以运行两个 Web 服务器和两个数据库服务器,但我怎么知道我的两个数据库服务器不在同一物理主机上运行?其次,我完全不了解 open stack 如何操作虚拟机。单个虚拟机是否绑定到特定主机,或者是否存在物理硬件池,虚拟机在其中进行移动?
我是否应该将开放堆栈云服务器视为 VPS/VM 的另一种形式?我是否应该像规划物理服务器或普通虚拟服务器一样规划开放堆栈云服务器
答案1
如果您想要冗余,您仍然需要为此做好规划。云提供商(无论平台如何)在主机和数据中心级别仍然会出现中断。
通常有一个主机池,而您对虚拟机的去向没有太多发言权。如果主机死机,在虚拟机移动和重新启动时,您会遇到短暂的中断。许多提供商允许您在机器上设置反亲和性规则,以确保您不会将所有 Web 服务器都放在同一台主机上。较大的提供商允许您将它们放在不同的地理区域,以便即使发生数据中心级中断也能继续运行。
Openstack 使他们能够更轻松地在主机之间移动虚拟机,因此主机故障通常会导致更少的停机时间,但并不能消除故障。如果您需要高可用性,您仍然需要为此做好规划。