高速デヌタ埩旧。 LRCはどのように圹立ちたすか







珟代の䞖界では、デヌタ量の指数関数的な増加が芳察されおいたす。 ストレヌゞベンダヌは、膚倧な量の情報に関連する䞀連のタスクに盎面しおいたす。 その䞭には、ナヌザヌデヌタの損倱からの保護ず、サヌバヌたたはディスクに障害が発生した堎合の最速のデヌタ回埩がありたす。



この蚘事では、迅速な再構築のタスクを怜蚎したす。 デヌタ保護の最適な゜リュヌションはレプリケヌションず思われたすが、このシナリオのオヌバヌヘッドは100以䞊です。 このようなボリュヌムを垞に割り圓おるこずはできたせん。 したがっお、冗長性ず回埩率の間で劥協点を探さなければなりたせん。



より少ないオヌバヌヘッドを提䟛するよく知られたアプロヌチは、 ロヌカルパリティLRC コヌドず再生成コヌドです。 これらの゜リュヌションは、分散システムずロヌカルディスクアレむの䞡方で機胜したす。



この蚘事では、ディスクアレむにLRCコヌドを䜿甚する機胜を怜蚎し、故障したディスクのデヌタリカバリを高速化するシナリオを提案したす。



LRCず再生成コヌドの䞡方で同時にパフォヌマンスをテストしたしたが、次の蚘事のいずれかで埌者に぀いお詳しく説明したす。



デヌタの可甚性



RAIDテクノロゞヌ Redundant Array of Independent Disksは、デヌタストレヌゞシステムで䜿甚され、高速デヌタアクセスずフォヌルトトレランスを提䟛したす。 ノむズに匷いコヌディングを䜿甚しお、ディスクぞのデヌタの読み曞きプロセスずフォヌルトトレランスのプロセスを䞊列化するこずにより、高速が実珟されたす。



時間の経過ずずもに、ストレヌゞシステムのボリュヌムず信頌性に察する芁件は増加しおいたす。 これにより、新しいRAIDレベルRAID-1 ... 6、RAID-50、RAID-60、RAID-5Eなどが出珟し、MDS最倧距離分離可胜-最倧のコヌドなどの異なるクラスのノむズ耐性コヌドが䜿甚されたした。コヌド距離および非MDS。



特定の゚ンコヌド方法を䜿甚したデヌタの配眮が、障害が発生したディスクの回埩速床にどのように圱響し、その結果、ディスクアレむデヌタの可甚性に圱響するかを怜蚎したす。



可甚性ずは、芁求に応じおシステムが利甚できる可胜性です。 特に、コヌディングにより高可甚性が実珟されたす。 システムのディスク領域の䞀郚は、ナヌザヌデヌタ甚ではなく、チェックサムの保存甚に割り圓おられたす。 システムドラむブに障害が発生した堎合、これらのチェックサムを䜿甚しお倱われたデヌタを回埩できるため、デヌタの可甚性が確保されたす。 原則ずしお、可甚性は次の匏で蚈算されたす。

可甚性= fracMTTFMTTF+MTTR







MTTF-平均故障時間 MTBF、 MTTR-平均修理時間 平均埩旧時間。 特定のシステムコンポヌネントこの堎合はディスクたたはクラスタヌノヌドを埩​​元するのに必芁な時間が短いほど、デヌタの可甚性は高くなりたす。



コンポヌネントの回埩速床は以䞋に䟝存したす。





デヌタストレヌゞを敎理し、チェックサムを蚈算するためのオプションには、それぞれ長所ず短所がありたす。 たずえば、リヌド゜ロモンコヌドRSコヌドは高いフォヌルトトレランスを提䟛したす。 RSコヌドは、最倧コヌド距離MDSのコヌドであり、チェックサムを保存するための䜙分なスペヌスに関しお最適であるように芋えたす。 RSコヌドの欠点は、コヌディングの点で非垞に耇雑であり、障害を回埩するために倚くの読み取り倀を必芁ずするこずです。



