RAID6 - RMW logic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

the last days I tried to understand the RAID6 logic when recalculating
P/Q parity (or syndrome) if only parts of a stripe are updated. As far
as I get the current implementation right it will always read the whole
stripe and build parities from scratch. E.g. updating a single chunk
on a 10 disk RAID6 will read the other 7 data blocks to write the block
plus 2 P/Q parities afterwards. Compared to the best case 3 read plus
3 write operations this can be quite a heavy impact. RAID5 at least
has a shortcut for that.

Being no specialist at all - but having some ideas - I would like to
get some feedback about the following way to improve the scenario.

1) Write a modified gen_syndrome function (call it xor_syndrome)
like in lib/raid6/xxx.c that allows to XOR an existing P/Q parity
without overwriting it. The cost of that function would be the same
as it only changes a few assembler commands.

2) Enhance the ops_run_prexor to call this xor_syndrome function
for an RAID6. Fill the not relevant pages (R5_wantdrain) with an
empty page or NULL. So the gen_syndrome will only find zeroes.
With this call P/Q will have a pre-xored version.

3) Enhance ops_run_reconstruct6 to allow processing of changed
blocks only. We will call xor_snydrome from there too, to XOR
the prexored P/Q once again.

4) Enhance handle_stripe_dirtying so it will allow calculation of
RCW versus RMW costs for the RAID6 case.

Did I miss something? And if not: Will the doubled CPU consumption 
for P/Q calculation justify that way of implementation? At least
we can avoid IOs on slow disks.

Maybe it has been discussed before but I did not find it on the
mailing list.

Thanks in advance.

Markus
****************************************************************************
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
Weitergabe dieser Mail ist nicht gestattet.

�ber das Internet versandte E-Mails können unter fremden Namen erstellt oder
manipuliert werden. Deshalb ist diese als E-Mail verschickte Nachricht keine
rechtsverbindliche Willenserklärung.

Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln

Vorstand:
Kadir Akin
Dr. Michael Höhnerbach

Vorsitzender des Aufsichtsrates:
Hans Kristian Langva

Registergericht: Amtsgericht Köln
Registernummer: HRB 52 497

This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.

e-mails sent over the internet may have been written under a wrong name or
been manipulated. That is why this message sent as an e-mail is not a
legally binding declaration of intention.

Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln

executive board:
Kadir Akin
Dr. Michael Höhnerbach

President of the supervisory board:
Hans Kristian Langva

Registry office: district court Cologne
Register number: HRB 52 497

****************************************************************************

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux