€•xŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ5/translations/zh_CN/admin-guide/device-mapper/dm-raid”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ5/translations/zh_TW/admin-guide/device-mapper/dm-raid”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ5/translations/it_IT/admin-guide/device-mapper/dm-raid”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ5/translations/ja_JP/admin-guide/device-mapper/dm-raid”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ5/translations/ko_KR/admin-guide/device-mapper/dm-raid”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ5/translations/pt_BR/admin-guide/device-mapper/dm-raid”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ5/translations/sp_SP/admin-guide/device-mapper/dm-raid”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒdm-raid”h]”hŒdm-raid”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒO/var/lib/git/docbuild/linux/Documentation/admin-guide/device-mapper/dm-raid.rst”h´KubhŒ paragraph”“”)�”}”(hŒ–The device-mapper RAID (dm-raid) target provides a bridge from DM to MD. It allows the MD RAID drivers to be accessed using a device-mapper interface.”h]”hŒ–The device-mapper RAID (dm-raid) target provides a bridge from DM to MD. It allows the MD RAID drivers to be accessed using a device-mapper interface.”…”�”}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒMapping Table Interface”h]”hŒMapping Table Interface”…”�”}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhÛh²hh³hÊh´K ubhÌ)�”}”(hŒDThe target is named "raid" and it accepts the following parameters::”h]”hŒGThe target is named “raidâ€� and it accepts the following parameters:”…”�”}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hhÛh²hubhŒ literal_block”“”)�”}”(hŒl <#raid_params> \ <#raid_devs> [.. ]”h]”hŒl <#raid_params> \ <#raid_devs> [.. ]”…”�”}”hhüsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1húh³hÊh´KhhÛh²hubhÌ)�”}”(hŒ :”h]”hŒ :”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhhÛh²hubhŒ block_quote”“”)�”}”(hX' ============= =============================================================== raid0 RAID0 striping (no resilience) raid1 RAID1 mirroring raid4 RAID4 with dedicated last parity disk raid5_n RAID5 with dedicated last parity disk supporting takeover from/to raid1 Same as raid4 - Transitory layout for takeover from/to raid1 raid5_la RAID5 left asymmetric - rotating parity 0 with data continuation raid5_ra RAID5 right asymmetric - rotating parity N with data continuation raid5_ls RAID5 left symmetric - rotating parity 0 with data restart raid5_rs RAID5 right symmetric - rotating parity N with data restart raid6_zr RAID6 zero restart - rotating parity zero (left-to-right) with data restart raid6_nr RAID6 N restart - rotating parity N (right-to-left) with data restart raid6_nc RAID6 N continue - rotating parity N (right-to-left) with data continuation raid6_n_6 RAID6 with dedicate parity disks - parity and Q-syndrome on the last 2 disks; layout for takeover from/to raid0/raid4/raid5_n raid6_la_6 Same as "raid_la" plus dedicated last Q-syndrome disk supporting takeover from/to raid5 - layout for takeover from raid5_la from/to raid6 raid6_ra_6 Same as "raid5_ra" dedicated last Q-syndrome disk - layout for takeover from raid5_ra from/to raid6 raid6_ls_6 Same as "raid5_ls" dedicated last Q-syndrome disk - layout for takeover from raid5_ls from/to raid6 raid6_rs_6 Same as "raid5_rs" dedicated last Q-syndrome disk - layout for takeover from raid5_rs from/to raid6 raid10 Various RAID10 inspired algorithms chosen by additional params (see raid10_format and raid10_copies below) - RAID10: Striped Mirrors (aka 'Striping on top of mirrors') - RAID1E: Integrated Adjacent Stripe Mirroring - RAID1E: Integrated Offset Stripe Mirroring - and other similar RAID10 variants ============= =============================================================== Reference: Chapter 4 of https://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf ”h]”(hŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j*hj'ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”KWuh1j*hj'ubhŒtbody”“”)�”}”(hhh]”(hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÌ)�”}”(hŒraid0”h]”hŒraid0”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjGubjK)�”}”(hhh]”hÌ)�”}”(hŒRAID0 striping (no resilience)”h]”hŒRAID0 striping (no resilience)”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid1”h]”hŒraid1”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj€ubjK)�”}”(hhh]”hÌ)�”}”(hŒRAID1 mirroring”h]”hŒRAID1 mirroring”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid4”h]”hŒraid4”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjºubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj·ubjK)�”}”(hhh]”hÌ)�”}”(hŒ%RAID4 with dedicated last parity disk”h]”hŒ%RAID4 with dedicated last parity disk”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid5_n”h]”hŒraid5_n”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjîubjK)�”}”(hhh]”(hÌ)�”}”(hŒURAID5 with dedicated last parity disk supporting takeover from/to raid1 Same as raid4”h]”hŒURAID5 with dedicated last parity disk supporting takeover from/to raid1 Same as raid4”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhjubhŒ bullet_list”“”)�”}”(hhh]”hŒ list_item”“”)�”}”(hŒ,Transitory layout for takeover from/to raid1”h]”hÌ)�”}”(hj"h]”hŒ,Transitory layout for takeover from/to raid1”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jh³hÊh´Khjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid5_la”h]”hŒraid5_la”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjKubjK)�”}”(hhh]”(hÌ)�”}”(hŒRAID5 left asymmetric”h]”hŒRAID5 left asymmetric”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjeubj)�”}”(hhh]”j)�”}”(hŒ(rotating parity 0 with data continuation”h]”hÌ)�”}”(hj{h]”hŒ(rotating parity 0 with data continuation”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjvubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´Khjeubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid5_ra”h]”hŒraid5_ra”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¢ubjK)�”}”(hhh]”(hÌ)�”}”(hŒRAID5 right asymmetric”h]”hŒRAID5 right asymmetric”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj¼ubj)�”}”(hhh]”j)�”}”(hŒ(rotating parity N with data continuation”h]”hÌ)�”}”(hjÒh]”hŒ(rotating parity N with data continuation”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´K hj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid5_ls”h]”hŒraid5_ls”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K!hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjùubjK)�”}”(hhh]”(hÌ)�”}”(hŒRAID5 left symmetric”h]”hŒRAID5 left symmetric”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K!hjubj)�”}”(hhh]”j)�”}”(hŒ#rotating parity 0 with data restart”h]”hÌ)�”}”(hj)h]”hŒ#rotating parity 0 with data restart”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K#hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj$ubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´K#hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid5_rs”h]”hŒraid5_rs”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K$hjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjPubjK)�”}”(hhh]”(hÌ)�”}”(hŒRAID5 right symmetric”h]”hŒRAID5 right symmetric”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K$hjjubj)�”}”(hhh]”j)�”}”(hŒ#rotating parity N with data restart”h]”hÌ)�”}”(hj€h]”hŒ#rotating parity N with data restart”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K&hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj{ubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´K&hjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid6_zr”h]”hŒraid6_zr”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K'hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj§ubjK)�”}”(hhh]”(hÌ)�”}”(hŒRAID6 zero restart”h]”hŒRAID6 zero restart”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K'hjÁubj)�”}”(hhh]”j)�”}”(hŒ6rotating parity zero (left-to-right) with data restart”h]”hÌ)�”}”(hj×h]”hŒ6rotating parity zero (left-to-right) with data restart”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÒubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´K)hjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid6_nr”h]”hŒraid6_nr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K*hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjþubjK)�”}”(hhh]”(hÌ)�”}”(hŒRAID6 N restart”h]”hŒRAID6 N restart”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K*hjubj)�”}”(hhh]”j)�”}”(hŒ3rotating parity N (right-to-left) with data restart”h]”hÌ)�”}”(hj.h]”hŒ3rotating parity N (right-to-left) with data restart”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K,hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj)ubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´K,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid6_nc”h]”hŒraid6_nc”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K-hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjUubjK)�”}”(hhh]”(hÌ)�”}”(hŒRAID6 N continue”h]”hŒRAID6 N continue”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K-hjoubj)�”}”(hhh]”j)�”}”(hŒ8rotating parity N (right-to-left) with data continuation”h]”hÌ)�”}”(hj…h]”hŒ8rotating parity N (right-to-left) with data continuation”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K/hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€ubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´K/hjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjUubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ raid6_n_6”h]”hŒ raid6_n_6”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K0hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¬ubjK)�”}”(hhh]”(hÌ)�”}”(hŒ RAID6 with dedicate parity disks”h]”hŒ RAID6 with dedicate parity disks”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K0hjÆubj)�”}”(hhh]”j)�”}”(hŒZparity and Q-syndrome on the last 2 disks; layout for takeover from/to raid0/raid4/raid5_n”h]”hÌ)�”}”(hŒZparity and Q-syndrome on the last 2 disks; layout for takeover from/to raid0/raid4/raid5_n”h]”hŒZparity and Q-syndrome on the last 2 disks; layout for takeover from/to raid0/raid4/raid5_n”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K2hjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj×ubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´K2hjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ raid6_la_6”h]”hŒ raid6_la_6”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K4hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjubjK)�”}”(hhh]”(hÌ)�”}”(hŒWSame as "raid_la" plus dedicated last Q-syndrome disk supporting takeover from/to raid5”h]”hŒ[Same as “raid_laâ€� plus dedicated last Q-syndrome disk supporting takeover from/to raid5”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K4hjubj)�”}”(hhh]”j)�”}”(hŒ/layout for takeover from raid5_la from/to raid6”h]”hÌ)�”}”(hj4h]”hŒ/layout for takeover from raid5_la from/to raid6”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K6hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj/ubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´K6hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ raid6_ra_6”h]”hŒ raid6_ra_6”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K7hj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj[ubjK)�”}”(hhh]”(hÌ)�”}”(hŒ1Same as "raid5_ra" dedicated last Q-syndrome disk”h]”hŒ5Same as “raid5_raâ€� dedicated last Q-syndrome disk”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K7hjuubj)�”}”(hhh]”j)�”}”(hŒ/layout for takeover from raid5_ra from/to raid6”h]”hÌ)�”}”(hj‹h]”hŒ/layout for takeover from raid5_ra from/to raid6”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K9hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj†ubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´K9hjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ raid6_ls_6”h]”hŒ raid6_ls_6”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K:hjµubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj²ubjK)�”}”(hhh]”(hÌ)�”}”(hŒ1Same as "raid5_ls" dedicated last Q-syndrome disk”h]”hŒ5Same as “raid5_lsâ€� dedicated last Q-syndrome disk”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K:hjÌubj)�”}”(hhh]”j)�”}”(hŒ/layout for takeover from raid5_ls from/to raid6”h]”hÌ)�”}”(hjâh]”hŒ/layout for takeover from raid5_ls from/to raid6”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kuh1jh³hÊh´Kuh1jh³hÊh´K?hj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒraid10”h]”hŒraid10”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K@hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj`ubjK)�”}”(hhh]”(hÌ)�”}”(hŒjVarious RAID10 inspired algorithms chosen by additional params (see raid10_format and raid10_copies below)”h]”hŒjVarious RAID10 inspired algorithms chosen by additional params (see raid10_format and raid10_copies below)”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K@hjzubj)�”}”(hhh]”(j)�”}”(hŒ:RAID10: Striped Mirrors (aka 'Striping on top of mirrors')”h]”hÌ)�”}”(hj�h]”hŒ>RAID10: Striped Mirrors (aka ‘Striping on top of mirrors’)”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KChjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹ubj)�”}”(hŒ,RAID1E: Integrated Adjacent Stripe Mirroring”h]”hÌ)�”}”(hj§h]”hŒ,RAID1E: Integrated Adjacent Stripe Mirroring”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KDhj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹ubj)�”}”(hŒ*RAID1E: Integrated Offset Stripe Mirroring”h]”hÌ)�”}”(hj¾h]”hŒ*RAID1E: Integrated Offset Stripe Mirroring”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KEhj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹ubj)�”}”(hŒ!and other similar RAID10 variants”h]”hÌ)�”}”(hjÕh]”hŒ!and other similar RAID10 variants”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KFhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹ubeh}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´KChjzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@hj'ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j%hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubhÌ)�”}”(hŒeReference: Chapter 4 of https://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf”h]”(hŒReference: Chapter 4 of ”…”�”}”(hjh²hh³Nh´NubhŒ reference”“”)�”}”(hŒMhttps://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf”h]”hŒMhttps://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”juh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KIhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KhhÛh²hubhÌ)�”}”(hŒ5<#raid_params>: The number of parameters that follow.”h]”hŒ5<#raid_params>: The number of parameters that follow.”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KLhhÛh²hubhÌ)�”}”(hŒ consists of”h]”hŒ consists of”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KNhhÛh²hubj)�”}”(hX’Mandatory parameters: : Chunk size in sectors. This parameter is often known as "stripe size". It is the only mandatory parameter and is placed first. followed by optional parameters (in any order): [sync|nosync] Force or prevent RAID initialization. [rebuild ] Rebuild drive number 'idx' (first drive is 0). [daemon_sleep ] Interval between runs of the bitmap daemon that clear bits. A longer interval means less bitmap I/O but resyncing after a failure is likely to take longer. [min_recovery_rate ] Throttle RAID initialization [max_recovery_rate ] Throttle RAID initialization [write_mostly ] Mark drive index 'idx' write-mostly. [max_write_behind ] See '--write-behind=' (man mdadm) [stripe_cache ] Stripe cache size (RAID 4/5/6 only) [region_size ] The region_size multiplied by the number of regions is the logical size of the array. The bitmap records the device synchronisation state for each region. [raid10_copies <# copies>], [raid10_format ] These two options are used to alter the default layout of a RAID10 configuration. The number of copies is can be specified, but the default is 2. There are also three variations to how the copies are laid down - the default is "near". Near copies are what most people think of with respect to mirroring. If these options are left unspecified, or 'raid10_copies 2' and/or 'raid10_format near' are given, then the layouts for 2, 3 and 4 devices are: ======== ========== ============== 2 drives 3 drives 4 drives ======== ========== ============== A1 A1 A1 A1 A2 A1 A1 A2 A2 A2 A2 A2 A3 A3 A3 A3 A4 A4 A3 A3 A4 A4 A5 A5 A5 A6 A6 A4 A4 A5 A6 A6 A7 A7 A8 A8 .. .. .. .. .. .. .. .. .. ======== ========== ============== The 2-device layout is equivalent 2-way RAID1. The 4-device layout is what a traditional RAID10 would look like. The 3-device layout is what might be called a 'RAID1E - Integrated Adjacent Stripe Mirroring'. If 'raid10_copies 2' and 'raid10_format far', then the layouts for 2, 3 and 4 devices are: ======== ============ =================== 2 drives 3 drives 4 drives ======== ============ =================== A1 A2 A1 A2 A3 A1 A2 A3 A4 A3 A4 A4 A5 A6 A5 A6 A7 A8 A5 A6 A7 A8 A9 A9 A10 A11 A12 .. .. .. .. .. .. .. .. .. A2 A1 A3 A1 A2 A2 A1 A4 A3 A4 A3 A6 A4 A5 A6 A5 A8 A7 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. ======== ============ =================== If 'raid10_copies 2' and 'raid10_format offset', then the layouts for 2, 3 and 4 devices are: ======== ========== ================ 2 drives 3 drives 4 drives ======== ========== ================ A1 A2 A1 A2 A3 A1 A2 A3 A4 A2 A1 A3 A1 A2 A2 A1 A4 A3 A3 A4 A4 A5 A6 A5 A6 A7 A8 A4 A3 A6 A4 A5 A6 A5 A8 A7 A5 A6 A7 A8 A9 A9 A10 A11 A12 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. ======== ========== ================ Here we see layouts closely akin to 'RAID1E - Integrated Offset Stripe Mirroring'. [delta_disks ] The delta_disks option value (-251 < N < +251) triggers device removal (negative value) or device addition (positive value) to any reshape supporting raid levels 4/5/6 and 10. RAID levels 4/5/6 allow for addition and removal of devices (metadata and data device tuple), raid10_near and raid10_offset only allow for device addition. raid10_far does not support any reshaping at all. A minimum of devices have to be kept to enforce resilience, which is 3 devices for raid4/5 and 4 devices for raid6. [data_offset ] This option value defines the offset into each data device where the data starts. This is used to provide out-of-place reshaping space to avoid writing over data while changing the layout of stripes, hence an interruption/crash may happen at any time without the risk of losing data. E.g. when adding devices to an existing raid set during forward reshaping, the out-of-place space will be allocated at the beginning of each raid device. The kernel raid4/5/6/10 MD personalities supporting such device addition will read the data from the existing first stripes (those with smaller number of stripes) starting at data_offset to fill up a new stripe with the larger number of stripes, calculate the redundancy blocks (CRC/Q-syndrome) and write that new stripe to offset 0. Same will be applied to all N-1 other new stripes. This out-of-place scheme is used to change the RAID type (i.e. the allocation algorithm) as well, e.g. changing from raid5_ls to raid5_n. [journal_dev ] This option adds a journal device to raid4/5/6 raid sets and uses it to close the 'write hole' caused by the non-atomic updates to the component devices which can cause data loss during recovery. The journal device is used as writethrough thus causing writes to be throttled versus non-journaled raid4/5/6 sets. Takeover/reshape is not possible with a raid4/5/6 journal device; it has to be deconfigured before requesting these. [journal_mode ] This option sets the caching mode on journaled raid4/5/6 raid sets (see 'journal_dev ' above) to 'writethrough' or 'writeback'. If 'writeback' is selected the journal device has to be resilient and must not suffer from the 'write hole' problem itself (e.g. use raid1 or raid10) to avoid a single point of failure. ”h]”hŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒÏMandatory parameters: : Chunk size in sectors. This parameter is often known as "stripe size". It is the only mandatory parameter and is placed first. ”h]”(hŒterm”“”)�”}”(hŒMandatory parameters:”h]”hŒMandatory parameters:”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´KThj[ubhŒ definition”“”)�”}”(hhh]”jU)�”}”(hhh]”jZ)�”}”(hŒ�: Chunk size in sectors. This parameter is often known as "stripe size". It is the only mandatory parameter and is placed first. ”h]”(j`)�”}”(hŒ :”h]”hŒ :”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´KThjwubjp)�”}”(hhh]”hÌ)�”}”(hŒ€Chunk size in sectors. This parameter is often known as "stripe size". It is the only mandatory parameter and is placed first.”h]”hŒ„Chunk size in sectors. This parameter is often known as “stripe sizeâ€�. It is the only mandatory parameter and is placed first.”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KRhj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjwubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KThjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jThjqubah}”(h]”h ]”h"]”h$]”h&]”uh1johj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KThjVubjZ)�”}”(hXêfollowed by optional parameters (in any order): [sync|nosync] Force or prevent RAID initialization. [rebuild ] Rebuild drive number 'idx' (first drive is 0). [daemon_sleep ] Interval between runs of the bitmap daemon that clear bits. A longer interval means less bitmap I/O but resyncing after a failure is likely to take longer. [min_recovery_rate ] Throttle RAID initialization [max_recovery_rate ] Throttle RAID initialization [write_mostly ] Mark drive index 'idx' write-mostly. [max_write_behind ] See '--write-behind=' (man mdadm) [stripe_cache ] Stripe cache size (RAID 4/5/6 only) [region_size ] The region_size multiplied by the number of regions is the logical size of the array. The bitmap records the device synchronisation state for each region. [raid10_copies <# copies>], [raid10_format ] These two options are used to alter the default layout of a RAID10 configuration. The number of copies is can be specified, but the default is 2. There are also three variations to how the copies are laid down - the default is "near". Near copies are what most people think of with respect to mirroring. If these options are left unspecified, or 'raid10_copies 2' and/or 'raid10_format near' are given, then the layouts for 2, 3 and 4 devices are: ======== ========== ============== 2 drives 3 drives 4 drives ======== ========== ============== A1 A1 A1 A1 A2 A1 A1 A2 A2 A2 A2 A2 A3 A3 A3 A3 A4 A4 A3 A3 A4 A4 A5 A5 A5 A6 A6 A4 A4 A5 A6 A6 A7 A7 A8 A8 .. .. .. .. .. .. .. .. .. ======== ========== ============== The 2-device layout is equivalent 2-way RAID1. The 4-device layout is what a traditional RAID10 would look like. The 3-device layout is what might be called a 'RAID1E - Integrated Adjacent Stripe Mirroring'. If 'raid10_copies 2' and 'raid10_format far', then the layouts for 2, 3 and 4 devices are: ======== ============ =================== 2 drives 3 drives 4 drives ======== ============ =================== A1 A2 A1 A2 A3 A1 A2 A3 A4 A3 A4 A4 A5 A6 A5 A6 A7 A8 A5 A6 A7 A8 A9 A9 A10 A11 A12 .. .. .. .. .. .. .. .. .. A2 A1 A3 A1 A2 A2 A1 A4 A3 A4 A3 A6 A4 A5 A6 A5 A8 A7 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. ======== ============ =================== If 'raid10_copies 2' and 'raid10_format offset', then the layouts for 2, 3 and 4 devices are: ======== ========== ================ 2 drives 3 drives 4 drives ======== ========== ================ A1 A2 A1 A2 A3 A1 A2 A3 A4 A2 A1 A3 A1 A2 A2 A1 A4 A3 A3 A4 A4 A5 A6 A5 A6 A7 A8 A4 A3 A6 A4 A5 A6 A5 A8 A7 A5 A6 A7 A8 A9 A9 A10 A11 A12 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. ======== ========== ================ Here we see layouts closely akin to 'RAID1E - Integrated Offset Stripe Mirroring'. [delta_disks ] The delta_disks option value (-251 < N < +251) triggers device removal (negative value) or device addition (positive value) to any reshape supporting raid levels 4/5/6 and 10. RAID levels 4/5/6 allow for addition and removal of devices (metadata and data device tuple), raid10_near and raid10_offset only allow for device addition. raid10_far does not support any reshaping at all. A minimum of devices have to be kept to enforce resilience, which is 3 devices for raid4/5 and 4 devices for raid6. [data_offset ] This option value defines the offset into each data device where the data starts. This is used to provide out-of-place reshaping space to avoid writing over data while changing the layout of stripes, hence an interruption/crash may happen at any time without the risk of losing data. E.g. when adding devices to an existing raid set during forward reshaping, the out-of-place space will be allocated at the beginning of each raid device. The kernel raid4/5/6/10 MD personalities supporting such device addition will read the data from the existing first stripes (those with smaller number of stripes) starting at data_offset to fill up a new stripe with the larger number of stripes, calculate the redundancy blocks (CRC/Q-syndrome) and write that new stripe to offset 0. Same will be applied to all N-1 other new stripes. This out-of-place scheme is used to change the RAID type (i.e. the allocation algorithm) as well, e.g. changing from raid5_ls to raid5_n. [journal_dev ] This option adds a journal device to raid4/5/6 raid sets and uses it to close the 'write hole' caused by the non-atomic updates to the component devices which can cause data loss during recovery. The journal device is used as writethrough thus causing writes to be throttled versus non-journaled raid4/5/6 sets. Takeover/reshape is not possible with a raid4/5/6 journal device; it has to be deconfigured before requesting these. [journal_mode ] This option sets the caching mode on journaled raid4/5/6 raid sets (see 'journal_dev ' above) to 'writethrough' or 'writeback'. If 'writeback' is selected the journal device has to be resilient and must not suffer from the 'write hole' problem itself (e.g. use raid1 or raid10) to avoid a single point of failure. ”h]”(j`)�”}”(hŒ/followed by optional parameters (in any order):”h]”hŒ/followed by optional parameters (in any order):”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´K×hj¸ubjp)�”}”(hhh]”jU)�”}”(hhh]”(jZ)�”}”(hŒ4[sync|nosync] Force or prevent RAID initialization. ”h]”(j`)�”}”(hŒ [sync|nosync]”h]”hŒ [sync|nosync]”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´KXhjÐubjp)�”}”(hhh]”hÌ)�”}”(hŒ%Force or prevent RAID initialization.”h]”hŒ%Force or prevent RAID initialization.”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KXhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KXhjÍubjZ)�”}”(hŒ?[rebuild ] Rebuild drive number 'idx' (first drive is 0). ”h]”(j`)�”}”(hŒ[rebuild ]”h]”hŒ[rebuild ]”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´K[hjÿubjp)�”}”(hhh]”hÌ)�”}”(hŒ.Rebuild drive number 'idx' (first drive is 0).”h]”hŒ2Rebuild drive number ‘idx’ (first drive is 0).”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K[hjubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´K[hjÍubjZ)�”}”(hŒ±[daemon_sleep ] Interval between runs of the bitmap daemon that clear bits. A longer interval means less bitmap I/O but resyncing after a failure is likely to take longer. ”h]”(j`)�”}”(hŒ[daemon_sleep ]”h]”hŒ[daemon_sleep ]”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´K`hj.ubjp)�”}”(hhh]”hÌ)�”}”(hŒœInterval between runs of the bitmap daemon that clear bits. A longer interval means less bitmap I/O but resyncing after a failure is likely to take longer.”h]”hŒœInterval between runs of the bitmap daemon that clear bits. A longer interval means less bitmap I/O but resyncing after a failure is likely to take longer.”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K^hj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´K`hjÍubjZ)�”}”(hŒ>[min_recovery_rate ] Throttle RAID initialization”h]”(j`)�”}”(hŒ![min_recovery_rate ]”h]”hŒ![min_recovery_rate ]”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´Kbhj]ubjp)�”}”(hhh]”hÌ)�”}”(hŒThrottle RAID initialization”h]”hŒThrottle RAID initialization”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kchjoubah}”(h]”h ]”h"]”h$]”h&]”uh1johj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KbhjÍubjZ)�”}”(hŒ>[max_recovery_rate ] Throttle RAID initialization”h]”(j`)�”}”(hŒ![max_recovery_rate ]”h]”hŒ![max_recovery_rate ]”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´KdhjŒubjp)�”}”(hhh]”hÌ)�”}”(hŒThrottle RAID initialization”h]”hŒThrottle RAID initialization”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kehjžubah}”(h]”h ]”h"]”h$]”h&]”uh1johjŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KdhjÍubjZ)�”}”(hŒ9[write_mostly ] Mark drive index 'idx' write-mostly.”h]”(j`)�”}”(hŒ[write_mostly ]”h]”hŒ[write_mostly ]”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´Kfhj»ubjp)�”}”(hhh]”hÌ)�”}”(hŒ$Mark drive index 'idx' write-mostly.”h]”hŒ(Mark drive index ‘idx’ write-mostly.”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KghjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1johj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KfhjÍubjZ)�”}”(hŒ>[max_write_behind ] See '--write-behind=' (man mdadm)”h]”(j`)�”}”(hŒ[max_write_behind ]”h]”hŒ[max_write_behind ]”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´Khhjêubjp)�”}”(hhh]”hÌ)�”}”(hŒ!See '--write-behind=' (man mdadm)”h]”hŒ%See ‘--write-behind=’ (man mdadm)”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kihjüubah}”(h]”h ]”h"]”h$]”h&]”uh1johjêubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KhhjÍubjZ)�”}”(hŒ<[stripe_cache ] Stripe cache size (RAID 4/5/6 only)”h]”(j`)�”}”(hŒ[stripe_cache ]”h]”hŒ[stripe_cache ]”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´Kjhj ubjp)�”}”(hhh]”hÌ)�”}”(hŒ#Stripe cache size (RAID 4/5/6 only)”h]”hŒ#Stripe cache size (RAID 4/5/6 only)”…”�”}”(hj. h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kkhj+ ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KjhjÍubjZ)�”}”(hŒ´[region_size ] The region_size multiplied by the number of regions is the logical size of the array. The bitmap records the device synchronisation state for each region. ”h]”(j`)�”}”(hŒ[region_size ]”h]”hŒ[region_size ]”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´KohjH ubjp)�”}”(hhh]”hÌ)�”}”(hŒ›The region_size multiplied by the number of regions is the logical size of the array. The bitmap records the device synchronisation state for each region.”h]”hŒ›The region_size multiplied by the number of regions is the logical size of the array. The bitmap records the device synchronisation state for each region.”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KmhjZ ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjH ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KohjÍubjZ)�”}”(hX“ [raid10_copies <# copies>], [raid10_format ] These two options are used to alter the default layout of a RAID10 configuration. The number of copies is can be specified, but the default is 2. There are also three variations to how the copies are laid down - the default is "near". Near copies are what most people think of with respect to mirroring. If these options are left unspecified, or 'raid10_copies 2' and/or 'raid10_format near' are given, then the layouts for 2, 3 and 4 devices are: ======== ========== ============== 2 drives 3 drives 4 drives ======== ========== ============== A1 A1 A1 A1 A2 A1 A1 A2 A2 A2 A2 A2 A3 A3 A3 A3 A4 A4 A3 A3 A4 A4 A5 A5 A5 A6 A6 A4 A4 A5 A6 A6 A7 A7 A8 A8 .. .. .. .. .. .. .. .. .. ======== ========== ============== The 2-device layout is equivalent 2-way RAID1. The 4-device layout is what a traditional RAID10 would look like. The 3-device layout is what might be called a 'RAID1E - Integrated Adjacent Stripe Mirroring'. If 'raid10_copies 2' and 'raid10_format far', then the layouts for 2, 3 and 4 devices are: ======== ============ =================== 2 drives 3 drives 4 drives ======== ============ =================== A1 A2 A1 A2 A3 A1 A2 A3 A4 A3 A4 A4 A5 A6 A5 A6 A7 A8 A5 A6 A7 A8 A9 A9 A10 A11 A12 .. .. .. .. .. .. .. .. .. A2 A1 A3 A1 A2 A2 A1 A4 A3 A4 A3 A6 A4 A5 A6 A5 A8 A7 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. ======== ============ =================== If 'raid10_copies 2' and 'raid10_format offset', then the layouts for 2, 3 and 4 devices are: ======== ========== ================ 2 drives 3 drives 4 drives ======== ========== ================ A1 A2 A1 A2 A3 A1 A2 A3 A4 A2 A1 A3 A1 A2 A2 A1 A4 A3 A3 A4 A4 A5 A6 A5 A6 A7 A8 A4 A3 A6 A4 A5 A6 A5 A8 A7 A5 A6 A7 A8 A9 A9 A10 A11 A12 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. ======== ========== ================ Here we see layouts closely akin to 'RAID1E - Integrated Offset Stripe Mirroring'. ”h]”(j`)�”}”(hŒA[raid10_copies <# copies>], [raid10_format ]”h]”hŒA[raid10_copies <# copies>], [raid10_format ]”…”�”}”(hj{ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´Kªhjw ubjp)�”}”(hhh]”(hÌ)�”}”(hXÃThese two options are used to alter the default layout of a RAID10 configuration. The number of copies is can be specified, but the default is 2. There are also three variations to how the copies are laid down - the default is "near". Near copies are what most people think of with respect to mirroring. If these options are left unspecified, or 'raid10_copies 2' and/or 'raid10_format near' are given, then the layouts for 2, 3 and 4 devices are:”h]”hXÏThese two options are used to alter the default layout of a RAID10 configuration. The number of copies is can be specified, but the default is 2. There are also three variations to how the copies are laid down - the default is “nearâ€�. Near copies are what most people think of with respect to mirroring. If these options are left unspecified, or ‘raid10_copies 2’ and/or ‘raid10_format near’ are given, then the layouts for 2, 3 and 4 devices are:”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Krhj‰ ubj!)�”}”(hhh]”j&)�”}”(hhh]”(j+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j*hj� ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j*hj� ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j*hj� ubhŒthead”“”)�”}”(hhh]”jF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ2 drives”h]”hŒ2 drives”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K|hjÆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjà ubjK)�”}”(hhh]”hÌ)�”}”(hŒ3 drives”h]”hŒ3 drives”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K|hjÝ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjà ubjK)�”}”(hhh]”hÌ)�”}”(hŒ4 drives”h]”hŒ4 drives”…”�”}”(hj÷ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K|hjô ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjà ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjÀ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾ hj� ubjA)�”}”(hhh]”(jF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA1 A1”h]”hŒA1 A1”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K~hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A1 A1 A2”h]”hŒ A1 A1 A2”…”�”}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K~hj4 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj ubjK)�”}”(hhh]”hÌ)�”}”(hŒA1 A1 A2 A2”h]”hŒA1 A1 A2 A2”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K~hjK ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA2 A2”h]”hŒA2 A2”…”�”}”(hjn h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjk ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjh ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A2 A3 A3”h]”hŒ A2 A3 A3”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj‚ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjh ubjK)�”}”(hhh]”hÌ)�”}”(hŒA3 A3 A4 A4”h]”hŒA3 A3 A4 A4”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj™ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjh ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA3 A3”h]”hŒA3 A3”…”�”}”(hj¼ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K€hj¹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¶ ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A4 A4 A5”h]”hŒ A4 A4 A5”…”�”}”(hjÓ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K€hjÐ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¶ ubjK)�”}”(hhh]”hÌ)�”}”(hŒA5 A5 A6 A6”h]”hŒA5 A5 A6 A6”…”�”}”(hjê h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K€hjç ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¶ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA4 A4”h]”hŒA4 A4”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K�hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A5 A6 A6”h]”hŒ A5 A6 A6”…”�”}”(hj! h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K�hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj ubjK)�”}”(hhh]”hÌ)�”}”(hŒA7 A7 A8 A8”h]”hŒA7 A7 A8 A8”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K�hj5 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hŒcomment”“”)�”}”(hŒ..”h]”hŒ..”…”�”}”hjZ sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hjU ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjR ubjK)�”}”(hhh]”jY )�”}”(hŒ.. ..”h]”hŒ.. ..”…”�”}”hjq sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hjn ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjR ubjK)�”}”(hhh]”jY )�”}”(hŒ .. .. ..”h]”hŒ .. .. ..”…”�”}”hjˆ sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hj… ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjR ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@hj� ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j%hjš ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj‰ ubhÌ)�”}”(hŒÑThe 2-device layout is equivalent 2-way RAID1. The 4-device layout is what a traditional RAID10 would look like. The 3-device layout is what might be called a 'RAID1E - Integrated Adjacent Stripe Mirroring'.”h]”hŒÕThe 2-device layout is equivalent 2-way RAID1. The 4-device layout is what a traditional RAID10 would look like. The 3-device layout is what might be called a ‘RAID1E - Integrated Adjacent Stripe Mirroring’.”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K…hj‰ ubhÌ)�”}”(hŒZIf 'raid10_copies 2' and 'raid10_format far', then the layouts for 2, 3 and 4 devices are:”h]”hŒbIf ‘raid10_copies 2’ and ‘raid10_format far’, then the layouts for 2, 3 and 4 devices are:”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŠhj‰ ubj!)�”}”(hhh]”j&)�”}”(hhh]”(j+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j*hjÔ ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j*hjÔ ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j*hjÔ ubj¿ )�”}”(hhh]”jF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ2 drives”h]”hŒ2 drives”…”�”}”(hjþ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŽhjû ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjø ubjK)�”}”(hhh]”hÌ)�”}”(hŒ3 drives”h]”hŒ3 drives”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŽhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjø ubjK)�”}”(hhh]”hÌ)�”}”(hŒ4 drives”h]”hŒ4 drives”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŽhj) ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjø ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjõ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾ hjÔ ubjA)�”}”(hhh]”(jF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA1 A2”h]”hŒA1 A2”…”�”}”(hjU h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K�hjR ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjO ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A1 A2 A3”h]”hŒ A1 A2 A3”…”�”}”(hjl h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K�hji ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjO ubjK)�”}”(hhh]”hÌ)�”}”(hŒA1 A2 A3 A4”h]”hŒA1 A2 A3 A4”…”�”}”(hjƒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K�hj€ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjO ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjL ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA3 A4”h]”hŒA3 A4”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‘hj  ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj� ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A4 A5 A6”h]”hŒ A4 A5 A6”…”�”}”(hjº h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‘hj· ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj� ubjK)�”}”(hhh]”hÌ)�”}”(hŒA5 A6 A7 A8”h]”hŒA5 A6 A7 A8”…”�”}”(hjÑ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‘hjÎ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjL ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA5 A6”h]”hŒA5 A6”…”�”}”(hjñ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K’hjî ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjë ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A7 A8 A9”h]”hŒ A7 A8 A9”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K’hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjë ubjK)�”}”(hhh]”hÌ)�”}”(hŒA9 A10 A11 A12”h]”hŒA9 A10 A11 A12”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K’hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjë ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjL ubjF)�”}”(hhh]”(jK)�”}”(hhh]”jY )�”}”(hŒ..”h]”hŒ..”…”�”}”hj? sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hj< ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj9 ubjK)�”}”(hhh]”jY )�”}”(hŒ.. ..”h]”hŒ.. ..”…”�”}”hjV sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hjS ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj9 ubjK)�”}”(hhh]”jY )�”}”(hŒ .. .. ..”h]”hŒ .. .. ..”…”�”}”hjm sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hjj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj9 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjL ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA2 A1”h]”hŒA2 A1”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K”hjŠ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj‡ ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A3 A1 A2”h]”hŒ A3 A1 A2”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K”hj¡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj‡ ubjK)�”}”(hhh]”hÌ)�”}”(hŒA2 A1 A4 A3”h]”hŒA2 A1 A4 A3”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K”hj¸ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj‡ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjL ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA4 A3”h]”hŒA4 A3”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K•hjØ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÕ ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A6 A4 A5”h]”hŒ A6 A4 A5”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K•hjï ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÕ ubjK)�”}”(hhh]”hÌ)�”}”(hŒA6 A5 A8 A7”h]”hŒA6 A5 A8 A7”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K•hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÕ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjL ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA6 A5”h]”hŒA6 A5”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K–hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj#ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A9 A7 A8”h]”hŒ A9 A7 A8”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K–hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj#ubjK)�”}”(hhh]”hÌ)�”}”(hŒA10 A9 A12 A11”h]”hŒA10 A9 A12 A11”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K–hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjL ubjF)�”}”(hhh]”(jK)�”}”(hhh]”jY )�”}”(hŒ..”h]”hŒ..”…”�”}”hjwsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjqubjK)�”}”(hhh]”jY )�”}”(hŒ.. ..”h]”hŒ.. ..”…”�”}”hjŽsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjqubjK)�”}”(hhh]”jY )�”}”(hŒ .. .. ..”h]”hŒ .. .. ..”…”�”}”hj¥sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjL ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@hjÔ ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j%hjÑ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj‰ ubhÌ)�”}”(hŒ]If 'raid10_copies 2' and 'raid10_format offset', then the layouts for 2, 3 and 4 devices are:”h]”hŒeIf ‘raid10_copies 2’ and ‘raid10_format offset’, then the layouts for 2, 3 and 4 devices are:”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kšhj‰ ubj!)�”}”(hhh]”j&)�”}”(hhh]”(j+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j*hjãubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j*hjãubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j*hjãubj¿ )�”}”(hhh]”jF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ2 drives”h]”hŒ2 drives”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kžhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjubjK)�”}”(hhh]”hÌ)�”}”(hŒ3 drives”h]”hŒ3 drives”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kžhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjubjK)�”}”(hhh]”hÌ)�”}”(hŒ4 drives”h]”hŒ4 drives”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kžhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾ hjãubjA)�”}”(hhh]”(jF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA1 A2”h]”hŒA1 A2”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj^ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A1 A2 A3”h]”hŒ A1 A2 A3”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj^ubjK)�”}”(hhh]”hÌ)�”}”(hŒA1 A2 A3 A4”h]”hŒA1 A2 A3 A4”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj[ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA2 A1”h]”hŒA2 A1”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¡hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¬ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A3 A1 A2”h]”hŒ A3 A1 A2”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¡hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¬ubjK)�”}”(hhh]”hÌ)�”}”(hŒA2 A1 A4 A3”h]”hŒA2 A1 A4 A3”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¡hjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj[ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA3 A4”h]”hŒA3 A4”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¢hjýubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjúubjK)�”}”(hhh]”hÌ)�”}”(hŒ A4 A5 A6”h]”hŒ A4 A5 A6”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¢hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjúubjK)�”}”(hhh]”hÌ)�”}”(hŒA5 A6 A7 A8”h]”hŒA5 A6 A7 A8”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¢hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj[ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA4 A3”h]”hŒA4 A3”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K£hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjHubjK)�”}”(hhh]”hÌ)�”}”(hŒ A6 A4 A5”h]”hŒ A6 A4 A5”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K£hjbubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjHubjK)�”}”(hhh]”hÌ)�”}”(hŒA6 A5 A8 A7”h]”hŒA6 A5 A8 A7”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K£hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj[ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA5 A6”h]”hŒA5 A6”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¤hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj–ubjK)�”}”(hhh]”hÌ)�”}”(hŒ A7 A8 A9”h]”hŒ A7 A8 A9”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¤hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj–ubjK)�”}”(hhh]”hÌ)�”}”(hŒA9 A10 A11 A12”h]”hŒA9 A10 A11 A12”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¤hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj[ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒA6 A5”h]”hŒA6 A5”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¥hjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjäubjK)�”}”(hhh]”hÌ)�”}”(hŒ A9 A7 A8”h]”hŒ A9 A7 A8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¥hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjäubjK)�”}”(hhh]”hÌ)�”}”(hŒA10 A9 A12 A11”h]”hŒA10 A9 A12 A11”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¥hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj[ubjF)�”}”(hhh]”(jK)�”}”(hhh]”jY )�”}”(hŒ..”h]”hŒ..”…”�”}”hj8sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj2ubjK)�”}”(hhh]”jY )�”}”(hŒ.. ..”h]”hŒ.. ..”…”�”}”hjOsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj2ubjK)�”}”(hhh]”jY )�”}”(hŒ .. .. ..”h]”hŒ .. .. ..”…”�”}”hjfsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jX hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@hjãubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j%hjàubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj‰ ubhÌ)�”}”(hŒRHere we see layouts closely akin to 'RAID1E - Integrated Offset Stripe Mirroring'.”h]”hŒVHere we see layouts closely akin to ‘RAID1E - Integrated Offset Stripe Mirroring’.”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K©hj‰ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1johjw ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KªhjÍubjZ)�”}”(hX[delta_disks ] The delta_disks option value (-251 < N < +251) triggers device removal (negative value) or device addition (positive value) to any reshape supporting raid levels 4/5/6 and 10. RAID levels 4/5/6 allow for addition and removal of devices (metadata and data device tuple), raid10_near and raid10_offset only allow for device addition. raid10_far does not support any reshaping at all. A minimum of devices have to be kept to enforce resilience, which is 3 devices for raid4/5 and 4 devices for raid6. ”h]”(j`)�”}”(hŒ[delta_disks ]”h]”hŒ[delta_disks ]”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´Kµhj­ubjp)�”}”(hhh]”hÌ)�”}”(hXñThe delta_disks option value (-251 < N < +251) triggers device removal (negative value) or device addition (positive value) to any reshape supporting raid levels 4/5/6 and 10. RAID levels 4/5/6 allow for addition and removal of devices (metadata and data device tuple), raid10_near and raid10_offset only allow for device addition. raid10_far does not support any reshaping at all. A minimum of devices have to be kept to enforce resilience, which is 3 devices for raid4/5 and 4 devices for raid6.”h]”hXñThe delta_disks option value (-251 < N < +251) triggers device removal (negative value) or device addition (positive value) to any reshape supporting raid levels 4/5/6 and 10. RAID levels 4/5/6 allow for addition and removal of devices (metadata and data device tuple), raid10_near and raid10_offset only allow for device addition. raid10_far does not support any reshaping at all. A minimum of devices have to be kept to enforce resilience, which is 3 devices for raid4/5 and 4 devices for raid6.”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K­hj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KµhjÍubjZ)�”}”(hXÙ[data_offset ] This option value defines the offset into each data device where the data starts. This is used to provide out-of-place reshaping space to avoid writing over data while changing the layout of stripes, hence an interruption/crash may happen at any time without the risk of losing data. E.g. when adding devices to an existing raid set during forward reshaping, the out-of-place space will be allocated at the beginning of each raid device. The kernel raid4/5/6/10 MD personalities supporting such device addition will read the data from the existing first stripes (those with smaller number of stripes) starting at data_offset to fill up a new stripe with the larger number of stripes, calculate the redundancy blocks (CRC/Q-syndrome) and write that new stripe to offset 0. Same will be applied to all N-1 other new stripes. This out-of-place scheme is used to change the RAID type (i.e. the allocation algorithm) as well, e.g. changing from raid5_ls to raid5_n. ”h]”(j`)�”}”(hŒ[data_offset ]”h]”hŒ[data_offset ]”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´KÇhjÜubjp)�”}”(hhh]”hÌ)�”}”(hXÀThis option value defines the offset into each data device where the data starts. This is used to provide out-of-place reshaping space to avoid writing over data while changing the layout of stripes, hence an interruption/crash may happen at any time without the risk of losing data. E.g. when adding devices to an existing raid set during forward reshaping, the out-of-place space will be allocated at the beginning of each raid device. The kernel raid4/5/6/10 MD personalities supporting such device addition will read the data from the existing first stripes (those with smaller number of stripes) starting at data_offset to fill up a new stripe with the larger number of stripes, calculate the redundancy blocks (CRC/Q-syndrome) and write that new stripe to offset 0. Same will be applied to all N-1 other new stripes. This out-of-place scheme is used to change the RAID type (i.e. the allocation algorithm) as well, e.g. changing from raid5_ls to raid5_n.”•¡Äh]”hXÀThis option value defines the offset into each data device where the data starts. This is used to provide out-of-place reshaping space to avoid writing over data while changing the layout of stripes, hence an interruption/crash may happen at any time without the risk of losing data. E.g. when adding devices to an existing raid set during forward reshaping, the out-of-place space will be allocated at the beginning of each raid device. The kernel raid4/5/6/10 MD personalities supporting such device addition will read the data from the existing first stripes (those with smaller number of stripes) starting at data_offset to fill up a new stripe with the larger number of stripes, calculate the redundancy blocks (CRC/Q-syndrome) and write that new stripe to offset 0. Same will be applied to all N-1 other new stripes. This out-of-place scheme is used to change the RAID type (i.e. the allocation algorithm) as well, e.g. changing from raid5_ls to raid5_n.”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¸hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KÇhjÍubjZ)�”}”(hXÁ[journal_dev ] This option adds a journal device to raid4/5/6 raid sets and uses it to close the 'write hole' caused by the non-atomic updates to the component devices which can cause data loss during recovery. The journal device is used as writethrough thus causing writes to be throttled versus non-journaled raid4/5/6 sets. Takeover/reshape is not possible with a raid4/5/6 journal device; it has to be deconfigured before requesting these. ”h]”(j`)�”}”(hŒ[journal_dev ]”h]”hŒ[journal_dev ]”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´KÐhj ubjp)�”}”(hhh]”hÌ)�”}”(hX¬This option adds a journal device to raid4/5/6 raid sets and uses it to close the 'write hole' caused by the non-atomic updates to the component devices which can cause data loss during recovery. The journal device is used as writethrough thus causing writes to be throttled versus non-journaled raid4/5/6 sets. Takeover/reshape is not possible with a raid4/5/6 journal device; it has to be deconfigured before requesting these.”h]”hX°This option adds a journal device to raid4/5/6 raid sets and uses it to close the ‘write hole’ caused by the non-atomic updates to the component devices which can cause data loss during recovery. The journal device is used as writethrough thus causing writes to be throttled versus non-journaled raid4/5/6 sets. Takeover/reshape is not possible with a raid4/5/6 journal device; it has to be deconfigured before requesting these.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÊhjubah}”(h]”h ]”h"]”h$]”h&]”uh1johj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´KÐhjÍubjZ)�”}”(hXU[journal_mode ] This option sets the caching mode on journaled raid4/5/6 raid sets (see 'journal_dev ' above) to 'writethrough' or 'writeback'. If 'writeback' is selected the journal device has to be resilient and must not suffer from the 'write hole' problem itself (e.g. use raid1 or raid10) to avoid a single point of failure. ”h]”(j`)�”}”(hŒ[journal_mode ]”h]”hŒ[journal_mode ]”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´K×hj:ubjp)�”}”(hhh]”hÌ)�”}”(hX>This option sets the caching mode on journaled raid4/5/6 raid sets (see 'journal_dev ' above) to 'writethrough' or 'writeback'. If 'writeback' is selected the journal device has to be resilient and must not suffer from the 'write hole' problem itself (e.g. use raid1 or raid10) to avoid a single point of failure.”h]”hXRThis option sets the caching mode on journaled raid4/5/6 raid sets (see ‘journal_dev ’ above) to ‘writethrough’ or ‘writeback’. If ‘writeback’ is selected the journal device has to be resilient and must not suffer from the ‘write hole’ problem itself (e.g. use raid1 or raid10) to avoid a single point of failure.”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÓhjLubah}”(h]”h ]”h"]”h$]”h&]”uh1johj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´K×hjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1jThjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1johj¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´K×hjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1jThjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KPhhÛh²hubjU)�”}”(hhh]”jZ)�”}”(hXì<#raid_devs>: The number of devices composing the array. Each device consists of two entries. The first is the device containing the metadata (if any); the second is the one containing the data. A Maximum of 64 metadata/data device entries are supported up to target version 1.8.0. 1.9.0 supports up to 253 which is enforced by the used MD kernel runtime. If a drive has failed or is missing at creation time, a '-' can be given for both the metadata and data drives for a given position. ”h]”(j`)�”}”(hŒ8<#raid_devs>: The number of devices composing the array.”h]”hŒ8<#raid_devs>: The number of devices composing the array.”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´KâhjŠubjp)�”}”(hhh]”(hÌ)�”}”(hX+Each device consists of two entries. The first is the device containing the metadata (if any); the second is the one containing the data. A Maximum of 64 metadata/data device entries are supported up to target version 1.8.0. 1.9.0 supports up to 253 which is enforced by the used MD kernel runtime.”h]”hX+Each device consists of two entries. The first is the device containing the metadata (if any); the second is the one containing the data. A Maximum of 64 metadata/data device entries are supported up to target version 1.8.0. 1.9.0 supports up to 253 which is enforced by the used MD kernel runtime.”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÚhjœubhÌ)�”}”(hŒ„If a drive has failed or is missing at creation time, a '-' can be given for both the metadata and data drives for a given position.”h]”hŒˆIf a drive has failed or is missing at creation time, a ‘-’ can be given for both the metadata and data drives for a given position.”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kàhjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1johjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´Kâhj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jThhÛh²hh³hÊh´Nubeh}”(h]”Œmapping-table-interface”ah ]”h"]”Œmapping table interface”ah$]”h&]”uh1hµhh·h²hh³hÊh´K ubh¶)�”}”(hhh]”(h»)�”}”(hŒExample Tables”h]”hŒExample Tables”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÕh²hh³hÊh´Kåubhû)�”}”(hX$# RAID4 - 4 data drives, 1 parity (no metadata devices) # No metadata devices specified to hold superblock/bitmap info # Chunk size of 1MiB # (Lines separated for easy reading) 0 1960893648 raid \ raid4 1 2048 \ 5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81 # RAID4 - 4 data drives, 1 parity (with metadata devices) # Chunk size of 1MiB, force RAID initialization, # min recovery rate at 20 kiB/sec/disk 0 1960893648 raid \ raid4 4 2048 sync min_recovery_rate 20 \ 5 8:17 8:18 8:33 8:34 8:49 8:50 8:65 8:66 8:81 8:82”h]”hX$# RAID4 - 4 data drives, 1 parity (no metadata devices) # No metadata devices specified to hold superblock/bitmap info # Chunk size of 1MiB # (Lines separated for easy reading) 0 1960893648 raid \ raid4 1 2048 \ 5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81 # RAID4 - 4 data drives, 1 parity (with metadata devices) # Chunk size of 1MiB, force RAID initialization, # min recovery rate at 20 kiB/sec/disk 0 1960893648 raid \ raid4 4 2048 sync min_recovery_rate 20 \ 5 8:17 8:18 8:33 8:34 8:49 8:50 8:65 8:66 8:81 8:82”…”�”}”hjæsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1húh³hÊh´KéhjÕh²hubeh}”(h]”Œexample-tables”ah ]”h"]”Œexample tables”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kåubh¶)�”}”(hhh]”(h»)�”}”(hŒ Status Output”h]”hŒ Status Output”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjüh²hh³hÊh´KüubhÌ)�”}”(hX?'dmsetup table' displays the table used to construct the mapping. The optional parameters are always printed in the order listed above with "sync" or "nosync" always output ahead of the other arguments, regardless of the order used when originally loading the table. Arguments that can be repeated are ordered by value.”h]”hXK‘dmsetup table’ displays the table used to construct the mapping. The optional parameters are always printed in the order listed above with “syncâ€� or “nosyncâ€� always output ahead of the other arguments, regardless of the order used when originally loading the table. Arguments that can be repeated are ordered by value.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kýhjüh²hubhÌ)�”}”(hŒœ'dmsetup status' yields information on the state and health of the array. The output is as follows (normally a single line, but expanded here for clarity)::”h]”hŒŸâ€˜dmsetup status’ yields information on the state and health of the array. The output is as follows (normally a single line, but expanded here for clarity):”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjüh²hubhû)�”}”(hŒs1: raid \ 2: <#devices> \ 3: ”h]”hŒs1: raid \ 2: <#devices> \ 3: ”…”�”}”hj)sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1húh³hÊh´Mhjüh²hubhÌ)�”}”(hŒ8Line 1 is the standard output produced by device-mapper.”h]”hŒ8Line 1 is the standard output produced by device-mapper.”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M hjüh²hubhÌ)�”}”(hŒNLine 2 & 3 are produced by the raid target and are best explained by example::”h]”hŒMLine 2 & 3 are produced by the raid target and are best explained by example:”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjüh²hubhû)�”}”(hŒ20 1960893648 raid raid4 5 AAAAA 2/490221568 init 0”h]”hŒ20 1960893648 raid raid4 5 AAAAA 2/490221568 init 0”…”�”}”hjSsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1húh³hÊh´Mhjüh²hubhÌ)�”}”(hŒÐHere we can see the RAID type is raid4, there are 5 devices - all of which are 'A'live, and the array is 2/490221568 complete with its initial recovery. Here is a fuller description of the individual fields:”h]”hŒÔHere we can see the RAID type is raid4, there are 5 devices - all of which are ‘A’live, and the array is 2/490221568 complete with its initial recovery. Here is a fuller description of the individual fields:”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjüh²hubj)�”}”(hX =============== ========================================================= Same as the used to create the array. One char for each device, indicating: - 'A' = alive and in-sync - 'a' = alive but not in-sync - 'D' = dead/failed. The ratio indicating how much of the array has undergone the process described by 'sync_action'. If the 'sync_action' is "check" or "repair", then the process of "resync" or "recover" can be considered complete. One of the following possible states: idle - No synchronization action is being performed. frozen - The current action has been halted. resync - Array is undergoing its initial synchronization or is resynchronizing after an unclean shutdown (possibly aided by a bitmap). recover - A device in the array is being rebuilt or replaced. check - A user-initiated full check of the array is being performed. All blocks are read and checked for consistency. The number of discrepancies found are recorded in . No changes are made to the array by this action. repair - The same as "check", but discrepancies are corrected. reshape - The array is undergoing a reshape. The number of discrepancies found between mirror copies in RAID1/10 or wrong parity values found in RAID4/5/6. This value is valid only after a "check" of the array is performed. A healthy array has a 'mismatch_cnt' of 0. The current data offset to the start of the user data on each component device of a raid set (see the respective raid parameter to support out-of-place reshaping). - 'A' - active write-through journal device. - 'a' - active write-back journal device. - 'D' - dead journal device. - '-' - no journal device. =============== ========================================================= ”h]”j!)�”}”(hhh]”j&)�”}”(hhh]”(j+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j*hjvubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K9uh1j*hjvubjA)�”}”(hhh]”(jF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj�ubjK)�”}”(hhh]”hÌ)�”}”(hŒ1Same as the used to create the array.”h]”hŒ1Same as the used to create the array.”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj�ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ”h]”hŒ”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÇubjK)�”}”(hhh]”(hÌ)�”}”(hŒ%One char for each device, indicating:”h]”hŒ%One char for each device, indicating:”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjáubj)�”}”(hhh]”(j)�”}”(hŒ'A' = alive and in-sync”h]”hÌ)�”}”(hj÷h]”hŒ‘A’ = alive and in-sync”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjòubj)�”}”(hŒ'a' = alive but not in-sync”h]”hÌ)�”}”(hjh]”hŒ‘a’ = alive but not in-sync”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjòubj)�”}”(hŒ'D' = dead/failed.”h]”hÌ)�”}”(hj%h]”hŒ‘D’ = dead/failed.”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjòubeh}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´Mhjáubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÇubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj�ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjLubjK)�”}”(hhh]”hÌ)�”}”(hŒÔThe ratio indicating how much of the array has undergone the process described by 'sync_action'. If the 'sync_action' is "check" or "repair", then the process of "resync" or "recover" can be considered complete.”h]”hŒìThe ratio indicating how much of the array has undergone the process described by ‘sync_action’. If the ‘sync_action’ is “checkâ€� or “repairâ€�, then the process of “resyncâ€� or “recoverâ€� can be considered complete.”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj�ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M!hj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjƒubjK)�”}”(hhh]”(hÌ)�”}”(hŒ%One of the following possible states:”h]”hŒ%One of the following possible states:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M!hj�ubjU)�”}”(hhh]”(jZ)�”}”(hŒ4idle - No synchronization action is being performed.”h]”(j`)�”}”(hŒidle”h]”hŒidle”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´M#hj±ubjp)�”}”(hhh]”j)�”}”(hhh]”j)�”}”(hŒ-No synchronization action is being performed.”h]”hÌ)�”}”(hjËh]”hŒ-No synchronization action is being performed.”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M$hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÆubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´M$hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1johj±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´M#hj®ubjZ)�”}”(hŒ,frozen - The current action has been halted.”h]”(j`)�”}”(hŒfrozen”h]”hŒfrozen”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´M%hjòubjp)�”}”(hhh]”j)�”}”(hhh]”j)�”}”(hŒ#The current action has been halted.”h]”hÌ)�”}”(hj h]”hŒ#The current action has been halted.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M&hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´M&hjubah}”(h]”h ]”h"]”h$]”h&]”uh1johjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´M%hj®ubjZ)�”}”(hŒŠresync - Array is undergoing its initial synchronization or is resynchronizing after an unclean shutdown (possibly aided by a bitmap).”h]”(j`)�”}”(hŒresync”h]”hŒresync”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´M)hj3ubjp)�”}”(hhh]”j)�”}”(hhh]”j)�”}”(hŒ}Array is undergoing its initial synchronization or is resynchronizing after an unclean shutdown (possibly aided by a bitmap).”h]”hÌ)�”}”(hŒ}Array is undergoing its initial synchronization or is resynchronizing after an unclean shutdown (possibly aided by a bitmap).”h]”hŒ}Array is undergoing its initial synchronization or is resynchronizing after an unclean shutdown (possibly aided by a bitmap).”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M(hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjHubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´M(hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1johj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´M)hj®ubjZ)�”}”(hŒ?recover - A device in the array is being rebuilt or replaced.”h]”(j`)�”}”(hŒrecover”h]”hŒrecover”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´M,hjuubjp)�”}”(hhh]”j)�”}”(hhh]”j)�”}”(hŒ3A device in the array is being rebuilt or replaced.”h]”hÌ)�”}”(hŒ3A device in the array is being rebuilt or replaced.”h]”hŒ3A device in the array is being rebuilt or replaced.”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M,hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŠubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´M,hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´M,hj®ubjZ)�”}”(hŒõcheck - A user-initiated full check of the array is being performed. All blocks are read and checked for consistency. The number of discrepancies found are recorded in . No changes are made to the array by this action.”h]”(j`)�”}”(hŒcheck”h]”hŒcheck”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´M3hj·ubjp)�”}”(hhh]”j)�”}”(hhh]”j)�”}”(hŒãA user-initiated full check of the array is being performed. All blocks are read and checked for consistency. The number of discrepancies found are recorded in . No changes are made to the array by this action.”h]”hÌ)�”}”(hŒãA user-initiated full check of the array is being performed. All blocks are read and checked for consistency. The number of discrepancies found are recorded in . No changes are made to the array by this action.”h]”hŒãA user-initiated full check of the array is being performed. All blocks are read and checked for consistency. The number of discrepancies found are recorded in . No changes are made to the array by this action.”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M/hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÌubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´M/hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1johj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´M3hj®ubjZ)�”}”(hŒ@repair - The same as "check", but discrepancies are corrected.”h]”(j`)�”}”(hŒrepair”h]”hŒrepair”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´M6hjùubjp)�”}”(hhh]”j)�”}”(hhh]”j)�”}”(hŒ5The same as "check", but discrepancies are corrected.”h]”hÌ)�”}”(hŒ5The same as "check", but discrepancies are corrected.”h]”hŒ9The same as “checkâ€�, but discrepancies are corrected.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M6hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´M6hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´M6hj®ubjZ)�”}”(hŒ,reshape - The array is undergoing a reshape.”h]”(j`)�”}”(hŒreshape”h]”hŒreshape”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j_h³hÊh´M8hj;ubjp)�”}”(hhh]”j)�”}”(hhh]”j)�”}”(hŒ"The array is undergoing a reshape.”h]”hÌ)�”}”(hjUh]”hŒ"The array is undergoing a reshape.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M9hjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjPubah}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´M9hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1johj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYh³hÊh´M8hj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jThj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj�ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ”h]”hŒ”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M:hj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjŽubjK)�”}”(hhh]”hÌ)�”}”(hŒÞThe number of discrepancies found between mirror copies in RAID1/10 or wrong parity values found in RAID4/5/6. This value is valid only after a "check" of the array is performed. A healthy array has a 'mismatch_cnt' of 0.”h]”hŒæThe number of discrepancies found between mirror copies in RAID1/10 or wrong parity values found in RAID4/5/6. This value is valid only after a “checkâ€� of the array is performed. A healthy array has a ‘mismatch_cnt’ of 0.”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M:hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjŽubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj�ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M>hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÅubjK)�”}”(hhh]”hÌ)�”}”(hŒ£The current data offset to the start of the user data on each component device of a raid set (see the respective raid parameter to support out-of-place reshaping).”h]”hŒ£The current data offset to the start of the user data on each component device of a raid set (see the respective raid parameter to support out-of-place reshaping).”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M>hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj�ubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ”h]”hŒ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MAhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjüubjK)�”}”(hhh]”j)�”}”(hhh]”(j)�”}”(hŒ*'A' - active write-through journal device.”h]”hÌ)�”}”(hjh]”hŒ.‘A’ - active write-through journal device.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MAhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒ''a' - active write-back journal device.”h]”hÌ)�”}”(hj5h]”hŒ+‘a’ - active write-back journal device.”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MBhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒ'D' - dead journal device.”h]”hÌ)�”}”(hjLh]”hŒ‘D’ - dead journal device.”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MChjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒ'-' - no journal device.”h]”hÌ)�”}”(hjch]”hŒ‘-’ - no journal device.”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MDhjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”j=j>uh1jh³hÊh´MAhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@hjvubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j%hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´Mhjüh²hubeh}”(h]”Œ status-output”ah ]”h"]”Œ status output”ah$]”h&]”uh1hµhh·h²hh³hÊh´Küubh¶)�”}”(hhh]”(h»)�”}”(hŒMessage Interface”h]”hŒMessage Interface”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj«h²hh³hÊh´MIubhÌ)�”}”(hŒ¦The dm-raid target will accept certain actions through the 'message' interface. ('man dmsetup' for more information on the message interface.) These actions include:”h]”hŒ®The dm-raid target will accept certain actions through the ‘message’ interface. (‘man dmsetup’ for more information on the message interface.) These actions include:”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MJhj«h²hubj)�”}”(hX‚========= ================================================ "idle" Halt the current sync action. "frozen" Freeze the current sync action. "resync" Initiate/continue a resync. "recover" Initiate/continue a recover process. "check" Initiate a check (i.e. a "scrub") of the array. "repair" Initiate a repair of the array. ========= ================================================ ”h]”j!)�”}”(hhh]”j&)�”}”(hhh]”(j+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j*hjÑubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K0uh1j*hjÑubjA)�”}”(hhh]”(jF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ"idle"”h]”hŒ “idleâ€�”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MOhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjëubjK)�”}”(hhh]”hÌ)�”}”(hŒHalt the current sync action.”h]”hŒHalt the current sync action.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MOhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjëubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjèubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ"frozen"”h]”hŒ “frozenâ€�”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MPhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj"ubjK)�”}”(hhh]”hÌ)�”}”(hŒFreeze the current sync action.”h]”hŒFreeze the current sync action.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MPhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjèubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ"resync"”h]”hŒ “resyncâ€�”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MQhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjYubjK)�”}”(hhh]”hÌ)�”}”(hŒInitiate/continue a resync.”h]”hŒInitiate/continue a resync.”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MQhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjèubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ "recover"”h]”hŒ “recoverâ€�”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MRhj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj�ubjK)�”}”(hhh]”hÌ)�”}”(hŒ$Initiate/continue a recover process.”h]”hŒ$Initiate/continue a recover process.”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MRhjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjèubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ"check"”h]”hŒ “checkâ€�”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MShjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÇubjK)�”}”(hhh]”hÌ)�”}”(hŒ/Initiate a check (i.e. a "scrub") of the array.”h]”hŒ3Initiate a check (i.e. a “scrubâ€�) of the array.”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MShjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÇubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjèubjF)�”}”(hhh]”(jK)�”}”(hhh]”hÌ)�”}”(hŒ"repair"”h]”hŒ “repairâ€�”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MThjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjþubjK)�”}”(hhh]”hÌ)�”}”(hŒInitiate a repair of the array.”h]”hŒInitiate a repair of the array.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MThjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjèubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@hjÑubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j%hjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´MNhj«h²hubeh}”(h]”Œmessage-interface”ah ]”h"]”Œmessage interface”ah$]”h&]”uh1hµhh·h²hh³hÊh´MIubh¶)�”}”(hhh]”(h»)�”}”(hŒDiscard Support”h]”hŒDiscard Support”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjVh²hh³hÊh´MYubhÌ)�”}”(hXªThe implementation of discard support among hardware vendors varies. When a block is discarded, some storage devices will return zeroes when the block is read. These devices set the 'discard_zeroes_data' attribute. Other devices will return random data. Confusingly, some devices that advertise 'discard_zeroes_data' will not reliably return zeroes when discarded blocks are read! Since RAID 4/5/6 uses blocks from a number of devices to calculate parity blocks and (for performance reasons) relies on 'discard_zeroes_data' being reliable, it is important that the devices be consistent. Blocks may be discarded in the middle of a RAID 4/5/6 stripe and if subsequent read results are not consistent, the parity blocks may be calculated differently at any time; making the parity blocks useless for redundancy. It is important to understand how your hardware behaves with discards if you are going to enable discards with RAID 4/5/6.”h]”hX¶The implementation of discard support among hardware vendors varies. When a block is discarded, some storage devices will return zeroes when the block is read. These devices set the ‘discard_zeroes_data’ attribute. Other devices will return random data. Confusingly, some devices that advertise ‘discard_zeroes_data’ will not reliably return zeroes when discarded blocks are read! Since RAID 4/5/6 uses blocks from a number of devices to calculate parity blocks and (for performance reasons) relies on ‘discard_zeroes_data’ being reliable, it is important that the devices be consistent. Blocks may be discarded in the middle of a RAID 4/5/6 stripe and if subsequent read results are not consistent, the parity blocks may be calculated differently at any time; making the parity blocks useless for redundancy. It is important to understand how your hardware behaves with discards if you are going to enable discards with RAID 4/5/6.”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MZhjVh²hubhÌ)�”}”(hŒëSince the behavior of storage devices is unreliable in this respect, even when reporting 'discard_zeroes_data', by default RAID 4/5/6 discard support is disabled -- this ensures data integrity at the expense of losing some performance.”h]”hŒïSince the behavior of storage devices is unreliable in this respect, even when reporting ‘discard_zeroes_data’, by default RAID 4/5/6 discard support is disabled -- this ensures data integrity at the expense of losing some performance.”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MihjVh²hubhÌ)�”}”(hŒStorage devices that properly support 'discard_zeroes_data' are increasingly whitelisted in the kernel and can thus be trusted.”h]”hŒƒStorage devices that properly support ‘discard_zeroes_data’ are increasingly whitelisted in the kernel and can thus be trusted.”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MnhjVh²hubhÌ)�”}”(hŒwFor trusted devices, the following dm-raid module parameter can be set to safely enable discard support for RAID 4/5/6:”h]”hŒwFor trusted devices, the following dm-raid module parameter can be set to safely enable discard support for RAID 4/5/6:”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MqhjVh²hubj)�”}”(hŒ"'devices_handle_discards_safely' ”h]”hÌ)�”}”(hŒ 'devices_handle_discards_safely'”h]”hŒ$‘devices_handle_discards_safely’”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MthjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´MthjVh²hubeh}”(h]”Œdiscard-support”ah ]”h"]”Œdiscard support”ah$]”h&]”uh1hµhh·h²hh³hÊh´MYubh¶)�”}”(hhh]”(h»)�”}”(hŒTakeover/Reshape Support”h]”hŒTakeover/Reshape Support”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj¿h²hh³hÊh´MxubhÌ)�”}”(hŒCThe target natively supports these two types of MDRAID conversions:”h]”hŒCThe target natively supports these two types of MDRAID conversions:”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Myhj¿h²hubhÌ)�”}”(hŒ raid1 with N >= 2 mirrors raid0 -> raid4 (add dedicated parity device) raid0 -> raid5 (add dedicated parity device) raid0 -> raid10 with near layout and N >= 2 mirror groups (raid0 stripes have to become first member within mirror groups) raid1 -> linear raid1 -> raid5 with 2 mirrors raid4 -> raid5 w/ rotating parity raid5 with dedicated parity device -> raid4 raid5 -> raid6 (with dedicated Q-syndrome) raid6 (with dedicated Q-syndrome) -> raid5 raid10 with near layout and even number of disks -> raid0 (select any in-sync device from each mirror group)”h]”hXATakeover: linear -> raid1 with N >= 2 mirrors raid0 -> raid4 (add dedicated parity device) raid0 -> raid5 (add dedicated parity device) raid0 -> raid10 with near layout and N >= 2 mirror groups (raid0 stripes have to become first member within mirror groups) raid1 -> linear raid1 -> raid5 with 2 mirrors raid4 -> raid5 w/ rotating parity raid5 with dedicated parity device -> raid4 raid5 -> raid6 (with dedicated Q-syndrome) raid6 (with dedicated Q-syndrome) -> raid5 raid10 with near layout and even number of disks -> raid0 (select any in-sync device from each mirror group)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M‚hj¿h²hubhÌ)�”}”(hXdReshape: linear: not possible raid0: not possible raid1: change number of mirrors raid4: add and remove stripes (minimum 3), change stripesize raid5: add and remove stripes (minimum 3, special case 2 for raid1 takeover), change rotating parity algorithms, change stripesize raid6: add and remove stripes (minimum 4), change rotating syndrome algorithms, change stripesize raid10 near: add stripes (minimum 4), change stripesize, no stripe removal possible, change to offset layout raid10 offset: add stripes, change stripesize, no stripe removal possible, change to near layout raid10 far: not possible”h]”hXdReshape: linear: not possible raid0: not possible raid1: change number of mirrors raid4: add and remove stripes (minimum 3), change stripesize raid5: add and remove stripes (minimum 3, special case 2 for raid1 takeover), change rotating parity algorithms, change stripesize raid6: add and remove stripes (minimum 4), change rotating syndrome algorithms, change stripesize raid10 near: add stripes (minimum 4), change stripesize, no stripe removal possible, change to offset layout raid10 offset: add stripes, change stripesize, no stripe removal possible, change to near layout raid10 far: not possible”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M�hj¿h²hubhÌ)�”}”(hŒTable line examples:”h]”hŒTable line examples:”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mšhj¿h²hubhÌ)�”}”(hŒ£### raid1 -> raid5 # # 2 devices limitation in raid1. # raid5 personality is able to just map 2 like raid1. # Reshape after takeover to change to full raid5 layout”h]”hŒ£### raid1 -> raid5 # # 2 devices limitation in raid1. # raid5 personality is able to just map 2 like raid1. # Reshape after takeover to change to full raid5 layout”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mœhj¿h²hubj)�”}”(hŒW0 1960886272 raid raid1 3 0 region_size 2048 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3 ”h]”hÌ)�”}”(hŒV0 1960886272 raid raid1 3 0 region_size 2048 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3”h]”hŒV0 1960886272 raid raid1 3 0 region_size 2048 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M¢hj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´M¢hj¿h²hubhÌ)�”}”(hŒ‹# dm-0 and dm-2 are e.g. 4MiB large metadata devices, dm-1 and dm-3 have to be at least 1960886272 big. # # Table line to takeover to raid5”h]”hŒ‹# dm-0 and dm-2 are e.g. 4MiB large metadata devices, dm-1 and dm-3 have to be at least 1960886272 big. # # Table line to takeover to raid5”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M¤hj¿h²hubj)�”}”(hŒW0 1960886272 raid raid5 3 0 region_size 2048 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3 ”h]”hÌ)�”}”(hŒV0 1960886272 raid raid5 3 0 region_size 2048 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3”h]”hŒV0 1960886272 raid raid5 3 0 region_size 2048 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M¨hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´M¨hj¿h²hubhÌ)�”}”(hX;# Add required out-of-place reshape space to the beginniong of the given 2 data devices, # allocate another metadata/data device tuple with the same sizes for the parity space # and zero the first 4K of the metadata device. # # Example table of the out-of-place reshape space addition for one data device, e.g. dm-1”h]”hX;# Add required out-of-place reshape space to the beginniong of the given 2 data devices, # allocate another metadata/data device tuple with the same sizes for the parity space # and zero the first 4K of the metadata device. # # Example table of the out-of-place reshape space addition for one data device, e.g. dm-1”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mªhj¿h²hubj)�”}”(hŒz0 8192 linear 8:0 0 1960903888 # <- must be free space segment 8192 1960886272 linear 8:0 0 2048 # previous data segment ”h]”hÌ)�”}”(hŒy0 8192 linear 8:0 0 1960903888 # <- must be free space segment 8192 1960886272 linear 8:0 0 2048 # previous data segment”h]”hŒy0 8192 linear 8:0 0 1960903888 # <- must be free space segment 8192 1960886272 linear 8:0 0 2048 # previous data segment”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M°hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´M°hj¿h²hubhÌ)�”}”(hŒÀ# Mapping table for e.g. raid5_rs reshape causing the size of the raid device to double-fold once the reshape finishes. # Check the status output (e.g. "dmsetup status $RaidDev") for progress.”h]”hŒÄ# Mapping table for e.g. raid5_rs reshape causing the size of the raid device to double-fold once the reshape finishes. # Check the status output (e.g. “dmsetup status $RaidDevâ€�) for progress.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M³hj¿h²hubj)�”}”(hŒ0 $((2 * 1960886272)) raid raid5 7 0 region_size 2048 data_offset 8192 delta_disk 1 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3 ”h]”hÌ)�”}”(hŒ}0 $((2 * 1960886272)) raid raid5 7 0 region_size 2048 data_offset 8192 delta_disk 1 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3”h]”hŒ}0 $((2 * 1960886272)) raid raid5 7 0 region_size 2048 data_offset 8192 delta_disk 1 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M¶hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´M¶hj¿h²hubeh}”(h]”Œtakeover-reshape-support”ah ]”h"]”Œtakeover/reshape support”ah$]”h&]”uh1hµhh·h²hh³hÊh´Mxubh¶)�”}”(hhh]”(h»)�”}”(hŒVersion History”h]”hŒVersion History”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÒh²hh³hÊh´Mºubhû)�”}”(hX8 1.0.0 Initial version. Support for RAID 4/5/6 1.1.0 Added support for RAID 1 1.2.0 Handle creation of arrays that contain failed devices. 1.3.0 Added support for RAID 10 1.3.1 Allow device replacement/rebuild for RAID 10 1.3.2 Fix/improve redundancy checking for RAID10 1.4.0 Non-functional change. Removes arg from mapping function. 1.4.1 RAID10 fix redundancy validation checks (commit 55ebbb5). 1.4.2 Add RAID10 "far" and "offset" algorithm support. 1.5.0 Add message interface to allow manipulation of the sync_action. New status (STATUSTYPE_INFO) fields: sync_action and mismatch_cnt. 1.5.1 Add ability to restore transiently failed devices on resume. 1.5.2 'mismatch_cnt' is zero unless [last_]sync_action is "check". 1.6.0 Add discard support (and devices_handle_discard_safely module param). 1.7.0 Add support for MD RAID0 mappings. 1.8.0 Explicitly check for compatible flags in the superblock metadata and reject to start the raid set if any are set by a newer target version, thus avoiding data corruption on a raid set with a reshape in progress. 1.9.0 Add support for RAID level takeover/reshape/region size and set size reduction. 1.9.1 Fix activation of existing RAID 4/10 mapped devices 1.9.2 Don't emit '- -' on the status table line in case the constructor fails reading a superblock. Correctly emit 'maj:min1 maj:min2' and 'D' on the status line. If '- -' is passed into the constructor, emit '- -' on the table line and '-' as the status line health character. 1.10.0 Add support for raid4/5/6 journal device 1.10.1 Fix data corruption on reshape request 1.11.0 Fix table line argument order (wrong raid10_copies/raid10_format sequence) 1.11.1 Add raid4/5/6 journal write-back support via journal_mode option 1.12.1 Fix for MD deadlock between mddev_suspend() and md_write_start() available 1.13.0 Fix dev_health status at end of "recover" (was 'a', now 'A') 1.13.1 Fix deadlock caused by early md_stop_writes(). Also fix size an state races. 1.13.2 Fix raid redundancy validation and avoid keeping raid set frozen 1.14.0 Fix reshape race on small devices. Fix stripe adding reshape deadlock/potential data corruption. Update superblock when specific devices are requested via rebuild. Fix RAID leg rebuild errors. 1.15.0 Fix size extensions not being synchronized in case of new MD bitmap pages allocated; also fix those not occurring after previous reductions 1.15.1 Fix argument count and arguments for rebuild/write_mostly/journal_(dev|mode) on the status line.”h]”hX8 1.0.0 Initial version. Support for RAID 4/5/6 1.1.0 Added support for RAID 1 1.2.0 Handle creation of arrays that contain failed devices. 1.3.0 Added support for RAID 10 1.3.1 Allow device replacement/rebuild for RAID 10 1.3.2 Fix/improve redundancy checking for RAID10 1.4.0 Non-functional change. Removes arg from mapping function. 1.4.1 RAID10 fix redundancy validation checks (commit 55ebbb5). 1.4.2 Add RAID10 "far" and "offset" algorithm support. 1.5.0 Add message interface to allow manipulation of the sync_action. New status (STATUSTYPE_INFO) fields: sync_action and mismatch_cnt. 1.5.1 Add ability to restore transiently failed devices on resume. 1.5.2 'mismatch_cnt' is zero unless [last_]sync_action is "check". 1.6.0 Add discard support (and devices_handle_discard_safely module param). 1.7.0 Add support for MD RAID0 mappings. 1.8.0 Explicitly check for compatible flags in the superblock metadata and reject to start the raid set if any are set by a newer target version, thus avoiding data corruption on a raid set with a reshape in progress. 1.9.0 Add support for RAID level takeover/reshape/region size and set size reduction. 1.9.1 Fix activation of existing RAID 4/10 mapped devices 1.9.2 Don't emit '- -' on the status table line in case the constructor fails reading a superblock. Correctly emit 'maj:min1 maj:min2' and 'D' on the status line. If '- -' is passed into the constructor, emit '- -' on the table line and '-' as the status line health character. 1.10.0 Add support for raid4/5/6 journal device 1.10.1 Fix data corruption on reshape request 1.11.0 Fix table line argument order (wrong raid10_copies/raid10_format sequence) 1.11.1 Add raid4/5/6 journal write-back support via journal_mode option 1.12.1 Fix for MD deadlock between mddev_suspend() and md_write_start() available 1.13.0 Fix dev_health status at end of "recover" (was 'a', now 'A') 1.13.1 Fix deadlock caused by early md_stop_writes(). Also fix size an state races. 1.13.2 Fix raid redundancy validation and avoid keeping raid set frozen 1.14.0 Fix reshape race on small devices. Fix stripe adding reshape deadlock/potential data corruption. Update superblock when specific devices are requested via rebuild. Fix RAID leg rebuild errors. 1.15.0 Fix size extensions not being synchronized in case of new MD bitmap pages allocated; also fix those not occurring after previous reductions 1.15.1 Fix argument count and arguments for rebuild/write_mostly/journal_(dev|mode) on the status line.”…”�”}”hjãsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1húh³hÊh´M¾hjÒh²hubeh}”(h]”Œversion-history”ah ]”h"]”Œversion history”ah$]”h&]”uh1hµhh·h²hh³hÊh´Mºubeh}”(h]”Œdm-raid”ah ]”h"]”Œdm-raid”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”jJŒfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j#Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jþjûjÒjÏjùjöj¨j¥jSjPj¼j¹jÏjÌjöjóuŒ nametypes”}”(jþ‰jÒ‰jù‰j¨‰jS‰j¼‰jωjö‰uh}”(jûh·jÏhÛjöjÕj¥jüjPj«j¹jVjÌj¿jójÒuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”(hŒsystem_message”“”)�”}”(hhh]”hÌ)�”}”(hŒfPossible title underline, too short for the title. Treating it as ordinary text because it's so short.”h]”hŒhPossible title underline, too short for the title. Treating it as ordinary text because it’s so short.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËhj‡ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œline”M�Œsource”hÊuh1j…hj¿h²hh³hÊh´M�ubj†)�”}”(hhh]”hÌ)�”}”(hŒfPossible title underline, too short for the title. Treating it as ordinary text because it's so short.”h]”hŒhPossible title underline, too short for the title. Treating it as ordinary text because it’s so short.”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËhj£ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”j Œline”M¥Œsource”hÊuh1j…hj¿h²hh³hÊh´M¥ubeŒtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.