raid5-ppl 翻译

Partial Parity Log

Partial Parity Log (PPL) is a feature available for RAID5 arrays. The issue addressed by PPL is that after a dirty shutdown, parity of a particular stripe may become inconsistent with data on other
 member disks. If the array is also in degraded state, there is no way to recalculate parity, because one of the disks is missing. This can lead to silent data corruption when rebuilding the array 
 or using it is as degraded - data calculated from parity for array blocks that have not been touched by a write request during the unclean shutdown can be incorrect. Such condition is known as the 
 RAID5 Write Hole. Because of this, md by default does not allow starting a dirty degraded array.
 
部分奇偶校验日志(PPL)是RAID5阵列可用的特性。PPL解决的问题是,在一次脏的关闭之后,特定条带的奇偶性可能会与其他成员磁盘上的数据不一致。
如果RAID组也处于降级状态,那么就没有办法重新计算奇偶校验位,因为其中一个磁盘丢失了。当重建数组或使用它时,这可能导致静默数据损坏——在不干净的关闭期间,在不被写入请求所触碰的数组块中计算出的数据是不正确的。
这种情况被称为RAID5 write hole。因此,在默认情况下,md不允许启动一个脏的降级数组。

Partial parity for a write operation is the XOR of stripe data chunks not modified by this write. It is just enough data needed for recovering from the write hole. XORing partial parity with the 
modified chunks produces parity for the stripe, consistent with its state before the write operation, regardless of which chunk writes have completed. If one of the not modified data disks of this
stripe is missing, this updated parity can be used to recover its contents. PPL recovery is also performed when starting an array after an unclean shutdown and all disks are available, eliminating
the need to resync the array. Because of this, using write-intent bitmap and PPL together is not supported.

写操作的部分奇偶性是由本次写操作未修改的条带数据块的XOR。它只是从write hole中恢复所需要的数据。使用部分奇偶校验数据与修改后的块的数据进行XOR操作产生条带的奇偶校验位,与写操作之前的状态一致,
不管哪个块写完成了。如果这个条带的某一个未修改的数据磁盘丢失了,那么这个更新的奇偶校验就可以用来恢复它的内容。在不干净的关闭和所有磁盘都可用的情况下启动一个阵列时,也会执行PPL恢复,从而消除了重新
同步阵列的需要。因此,不支持同时使用bitmap和PPL。

When handling a write request,PPL writes partial parity before new data and parity are dispatched to disks. PPL is a distributed log - it is stored on array member drives in the metadata area, on 
the parity drive of a particular stripe.  It does not require a dedicated journaling drive. Write performance is reduced by up to 30%-40% but it scales with the number of drives in the array and 
the journaling drive does not become a bottleneck or a single point of failure.

在处理写请求时,PPL在新数据和奇偶校验被发送到磁盘之前写部分奇偶数据到该条带对应的校验磁盘上面。PPL是一个分布式日志——它存储在元数据区域的阵列成员驱动器上,在特定条带的奇偶性驱动器上。
它不需要专门的日志记录驱动器。写性能降低了30%-40%但它随着数组中驱动器的数量而变大而日志记录驱动器不会成为瓶颈或单点失败。

Unlike raid5-cache, the other solution in md for closing the write hole, PPL is not a true journal. It does not protect from losing in-flight data, only from silent data corruption. If a dirty 
disk of a stripe is lost, no PPL recovery is performed for this stripe (parity is not updated). So it is possible to have arbitrary data in the written part of a stripe if that disk is lost. In 
such case the behavior is the same as in plain raid5.

与raid5-cache不同,在md关闭write hole的另一个解决方案中,PPL不是一个真正的日志。它不能防止丢失飞行中的数据,只保护静默状态下的数据损坏。如果一个条带的脏磁盘丢失了,那么就不会为这个条带执行
PPL恢复(奇偶校验没有更新)。因此,如果磁盘丢失,则可能在条带的written部分中拥有任意数据。在这种情况下,行为和普通的raid5是一样的。

PPL is available for md version-1 metadata and external (specifically IMSM) metadata arrays. It can be enabled using mdadm option --consistency-policy=ppl.

PPL可以用于md版本1,元数据和外部(特别是IMSM)元数据数组。它可以使用mdadm选项——--consistency-policy=ppl。

There is a limitation of maximum 64 disks in the array for PPL. It allows to keep data structures and implementation simple. RAID5 arrays with so many disks are not likely due to high risk of 
multiple disks failure. Such restriction should not be a real life limitation.

对于PPL来说,阵列中最大64个磁盘的限制是有限的。它允许保持数据结构和实现的简单性。有这么多磁盘的RAID5阵列不太可能是由于多个磁盘故障的高风险。这样的限制不应该是真实世界的限制。

你可能感兴趣的:(翻译)