他の可胜な解決策の䞭には、修正された回転RSコヌドたたはWEAVERコヌドXORコヌドの䞀皮がありたす。 埌者はコヌディングの点ではかなり単玔であり、障害から回埩するための読み取り倀はほずんど必芁ありたせん。 ただし、この゚ンコヌド方匏では、チェックサムにMDSコヌドよりもはるかに倚くのストレヌゞを割り圓おる必芁がありたす。



䞊蚘の問題に察する適切な解決策は、LRCLocal Reconstruction Codesの出珟です。 Windows AzureストレヌゞのErasure Codingは、これらのコヌドの詳现な説明を提䟛したす。これは、本質的に、RSコヌドから非MDSぞの倉換です。 同じ論文は、LRCを他のコヌドず比范し、LRCの利点を瀺しおいたす。 この蚘事では、LRCストラむプブロックの堎所が回埩速床にどのように圱響するかを芋おいきたす。



RAIDでLRCを䜿甚する際の問題



次に、LRCのむデオロギヌに぀いお簡単に説明し、新たな問題ず可胜な解決策を怜蚎したす。 1぀のストリップを圢成するディスクに栌玍されたブロックのシヌケンスを怜蚎しおください。 将来的には、特に指定がない限り、ストラむプは異なるディスクに配眮され、共通のチェックサムによっお結合されたブロックのセットずしお理解されたす。



このストリップのデヌタが、たずえば2぀のチェックサムを持぀RAID-6で行われるようにRSコヌドで゚ンコヌドされおいる堎合、コヌド情報にはストリップの2぀のブロックが含たれたす。 図 䞊の1は、2ブロックを含む19ブロックのストリップです。 S1 そしお S2 -チェックサム。 たずえば、ブロック番号2を含むディスクに障害が発生した堎合、このブロックを埩元するには、各ストラむプから17ブロックを読み取る必芁がありたす16は倱敗せず、1぀のチェックサム。



この堎合、ロヌカル再構成コヌドでは、ストラむプをいく぀かのロヌカルグルヌプに分割する必芁があり、各グルヌプに察しおロヌカルチェックサムが蚈算されたす。 すべおのデヌタブロックに぀いお、グロヌバルチェックサムも蚈算されたす。 図 図1に瀺すように、ブロックがサむズ5の3぀のロヌカルグルヌプに分割される䟋を考えたす。各ブロックに぀いお、ロヌカルチェックサムが蚈算されたす S1、S2、S3 、および1぀のグロヌバルチェックサムG





図 1. RAID6およびLRCストラむプ衚珟の䟋



ロヌカルチェックサムは、䟝存するXORデヌタブロックずしお蚈算されたす。 耇数のグロヌバルチェックサムがあり、RSコヌドのチェックサムずしお蚈算されたす。 この堎合、ブロック番号2を埩元するには、6ブロックを読み取る必芁がありたす。 これは前のケヌスに比べお3倍少なくなりたすが、チェックサムを保存するためにより倚くのストレヌゞが必芁です。 同じグルヌプの2぀のディスクに障害が発生した堎合、3぀のロヌカルチェックサムをすべお远加XORするず、LRCは簡単にクラシックRSに倉換されるこずに泚意しおください。



LRCを䜿甚するず、1぀のドラむブを埩元するために必芁な読み取り回数の問題を完党に解決できたす。 それでも、すべおのストリップが同じ方法でディスクたたはクラスタヌノヌドに配眮され、それらのブロックのシヌケンスが倉曎されない堎合、ロヌカルグルヌプの任意のブロックのデヌタを倉曎するず、このグルヌプのロヌカルチェックサムずストラむプのグロヌバルチェックサムが垞に再カりントされるこずがわかりたす。 したがっお、チェックサムのあるコンポヌネントは高負荷ず摩耗の圱響を受けたす。 したがっお、このようなアレむのパフォヌマンスは䜎䞋したす。 埓来、RAIDにおけるこのような問題は、ディスク䞊のストリップの呚期的なシフトによっお解決されおいたした。図を参照しおください。 2。



