GNU/Linux >> Linux の 問題 >  >> Linux

それを回避する人のためのRAID

すべてのハードウェアは最終的に障害が発生します。これは、私たちの宇宙におけるエントロピーの痛みを伴う副作用の1つです。最新のインフラストラクチャで使用されているほとんどの種類のハードウェアでは、通常、単一のコンポーネントが失われると、ある程度のダウンタイムが発生します。不良なCPUやRAMのスティックなどを交換するのにかかる時間以外に、システム管理者やユーザーが長期的な悪影響を目にすることはめったにありません。ただし、管理者がストレージに特に注意を払わない限り、ディスク障害によるデータの損失は、即時かつ永続的な結果をもたらす可能性があります。

ユーザーのデスクトップを例にとると、ユーザーがデータを1つのドライブにローカルに保存している場合、ドライブに必然的に障害が発生すると、データは失われます。ドライブの品質、ブランド、またはタイプに関係なく、同じことが当てはまります。もちろん、死んだドライブからビットを復活させる可能性と引き換えに、苦労して稼いだ現金を喜んで受け取るデータ回復の衣装があります。残念ながら、コストはすぐに法外になり、それらの専門家でさえある時点で不足します。

管理者は、迫り来る災害を防ぐために、RAID、バックアップ、ネットワークストレージのクラスターなど、さまざまなオプションを自由に使用できます。多くの場合、これらのオプションは、データ保護のレイヤーと、問題が発生する前に停止する複数の機会を提供するために組み合わせて使用​​されます。遅い。ディスクの冗長アレイを構築し、単一ドライブからストレージを抽象化することは、これらの単一障害点を取り除くための最も簡単で最良の方法です。深夜や長い週末をバックアップから復元すること(できれば誰かが作成していること)を回避すること、または復旧会社に高額の料金を支払うことが目標です。

RAIDとは何ですか?

安価なディスクの冗長アレイ(RAID)は、システム管理者が遭遇する最も広く使用されている効果的なストレージテクノロジーの1つです。最も一般的な実装に慣れることは非常に重要です。 RAIDは、mdadmなどのオペレーティングシステムユーティリティを介してソフトウェアソリューションとして提供できます。 Linuxでは、MegaRAIDラインのカードのようなハードウェアRAIDコントローラー、または疑似RAID機能を提供するチップセットですらあります。 MegaRAIDラインのようなハードウェアコントローラーは、ホストバスアダプター(HBA)と混同しないでください。ただし、ディスクに簡単に直接アクセスできるように設計されています。 HBAは、RAIDコントローラーのインテリジェンスなしで接続を提供する方法として存在し、その後、はるかに安価になります。

大まかに言えば、RAIDの概念は、ドライブのコレクションをアレイにグループ化して、それらにデータを書き込むことです。構成に応じて、データはさまざまな方法で書き込まれ、ドライブに障害が発生した場合にデータを再構築するのに役立つさまざまな量のパリティ情報が使用されます。アレイ内のドライブにさまざまなタイプ、速度、サイズ、または接続を使用することは可能ですが、それらを可能な限り一致させることが最善です。サイズの異なるドライブは、ほとんどの場合、最小公分母に切り分けられ、速度の異なるドライブは最も遅いドライブを待機する必要があります。

ただし、多くの管理者は、ドライブのバッチが不良でアレイのメンバー間で同時に障害が発生するのを防ぐために、さまざまなメーカーのドライブを購入することを好みます。

RAIDレベル

RAID構成にはレベルで名前が付けられているため、番号付けスキームは、レベルの多くが互いに関連していない場合でも、ある構成から別の構成への線形スケールの進行を意味します。各RAIDレベルには長所と短所があり、一部のレベルは他のレベルよりも便利です。現実の世界では、最も一般的なレベルは0、1、5、6、10、50、および60です。RAIDレベル2、3、4、およびその他のいくつかのレベルも存在しますが、独自仕様、廃止、またはほとんど使用されていません。それは多くのように聞こえるかもしれませんが、分解すると、この情報はより簡単に消化されるようになります。

RAID 0

ほとんどのRAIDレベルは、特定のユースケースに適合します。 RAID 0から、各ディスクが使用可能なストレージとしてアレイに全容量を提供するため、内部冗長性を考慮せずに構築されていることがわかります。データは分割され、すべてのディスクに並行して書き込まれるため、メリットがあります。このように構成されたアレイで読み取りと書き込みを実行すると、アレイに含まれるディスクの数に比例してスケーリングされるため、非常に高速になります。

