介绍
在本文的第一部分,您 探索了在 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 相同的原理,但以不同的方式实现。
结论
如您所见,冗余有很多选择,每种都有其优点和缺点。 这主要取决于您试图预测的问题以及您认为系统的哪些部分故障是不可接受的。 可以想象,这些技术中的一些组合总是会产生更全面的安全网。
此时您还应该能够看到冗余设置不能替代备份。 冗余系统始终可运行并始终镜像更改的需求很容易使数据从配置的所有点被破坏。
对于数据完整性和访问至关重要的应用程序,冗余和备份都非常宝贵。 正确实施将确保您的产品始终可供用户使用,并且重要数据永远不会丢失。