mdadm
パーティションを使用してアレイを作成することとディスク全体を直接使用することの違いが何であるかを説明できる人はいますか?ドライブ全体を使用する予定だとしましょう。
RAID6が2つの方法で作成されたと想像してください。
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
または:
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
これら2つのバリエーションと考えられる問題の違いは何ですか?
たとえば、これらのアレイに対する安定性、管理の容易さ、または回復操作などを意味します。
答え1
最も重要な違いは、ディスク交換の柔軟性を高めることです。他の多くの提案とともに、以下でさらに詳細に説明する。
ディスク全体の代わりにパーティションの使用を検討する必要があります。これはアレイの設定に関する一般的なアドバイスであり、後でディスクをさらに交換する必要がある場合は、確かにいくつかの問題を減らすことができます。
最も重要な主張は次のとおりです。
他の製造元のディスク(または同じ製造元の「同じ」容量を持つ他のモデル)のディスクサイズは必ずしも同じである必要はなく、サイズの違いが非常に小さい場合でも、エラーが発生したディスクを最新のディスクに置き換えることはできません。 2番目は最初のものより小さいです。パーティション化はこの問題を解決できます。
他のメーカーのディスクを使用する理由に関する注意事項: ディスクは失敗します。 「もし」ではなく「いつ」の問題です。同じメーカーとモデルのディスクは同じ特性を持っているため、同じ条件と使用期間で一緒に故障する可能性が高くなります。したがって、さまざまなメーカーやモデルのハードドライブ、特にさまざまなハードウェアを使用することをお勧めします(同じメーカーとモデルのハードドライブを購入する場合は、他の店舗で購入することを検討してください)。同じバッチのディスクを使用している場合、ディスクの交換後のリカバリ中に2番目のディスクに障害が発生することは珍しくありません。もちろん、あなたはこのようなことがあなたに起こることを望んでいません。
したがって、推奨事項は次のとおりです。
1)ディスクパーティションの分割とともに使用されます容量は少し小さいです。全ディスク容量よりも(たとえば、2 TBのディスクで構成されたRAID 5アレイがあり、それを意図的にパーティション化してディスクあたり約100 MBを無駄にしました)。次に、各/ dev / sd?1を使用してアレイを設定します。これは、アレイが作成されたときにアレイを組み立てるために使用された元のディスクよりも新しい交換用ディスクのスペースが少ない場合に安全の余裕を追加します。
2) 他メーカーのディスクを使用してください。
3) 他のメーカーが適切でない場合は、異なるディスクモデルを使用してください。
4)さまざまなバッチのディスクを使用してください。
5) すべてのディスクを同時に交換するのではなく、障害が発生する前に事前にディスクを交換してください。これは少し編集的である可能性があり、実際に保持しているデータがどれほど重要かによって異なります。私が使用したディスクの寿命は6ヶ月間隔でした。
6)定期的にバックアップを実行します(アレイを使用するかどうかにかかわらず常にバックアップを実行します)。 Raidはバックアップとは異なる目的を持っています。アレイは高可用性を保証し、バックアップを介して失われたファイル(誤って削除された、またはウイルスによって破損したファイルを含む、アレイを使用している場合はウイルスの破損から保護できない例)を回復できます。
OBS:除くすべて無視してはいけない前述のように、/dev/sdを使用することには技術的な違いはありませんか? /dev/sd?#で。
幸運を祈る
答え2
もう一つの重要な主張はいくつかマザーボードはRAIDスーパーブロックを削除できます。フルディスクデバイスを使用し、GPTデバイスであったRAIDアレイにディスクを追加するときに非常に慎重に消去しない場合。
私は私のASRockマザーボードのUEFIが私のRAIDを利用できなくなったときにこれを大変に学びました:
- http://forum.asrock.com/forum_posts.asp?TID=10174
- https://news.ycombinator.com/item?id=18541493
- https://www.phoronix.com/scan.php?page=news_item&px=Linux-Software-RAID-ASRock
これが発生しないようにするには、常にsgdisk --zap
デバイスRAID全体で使用したい古いGPTフォーマットディスクで実行してください。
wipefs -a
動作する可能性がありますデバイスをディスクに追加する前に、残りのパーティション情報をGPTだけでなく消去してください。
言い換えれば、これが起こらないようにするには、パーティションを使用するのが最善の方法のようです。。
私は何を知らなかった本物議論はこのベストプラクティスに関するものです(少し異なるサイズのディスクを処理できると説明する@Marceloの答えを除く)。今は理解。
しかし、このような状況が発生してもデータは失われません。デバイスが必要になる可能性が高く、sgdisk --zap
たとえばRAIDを再生成しますmdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
(mdadmは過去のデータを検出したというメッセージを表示し、そのデータを引き続き使用するかどうかを尋ねます)。何度も試してみましたが、うまくいきましたが、これを行う前にバックアップを作成することをお勧めします。
答え3
デバイス全体をパーティションではなくRAIDメンバーとして使用する問題に言及するいくつかの記事があります。ここに一つあります。。私はこれが本当であることを確認できます。
そのため、デバイス全体を使用してRAIDを作成した場合(たとえば、、、...の/dev/sda
代わり/dev/sdb
に/dev/sda1
、、/dev/sdb1
...)、構成を保存しても再起動後にRAIDデバイスが再組み立てられないmdadm.conf
可能性があります。マザーボードのファームウェアはRAIDスーパーブロックを上書きまたは削除します。私の設定では、実行中にmdadm --assemble --scan --verbose
RAID設定を復元できず、RAIDスーパーブロックを使用できないようです。
答え4
ディスクをパーティションの代わりにRAIDにグループ化し、RAIDをパーティション化することはまれではありません。特に、ほとんどのハードウェアRAIDコントローラはパーティションテーブルを読み取ることもできないため、常にディスク全体で動作します。ただし、ソフトウェアRAIDは同じ効果を得ることができます。正しく設定されている場合、ソフトウェアRAIDは再起動時に正常に再組み立てされます。もちろん、ディスクに古いパーティションテーブルの痕跡が残っていないことを確認してください。多くのディスクが事前フォーマットされており、多くのツール(ソフトウェアRAID、ファイルシステムなど)が最初に「空のセクタ」を残す傾向がありますが、古いパーティションテーブルのこれらのトレースはそのまま残ることができるため、これは特に重要です。
RAID を設定するときは、予備のディスクを 1 台または 2 台のディスクを購入することをお勧めします。ディスクに障害が発生した場合は、すばやく交換できます。これは、単一ディスクに障害が発生した後に障害が発生したディスクを交換し、RAIDが再同期を完了するまで冗長性のないRAID5または2台のディスクRAID1で特に重要です。正確に一致するスペアを保持することで、新しいディスクが既存のディスクよりも遅いまたは小さいなど、RAIDの「弱い」ディスクによって引き起こされる可能性のある問題も回避できます。
それでも「小さな」問題は、パーティションの有無に関係なく解決できます。 Device Mapperを使用して仮想ディスクを作成すると、新しいディスクで99.9%の容量を確保し、システムディスクまたはSSDから欠落している0.1%の容量を確保できます。または、initramfsステップの再起動中にファイルシステムを縮小することもできます(参照:https://serverfault.com/a/888830実行方法)RAIDを縮小してオンラインに戻すこともできます。
つまり、ハードウェア、ソフトウェアRAID、またはZFSメモリプールにディスク全体を使用することはまったく問題ありません。