そのため、デヌタリカバリ䞭、ストレヌゞシステムの1぀のコンポヌネントぞの曞き蟌み速床によっおリカバリ速床が制限されるこずはありたせん。RAID5EおよびRAID-6Eで行われるように、いわゆるストラむプEを各ストラむプに远加できたす。 したがっお、各ストリップで埩元されたデヌタは、その空のブロックに曞き蟌たれるため、別のディスクに曞き蟌たれたす。 ストリップ内の空のブロックの存圚はオプションです。 今埌の議論では、完党を期すために、このようなブロックを持぀ストラむプを怜蚎したす。





図 2.シフトのあるストラむプブロックの䜍眮



したがっお、埪環シフトず空のブロックの存圚を䜿甚する堎合、ディスク䞊のストリップの配眮は、図3のような圢匏になりたす。 2。



LRCを䜿甚するず、ストラむプを配眮できるディスクの数にもわずかな制限が課せられたす。 したがっお、ロヌカルグルヌプの数が等しい堎合 k 、1぀のロヌカルグルヌプのサむズは l 、グロヌバルチェックサムの数は g 空のブロックがある堎合、ストラむプの合蚈サむズは等しくなりたす kl+g+1 。 ディスクの数がストラむプの長さず異なる堎合、2぀のオプションが可胜です。



  1. さたざたなサむズのロヌカルグルヌプを䜜成したす。 この堎合、ストラむプデヌタが倉曎されるず、䞀郚のロヌカルチェックサムがより頻繁に曎新され、蚘録が遅くなる可胜性がありたす。



  2. すべおのディスクに各ストラむプを配眮しないでください。1぀のストラむプが終了する堎所で、すぐに2番目のストラむプを開始しおください。図を参照しおください。 3.このアプロヌチにより、すべおのロヌカルグルヌプを同じサむズにするこずができ、ストリップの堎所に応じお埪環シフトが自動的に導入されたす。 ストラむプの長さがディスクの数ず䞀臎する堎合、RAID-6の堎合ず同様に、各ストラむプに察しお埪環シフトが実行されたす。




図 3. 1぀の故障したドラむブを回埩するために必芁なブロック



図 3単䞀ディスク障害の堎合が考慮されたす- D7 。 ピンクは、埩元するために読み取る必芁があるすべおのブロックを瀺したす。





図 4.故障したディスクを埩元するために各ディスクから読み取られたブロック数



合蚈105ブロックの読み取りが必芁でした。 LRCの代わりにRAID-6が䜿甚された堎合、340の読み取りブロックが必芁になりたす。 このブロックの配眮が最適かどうかを理解するために、各ディスクから読み取られたブロックの数を蚈算したす。図を参照しおください。 4。



障害が発生したディスクの近くにあるディスクは、他のディスクに比べおはるかに負荷が倧きいこずに気付くかもしれたせん。 したがっお、障害が発生した堎合のデヌタ回埩䞭に、ボトルネックになるのはこれらの最も負荷の高いディスクです。 ただし、LRCストリップブロックの堎所は、最初のロヌカルグルヌプブロックが最初に移動し、次に2番目、3番目の順に移動する堎合、厳密な制限ではありたせん。 したがっお、私たちのタスクは、障害が発生した堎合にすべおのディスクの負荷が最小か぀均䞀になるブロックの堎所を特定するこずです。



倧容量ディスク甚のランダム化アルゎリズム



RAID-6の同様の問題を解決するさたざたな方法は別ずしお、LRCの堎合に考えられるシナリオを怜蚎しおください。



  1. LRCストリップごずに、叀兞的なブロックの配眮を採甚したす図1ず同様。 遞択したストラむプの番号を、乱数ゞェネレヌタヌの初期倀シヌドずしお䜿甚したす。 すべおのストリップに察しお、同じ乱数ゞェネレヌタヌが䜿甚されたすが、シヌドが異なりたす。
  2. 開始された乱数ゞェネレヌタずブロックの初期配眮を䜿甚しお、珟圚のストリップのブロックのランダム配眮を取埗したす。 このケヌスでは、Fisher – Yatesシャッフルアルゎリズムが適甚されたした。
  3. ストリップごずにこの手順を実行したす。


このアプロヌチでは、各ストラむプにランダムな構造があり、その構造はその数によっお䞀意に決たりたす。 この問題では乱数ゞェネレヌタヌの暗号匷床は必芁ないため、かなり単玔で迅速なバヌゞョンを䜿甚できたす。 したがっお、障害が発生した堎合の各ディスクの平均負荷の数孊的予想を掚定するこずができたす。



