実際にRAID1を正しく再生成する方法

実際にRAID1を正しく再生成する方法

システム:
Linux Mint 17.3が搭載されたノートパソコン、システム用SSD 1個、使用用HDD 2個mdadm

状態:
RAID1を正しく作成する方法がわからないため、正しく作成できませんでした。

  • GPartedは、デフォルトのgptパーティションテーブルが存在せず、バックアップパーティションテーブルを使用しているという警告を表示するために2回表示されるようです。

  • GPartedは、両方のHDDのパーティションにext4ファイルシステムではなくlinux-raidファイルシステムが含まれていることを示しています。

  • raidGParted は両方の HDD にフラグを表示しません。

  • 再起動によりアレイが機能しなくなりました。つまり、自動的にマウントされなかっただけでなく、アレイを停止して再組み立てせずにマウントすることもできなかったという意味です。

  • アレイ(ミラーリングを意味します)が正しく機能しているかどうかわからないなど、私が気づいていない他のものがあるかもしれません。

答え1

この回答では、両方のアレイメンバー(ドライブ)のすべてのデータが削除されることを明確にしてください。だからまずバックアップしてください!


端末を開いてrootsu);あなたが持っているならsudo有効にすると、次のこともできますsudo -iman sudoすべてのオプションについて):

sudo -i

mdX配列の数字を確認する():

cat /proc/mdstat

md0にインストールされていると仮定すると、/mnt/raid1まずアレイをアンマウントして停止する必要があります。

umount /mnt/raid1
mdadm --stop /dev/md0

sda次の仮定の下で、両方のドライブでスーパーブロックを消去する必要がありますsdb

mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sdb1

仕事を始めましょう。つまり、以前にドライブにデータとファイルシステムがあった場合は、ドライブを消去する必要があります。sdasdb::2人のメンバーがいるとします。

pv < /dev/zero > /dev/sda
pv < /dev/zero > /dev/sdb

何らかの理由で前の手順をスキップするには、両方のドライブからすべてのファイルシステムを消去する必要があります。その後、残りがないことを確認し、両方のドライブでGPartedを使用して、そのドライブ以外のファイルシステムがある場合は消去できるかどうかをunknown確認できます。

sdaまず、3つのパーティションが含まれているとし、既存のパーティションをすべて消去してから、次の手順を実行します。

wipefs --all /dev/sda3
wipefs --all /dev/sda2
wipefs --all /dev/sda1

両方のドライブで使用し、すべてのパーティショニングを実行します。

次に、次のコマンドを使用してパーティションスキームを消去します。

wipefs --all /dev/sda
wipefs --all /dev/sdb

次に、GPT(GUIDパーティションテーブル)を使用して両方のドライブを初期化します。

gdisk /dev/sda
gdisk /dev/sdb

どちらの場合も、以下を使用します。

o Enter
y Enter決定を検証するための新しい空のGUIDパーティションテーブル(GPT)決定を確認するための
w Enter変更の作成
y Enter

両方のドライブを分割する必要がありますが、GPartedを使用すると、プロセスが望ましくないファイルシステムを作成するため、再gdisk使用しないでください。

gdisk /dev/sda
gdisk /dev/sdb

どちらの場合も、以下を使用します。
n Enter新しいパーティションの
Enter場合 最初のパーティションの場合
Enter最初のセクタのデフォルト
Enter最後のセクタのデフォルト
fd00 EnterLinux RAID タイプの場合、
w Enter変更を記録して
y Enter決定を確認します。


何も残っていないことを3回確認するには、GPartedを使用して新しく作成された2つのパーティションを確認し、次のファイルシステムが含まれていない場合は消去unknownできます。

wipefs --all /dev/sda1
wipefs --all /dev/sdb1

これでドライブを確認できます。

mdadm --examine /dev/sda /dev/sdb

次のように話す必要があります。

(type ee)

その場合は、パーティションを確認します。

mdadm --examine /dev/sda1 /dev/sdb1

次のように話す必要があります。

No md superblock detected

その場合、RAID1アレイを作成できます。

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

配列が完全に作成されるまで待ちます。次の方法でこのプロセスを観察できます。

watch -n 1 cat /proc/mdstat

アレイを作成したら、その詳細を確認する必要があります。

mdadm --detail /dev/md0

次のように話す必要があります。

          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

次に、アレイにファイルシステムを作成します。時間がかかるext4ので、これを避けることをお勧めします。したがって、以下を使用する場合、名前は「lazyinit」です。ext4lazyinit

mkfs.ext4 /dev/md0

代わりに、以下を使用して完全な即時初期化を強制する必要があります。

mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0

これらのオプションを指定すると、生成中にinodeとログがすぐに初期化されるため、大規模な配列に役立ちます。

ショートカットを選択し、ext4「回避する方が良いコマンド」を使用してファイルシステムを作成することを選択した場合は、ext4lazyinitすべてのinodeを初期化するのにかなりの時間がかかります。完了するまでこれを確認できます。たとえば、次のようになります。

iotop

ファイルシステムの初期化のためにどの方法を選択しても、初期化が完了したらマウントする必要があります。


これで、このRAID1アレイ用のいくつかのディレクトリを作成します。

mkdir --parents /mnt/raid1

簡単にインストールしてください。

mount /dev/md0 /mnt/raid1

デフォルトで完了したので、GParted を再利用して、両方のドライブのファイルlinux-raidシステムとraidフラグが表示されるかどうかをすばやく確認できます。

その場合は、GPTパーティションを持つRAID1アレイを正しく作成し、ここにファイルをコピーできます。


ファイルシステムのUUIDを表示しますmd0

blkid /dev/md0

UUIDをクリップボードにコピーします。

fstabこれで、好みのテキストエディタを使って編集する必要があります。

nano /etc/fstab

アイテムを追加します。

UUID=<the UUID you have in the clipboard>    /mnt/raid1    ext4    defaults     0    0

変更を保存したら正しいことを確認できます。

mount --all --verbose | grep raid1

次のように話す必要があります。

already mounted

その場合は、アレイ構成を保存します。mdまだデバイスを作成していない場合は、単に次のことができます。

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

アレイがすでに存在する場合は、confファイルにリダイレクトせずに前のコマンドを実行します。

mdadm --detail --scan

新しい配列をmdadm.confファイルに手動で追加します。


最後に、initramfsを更新することを忘れないでください。

update-initramfs -u

計画どおりにすべての操作を行ったことを確認し、その場合は再起動できます。

reboot --reboot

関連情報