技術的には、1つのディスクをRAID 0アレイにすることはできますが、実際には、少なくとも1組のディスクを使用してこれを行うことになります。一般に、RAID 0の主な欠点は、1つのディスクが失われると、アレイ全体に障害が発生し、データが失われることです。この構成は、データが別の簡単にアクセスできるシステムに存在しない本番環境での使用には適していません。 RAID 0は、高性能を必要とするエンドユーザーワークステーションにとって完全に合理的なセットアップですが、そのワークステーションが作業中のデータの唯一のホームではありません。

RAID 1

RAID 1は、RAID 0とはまったく異なる目標で設計されました。RAID1は、保護なしで速度を上げるためにドライブのセット全体にデータをストライピングする代わりに、管理者に復元力のために2つ以上のドライブ間でデータをミラーリングする機能を提供します。このRAIDレベルは、単一のドライブの障害を防ぐためにデータのローカルコピーを提供するためにこれを行い、正常なドライブからのデータを使用して、交換後にデータを再構築します。

通常、RAID 1ミラーはドライブのペアで構成されますが、管理者がオンラインで必要とするブロックのコピーの数に応じて、3つ以上を含めることができます。指摘することが重要なのは、これはではないということです。 バックアップ。このデータは、システム内のドライブのライブコピーとして存在し、通常のバックアップシステムの保護手段を提供しません。これらのミラーは1:1クローンであるため、ドライブは同じサイズである必要があります。そうでない場合、セット内の最小のドライブを収容するためのスペースが失われます。

RAID 1アレイに追加されたディスクの数に関係なく、合計容量は同じままです。その容量は、アレイ内の1つのディスクのサイズです(同一でない場合は最小)が、データのコピー数は、全体の容量を増やすことなく、ディスクを追加するたびに増加します。各ディスクはデータの別のクローンであり、個々のドライブの障害からさらに保護します。

使用しているソフトウェアやそれらが接続されているコントローラーに基づいて、アレイに追加できるディスクの数には制限があります。

RAID2から4

RAIDレベル2、3、および4は、廃止されているか、独自仕様であるか、非常にまれです。多くのシステム管理者がこれら3つの構成のいずれかを実行しているシステム間で実行される可能性は低く、通常の状況では、これらは事実上無視できます。これらのいずれかを実行しているシステムで作業していることに気付いた場合、最善の策は、ベンダーのドキュメントを読んで、それを管理するための最良の方法を見つけることです。

RAID 5

RAID 0を使用して保護なしでドライブのコレクション全体にデータをストライプ化する、またはRAID 1を使用して冗長性を確保するが容量を制限するだけでなく、RAID 5は、アレイに一定レベルの冗長性を提供しながら、複数のドライブにデータを書き込むという優れた中間点を提供します。 RAID 5は、すべてのドライブにパリティ情報を書き込むことでこれを実行し、単一のドライブからデータを再構築できるようにします。

RAID 5を使用する場合、アレイに少なくとも3つのディスクが含まれている必要があるという新しい要件が発生します。その場合、容量はディスクの合計からディスクの1つのサイズを引いたものに等しくなります。たとえば、7台の2TBディスクを備えたRAID 5は最終的に12TBになります(7 x 2は14、マイナスドライブは12)。

これらのディスクの1つに障害が発生した場合、管理者はそれを交換し、前述のパリティ情報を使用して、システムにアレイの残りの部分からのデータで置換を再構築させることができます。この構成には2つの主な欠点があります。まず、書き込みパフォーマンスに影響があります(実際のデータの書き込み中にパリティ情報のこれらの余分なビットをすべて書き込むにはオーバーヘッドがあります)。次に、再構築中に、正常なドライブの1つにも障害が発生した場合、アレイは完全に失われる可能性があります。マシンのワークロードによっては、再構築によってそれらのドライブのアクティビティが突然急増し、正常なドライブの1つも障害に陥る可能性があります。この懸念が、現在、多くの管理者がRAID6を選択している理由です。

RAID 6

RAID 5の自然な進化、RAID 6は同じ基本概念を採用し、パリティ情報の「単一ドライブ」をドライブのペアに拡張します。個々のドライブ全体がパリティに使用されるわけではありませんが、ドライブの全体的な容量はアレイ全体で使用され、RAID6は2台のドライブに相当するスペースを使用してパリティビットを保持します。

その後、追加のディスクに相当するスペースを使用すると、RAID6アレイのディスクの最小数は最大4つになります。この一見単純な変更は、故障したドライブを再構築し、アレイを実行し続けるという点で、良い世界を意味する可能性があります。追加の障害が、マシン上にローカルに存在するデータの完全な損失を意味するわけではないことを安心して感じることができます。