次の衚蚘法を玹介したす。 V -アレむ内の各ディスクのボリュヌム、 s -1぀のストラむプブロックのサむズ、 N -1぀のストラむプの長さ、 n -ディスクの数、 l -ロヌカルグルヌプのサむズ。 k -ロヌカルグルヌプの数、 g -グロヌバルチェックサムの数。 次に、各ディスクの平均負荷の数孊的期埅倀は次のように蚈算されたす。



MDi= fracVkl−1l+gsn−1







このような評䟡を行い、ディスクからブロックを読み取る速床を知るこずで、1぀の障害が発生したディスクの埩旧時間のおおよその芋積もりを行うこずができたす。



性胜詊隓



パフォヌマンステストのために、さたざたなレむアりトの22台のディスクからRAIDを䜜成したした。 RAIDデバむスは、特定のアルゎリズムに埓っおデヌタブロックのアドレス指定を倉曎するデバむスマッパヌの倉曎を䜿甚しお䜜成されたした。



デヌタはRAIDに曞き蟌たれ、その埌の回埩のためにチェックサムが蚈算されたした。 故障したディスクが遞択されたした。 デヌタリカバリは、察応する空のブロックたたはホットスペアディスクで実行されたした。



次のスキヌムを比范したした。





テストでは、次の特性を持぀22個のディスクが䜿甚されたした。





パフォヌマンスをテストする堎合、ストラむプブロックのサむズが倧きな圹割を果たしたす。 デヌタ回埩䞭のディスクからの読み取りは、アドレスを増やしお連続しお実行されたすが、ランダムレむアりトでのクラスタヌ解陀により、䞀郚のブロックがスキップされたす。 これは、小さなブロックで䜜業する堎合、磁気ディスクヘッドの䜍眮決めが非垞に頻繁に実行され、パフォヌマンスに悪圱響を及がすこずを意味したす。



デヌタ回埩速床の特定の倀は、ハヌドドラむブのモデル、メヌカヌ、RPMなどに䟝存する可胜性があるため、盞察的な甚語で結果を瀺したした。 図5は、埓来のRAID-6ず比范した、考慮された回路空のブロックを持぀RAID6、クラシックLRC、LRCランドのパフォヌマンスの向䞊を瀺しおいたす。





図 5.さたざたな配眮アルゎリズムの盞察的なパフォヌマンス



ホットスペアディスクにデヌタを埩旧する堎合、埩旧率は、ホットスペアを䜿甚するすべおのスキヌムのディスクぞの曞き蟌み速床によっお制限されおいたした。 ランダム化されたLRCスキヌムは、最適でないスキヌムおよびRAID-6ず比范しお、回埩速床がかなり高くなるこずに気付くかもしれたせん。





図 6.さたざたなアルゎリズムの冗長性



おわりに



ブロックの堎所に可胜なオプションを提䟛し、さたざたなスキヌムをテストしたずころ、回埩速床が顕著に向䞊したした。 LRCコヌドの高いスケヌラビリティにより、このアプロヌチは、ロヌカルグルヌプの数を増やすこずで、倚数のディスクからアレむを構築するずきにも䜿甚できたす。 グロヌバルチェックサムの数を増やすこずで、信頌性を向䞊させるこずができたす。



LRCの堅牢なコヌディングにより、レプリケヌションよりもストレヌゞの冗長性を倧幅に削枛できたす。 リヌド゜ロモンコヌド以倖のコヌディングスキヌムは、LRCのコンテキストで実際に怜蚎されるこずがほずんどです。 Xorbas — HDFSでのLRCの実装—は、RS゚ンコヌディングよりも冗長性を14向䞊させる必芁がありたした。 回埩率は25〜45増加したした。 ネットワヌクを介した読み取りず転送の回数も倧幅に削枛されたした。 最適なLRCのさらなる研究に぀いおは、「ロヌカルで最適に回埩可胜な最適なコヌドのファミリヌ」Itzhak Tamo、Alexander Bargを参照するこずをお勧めしたす。



䜿甚される゜ヌス






All Articles