KVM(Kernel based Virtual Machine)を語れ 2
■ このスレッドは過去ログ倉庫に格納されています
>>79
便乗で教えてください。
最近当方もまさに同じことをしようとしたのですが、host_vnet0までは
taggedなキャプチャがされたのですが、guest_eth0はキャプチャされませんでした。
この「キャプチャされない」というのは、guestのvirtio_netの受信ルーチンに
デバッグ出力を入れることで確認しています。
(taggedなパケットに対して特殊な処理をしなければならないため)
で、Linux標準Bridgeだと↑のような状況です。
ちなみに、何故かguest_eth0にてtcpdumpをしかけるとデバッグ出力がされていました。
次に、Open vSwitchで
ovs-vsctl set port host_vnet0 tag=[VLANタグ]
とするとuntaggedでguestまで届きます。
が、これも何も設定しないと届きませんでした。
故あって、vconfigによるVLAN IFを生成できないので、仕方なく今は
Open vSwitchを使うようにしています。
ttp://d.hatena.ne.jp/naga_sawa/20120415/1334502258
とかにも、>>79さんのようにできると書いてあるんですが、何か設定間違ってるのかな…
ちなみに、OSはhost/guest共にFedora15です。 >>80
ゲスト側で動かしたtcpdumpの出力は正常にtaggedを吐き出してる、というのが前提ですが…
debug outを仕込んだ
>virtio_netの受信ルーチン
はアプリが受信処理しないと呼ばれないルーチンだったりしませんか?
素人オペ屋なのでドライバの中味やらの深い部分はわからないですが
tcpdumpのようなユーザランドのプログラムでパケットを吸い上げると
debug outが働く、というのならその線が疑わしいような
ストレージとの連携で、ISCSIか、NFSか、どっちを使おうか迷っています。
(ESXIでいうところの)シンタイプディスクの場合、データ転送量が少ないのはどっちになるんでしょうか。
質問があります。
Lenovo E420上で、ScientificLinux 6.2(64bit)でKVMを使って"Windows7pro"と"ScientficLinux 6.2(32bit)"を
仮想化しています。
Windows7の方の音を鳴らしたいのですが、KVMのSPICEを使うと音は鳴るのですが解像度がおかしくなります。
どうおかしいのかと言うと、画面の右3分の1が切れてしまいます。(フルスクリーンにしても同じ)
表示も遅いしそんな状態なので、rdesktopを使っています。
描画も速いし、解像度も問題ないし満足してるんですが、音が鳴りません。
オプションに、-r sound("-r sound:local" "-r sound:remote" も試しました) とつけても鳴りません。
何が原因なのでしょうか? KVMやqemuに対する質問なのかよくわからないが
むしろ、rdesktopに関する質問ではなかろうか。だとするとスレ違い。
とりあえず、普通のWindowsクライアントでリモートデスクトップ接続で
つないでみて、音が出るかどうか確認してみては? >>84
KVMの設定次第で解決する問題かもと思ってたのですが、読み返すと確かに質問の主が、
rdesktopになってました。すいません。
別のWindowsから試してみます。 >>86
ゲスト側にIO flush + fs freezeするツール仕込めばおけ。
でもジャーナル巻き戻し前提で「だいたいあってる」レベルならなくても即分岐させてよくない? libvirtに、ホスト/ゲスト間の通信IF機能とかないかなぁ。 >87
ゲストで / の freeze と unfreeze をやってるんだけど、たまに
unfreeze に失敗する事がある。 できるかわかんないけど
ゲストのacpidで電源ボタンでハイバネ設定しておく
virsh shutdown vm
cp image
virsh start vm
みたいなセミホットバックアップとか妄想してみる >>90
それなら(前にも出てきたけど)
cpではなくlvmでsnapshot取る方が断然早いだろう
数秒以内で終わる qemu consoleからスナップショット(LVMではなくqcow2やqedの)分岐させる手もあるね。
これもゲスト内FSレベルでのフラッシュ&フリーズはされないから巻き戻るけど。
libvirtdが動作してるにも関わらず
Unable to open a connection to the libvirt management daemon.
とか言われちゃうって何が原因なのかさっぱりだな・・・ >>93
デーモンが動作していることと
デーモンに接続可能なことは
まったく別物だと思うが 普通に、qemu-kvmに"-chardev"オプションでいけるのか。
とりあえずUNIX domainで試してみよう。 cpuをCeleron G1101からCore i7 860に変えたら、
仮想Windows7が立ち上がらくなった。
ログを見るとこんな感じ、誰か助けて
KVM: entry failed, hardware error 0x80000021
If you're running a guest on an Intel machine without unrestricted mode
support, the failure can be most likely due to the guest entering an invalid
state for Intel VT. For example, the guest maybe running in big real mode
which is not supported on less recent Intel processors.
EAX=00000010 EBX=00000080 ECX=00000000 EDX=00000080
ESI=0025db2a EDI=0007db2a EBP=00007c00 ESP=00000200
EIP=000000ca EFL=00000002 [-------] CPL=3 II=0 A20=1 SMM=0 HLT=0
ES =0020 00000200 0000ffff 0000f300
CS =b000 002b0000 0000ffff 0000f300
SS =0020 00000200 0000ffff 0000f300
DS =0020 00000200 0000ffff 0000f300
FS =0020 00000200 0000ffff 0000f300
GS =0020 00000200 0000ffff 0000f300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT= 002b0000 0000001f
IDT= 00000000 000003ff
CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000
000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000000
Code=00 ea be 00 00 00 18 00 0f 20 c0 66 25 fe ff 00 00 0f 22 c0 <66> 31 c0 8e d
8 8e c0 8e d0 66 bc 00 04 00 00 8e e0 8e e8 ea 00 00 00 20 00 00 00 20 2a db
handle_dev_stop: stop
>>96
もってないから適当だけど
# rmmod kvm-intel
# modprobe kvm-intel unrestricted_guest=0
でどう?
>>98
ダメみたい。
modprobe kvm-intel unrestricted_guest=0で
カーネルログに
kvm: VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL does not work properly. Using workaround
と出る。 KVM が kepler に対応するのはいつ頃だろう・・・ ところで皆、Win2008R2のゲストにUSBHDDって接続できてる?
自分の環境だと、ゲストが認識はすれど、エラー10 利用できない状態ですで使えないんですよね(´・ω・`)
どっかでドライバ探してこないとだめ? 複数の物理ホスト+virt-managerの環境で、両方のホストから同じゲストを起動できちゃうのって
何か抑止方法ないですか?ググってもなかなか対策が見当たらず。
どうなるか試しにやってみたら、見事にゲストのファイルシステムがおかしくなった。 >>110
運用変えるかscriptにロック書くしか無いんじゃ?
>>112
やってみたら確かにロックできた!
代わりにライブマイグレーションできなくなったw
migration may lead to data corruption if disks use cache !=noneとか出る。
日本語の情報、全然ないね。英語でもあんまり解決策とかなさげ 複数のネットワーク作るのはどうやるのがいいの?
仮想マシンマネージャーで普通にNATのネットワーク2つ作ったら何もしなくても相互に通信できちゃうんだな
どこが仕事してどう通信してるのかよくわからないんだが >>114
5分程度ぐぐっただけなので合ってるかどうかは知らんが、
エラーだけ見るとこのパッチに見える
https://www.redhat.com/archives/libvir-list/2012-June/msg00239.html
http://libvirt.org/news.html
0.9.13に入ってるかもしれない。
> Add support for shared sanlock leases (Daniel P. Berrange), >>115
分離したネットワークを2つつくればいいよ >>115
自分はVLAN切ってゲストを分断する方法しか思いつかなかったよ。
思い通りの設定は仮想マシンマネージャーでは無理でした。
仮想でルーター立ててそれでアンタグするか、物理ルーターでアンタグするかの2択が一番簡単かも。
参考
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20110317/358422/?ST=virtual&mkjb&P=1
もっといい方法あったら教えてエロい人。 KVM専用のディストリビューションってないの?
名前も悪いしこれじゃ普及しないだろ >>116
ありがとございます。
確かに、これっぽいですね。
Scientific6.2なのでまだ来てないですが、来たら試してみて
また報告します。 RHEV使ってる人いる?
FedoraでoVirtを入れてみたんだが、かなり不安定な印象。大丈夫? >>123
いるよ〜
oVirt v3.0と、v3.1bも使っているけど、安定性を求めるなら、v3.0 stableを使った方が良いかと。
v3.1bは、新機能追加がメインなので、いろいろ安定化させるのは苦労しますよ。 >>124
あざっす。
試したのは3.1bでした。
3.0の方やってみまっすmm >>125
一応、注意点として、f16向けのパッケージしかないので、engine用のマシンを構築するときは、fedora16で作りましょう。
Nodeは、iso配布のモノを使うのが良いかと。 >>126
感謝。
大抵の場合、皆さんFedoraでやってるみたいですけど、諸事情によりCentOS限定なんですよね。
試してないけど、EPEL使ってCentに入れれないかなぁと画策中です。
まともに動かなそうだけど・・・。 >>127
下記のサイトで、RHELクローン向けのoVirtが提供されていますよ。
http://www.dreyou.org/ovirt/
このパッケージを使用した事は無いですが、参考までに。
後、初めてRHEV/oVirtを触るなら、redhatの90日の評価版を使って、慣れるのもありかなと思います。
qemu+sshでvirtdにアクセスしていると、いつのまにか
ホスト側に大量のsshdとncが発生してつながらなくなるのですが
回避方法ないですか?
killall ncとかだと一時的に回復するけど、いたちごっこでした。 >>128
本当に親切にありがとう。
自分もこのリポジトリは見つけたんだけど、危ない香りがしたから試さなかったんですw
でも折角なので、インストールしてみて近いうちにレポート入れるよ。
ありがとう〜(`・ω・´) >>52
うちでは、VirtualBOX上で
UbuntuではKVM動作○
Fedoraでは?
だった。
lsmod | grep kvm で何も出てこない。
VMwarePlayerでCentOS:KVM>CentOSってやってるんだけど、
ネットワーク設定がよくわかりません。
VMwarePlayer(ブリッジ)>CentOS(br0,eth0)では外部と通信できます。
しかし、
VMwarePlayer(ブリッジ)>CentOS(br0,eth0)KVM>CentOSだと
ゲストのCentOSのeth0が起動しません。
ググッたところ、tapの設定が必要らしいのですが、qemuのコマンドでtap追加してる
サイトばかりで、virt-managerでguestOSをインストール、起動してからの設定が載っているサイトが
みつからずに困っています。
どなたかご存知ないですか? virt-managerなら何も難しいことはなく、br0を
ブリッジ対象として選べると思うんだが。 >>133
ありがとうございます。
virt-managerでeth0(br0)を選択したのですが、
eth0が起動しないのです。
普通なら、これだけで使えるようになるのでしょうか?
どうもKVMのネットワークが良く分かっていなくて・・・
いいサイトもしくは、本などございませんでしょうか。 >>132
KVMゲストのNICが上がらんのと、KVMゲストが外部と通信できないのは別の問題なので、
KVMゲストの/var/log/messeges とかでエラーを見てみるんだ(`・ω・´)
文章から読み取るに、VMwareもKVMも関係ない希ガス。
というか、VMwareのゲスト上でKVMが動くほうがびっくりした。 ごめんスペル間違えてた
/var/log/messages
です >>135,136
回答ありがとうございます。
やはりブリッジ設定した後は本来なら、普通に使えるんですね。
てっきり、ゲストOS側で何か紐付けする設定が必要なのかと
思っていました。
networkmanagerとシスログをチェックしてみます。
VMwarePlayer4.0.4ならintel-VTをゲストOSに橋渡しできるオプションが
あるのでKVM動かせました。 試しにゲストOSを新規に作り直してみたら、
うまく通信できるようになりました。
みなさんありがとうございました。 またまた困ったので質問です。
KVM上でルータ役のCentOS6.3(eth0(br0)192.168.0.0/24とeth0:0 192.168.1.0/24
とゲストOSCentos6.3(eth0(br0)192.168.1.0/24
という構成にしたのですが、ルータ役を介してインターネットに出られません。
ホストのbr0 1個に異なるネットワークの設定って出来ないものなんでしょうか?
ifconfig -a をゲストOSで実行するとなぜかGWがかなり遅れて表示されます。 >>140
ゲストのIPアドレスがネットワークアドレス >>141
いえ、書いているネットワークに属するホスト用アドレスにしていると
いう意味です。 >>140
組もうとしてるネットワークの全体像が判らないので、必ずしも間違っているとは言えませんが、
どういう構成で組みたいのかな。
仮想マシンのルーター役CentOSを、そのKVMホスト内で複数のサブネットを束ねるルーターとして使うなら、
br0だけじゃ駄目です。(というより、自分はそういう組み方しない。)
基本的にゲストOSのネットワーク設定は何も弄りません。
ルーター役CentOSは、必要なサブネットの数だけ仮想NICを用意するけど、IPエイリアスもVLANの設定もなし。
NICの設定を弄るのはあくまでホストOSのそれになります。
virt-managerでネットワーク設定が弄れるけど、あまり希望の構成通りにならないので、
ifcfg-eth*とかifcfg-br*を直接触ったほうがいいです。(マネージャーはきちんと認識するので大丈夫)
で、ルーターOSのグローバル側にbr0を付けて、LAN側にVLAN設定したNICを割り当ててやれば、
後はゲストで任意のIPを設定してやれば、サブネットとVLANIDが同じになっていれば、勝手に通信するし、
異なるVLANのゲスト同士は通信できない。
ルーターOSも希望のIPをそれぞれのNICにつければ、特にルーティングの設定なしで通信できます。(ゲートウェイは適切に)
解決しなかったら、自分が作ったファイルの内容貼りますので言ってちょー。 >>143
BBルータ LAN側 192.168.0.1/24 (ルーティングテーブルに192.168.1.0は192.168.0.101追記)
ホストOS br0(192.168.0.100/24),eth0(br0にブリッジ)GW192.168.0.1
ゲストOS(router) eth0(br0)192.168.0.101/24 eth0:0 192.168.1.100/24(GW192.168.0.1)
ゲストOS2 eth0(br0)192.168.1.102/24
という風にしています。
構成は BBルータ----192.168.0.0/24---ゲストOS(ルータ)---192.168.1.0/24
という風にしたいと思っています。
>>143さんのアドバイスをもとにちょっと頑張ってみます。
BBルータ LAN側 192.168.0.1/24 (ルーティングテーブルに192.168.1.0は192.168.0.101追記)
ホストOS br0(192.168.0.100/24),eth0(br0にブリッジ)GW192.168.0.1
→eth0:0 br0:0を作成(IP付けない)
ゲストOS(router) eth0(br0)192.168.0.101/24 eth0:0 192.168.1.100/24(GW192.168.0.1)
→ゲストOS(router) eth0(br0)192.168.0.101/24 eth1(br0:0) 192.168.1.100/24(GW192.168.0.1)
ゲストOS2 eth0(br0)192.168.1.102/24
→ゲストOS2 eth0(br0:0)192.168.1.102/24(GW 192.168.1.100)
こんな感じですかね。 こっちでやってる
iptables/routing
you can also connect your guest vm to a tap in your host. then setting iptables
rules in your host to become a router + firewall for your vm.
Routing would be done simply by creating the default route on the client to the
IP of the host (and allowing IP forwarding) and setting a route to the tap? device
of the client on the host.
以下略
http://www.linux-kvm.org/page/Networking >>145,146
ありがとうございます!
早速試してみます。 kvmのネットワーク設定でつまづいています。
ifcth-eth0(192.168.1.1)
ifcth-eth0:11(192.168.1.11)
ifcth-eth0:12(192.168.1.12)
ifcth-eth0:13(192.168.1.13)
ifcth-eth0:14(192.168.1.14)
ifcth-eth0:15(192.168.1.15)
現在上記イメージでホストにIPを振っています。
(iptablesやブリッジの設定は特になし)
virt-managerでゲストOSを作って、NICの設定で「ホストデバイス eth0:11:macvtap」を指定して
ゲスト側ではDHCPでIPを自動取得にしたのですが外部につながりません・・・。
やりたい事はゲストOS毎にIPを振って外部のPCからSSHでアクセスしたりhttpにアクセスしたりしたいのですが、
どこが原因なんでしょうか。
※構築したいイメージ図
【ルータ】(192.168.1.254)
|
【ホスト】(192.168.1.1)
|-------------|-------------|-------------|-------------|
【ゲスト1】 【ゲスト2】 【ゲスト3】 【ゲスト4】 【ゲスト5】
(192.168.1.11〜192.168.1.15)
よろしくお願いします。 >>150
ホストで設定するNICは
ifcfg-eth0 (ブリッジ設定 IP無し)
ifcfg-br0 (eth0の内容を引き継いで192.168.1.1)
んで、ゲストには全部br0をつければOK。
ゲストのIPはホストが決めるもんじゃないです。 >>151
ゲストのIPはゲスト側で設定すれば良かったんですね。
ありがとうございます。
再度挑戦してみます。 ゲスト側の設定で詰まってしまったのでまた質問させていただきます。
現在グローバルIPが33個あります。
※グローバルIPの振り分けは下記とします
ホスト用IP:xxx.xxx.3.17
ゲスト用IP:xxx.xxx.194.14〜xxx.xxx.194.45
>>151さんのご指摘であったブリッジ接続については下記のように設定してあります。
【ifcfg-eth0】
DEVICE=eth0
ONBOOT=yes
HWADDR=XX:XX:XX:XX:XX:XX
BRIDGE=br0
【ifcfg-br0】
DEVICE=br0
ONBOOT=yes
TYPE=Bridge
IPADDR=xxx.xxx.3.17
NETMASK=255.255.255.0
GATEWAY=xxx.xxx.3.1
上記で設定したbr0をゲスト側のNICの設定(ホストデバイス vnet0 (Brigde 'br0'))して、
ゲスト側のifcfg-eth0は下記のようにしましたが外部につながりません(8.8.8.8やゲートウェイなどにpingが通らない)。
【ifcfg-eth0】
DEVICE="eth0"
BOOTPROTO="static"
IPADDR=xxx.xxx.194.14
GATEWAY=xxx.xxx.3.1
ONBOOT=yes
どこの設定まわりを見直せば良いのでしょうか。
よろしくお願いします。 >153
「よろしくお願いします」って、丸投げするなよ。
仮想化以前に、基本的にネットワークセグメントがおかしいと思うが。
1台のIPがxxx.xxx.3.17/24で、同一セグメントに、
別のIPがxxx.xxx.194.14 って。実環境で構築したっておかしい。
>155
全くもって同意。
>>155,>>156
丸投げするもりなどはなく、なにかしらヒントだけでもらえればと思ったもので。
>>156
> 1台のIPがxxx.xxx.3.17/24で、同一セグメントに、
> 別のIPがxxx.xxx.194.14 って。実環境で構築したっておかしい。
そうなんですけどね。こういうIPを割り振られてしまったものでして。
もう少し調べてみます。
ありがとうございました。 >>150は質問の仕方が「自分専用のサポート窓口」みたいになってるってことに気付かないんだろうな
哀れ 誰だって最初は判らないんだから、もちょい優しくしてやれよw
俺は暇人だからおk。
>>158
前出の通り、割り当てられてるグローバルIPとゲートウェイの関係がおかしいよ。
これはKVMの話じゃなくて、普通のネットワークの話ね。
仮にゲストにNIC1つでOKで、ローカルIPが必要無いってなら、KVMのネットワーク設定はそれで合ってる。
(物理スイッチとかの配線までは知らんけど、間違ってそうな気がせんでもない。)
IPに関しては最低限必要な基本情報が3つあって、
・IPアドレス
・サブネットマスク
・ゲートウェイ
が必要なんですわ。 だから下のゲストの設定で問題なのは、
>ゲスト側のifcfg-eth0は下記のようにしましたが外部につながりません(8.8.8.8やゲートウェイなどにpingが通らない)。
>【ifcfg-eth0】
> DEVICE="eth0"
> BOOTPROTO="static"
> IPADDR=xxx.xxx.194.14
> GATEWAY=xxx.xxx.3.1
> ONBOOT=yes
・NETMASKが書いてない。
・GATEWAYが常識的にはありえない。
(ちゃんと金払って借りてるグローバルIPが前提の話ね。大規模ならあるかもしれんけど。)
の2点。 GATEWAYはxxx.xxx.194.1とかのはずだよ。
>そうなんですけどね。こういうIPを割り振られてしまったものでして。
この設定を指示した人間は、それくらい判るだろうとおもって頼んでるはずw
ガンガレ ごめん読みが甘かった。
>>156の言うとおり、そもそもIPの振られ方がおかしい可能性がありますね。
ホストのNIC設定が1つで、2つのサブネットに繋ぐことはあまりしないかも。
ネットワークの全容が分からんからなんとも言えんけど、一度仕様を確認した方がいいと思います。 つかこのレベルにグローバルIPの運営をまかせて良いのか?
取りあえずボコボコにして追い返すのが世界平和の為じゃない?
今IP4はかなり割り当て厳しくなってるんだから即刻返却すべし! 業務なら知識のないうちは付焼より金払って勉強したほうがいい
毎回このスレに相談に来る気か 残念ながら、ろくな本無いねぇ。
大体古い。
自分はネット漁った。 日本語でのKVMの本は、今のところ「KVM徹底入門」 一冊しか無い。
かなり初心者向けだけど。
大抵の人がlibvirt使って管理をしてるだろうし、
Qemuとlibvirtのサイトでドキュメントを見るのが一番いいような気がする。
Qemuのサイトを一通り読んだ記憶がうっすらある。
1回作ったら、あとはたいていコピペだし、もうほぼ記憶無い。 virt-managerみたいなやつをmacで使いたいんだけどなんかない?
sshでX飛ばしてvirt-manager起動させてみたけどkeymapがおかしくなったりする >>169
今VNC使ってるけどXはなるべくサーバに入れたくないんだよね。
なんか代案があればと思ったんだけどやっぱないか。 keymapがおかしくなるのは仮想マシン?それとも
virt-manager自身?
仮想マシンのkeymapがおかしくなるのは、keymapを
定義してないからではないでしょうか。
自分もMacからSSH越しでvirt-managerを使っているけど
keymapで困ったことはないです。 「mac xサーバ virt-manager」とかでググるといろんなサイトで.Xmodmapいじれって書いてあるけど 画面共有の方法を教えてください。
下記環境で使っていた時は、サーバの仮想PCの画面と
クライアント側UltraVNCで同時に同じ画面を表示されることができてました。
サーバ:centos6.2でKVM
クライアント:Win7 + UltraVNC
このサーバにCentOS6.3をクリーンインストールしてKVM環境を構築すると、
サーバで仮想マシンの画面を開いている時はクライアントVNCが接続できず、
サーバの仮想マシンの画面を閉じている時のみクライアントVNCが接続できる様な具合になってしまいました。
これを以前の環境(centos6.2)と同じように、2つのPC間で同時に同じ画面を表示させたいのです。 複数ホスト運用時、
/etc/libvirt/qemu 以下のXMLファイルってどうしてる?
できれば同期的に最新状態にしておきたいんだけど、
cronで定期的にrsyncで回すとかで問題ないもんかな…? リアルマシンの台数を削減するためKVM(ホストはCentOS6を予定)上に集約させようと思うのですが、
現在運用している環境を再構築するのは面倒なので今のリアルDiskイメージから仮想イメージが作れれば比較的簡単に移行出来るのではないかと考えています、
その様な方法は可能なのでしょうか?
可能であればリアルディスクイメージを仮想ディスクへ変換するツールなどあるのでしょうか?
なお動かしているシステムは特別なハードに依存していないのでKVMの仮想ハードでも問題なく動くと考えていますがどうでしょうか? >>176
CentOS6.3のvirt-p2vパッケージの中にISOイメージ入ってる >>176
ごめん。ドキュメントのURL貼り忘れた。
ttps://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/V2V_Guide/chap-V2V_Guide-P2V_Migration_Converting_Physical_Machines_to_Virtual_Machines.html HDDを適当なLinuxマシンに接続して、後は dd コマンドで丸ごとイメージ持ってくればいいだけ違うの? ■ このスレッドは過去ログ倉庫に格納されています