我有两台由同一家提供商维护的虚拟服务器。我要求他们将它们放在不同的物理机器上。他们告诉我,他们将它们放在一个集群的不同节点上。
我不太了解集群以及节点实际上是什么(是一台独立的机器吗?)我想知道在与生产服务器的保存集群中拥有备份服务器是否安全。
我认为在独立的机器上安装一个备份服务器是一个好主意,这样如果其中一台服务器意外崩溃,另一台服务器仍然是安全的。
答案1
如果不了解更多有关威胁模型的知识,就无法检验任何解决方案,也就是说,您要防范什么?
如果您想要承受托管映像部分软件故障的影响,那么只需拥有两台虚拟机就足够了;如果一台崩溃,另一台应该还可以。
如果您想在主机方面出现软件或硬件故障时幸存下来,那么 joeqwerty 在上述评论中是正确的:这将取决于托管和集群技术的细节,并且只有您的托管公司可以就此提供建议。
如果您想要承受托管公司基础设施故障的影响,那么在不同的主机上安装虚拟机是不够的;您将需要位于不同站点的虚拟机,甚至可能需要来自不同提供商的虚拟机。
除非您更精确地了解所寻求的冗余类型,否则没有人能够说出给定的解决方案是否足够。
还有几点需要注意:虚拟机之间的隔离越大,在合理的时间范围内故障转移到备份服务器就越困难。ADM 正确地指出,备份应尽可能远离信息源,尽管这并不是您问的问题。
答案2
不,这种方案并不安全,因为如果您的(提供商/主机服务器/提供商备份)出现故障,您将无法恢复您的业务。
最安全的备份是将您的文件存储到完全不同的位置 - Dropbox、S3、Github、您自己的家用电脑等。
如果发生任何灾难,通过此设置,您可以轻松地在其他任何地方购买新服务器并推出备份。
答案3
您迟早必须在延迟和数据保护之间做出妥协。
保护数据的最佳方式是通过能够防止拜占庭式故障的算法。此类算法至少需要四个副本,而这些副本之间的通信延迟可能会导致数据更新延迟。这种情况尤其糟糕,因为这些副本需要位于四个不同的数据中心才能获得最佳安全性。
几乎每个人都选择牺牲这种设置所带来的一点完整性保证,以降低成本和/或提高性能。
同一数据中心的两台服务器可以提高服务的可用性,并防止某些数据丢失的情况。但是,如果两台服务器都在写入数据,而它们认为另一台服务器已关闭,则两台服务器的设置确实会带来轻微的数据损坏风险。将服务器放在同一个数据中心可以减少它们之间的延迟,并使它们更有可能保持连接,而不会同时执行冲突的写入。
但是同一数据中心的两台服务器不能替代备份或复制。
可以在写入数据后立即将其复制到另一个物理位置。如果您允许在将数据复制到另一个物理位置之前提交写入并将其传达回客户端,则延迟成本将可以忽略不计。数据丢失可能性的窗口可以保持在几分钟或几秒钟,具体取决于写入量。