介绍
在本文的第一部分,我们备份数据讨论了不同的解决方案对您的VPS。
本文将探讨冗余的想法。 冗余数据不是备份,但可以为您提供故障转移,以防您访问数据的主要方法变得不可用。
如何选择在系统上实现复制主要取决于您如何使用数据,您希望防御什么失败,以及访问者与您的服务器实例进行交互的方式。
RAID冗余
或许复制的最常见的类型是RAID。 RAID代表独立磁盘冗余阵列。 这意味着在大多数配置中,磁盘以一种或另一种方式彼此镜像。
最基本的冗余RAID实现是RAID 1阵列。 此类型的阵列镜像另一个磁盘上的一个磁盘。 这意味着如果一个磁盘发生故障,另一个磁盘仍然可用于提供和写入数据。 这种类型的数组可以加速读操作,因为系统可以从任一数据位置读取数据。
此示例也是一个很好的示例,说明为什么RAID和一般的冗余设置不是适当的备份。 如果你删除一个文件,它是不好。 每个更改立即应用于两个磁盘。
RAID复制在低级别上实现,因此您将无法控制DigitalOcean VPS上的RAID实施。
块级冗余
提供冗余的另一种方法是,以反映整个数据块的结构。DRBD,或分布式复制块设备,是一种实现跨块设备冗余。
这可能看起来类似于镜像的RAID阵列,在某些方面,它是。 区别在于复制发生在哪里。 使用RAID,冗余发生在应用程序级别以下。 RAID卡或RAID软件管理物理存储设备,并用单个视在设备呈现应用程序。
另一方面,DRBD以完全不同的方式配置。 在DRBD设置中,每个硬件都完全镜像。 应用程序界面也被镜像。 这意味着可以处理应用程序故障,因为存在具有要使用的数据副本的完全独立的机器。 如果您的第一台服务器出现电源故障,则第二台服务器仍将有效运行。
SQL复制
如果您的重要数据存储在SQL数据库(MySQL,MariaDB,PostgreSQL等)中,您可以利用一些内置的复制功能。 这些可用于提供故障转移系统,以防主服务器关闭。
主从复制
最基本的SQL复制类型是主从配置。 在这种情况下,您有一个主数据库服务器,称为“主”服务器。 此服务器负责执行所有写入和更新。 来自此服务器的数据将连续复制到“从”服务器。 这个服务器可以从中读取,但不能写入。
此设置允许您跨多台计算机分配读取,这可以显着提高应用程序的性能。
虽然此性能提高是一个优势,但您可以设置主从复制的主要原因之一是处理故障转移。 如果您的主服务器不可用,您仍然可以从从服务器读取。 此外,如果主站长时间处于离线状态,可以将从站转换为主服务器。
事实上,主从复制是一个我们开始看到冗余和备份如何互补的领域。 在主从配置中,您可以将数据从主机复制到从机。 然后,您可以临时禁用复制,以在从设备上维护一致的信息状态。 从这里,您可以使用任何适当的备份机制备份数据库。
要了解更多有关如何配置MySQL的主从复制 ,请点击此处。 要了解如何完成主从复制在PostgreSQL ,请点击此链接。
主 - 主复制
第二种复制形式称为主 - 主复制。 此配置允许两个服务器具有“主”能力。 这意味着每个服务器都可以接受写入和更新,并将更改传输到对端服务器。 此配置继承了主从设置的优点,但是如果写入由负载平衡机制正确分布,则也会提高写入性能。
这也意味着,在一个服务器关闭的情况下,另一个服务器仍然运行,并准备好接受请求。 虽然配置更复杂,但在发生问题时的故障转移不如主从冗余的复杂,因为从数据库不需要转换为主设备。
如果您使其中一个主服务器脱机,则此配置也可以与备份机制结合使用。 您必须维护静态数据库以使备份正常工作,因此必须确保在备份完成之前不会修改或写入任何数据。
有关更多信息, 如何配置主-主复制 ,请点击此处。
分布作为冗余备选
分布式系统提供了传统冗余设置的许多优点。
我们讨论了镜像RAID级别(RAID 1)。 另一个常见的RAID级别是RAID 5.此RAID在多个驱动器上分配数据,并且还在每个驱动器上写入数据的奇偶校验。 这意味着如果单个驱动器死机,可以从组合其他驱动器上的奇偶校验信息来“重建”任何种类的事务。
这提供了跨磁盘分发数据的不同方式,并且也可以处理单个磁盘故障。
分布式系统不必是基于硬件的。 还有相当多的数据库和其他软件解决方案设计有分布式数据作为关键特性。
一个例子是Riak,一个分布式数据库。 Riak节点都是一样的。 在不同的部分之间没有主 - 从关系。 复制存储在数据库中的对象,因此在这方面存在传统的冗余。
但是,每个节点不都持有整个数据库。 相反,数据以均匀的方式分布在节点之间。 被复制的对象被放置在不同的节点上,以便在硬件故障的情况下提供可用性。
在数据库中实现的另一个很好的例子是Cassandra。 它基于与Riak相同的原则,但是以不同的方式实现。
结论
正如你可以看到的,有很多冗余选项,每个都有自己的优点和缺点。 它主要取决于你试图预期什么问题和你的系统的哪些部分,你认为失败是不能接受的。 你可以想象,一些这些技术的组合将总是产生一个更全面的安全网。
此外,您还应该能够看到冗余设置不能替代备份。 对于冗余系统始终可操作并始终镜像更改的需要,可以轻松地允许在配置的所有点上销毁数据。
对于数据完整性和访问必不可少的应用程序,冗余和备份是非常宝贵的。 正确的实施将确保您的产品始终可供您的用户使用,并且重要的数据永远不会丢失。