web-dev-qa-db-ja.com

LinuxソフトウェアRAIDを使用した起動可能なマルチデバイス(RAID 1)のセットアップ

ルートファイルシステムを含み、Linux Mint Qianaを起動する起動可能なソフトウェアRAIDをセットアップしようとしています。小規模なデータセンターでいくつかのグラフィカルな監視アプリケーションを実行するために使用されます。また、他のLANノードにアクセスするための単純な端末も使用されます。

2つの500GB SATAドライブ(/dev/sdaおよび/dev/sdb)を使用して、RAID 1アレイの構築に使用します。これを行う方法はたくさんあるようですが、起動可能なmd0デバイスを作成する方法は少しわかりません。

私の最初のアプローチは、Live Linux MintインストールCDを使用して起動することでした。次に、bashプロンプトに切り替え、sfdiskを使用して/dev/sdaを手動でパーティション分割します。単一のプライマリパーティションとスワップパーティションを含むシンプルなパーティションテーブルを作成しました。次に、パーティションテーブルを/dev/sdaから/dev/sdbにクローンしました。

sfdisk -d /dev/sda | sfdisk /dev/sdb

これで、2つのドライブをRAIDアレイに組み込む準備ができました。私は最初にcreateと言って配列を書きます:

mdadm --create --verbose --metadata=0.90 /dev/md0 --level=mirror 
   --raid-devices=2 /dev/sda /dev/sdb

約1時間後、アレイの同期が完了します。

ファイルシステムを指定することで、/dev/md0を初期化できるようになりました。

mke2fs -t ext4 /dev/md0

さて、今ではすべてが良いようです。そこで、Live CDのインストールに戻り、Linuxを/dev/md0にインストールします。インストーラーがgrub-installを実行しようとするまですべてが機能し、その後、致命的なエラーを受け取ります。

それで、私はここで原因を理解しようとすることについて研究してきました。なぜこれが起こるのかは完全にはわかりませんが、私の理解では、「/dev/md0から単にブートするのではない」という事実と関係があると考えています。起動可能なマルチデバイスRAID 1アレイを作成するには、別の非RAID /bootパーティションを作成するか、initramfsを使用する必要があるようです。

残念ながら、これが何を伴うのか正確には理解できません。まず、個別の非RAID /bootパーティションを作成するwantは行いません。md0からのブートのブート全体は冗長性のためです。第二に、私の理解は、ブート時にinitramfsをrootfsにロードするためにmdadmアプローチが必要であることです。しかし、Live CDから起動してRAIDアレイを作成すると、mdadmはすでにメモリに読み込まれているため、grub-installの実行時にインストーラーが常に致命的なエラーを受け取る理由がわかりません。

誰かが私がここで欠けている手順を説明したり、起動できるマルチデバイスマウントをセットアップする方法の概要を提供したりできますか?

6
Siler

ソフトウェアRAIDでの起動には、ほとんどの場合、特に古いバージョンのGRUBの場合は、個別の/ bootパーティションが必要です。/bootのRAID-1パーティションを作成するときに「--metadata = 0.90」を指定することも必要です。

/ bootは最初のパーティションであり、小さく保つ必要があります。主にレガシーBIOSブートの理由によるものです。/bootを別のパーティションにする必要があるもう1つの理由は、通常は/ etc/fstabで読み取り専用モードでマウントする必要があるためです。カーネルのアップグレードを行う前に、読み取り/書き込みとしてのみ再マウントする必要があります。

私が使用する一般的なドライブ設定は次のとおりです。

/dev/sda1 + /dev/sdb1 = /dev/md0 Software RAID-1 with metadata 0.90
/dev/sda2 + /dev/sdb2 = /dev/md### Software RAID-1 with LVM on top

/ bootパーティションには常に/ dev/md0を使用します。 LVM領域では、mdadmデバイス番号に125未満の乱数を使用します。これは、このドライブが起動時に別のサーバーに接続された場合(つまり、回復中にUSB経由)に問題が発生しないようにするためです。

/ bootにRAID-1をセットアップしたら、RAID-1アレイの各ドライブにGRUB)をインストールする必要があります。

RAID障害後の起動方法(ソフトウェアRAID)?

この特定の例は、3ウェイのRAID-1ミラーをセットアップして、3つのドライブすべてがGRUBで起動できるようにする方法を示しています。

# grub
grub> find /grub/stage1
 (hd0,0)
 (hd1,0)
 (hd2,0)
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)
grub> device (hd0) /dev/sdc
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
3
tgharold