
ルート パーティションには LVM RAID 1 (mdadm RAID 1 ではなく、正確には LVM2 RAID 1) があります。ルート LVM パーティションの基礎となる PV が存在する HDD のいずれも使用せずにシステムを起動したいと考えています。
grub.cfg (GRUB2 によって自動的に生成される) のカーネル起動行は次のようになります。
linux /kernel-genkernel-x86-3.11.7-hardened-r1-3 root=/dev/mapper/vg-root ro dolvm
両方のディスクが有効になっている状態では完璧に見え、システムは HDD フォールト トレラント ランタイムです。つまり、実行中にいずれかの HDD がダウンしても正常に動作します。
しかし、HDDの1つを使わずに起動しようとすると、
Refusing activation of partial LV root. Use --partial to override.
起動時およびカーネル パニック中。PV の 1 つが存在しない場合に lvm が起動するのは通常の動作ではないため、一面から見ると妥当に思えます。ただし、サーバーを起動するには絶対に必要です。考えられる潜在的な回避策は、カーネル起動行にいくつかの追加オプションを追加することです。
HDD の 1 つが動作しない場合に、ルート パーティションで LVM RAID 1 を動作させる方法をご存知ですか?
答え1
問題は解決されましたLVM バージョン 2.02.1082014年6月。
あ劣化したLVM に LV アクティベーション モードが追加され、これがデフォルトのアクティベーション モードになりました。基本的には、データ損失なしで LV が不完全な場合でも (1 つのレッグがない RAID1 LVM の場合など) 可能であれば LV をアクティベートします。
より詳しい説明はこちらをご覧ください:LVM: アクティベーション: 「劣化」アクティベーションモードを追加。
答え2
これまでこれを試したことはなく、これが最善の解決策であるかどうかはわかりませんが、これで問題なく動作するはずです... 少なくとも下部にあるソースを参照して、ここに記載した内容が正しいかどうかを確認することを強くお勧めします... :)
基本的には、レスキュー メディアから起動し、PV、VG、LV を再スキャンする必要があります。
lvm pvscan
lvm vgscan
lvm lvscan
その後、VG のアクティベーションを強制できるようになります。
lvm vgchange -ay --partial VolGroup00
それが完了したら、VG から不足しているミラー コピーを削除できます。
lvm vgreduce --removemissing --force VolGroup00
それが完了したら、ミラーリングされていない構成で再起動しても問題ありません。
正常に復帰し、不良ドライブを修復/交換したら、それらのドライブをシステムに再度追加し、次のような操作を行う必要があります (/dev/sdb が故障したドライブであり、fdisk を使用して /dev/sdb1 として LVM パーティションを作成し、/dev/sda1 が正常なミラーの場所であると想定します)。
pvcreate /dev/sdb1
lvm vgextend VolGroup00 /dev/sdb1
次に、次のようにして各 LV ミラーを再作成する必要があります。
lvm lvconvert -m 1 /dev/VolGroup00/usr /dev/sda1 /dev/sdb1
lvm lvconvert -m 1 /dev/VolGroup00/var /dev/sda1 /dev/sdb1
lvm lvconvert -m 1 /dev/VolGroup00/root /dev/sda1 /dev/sdb1
...
出典: