この RAID 情報出力をどのように読み取ればよいですか?

この RAID 情報出力をどのように読み取ればよいですか?

私は現在、リモート Ubuntu 18.04 サーバーで作業しており、新しい RAID アレイ (RAID1) を設定し、それをアクティブなファイルシステムの使用可能なパーティションとしてマウントする必要があります。私にとって最初のステップは、現時点で何が起こっているかを把握することです。アクティブなシステム内には、RAID 1 アレイで接続された 2 つのハード ドライブがあることはわかっています。コマンドを使用してlsblk情報を収集しました。出力は次のとおりです。

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
nvme0n1     259:0    0 894,3G  0 disk  
├─nvme0n1p1 259:1    0     4G  0 part  
│ └─md0       9:0    0     4G  0 raid1 [SWAP]
├─nvme0n1p2 259:2    0   512M  0 part  
│ └─md1       9:1    0 511,4M  0 raid1 /boot
└─nvme0n1p3 259:3    0 889,8G  0 part  
  └─md2       9:2    0 889,6G  0 raid1 /

つまり、私の物理デバイスは というデバイスということですかnvme0n1? そして、これは 3 つの部分 (swap、boot、および /) に分割されています。 同じ物理デバイス ( ) なのに、nvme0n1パーティション ( nvme0n1p1,nvme0n1p2,nvme0n1p3) がさらに に分割されているのはなぜですか?とmd0,md1,md2の違いは何ですか?nvme0n1p1md0

さらにcat /proc/mdstat次の出力が得られます:

md2 : active raid1 nvme0n1p3[1]
      932840768 blocks super 1.2 [2/1] [_U]
      bitmap: 7/7 pages [28KB], 65536KB chunk

md1 : active raid1 nvme0n1p2[1]
      523712 blocks super 1.2 [2/1] [_U]
      
md0 : active raid1 nvme0n1p1[1]
      4190208 blocks super 1.2 [2/1] [_U]

これは 3 つのアクティブな RAID ブロックを示しています。実行中の RAID アレイは 1 つだけです。出力を解釈できません... 助けが必要です。

ありがとう

答え1

これが完全なlsblk出力である場合、物理ストレージ デバイスが 1 つだけ表示されることになりますnvme0n1

nvme0n13 つのパーティションに分割され、それぞれがソフトウェア RAID1 ミラーリング用に個別に設定されています。つまりmd0、、および の 3 つのソフトウェア RAID デバイスが提供されます。これらはそれぞれ、ディスク全体ではなく、単一のソフトウェア RAID パーティションに対応します。md1md2

このようにパーティションごとに RAID を設定すると、BIOS は Linux ソフトウェア RAID をまったく認識しないにもかかわらず、ディスクをパーティション化されたディスクとして BIOS に認識させることができます。これにより、起動や一部の回復シナリオの処理が簡単になり、必要に応じて非 RAID 構成に簡単に戻すことができます。

通常のミラーリングされた状態では、md0はミラーリングされたnvme0n1p1+のセットnvme1n1p1、は+md1のセット、などを参照します。 、およびデバイスを使用して、ファイルシステムをマウントし、スワップをアクティブ化します。これらのデバイスが使用可能になるとすぐに、ソフトウェア RAID サブシステムは、基礎となる物理パーティションを排他的アクセス用にロックし、RAID がアクティブな間は、パーティションへのすべてのアクセスが RAID レイヤーを通過する必要があります。nvme0n1p2nvme1n1p2md0md1md2

ただし、これらのソフトウェア RAID セットのそれぞれには、RAID1 ペアの後半部分が欠けています。これは、システムが 2 つの同一の NVMe デバイス上でソフトウェア RAID でセットアップされたが、そのうちの 1 つ (おそらくnvme1n1) がすでに故障していることを意味している可能性があります。あるいは、2 番目の NVMe デバイスが入手でき次第、真の RAID1 に簡単に移行できるように、RAID1 セットの半分として単一の NVMe ディスク上にシステムがセットアップされていた可能性があります... しかし、何らかの理由で、これは実現しませんでした。

おそらく、最優先事項は、故障した NVMe を交換(または不足している NVMe を追加)し、既存の RAID ペアを回復することです。

  • 既存のディスクから新しいディスクにパーティションテーブルをコピーする
  • 新しいディスク上のパーティションを対応するmdNデバイスのスペアとして初期化する
  • 各ペアでRAID1リカバリを開始する
  • MBR と GRUB の一部はミラー化されたパーティションの外部に配置されているため、ブートローダの 2 番目のコピーを 2 番目のディスクにインストールします。
  • 物理デバイスの 1 つに障害が発生しても再び気付かれないままにならないように、RAID デバイスの監視を設定します。

それが終わったら、新しい RAID アレイをセットアップするという当初のタスクについて考えることができます。そのためには、既存のものがnvme0n1完全に使用されているように見えるため、より多くの物理ストレージが必要になります (現在のハーフミラーが完全に回復されると、そのミラー コンパニオンも同様に使用されます)。

答え2

はい、出力には 1 つの物理デバイス (nvme0n1) のみが表示されます。

はい、出力には 3 つのパーティションがあることが示されています。

興味深いのは/proc/mdstat、からの情報です。3構成された RAID デバイスはすべて と表示されています[_U]。正常なシステムでは と表示されるはずです[UU]。3 つの RAID デバイスは raid1 (ミラーリング) として構成されているため、2 番目のドライブの (推定) 障害によってまだデータ損失は発生していません。もちろん、2 番目のドライブは取り外されているため検出されない可能性があります。

ブート ログを調べると、2 番目のドライブが認識されているかどうかのヒントが得られる可能性があります。

nvme0n1p1 はパーティションです。先頭に RAID ヘッダーがあります。パーティションの残りのセクターは、md0 デバイスのデータとして使用されます。2 番目のドライブ (従来のspinning rustハード ドライブである可能性があります) が接続された場合、少なくとも 3 つのパーティションがあることが予想されます。そのうちの 1 つ (慣例により、最初のパーティションは /dev/hda1 になります) にも RAID ヘッダーがあり、残りのセクターは /dev/md0 デバイスのデータのコピーを保持するために使用されます。

関連情報