LVM RAIDはどれほど成熟していて機能的ですか?
LVM-RAIDは実際には隠れています。基本的には、RAIDデバイスごとに2つの論理ボリューム(「rimage」と呼ばれるデータ用、「rmeta」と呼ばれるメタデータ用)を作成することで機能します。次に、それらを既存のmdraidドライバーに渡します。したがって、ディスク読み取りエラーの処理、I / Oロードバランシングなどはかなり成熟しているはずです。
それは朗報です。
道具
使用することはできませんmdadm
(少なくとも、簡単な方法ではありません¹)、LVM RAIDツールはそれほど成熟していません。たとえば、Debian Wheezyでは、lvs
RAID5同期ステータスを通知できません。修復とリカバリ(特に「決して起こらない!」状況から)がmdadmに近いことは非常に疑いがあります(そして、私のテストで偶然それらの1つに偶然遭遇し、ついにそれをリカバリすることをあきらめました。 mdadmは簡単だったでしょう)。
特に、すべてのツールの最新バージョンを使用していない場合、さらに悪化します。
不足している機能
LVM-RAIDの現在のバージョンはlvreduce
、RAID論理ボリュームの縮小()をサポートしていません。また、ディスク数やRAIDレベルの変更lvconvert
もサポートしていません(まだサポートされていないというエラーメッセージが表示されます)。lvextend
動作し、RAID10などのmdraidが最近サポートを獲得したRAIDレベルを拡大することさえできます。私の経験では、LVを拡張することは、LVを縮小するよりもはるかに一般的であるため、実際には合理的です。
他のmdraid機能はいくつか存在しません。特に、mdadmで使用できるすべてのオプションをカスタマイズすることはできません。
古いバージョン(たとえば、Debian Wheezyなど)では、LVM RAIDも成長をサポートしていません。たとえば、Wheezyの場合:
root@LVM-RAID:~# lvextend -L+1g vg0/root
Extending logical volume root to 11.00 GiB
Internal error: _alloc_init called for non-virtual segment with no disk space.
一般に、Wheezyバージョンを実行することは望ましくありません。
上記はインストールした後のものです。それも些細なプロセスではありません。
ツールの問題
Jessie VMで遊んで、1つのディスクを(事実上)切断しました。それはうまくいき、マシンは稼働し続けました。lvs
ただし、アレイが劣化していることを示すものはありません。ディスクを再接続し、1秒間取り外しました。走り続けました(これはraid6です)。再接続しましたが、まだ表示されていませんlvs
。私はlvconvert --repair
そのボリュームで走りました、それはそれがOKであると私に言いました。それから私は3番目のディスクを引き出しました...そしてマシンは死にました。それを再挿入して再起動しましたが、修正方法がわかりません。mdadm --force --assemble
これを修正します。そのオプションもありvgchange
ませんlvchange
(lvchangeはを受け入れますが--force
、何もしないようです)。dmsetup
マッピングテーブルをカーネルに直接フィードしようとしても、それを回復する方法がわかりませんでした。
また、mdadm
RAIDを管理するための専用ツールです。LVMはもっと多くのことを行いますが、RAID機能がそこに押し込まれているように感じます(そして、これはかなり主観的だと思います)。それはまったく適合しません。
LVM RAIDを搭載したシステムを実際にどのようにインストールしますか?
Debian JessieまたはWheezyにインストールする簡単な概要を以下に示します。ジェシーははるかに簡単です。Wheezyでこれを試す場合は、最初にすべてを読んでください...
netinstイメージではなく、完全なCDイメージを使用してインストールします。
通常どおり続行し、ディスクパーティションを作成し、LVM物理ボリュームをセットアップします。あなたはでき入れ/boot
(ジェシー上、下記に詳細いくつかの作業とWheezyに上)LVM-RAIDに。
ボリュームグループを作成します。LVMメニューのままにしておきます。
最初の楽しみ-インストーラーにはdm-raid.ko
モジュールがロードされていないか、使用できません!したがって、インストールされるlinux-imageパッケージから取得することができます。(例えば、コンソールに切り替えAlt- F2)と:
cd /tmp
dpkg-deb --fsys-tarfile /cdrom/pool/main/l/linux/linux-image-*.deb | tar x
depmod -a -b /tmp
modprobe -d /tmp dm-raid
インストーラーはLVM-RAID LVの作成方法を知らないため、コマンドラインを使用して作成する必要があります。注:ベンチマークは行っていません。-I
以下のストライプサイズ()は、完全に私のVMセットアップの推測です。
lvcreate --type raid5 -i 4 -I 256 -L 10G -n root vg0
Jessieでは、スワップにRAID10を使用できます。Wheezyでは、RAID10はサポートされていません。したがって、代わりに、各RAID1の2つのスワップパーティションを使用できます。ただし、どの物理ボリュームに配置するか、またはミラーの両方の半分を同じディスクに配置するかを正確に指定する必要があります。はい。真剣に。とにかく、それは次のようになります:
lvcreate --type raid1 -m1 -L 1G -n swap0 vg0 /dev/vda1 /dev/vdb1
lvcreate --type raid1 -m1 -L 1G -n swap1 vg0 /dev/vdc1 /dev/vdd1
最後に、インストーラーに戻り、LVMメニューで「完了」を押します。これで、多くの論理ボリュームが表示されます。それは、インストーラーが何が起こっているのか理解していないことです。rimage
またはrmeta
その名前に含まれるすべてのものを無視します(それらの意味については、上記の最初の段落を参照してください)。
先に進み、通常どおりファイルシステム、スワップパーティションなどを作成します。grubプロンプトが表示されるまで、ベースシステムなどをインストールします。
Jessieでは、grub2はMBRにインストールされている場合(またはおそらくEFIで動作しますが、テストしていません)。Wheezyでは、インストールは失敗し、唯一の解決策はJessieのgrub2をバックポートすることです。それは実際にはかなり簡単で、Wheezyできれいにコンパイルされます。どういうわけか、バックポートされたgrubパッケージを/target
(または、chrootの後にすぐに)移植してください:
chroot /target /bin/bash
mount /sys
dpkg -i grub-pc_*.deb grub-pc-bin_*.deb grub-common_*.deb grub2-common_*.deb
grub-install /dev/vda … grub-install /dev/vdd # for each disk
echo 'dm_raid' >> /etc/initramfs-tools/modules
update-initramfs -kall -u
update-grub # should work, technically not quite tested²
umount /sys
exit
実際、最近のJessie VMでgrub-installがハングしました。F2に切り替えてを実行while kill $(pidof vgs); do sleep 0.25; done
した後、同じを実行してlvs
、grub-installで取得しました。それにもかかわらず、有効な構成を生成するように見えましたがchroot /target /bin/bash
、念のため、確認/proc
して/sys
マウントし、を実行しましたupdate-grub
。その時、完了しました。次にdpkg-reconfigure grub-pc
、すべての仮想ディスクのMBRにgrubをインストールすることを選択しました。
Wheezyでは、上記を実行した後、「ブートローダーなしで続行」を選択します。
インストールを完了します。起動します。恐らく。
コミュニティの知識
について知っているかなりの数の人々がいmdadm
て、多くの展開経験があります。グーグルはあなたが持っているそれに関するほとんどの質問に答えるでしょう。一般的には、おそらく1日以内に回答を得るために、ここに関する質問を期待できます。
LVM RAIDについても同じことが言えません。ガイドを見つけるのは難しいです。私が実行したほとんどのGoogle検索では、代わりにmdadmアレイをPVとして使用することに気が付きました。正直に言うと、これはおそらく新しいものであり、あまり一般的ではないためです。ある程度、これに反対するのは不公平に感じますが、何か問題が発生した場合は、mdadmを取り巻く既存のコミュニティの規模が大きくなるため、データを回復する可能性が高くなります。
結論
LVM-RAIDはかなり急速に進歩しています。Wheezyでは、(少なくとも、LVMとカーネルのバックポートを行わないと)実際には使用できません。以前、2014年のDebianテストで、それは興味深いが未完成のアイデアのように感じました。現在のテストは、基本的にJessieになりますが、異なるRAID構成(管理上の悪夢のようなもの)で小さなスライスを頻繁に作成する必要がある場合、実際に使用するもののように感じますmdadm
。
LVMを使用してパーティションにスライスされたいくつかの大きなmdadm RAIDアレイによってニーズが十分に満たされる場合、引き続き使用することをお勧めします。代わりに多数のアレイ(または論理ボリュームのアレイ)を作成する必要がある場合は、代わりにLVM-RAIDに切り替えることを検討してください。ただし、適切なバックアップを保持してください。
LVM RAID(およびmdadm RAID)の多くの使用は、クラスターストレージ/オブジェクトシステム、ZFS、およびbtrfsのようなものに引き継がれています。また、それらを調査することをお勧めします。彼らはあなたのニーズによりよく応えるかもしれません。
ありがとうございます
LVM-RAIDの状態を再確認し、この投稿を更新してくれたpsusiに感謝します。
脚注
デバイスマッパーを使用して、メタデータとデータを結合する方法で結合できると思いますmdadm --assemble
。もちろん、mdadm
論理ボリュームで問題なく実行できます...そしてそれは賢明です。
Wheezyのインストールを行ったとき、私はこれを初めてやることに失敗し、grubの設定なしで終了しました。grubプロンプトですべての情報を入力して、システムを起動する必要がありました。一度起動すればうまくいきましたので、インストーラーでうまく動作すると思います。grubプロンプトが表示されたら、次のように入力してください。
linux /boot/vmlinuz-3.2.0-4-amd64 root=/dev/mapper/vg0-root
initrd /boot/initrd.image-3.2.0-4-amd64
boot
PS:実際に最初の実験を行ってからしばらく経ちました。私は私の作ったオリジナルのノートが利用可能。私は現在、これらのノートではなく、この回答でカバーされているより最近のものを行っていることに注意してください。