仮想化ホストとしてCentos6を使用してマシンをセットアップしています。単一のlvmボリュームグループ(vg_fluke)として構成された単一の250Gハードドライブがあります。ここで、ホストのlvmをKVMのストレージプールとして使用したいと思います。
私は SFに関するこの質問 を見つけました。方法1は、私が達成したいことを説明しています。しかし、私はそれについて行く方法を見つけることができません。
私は次のことを試しましたが、ドキュメントが大雑把なので、何か間違ったことをしていると確信しています。
virsh # pool-define-as guest_images_lvm logical - - - - /dev/vg_fluke
Pool guest_images_lvm defined
そしてそれに続いて、
virsh # pool-start guest_images_lvm
error: Failed to start pool guest_images_lvm
error: internal error Child process (/sbin/vgchange -ay -) status unexpected: exit status 5
LVMセットアップの詳細:
[root@fluke ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb2 vg_fluke lvm2 a-- 232.39g 125.45g
[root@fluke ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv_home vg_fluke -wi-ao 5.00g
lv_root vg_fluke -wi-ao 100.00g
lv_swap vg_fluke -wi-ao 1.94g
[root@fluke ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_fluke 1 3 0 wz--n- 232.39g 125.45g
更新:
@sitaktifのアドバイスに従い、次のエラーが発生します。
virsh # pool-define-as lv_guest_vm logical --target /dev/vg-main
Pool lv_guest_vm defined
virsh # pool-start lv_guest_vm
error: Failed to start pool lv_guest_vm
error: internal error '/sbin/vgchange -ay lv_guest_vm' exited with non-zero status 5 and signal 0: Volume group "lv_guest_vm" not found
注:VGがvg-mainである別のマシンでこれを試しています。仮想マシンで使用するlibvirt用に2番目のVGを作成する必要がありますか?既存のVGでLVを使用して設定するにはどうすればよいですか?
デフォルトでは、libvirtはプール名をvgの名前として使用します。実行しようとした/sbin/vgchange -ay lv_guest_vm
コマンドでそれを実行していることがわかります。ただしてください:
pool-define-as lv_guest_vm logical --source-name vg-main --target /dev/vg-main
そしてそれはうまくいくはずです。
次のコマンドは正しくありません。
virsh # pool-define-as guest_images_lvm logical - - - - /dev/vg_fluke
...実行されるため:
/sbin/vgchange -ay -
...の代わりに:
/sbin/vgchange -ay /dev/vg_fluke
ダッシュを使用する代わりに、パラメータに明示的に名前を付けるだけです。
pool-define-as guest_images_lvm logical --target /dev/vg_fluke
それはあなたの問題を解決するはずです。
これを機能させることができない場合は、さらにいくつか試してみてください。
--source-name(Wil Tanの回答から)が役に立たない場合は、-source-devを検討してLVMの下のレイヤーに明示的に接続します。
virsh pool-define-as vg_fluke logical --target /dev/vg_fluke --source-dev /dev/md999
問題が発生した場合は、ボリュームグループと同じ名前のストレージプールから始めてください。
また、プールの作成後、たとえばでそれを見てください。 .。
virsh pool-list --all
virsh pool-info vg_fluke
...それはあなたに追加の手がかりを与えるかもしれません。
質問は ホストとゲストの間でlvmボリュームグループを共有する にも言及しています。ただし、問題を回避するために、ホストのlvmボリューム(グループではない)をゲストのハードディスク(lvmボリュームではない)として使用してください。このボリュームは、ホスト上で直接操作されるだけである限り、グループまたはストレージプールの一部である可能性があります。また、ゲストでは、このハードディスクの上にlvmレイヤーを構築できますが、これはホストのlvmから完全に分離されています。また、わかりやすくするために、コマンド(引用している)がホストで実行されているのかゲストで実行されているのかを説明してください。ここで引用しているコマンドはすべてホスト上で実行されます。
質問について...
仮想マシンで使用するlibvirt用に2番目のVGを作成する必要がありますか?
私が 偶然これに遭遇した である限り、libvirtに知られているボリュームをnotに知られていないボリュームから分離する理由は見つかりませんでしたlibvirtを別々のボリュームグループに分けます。
「libvirtに知られている」とは、つまり、libvirtはそれらをストレージプール内のボリュームとして表示します。例えば。経由...
virsh vol-list vg_fluke
しかし、繰り返しになりますが、うまく機能しない場合は、別のボリュームグループから始めて、考えられる別の問題の原因を整理してください。