====== ZFSにdRAID(パリティ非クラスタ化RAID)が来る ====== 分散ホットスペアを実現する新たなプール構成「[[https://openzfs.org/wiki/OpenZFS_Developer_Summit_2020_talks#dRAID.2C_Finally_.28With_a_New_Tile_Layout.29_.28Mark_Maybee.29|dRAID]]」が、OpenZFS 2.1でリリース見込みだそうだ。dRAIDによってホットスペアが抽象化され、障害発生時のプールのリビルドが高速化されるとのこと。実装の解説を見ると、Declustered RAIDそのものな気がするが、OpenZFSでは慎ましく“Parity Declustered RAIDZ”と言っているようだ。 現在のZFSにおいて、ホットスペアはプールの予備デバイスという扱いとなっている。伝統的なRAIDシステムと同じ考え方で、ホットスペアは障害が起きたvdevの物理デバイスを置き換え、vdev内でresilver(データの復元とパリティの再計算)が行われる。抽象化が進んでいるZFSシステムの中では珍しく、割と物理デバイスを意識させる実装となっている。 dRAIDでは、そんなホットスペアデバイスの抽象化が行われる。表面上は今まで通りプールにスペアデバイスがあるように振る舞うが、内部的にはホットスペア用のブロックがvdevを構成する物理デバイスに分散して確保され、vdevに所属する仮想的な予備デバイスという扱いになる。デバイス障害時には、プールの全デバイスが分散的にデータ/パリティとスペアブロックの読み書きに携わり、従来は1台のスペアデバイスで律速していた部分解消されるため、リビルド時間が短縮されるという仕掛けのようだ。ちなみに、dRAIDのrebuildはチェックサムとパリティの検証を行わないため、resilverとは明確に違うらしい。 言葉だけだとイメージが付きにくいが、図を見れば簡単に理解できるかと。 {{ :blog:2020:zraid_vs_draid.png |}} 「Characterizing Declustered Software RAID for Enhancing Storage Reliability and Performance」(Zhi (George) Qiao, Song Fu, Hsing-bung Chen, Bradley Wade Settlemyer) より編集して抜粋 HCIのストレージの挙動に近いかも? RAID-Z同様、dRAIDのvdev構成を後から変えることは現時点では出来ないとされている。ただし、dRAIDのデータ構造からするに、いわゆるdRAID Expansionはそう難しくない気がするが果たして…?。[[https://docs.google.com/presentation/d/1uo0nBfY84HIhEqGWEx-Tbm8fPbJKtIP3ICo4toOPcJo/edit#slide=id.g9d6b9fd59f_0_42|コードソンで会おう!]] ===== 参考サイト ===== * [[https://openzfs.org/wiki/OpenZFS_Developer_Summit_2020_talks#dRAID.2C_Finally_.28With_a_New_Tile_Layout.29_.28Mark_Maybee.29|dRAID, Finally (With a New Tile Layout) (Mark Maybee)]] * [[https://docs.google.com/presentation/d/1uo0nBfY84HIhEqGWEx-Tbm8fPbJKtIP3ICo4toOPcJo/|発表資料]] * [[https://openzfs.org/wiki/Roadmap#Parity_Declustered_RAIDZ_.28draid.29|Parity Declustered RAIDZ (draid) : Roadmap - OpenZFS]] * [[https://openzfs.github.io/openzfs-docs/Basic%20Concepts/dRAID%20Howto.html|dRAID Howto — OpenZFS documentation]] * [[https://github.com/openzfs/zfs/pull/10102|Distributed Spare (dRAID) Feature by behlendorf · Pull Request #10102 · openzfs/zfs · GitHub]] * [[https://sc18.supercomputing.org/proceedings/tech_poster/tech_poster_pages/post185.html|Characterizing Declustered Software RAID for Enhancing Storage Reliability and Performance]] * [[https://glennklockwood.blogspot.com/2020/04/understanding-random-read-performance.html|Glenn K. Lockwood: Understanding random read performance along the RAIDZ data path]]