如果我要设置物理服务器来运行关键业务网站,我绝对会在该环境中构建冗余。我会努力避免单点故障,并且至少为每个角色运行两台服务器(两台 Web 服务器、两台数据库服务器等)。即使我选择为这些服务器添加一个虚拟化层,我仍然会努力实现冗余(并且在这种情况下还要确保例如数据库分布在不同的主机上)。
但是,我不确定这种思维方式是否适用于基于例如 openstack 的云服务器产品。首先,我总是可以运行两台 Web 服务器和两台数据库服务器,但我怎么知道我的两台数据库服务器不在同一台物理主机上运行?其次,我对开放堆栈如何操作虚拟机一无所知。单个虚拟机甚至绑定到特定主机,还是有一个物理硬件池,虚拟机在其中混杂在一起?
我是否应该将开放堆栈云服务器视为 VPS/VM 风格的另一种方式?我应该像规划物理服务器还是普通的旧虚拟服务器一样规划开放堆栈云服务器
如果你想要冗余,你仍然需要为它做计划。云提供商(无论平台如何)在主机和数据中心级别仍然存在中断。
通常有一个主机池,您对虚拟机的去向没有太多发言权。如果主机死机,则在移动虚拟机并重新启动时会出现小中断。许多提供商允许您在计算机上设置反关联规则,以确保您最终不会将所有 Web 服务器都放在同一主机上。更大的可以让您将它们放在不同的地理区域,即使在数据中心级别中断时也能继续运行。
Openstack 使他们更容易在主机之间移动虚拟机,因此主机故障通常会减少停机时间,但不会消除故障。如果您需要高可用性,您仍然需要对其进行规划。