复制和擦除编码技术之间的区别

Kre*_*bto 7 replication backup partitioning raid

我希望我在正确的社区中提问,如果没有,任何建议将不胜感激。

我正在做一份调查论文,我正在对擦除编码和复制技术进行比较。在这个阶段,我正在比较它们的具体参数如下。

我试图构建的表格处理区分哪种技术在以下方面更好的参数:存储效率、可用性、持久性、编码时间、故障延迟和重建成本。

  • 由于在发生故障时复制在读取性能方面更快,所以我说复制技术在故障时具有更高的延迟是否正确?和编码时间相同,说复制具有较高的编码时间是否正确,因为它在写入时具有更好的性能时间?

  • 纠删码系统失败的重建成本是否高于复制?它是否涉及更多的磁盘 I/O?如果故障是暂时的或永久性的,它会有所不同吗?

  • 如果我根据瞬态和永久性故障比较上述所有参数,是否会提供更多信息?


如果我将它们进行如下比较是否正确?

纠删码: 更高(持久性、存储效率、可用性)和更低(编码时间、故障延迟、重建成本)

复制:*更高(编码时间、故障延迟、重建成本)和更低(持久性、存储效率、可用性)


Han*_*non 7

RAID 奇偶校验条带中常用的擦除编码包括通过奇偶校验计算和跨多个存储子系统(或磁盘)条带化结果数据的高可用性。复制,通常称为镜像,只是将数据的多个副本写入多个存储子系统或磁盘。

擦除编码会增加所有写入的延迟,因为传入数据必须计算奇偶校验并将其写入磁盘。故障模式下的读取速度会变慢,因为必须通过将非丢失数据与奇偶校验块进行比较来即时重建丢失的数据。

复制下的写入通常不像擦除编码下那样受到影响,因为复制的数据可以传递到底层存储而无需奇偶校验计算,并且通常同时并行写入两个或多个磁盘。故障模式下复制数据的读取速度通常与非故障模式下的读取速度相同,因为数据是从非故障磁盘整体读取的,无需执行任何计算来“弥补”丢失的数据。

纠删码通常比复制需要更少的存储空间,因为唯一的冗余数据是奇偶校验码,而在复制中,所有数据都是重复的。

可以说,SQL Server 存储系统中最常用的存储冗余方案是 RAID-10,它结合了 RAID-1(更常见的术语中的复制或镜像)和 RAID-0 条带化无奇偶校验。典型的 RAID-10 阵列可能由 8 个磁盘组成,这些磁盘配置为 4 个镜像对,其中数据跨 4 对磁盘进行条带化。这可以实现快速读取和快速写入,同时保持冗余。只要单个镜像对中的任意两个磁盘不会同时发生故障,就可以有多个磁盘发生故障而不会丢失数据。

逻辑盘:C:\
                          |
条纹:============================
             | | | |
镜像:======================
           DDDDDDDD
           iiiiiiiii
           sssssss
           咕咕咕咕咕咕咕咕咕咕咕咕咕 
           1 2 3 4 5 6 7 8

在 Raid 10 中,只要在同一镜像对中没有发生两个故障,上述设置中最多可能发生 4 个磁盘故障。使用 RAID-50,在条带级别使用纠删码,只要单个镜像对有两个磁盘同时发生故障,最多 5 个磁盘就会发生故障。例如,Disk1、Disk2、Disk3、Disk5 和 Disk8 可以同时发生故障而不会丢失数据。

为了回答您的问题,任何以非冗余方式将数据写入单个磁盘而导致额外操作的 I/O 都会给系统增加明显的延迟。一个系统比另一个系统慢还是快在很大程度上取决于实际实施,每个制造商所做的优化因目标受众而异。

可以肯定地说,奇偶校验(纠删码)比复制更慢,需要更多 I/O,并且每 GB 成本更低。复制的重建速度可能更快,写入延迟更低,并且每 GB 成本更高。同样,这些假设是广泛的概括,取决于因供应商和目标系统而异的实现细节。