背景

背景

背景

私はCentos 7を使用しています。最初は、次のように単一のディスクで実行されます。

1  200M    EFI System       (/boot/efi)
2  500M    Microsoft basic  (/boot)
3  465.1G  Linux LVM 

LVM VG centos
- LVM LV ext4 centos-root (/)
- LVM LV swap centos-swap (swap)

最初はLinuxソフトウェアRAID1アレイにインストールする必要があるため、これは一時的なソリューションです。今日時間をかけて移行してみました。現在の様子は次のとおりです。

Both new disks have this partition layout:

1  200M    EFI System   (/boot/efi)
2  457.6G  Linux RAID   /dev/md0  RAID1 (for boot and LVM)
3  8G      Linux RAID   /dev/md1  RAID0 (so 16GB total, for swap)

/dev/md0 looks like this:

1  500M  Linux filesystem (/boot)
2  457G  Linux LVM        (centos-root is migrated to this)

LVM now has only one LV, centos-root

/etc/mdadm.conf次のようになります。

ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=main.centos.local:0 UUID=5b5057b4:4235ba4b:5342dfda:acf63302
   devices=/dev/sda2,/dev/sdb2
ARRAY /dev/md1 level=raid0 num-devices=2 metadata=1.2 name=main.centos.local:1 UUID=f82a8c99:9b391d83:4efc9456:9e9bad98
   devices=/dev/sda3,/dev/sdb3

/etc/fstab次のようになります。

/dev/mapper/centos-root                   /          xfs    defaults  0 0
UUID=fcb5f82f-ce6b-460b-800f-329e010bc403 /boot      xfs    defaults  0 0
UUID=C532-14AE                            /boot/efi  vfat   umask=0077,shortname=winnt 0 0
/dev/md1                                  swap       swap   defaults  0 0

blkid以下を出力します(関連項目のみ):

/dev/sdb1: SEC_TYPE="msdos" UUID="C532-14AE" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="ed301bbd-c15c-40af-ae75-bf238d0e6270" 
/dev/sda1: SEC_TYPE="msdos" UUID="C532-14AE" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="f3a76412-41a0-4e04-9b04-ad1c159133cf" 
/dev/md0p1: LABEL="boot" UUID="fcb5f82f-ce6b-460b-800f-329e010bc403" TYPE="xfs" PARTLABEL="primary" PARTUUID="df8d6481-c6ce-423a-b5d5-205d355e5653" 
/dev/md0p2: UUID="7LfywM-oPHy-MTEt-swlI-EVbZ-opTo-m82E6R" TYPE="LVM2_member" PARTLABEL="primary" PARTUUID="19e7f9d5-a955-4036-8338-03a748faa1f6" 
/dev/mapper/centos-root: UUID="deaa9788-b487-4991-adf7-2945788fb6cd" TYPE="xfs"

/boot/efi_[device]カーネルが更新されたときにすべてを同期状態に保つために、grub.cfgがそのパーティションにコピーされている他のEFIパーティションを自動的にマウントするスクリプトがあります。

/dev/sda1スクリプトを通じて同期が維持されるため/dev/sdb1(確認しました)、どちらかをfstabにマウントすることは問題になりません/boot/efi。これはまた、エラーのために1つのドライブが削除されてもシステムが起動し続けることを意味します。作業を簡素化するためにLVにスワップを入れることもできましたが、RAID0は(価値があるほど)パフォーマンスを向上させ、さらに16GBのスペースを獲得します。

次のコマンドを使用して、LVを古いドライブから新しいPVに移行しました。

pvcreate /dev/md0p2
vgextend centos /dev/md0p2
pvmove /dev/sdg3
vgreduce centos /dev/sdg3

dracut次に、(元のファイルをバックアップした後)initramfsを再生成し、最後にgrub.cfgを再生成しました。その後、新しい/bootパーティションをマウントし、/boot/efiすべてをコピーしました。

質問

古いドライブを切断して起動した後、dracutは私のRAIDアレイを見つけることができず、間違いなく/bootパーティションとLVGも見つけることができません。合計をまったくmdadm --assemble呼び出さないようです。プロンプトでこれを実行して接続できるLVGを見つけ、プロンプトを終了すると、システムは問題なく起動し続けます。すべてがなければならないところにあるようです。/dev/md0/dev/mddracutlvm_scan/dev/centos/root/dev/root

利用可能なカーネルアップデートがあったのでインストールしようとしましたが(initramfsファイルとgrub.cfgファイルを最初に再生成するときに何かを台無しにしたと仮定しました)、成功しませんでした。システムはまだ同じ方法で失敗します。 EFI パーティションの 1 つから手動でブートする場合です (両方とも同じです。そうする必要があります)。

Pastebinのrdsosreport.txtリンク

私がここで何を見逃しているのでしょうか?アレイを組み立てるためにdracutをどのように入手しますか?

答え1

dracutドキュメントでは、すべてのmd raidアレイを自動的に組み立てる必要があり、このパラメータは、rd.md.uuid起動プロセスの一部として特定のアレイを組み立てたい場合にのみ使用する必要があることを示しています。

実際、アレイは自動的に組み立てられないようです。実際には、rd.md.uuidパラメータが設定されている場合にのみ組み立てられます(組み立てる必要がある各アレイについて)。rd.lvm.lvパラメータがすでに設定されているため、何らかの問題が発生する可能性がありますが、mdテストする時間はありません。

つまり、rd.md.uuid2つの配列のパラメータをGRUB_CMDLINE_LINUX変数に追加して/etc/default/grubgrub構成を再生成することで問題を解決しました。

答え2

rd.md=1変数にパラメータを追加してgrub構成を再生成するとrd.md.conf=1rd.auto=1同様の問題が解決されました。これらのパラメータのデフォルト値は0です(文書には明示的には記載されていませんが、そうであると記載されています)。GRUB_CMDLINE_LINUX/etc/default/grubdracut.cmdline

もちろん、rd.md.uuid別途追加することも可能です。これは必要な配列が明示的に開始されるためです。しかし、私は怠惰で一般的なパラメータを好みます。このrd.md.uuidバージョンの利点は、起動時に必要なアレイのみが起動されることです。

答え3

私はこれを使うmdadm RAID CentOS スタートガイドこのトピックについて欠落している情報がたくさんあるようです。

明らかなステップに加えて、スタートアップの問題を解決するための2つのステップがありました。 1.) /etc/default/grubにrd.auto=1を追加し、grub.cfg grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfgを更新しました。 2.) 次のように initramfs を再構築する必要がありました。 : dracut --add="mdraid" /boot/initramfs-3.10.0-1127.13.1.el7.x86_64.img 3.10.0-1127.13.1.el7.x86_64 --force

その後は起動できますが、将来のすべてのカーネルにmdraidが組み込まれるようにdracut.confを編集してmdraidを追加することを忘れないでください。

関連情報