原則襲撃

1、RAID 0

  RAID 0は、仮想論理ディスクにN個の物理ディスクであり、各RAID 0に形成された物理ディスクは、仮想論理ディスク上の物理的に連続して、連続的に形成するが、あろう。ディスクコントローラ(外部ディスクアレイとの適切なリンクを使用して、ホストカードは、ホスト上のディスクコントローラを参照する場合、仮想ディスクを使用してコントローラを参照)は、仮想ディスクに発行された命令は、RAIDでありますコントローラは、ホスト・ディスク・コントローラを参照するために、データを書き込み採取または後に、分析プロセス、実際の物理的なディスク式ブロックペアのマッピング関係に従って、各物理ディスクRAID0 IO要求コマンド変換アルゴリズムの組成を受け取ります。

 

  RAID 0は、すべてのRAIDストレージ性能の最高レベルを表すストライピングとして知られています。いいえデータの検証は、上から下RAID 0ディスクに以下の分析プロセスを訪問していません。

  ある時点で、ホストコントローラは、指示された場合:10000長セクタ128は、最初に読み出します

  RAIDコントローラは、このコマンドを受信した後、直ちに計算、対応する式順次に応じて物理ディスクに対応する計算されたセクタ番号10000論理セクタは、次の順次セクタ番号は、ディスクの物理的なロジック128個のセクタを位置算出します。再び、それぞれのセクタに対応し、ディスクに指示を与えます。これは、ディスクがキャッシュ内のコントローラの組み合わせにより、RAIDコントローラにデータを送信すると、ホストコントローラへの提出の指示を受け、データの読み出し真です。

  以上の工程を経て128個のセクタ(64キロバイト)の容量よりも、128個のセクタが同じセグメントに入ることがわかった場合、次いで、そのストライプ深度容量より大きい、Aから、このことができる唯一の真のIO物理ディスク上で読んで、そしてそこには、最適化されていないが、また、RAIDコントローラの追加の計算のオーバーヘッドが追加されるため、単一のディスクに比べてパフォーマンスは、遅くなります。したがって、特定の条件下で性能を向上させるために、複数の物理ディスクにIOの拡散を可能にする、ストリップの深さを小さくする必要があります。同じ条件におけるディスクの数、セグメントは、第二の第一ストリップを充填しながら、データが、IOコントローラを分割するように、すなわち、ストライプ(ストライプサイズ、すなわち、ストリップの長さ)のサイズを小さくしますように他の二つのセグメント、及び、これを大幅に複数の物理ディスクを占有することができます。

  だから、パフォーマンスを高めるためにできるだけ小さくバンドを0にRAID。しかし、そこに矛盾があるストリップが小さすぎると、各IOは、物理ディスクのほとんどを占有しますので、同時IOの低下した可能性が生じ、小さすぎるバンドで、キューIO IOは、これだけの終了を待つことができます物理ディスクを使用すると、バンドが大きすぎるの後、それは十分に伝送速度を上げることができません。これら二つは、矛盾しているニーズに応じて様々な方法で使用されます。

2、RAID 1

  RAID 1はミラーリングと呼ばれ、それはまったく同じデータが動作するように書かれているでしょうし、ミラーディスクは、そのディスクスペースの使用率は50%です。RAID1データが書き込まれたときに、応答時間が影響を受けることになりますが、データの読み出しが影響を受けていないとき。

それが同期されるので、書き込みIOのためのRAID 1は、だけでなく、複数の物理ディスクのデータを、被写体の最も遅い時間に書き込むべきであると同時に、速度を向上させることができなかったが、減少しました。リードIOリクエストのRAID 1のためだけでなく、複雑ではなく、IOの順序は、コントローラは、RAID 0と同じであってもよい場合であっても、データは同時に2枚の物理ディスク、引き上げ速度から読み出されます。

 

  読み出しでは、同時IOモードは、N同時IOので、IOそれぞれは、N回のIOPSを向上させるに相当する物理ディスクを占めます。比較的一定であり、それはランダムまたはシーケンシャルIO、単一ディスクであるかように、各IO排他的に一つだけの物理ディスクので、単一のディスクに対するデータ転送速度は、変化しないように

3、RAID 2

  RAID2は、ハミングコードディスクアレイの設計は、データ検証のための冗長ハミングコードを使用することである誤り訂正と呼ばれます。ハミングコードはチェックコードが最初の技術、符号エラー検出及び訂正のための元データの数値に加算される  2 N-  ビットを(1、2、4、8、...)は、チェックコード、他のデータシンボル位置であります。したがってRAID2、データビット記憶装置、磁気ディスク記憶装置、データ符号化の各ビットは、データは、ユーザによって設定された幅を設定するディスクの数に応じて格納されています。図4は、4 RAID2のデータ幅であり、それは4枚のデータディスク及びパリティディスク3を必要とします。64ビットのデータ幅、必要なデータディスク64と7パリティディスクがあれば。高い、データ幅RAID2大きな、ストレージスペースの利用だけでなく、よりを必要なディスクの数を見ること。

  ハミングコードは、このようにRAID2は、エラーを修正し、データのセキュリティを確保するために、エラーデータの場合に発生する可能性があり、自分の誤り訂正能力を持っています。その非常に高いデータ転送性能、設計の複雑さは、RAID3より低いが、後でRAID4とRAID5を説明しました。