ネストされたRAID

レベル0、1、5、および6を超えて、RAIDのレベルをネストして、ストレージの新しいオプションを提供する新しい構成を作成するというアイデアを思いつきます。最も普及していて有益なのは10、50、および60です。それぞれが1、5、6と0の組み合わせです。

RAID 10

1と0の組み合わせは、もう一度RAID 5である必要があるように聞こえるかもしれませんが、これらのネストされたレベルを考える最良の方法は2次元です。 RAID 10の場合、複数を使用します RAID 1アレイと、それらのアレイがディスクであるかのようにそれらをストライプ化して、それらからRAID0アレイを作成します。この要因のため、RAID 10には少なくとも4つのディスクが必要です。ミラー用に2つ、それらのミラーのペアです。得られるのは、RAID 0のような速度のアレイですが、RAID1の内部冗長性の恩恵を受けています。RAID10アレイは、内部RAID1アレイの1つに障害が発生した場合にのみ障害が発生します。

各RAID1ペア(または管理者が選択した場合はマルチミラー)では、ディスクを交換する必要があるときにリカバリが可能であるため、RAID10自体がデータ損失に屈するためにRAID1メンバーのセット全体が失敗する必要があります。 。再構築も異なります。 RAID 5では、以前に書き込まれたパリティから新しいビットを計算するために、アレイ内のすべてのドライブからデータを読み取る必要があります。 RAID 10は、RAID 1を使用しているため、故障したドライブのクローンから読み取り、ドライブを再構築します。

RAID 50

RAID 10と同様に、RAID 50には、冗長アレイから高速アレイを作成するオプションがあります。最終的に、RAID10がRAID1アレイのセットであったのと同様に、RAID5アレイの数を含むRAID0になります。これは、最も単純なセットアップでさえ、多くのディスクが画像に入るのを見始めるところです。基本的なRAID5には3つのディスクが必要であるため、RAID 50には少なくとも合計6つのディスクが必要です。これは、少なくともRAID5アレイのペアであるためです。

繰り返しになりますが、RAID 10と同様に、このオプションは2つの世界の中で最も優れています。 RAID 50は、RAID 5構成からの内部パリティ情報を提供しながら、並列に追加されたディスクを追加することで速度を向上させます。 RAID 50は、同じネストされたRAID 5アレイ内にない限り、複数のドライブの障害に耐えることができます。

RAID 60

この時点で、RAID 60は、RAID 5〜50と同じRAID 6〜60の論理拡張であるため、当然のことです。最大の追加の利点は、パリティ情報の複数のコピーで提供される冗長性の大幅な増加と、ネストされた各アレイの障害の範囲が狭いことと組み合わせて、達成できる速度の向上です。 RAID 60アレイは8台のドライブから始まります。これは、各RAID 6が少なくとも4台であり、少なくとも2台のアレイの倍数であるためです。

RAIDとバックアップ

システム管理の分野で最も一般的に支持されていることわざの1つは、「RAIDはバックアップではない」ということわざのようです。新しい管理者やストレージについて考えることにあまり時間をかけない人にとって、この事実はすぐには明らかにならないかもしれません。敵対的であるか、完全に間違っているように見えることさえあります。

この問題は、RAID構成に組み込まれている冗長性が、バックアップと同じ目標を念頭に置いて構築されているという事実に起因しています。データ損失との戦いです。違いについて話すことが非常に重要である理由は、つまらないことではなく、これらのツールが私たちに保護の層を提供するために存在することを思い出させるためです。

RAIDは、データの即時のライブコピーを提供して、実行中のマシンがつまずいた後にそれ自体を回復するときに松葉杖として支援するために存在します。一方、バックアップは、マシンを稼働状態に復元したり、マシンを実行しなくてもデータを回復したりする機能をテストする機会を提供します。バックアップには、複数の種類のメディア上の複数の場所にコピーをプッシュしたり、複数のバージョンを保存したりする機能など、RAIDにはない他の利点があります。

RAIDとバックアップは異なる役割を果たしますが、どちらも重要であり、どちらも無視してはなりません。


Linux
  1. Linux用のトップ5データバックアップソフトウェア

  2. Linux用のトップ5データ移行ツール

  3. 一時データの疑似ファイル?

  1. MySQL –InnoDBのテーブルごとのデータへの変換

  2. UbuntuのMendeleyの代替品?

  3. Ubuntu用のラップトップを作るのは誰ですか?

  1. バイナリ処理のためのシェルのような環境?

  2. 共有メモリ IPC 用のファイルの使用

  3. BTRFS ファイルシステム RAID のエラーを監視するには?