4、RAID 3

  RAID 3は、ディスク残りのデータディスク、各データディスクへのデータビットのバイトインターリーブ方式として専用パリティディスクとしてディスクを使用する専用のパリティディスクを使用して、並列アクセスの配列です。RAID3のディスクは、XORパリティ、ディスクに書き込まれたパリティチェック値のためのディスク上の異なる領域で同じデータで、少なくとも三つが必要です。RAID0は、性能と良好な正確RAID3、また、データの耐障害性を提供​​しながら、ディスクストライピング、非常に高性能の複数からのデータの読み出しと並行している。を読ん データがRAID3に書き込まれたとき、あなたはすべて同じストリップとチェック値を計算し、新たなパリティ値チェックディスクを書き込みしなければなりません。書き込みブロックを含む書き込み動作、ストリップを使用してデータ・ブロックを読み出す、チェックサム値を計算し、値および他のオペレーティングシステムのオーバーヘッドをチェック書き込み、低性能非常に大きいです。

 

  ディスク内のRAID3に障害が発生した場合、データは、データの整合性とデータを再構築するために他のデータを確認することができ、読書には影響しません。読み込むべきデータブロックがちょうどディスク障害が配置されている場合、システムは同じスライス内のすべてのデータ・ブロックを読み込む必要があり、失われたデータを再構築するために応じたチェック値は、システムのパフォーマンスが影響を受けることになります。故障したディスクを交換すると、システムは同じ方法で新しいディスクに障害が発生したディスクのデータを再構築します。

  同時アクセス機能と相まってパリティディスクのみ、高い使用率の配列、ストレージRAID3は、高性能な読み書きの高帯域幅、画像処理などのデータのシーケンシャルアクセス、大量のためのアプリ、ストリームの多数を提供することが可能ですメディアサービス。現在、RAID5アルゴリズムが改善し続ける大量のデータがアナログRAID3を読み取ることができたときに、RAID3のパフォーマンスが低下し、不良ディスクの場合には、多くの場合、RAID5代替RAID3の継続性、高帯域幅、読み取りの多数を操作するために使用されると特性を記述しますアプリケーション。

長さが設計されている各RAIDストライプ3は、ディスクの数に応じて深さが、1つのセクタの最小深さと、高速ファイルシステムのサイズであることがので、各セグメントのサイズは、典型的には、1つのセクタでありますあるいは、いくつかの分野の能力

  例解決策:RAID機構3

  用一个4块数据盘和1块校验盘的RAID 3系统,Segment SIZE为两个扇区大小(1KB),条带长度为4KB

  RAID 3控制器接收到了这样一个IO:写入初始扇区10000 长度8,即总数量为8*512B=4KB

  控制器先定位LBA10000所对应的真是物理LBA,假如LBA10000恰好在第一个条带的第一个Segment的第一个扇区上,那么控制器将这个IO数据里的第1、2个512B写入这个扇区。同一时刻,第3、4个Segment中,此时恰好是4KB的数据量。也就是说这4KB的IO数据同时被分别写入了4块磁盘,没块磁盘写入了两个扇区,也就是一个Segment。它们是并行写入的,包括校验盘也是并行写入的,所以RAID 3的校验盘没有瓶颈,但是有延迟,因为增加了计算校验的开销。

  如果IO SIZE大于条带长度,如控制器收到的IO SIZE为16KB,则控制器一次所能并行写入的是4KB,这16KB就需要分4批来写入4个条带,其实这里的分4批写入不是先后写入,而是同时写入,也就是这16KB中的第1、5、9、13KB将由控制器连续写入磁盘1,第2、6、10、14连续写入磁盘2,以此类推。直到16KB数据全部写完,是并行一次写完。这样校验盘也可以一次性计算校验值并且和数据一同并行写入,而不是分批。  

 

5、RAID 4

  RAID 4并不常见,其原理是在一级磁盘控制器驱动程序的上层,也就是文件系统层将队列中的IO目标LBA进行扫描,将目标处于同一条带的IO让其并发写入。也就是将两个不同事务的IO写操作,尽量放到相同的条带上,以提升写效率。最典型的的就是NetApp公司著名的WAFL文件系统,WAFL文件系统的设计方式确保了能够最大限度地实现整条写操作。WAFL总是把可以合并写入的数据块尽量同时写到一个条带中,以消除写惩罚,增加IO并发系数。

6、RAID 5

  先介绍几个概念:

  整条写(Full-Stripee Write):需要修改奇偶校验群组中所有的条带单元,因此新的XOR校验值可以根据所有新的条带数据计算得到,不需要额外的读、写操作。因此,整条写是最有效的写类型。整条写的例子,RAID 2、RAID 3.它们每次IO总是几乎能保证占用所有盘,因此每个条带上的每个Segment都被写更新,所以控制器可以直接利用这些更新的数据计算出校验数据之后,在数据被写入数据盘的同时,将计算好的校验信息写入校验盘。

  重构写(Reconstruct Write):如果要写入的磁盘数目超过阵列磁盘数目的一半,可采取重构写方式。在重构写中,从这个条带中不需要修改的Segment中读取原来的数据,再和本条带中所有需要修改的Segment上的新数据一起计算XOR校验值,并将新的Segment数据和没有更改过的Segment数据以及新的XOR校验值一并写入。显然,重构写要牵扯更多的I/O操作,因此效率比整条写低。

  读改写(Read-Modify Write):如果要写入的磁盘数目不足阵列磁盘数目的一半,可采取读改写方式。读改写过程是:先从需要修改的Segment上读取旧的数据,再从条带上读取旧的奇偶校验值;根据旧数据、旧奇偶校验值和需要修改的Segment上的新数据计算出这个条带上的新的校验值;最后写入新的数据和新的奇偶校验值。这个过程中包括读取、修改和写入的一个循环周期,因此称为读改写。读改写计算新校验值的公式为:新数据的校验数据=(老数据 EOR 新数据)EOR 老校验数据。如果待更新的Segment已经超过了条带中总Segment数量的一半,则此时不适合用读改写,因为读改写需要读出这些Segment中的数据和校验数据。而如果采用重构写,只需要读取剩余不准备更新数据的Segment中的数据即可,而后者数量比前者要少。所以超过一半用重构写,不到一半用读改写,整条更新就用整条写。

  写效率排列顺序为:整条写>重构写>读改写。

  RAID 5解决了校验盘争用这个问题,RAID 5采用分布式校验盘的做法,将校验盘打散在RAID组中的每块磁盘上。每个条带都有一个校验Segment,但是不同条带中其位置不同,在相邻条带之间循环分布。为了保证并发IO,RAID 5同样将条带大小做得较大,以保证每次IO数据不会占满整个条带,造成队列中其他IO的等待。所以,RAID 5要保证高并发率,一旦某时刻没有成功进行并发,则这个IO几乎就是读改写模式,所以RAID 5拥有较高的写惩罚。

  分析一下RAID 5具体的作用机制,假设条带大小80KB,每个Segment大小16KB。某一时刻,上层产生一个写IO:写入初始扇区10000长度8,即写入4KB的数据。控制器收到这个IO之后,首先定位真是LBA地址,假设定位到了第1个条带的第2个Segment(位于磁盘2)的第1个扇区,则控制器首先对这个Segment所在的磁盘发起IO读请求,读取这8个扇区中原来的数据到Cache。与此同时,控制器也向这个条带的校验Segment所在的磁盘发起IO读请求,读出对应的校验扇区数据并保存到Cache。利用EOR校验电路来计算新的校验数据,公式为:新数据的校验数据=(老数据 EOR 新数据)EOR 老校验数据。现在Cache中存在:老数据、新数据、老校验数据和新校验数据。控制器立即再次向相应的磁盘同时发起IO写请求,将新数据写入数据Segment,将新校验数据写入校验Segment,并删除老数据和老校验数据。

  在上述过程中,这个IO占用的始终只有1、2两块盘,因为所要更新的数据Segment对应的校验Segment位于1盘,自始至终都没有用到其他任何磁盘。如果此时队列中有那么一个IO,它的LBA初始目标假如位于磁盘4中的数据Segment中,IO长度也不超过Segment的大小,而这个条带对应的校验Segment位于磁盘3上。这两块盘未被其他任何IO占用,所以此时控制器就可以并发的处理这个IO和上一个IO,达到并发。

  RAID 5相对于经过特别优化的RAID 4来说,在底层就实现了并发,可以脱离萎蔫系统的干预。

7、RAID 6

  RAID 6之前的任何RAID级别,最多能保障在坏掉一块盘的时候,数据仍然可以访问。如果同时坏掉两块盘,则数据将会丢失。为了增加RAID 5的保险系数,RAID 6被创立了。RAID 6比RAID 5多增加了一块校验盘,也是分布打散在每块盘上,只不过是用另一个方程式来计算新的校验数据。这样,RAID 6同时在一个条带上保存了两份数学上不相关的校验数据,这样能够保证同时坏两块盘的情况下,数据依然可以通过联立这两个数学关系等式来求出丢失的数据。RAID 6与RAID 5相比,在写的时候会同时读取或者写入额外的一份校验数据。不过由于是并行同时操作,所以不比RAID 5慢多少。其他特性则和RAID 5类似。

おすすめ

転載: www.cnblogs.com/liuldexiaoche/p/10965672.html