KVM(Kernel based Virtual Machine)を語れ 2
■ このスレッドは過去ログ倉庫に格納されています
>>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 コマンドで丸ごとイメージ持ってくればいいだけ違うの? ご存知の方がいれば教えて下さい。
KVMのVNCサーバってホストOSにXが無いと動かないでしょうか?
ホストOS(Gentoo)にゲストOS(Gentoo)を作成し、
クライアントPC(Windows)からゲストOSへ、
UltraVNCでアクセスしようしています。
ネットワーク設定はブリッジ接続で行っており、
レイヤ3レベルの疎通性は取れているのですが、
tcpdumpしてみるとポインタの位置情報のやり取りを、
ゲストOSのVNCからバチっと切っているようでして、
ひょっとしたらホストOS側にXが必要なんではないかと。
ホストOSがGentooという事でスレ違いでしたらすみません。 >>180
listenがループバックになってんじゃないの? >>181さん
レスありがとうございます。
deamonizeで動かしている状態で、netstat -l -tしてみました所、
tcp 0 0 *:5900 *:* LISTEN
となっていました。
なのでlistenループバックは多分大丈夫です。
理解が間違ってたらすみません。
libvirt つかってるけど、qemu.conf にこんな設定がある。
なんかの参考になれば...
# VNC is configured to listen on 127.0.0.1 by default.
# To make it listen on all public interfaces, uncomment
# this next option.
#
# NB, strong recommendation to enable TLS + x509 certificate
# verification when allowing public access
#
# vnc_listen = "0.0.0.0"
>>183さん
レスありがとうございます。
ひょっとしたら省略可能とは聞くものの、
-vnc :0で端折ってるのがいけないのかな。。。
今までqemu-kvmコマンド直打ちで試していたのですが、
一度virtshでの設定と運用を試してみたいと思います。 kvmでゲストOSを起動する際にドメインIDを固定にさせたいんですけどそういう方法ってありますか?
調べてみたけど
<domain type='kvm' id='3'>
これだとvirsh editで編集しても元に戻っちゃうから書き方が間違っていると思うんですが・・・ >185
virsh domid で id 取得するんじゃダメなの? >>186
管理NoとドメインIDを統一したいんです。(わざわざ管理Noが書かれた別ファイルを開きたくない)
libvirtd起動時にドメインIDがランダムに割り振られちゃうので指定できればと思ったんです。
xmlで設定できれば良いんですがラッパープログラム書かないと難しそうですね。 >>187
listで出てくる数字とuuidを統一したいとか?
根本から考え違いしてないか? そこはいい加減決めよう!
Q1. デバイスパススルー使いますか?
Q2. ディスクI/Oは多い方ですか?
Q3. Linuxは好きですか?
Yesが多ければKVM、Noが多ければESXiくらいの感じで。 >>188
listで出てくる数字(ドメインiD)とサーバの管理番号(Excelに記載しているサーバの管理No)を一緒にしたいってことです。
uuidとかはまったく関係がなく単純にドメインIDを指定した番号に固定出来ればいいだけです。
KVMってWindowsがゲストの場合にモタつく感じがするんですが
ESXiだとサクサクになるんでしょうか? >>191
単にドメイン名をその管理番号?にすればいいのに。
ドメインIDは「起動中の」ゲストを特定するIDでlibvirtが付与するもんだから、
Excelというか構成管理側で管理する値じゃない。
http://libvirt.org/drvqemu.html#xmlconfig
http://libvirt.org/formatdomain.html#elements
>>193
ドメイン名はゲストのhostnameで使うんですよね・・・。
virsh dumpxmlで出た値(id='xx')はやっぱり固定に出来ないようですね。
おとなしくwrapper書く事にします。
ありがとうございました。
>>192
使った事ないけど知り合い曰くkvmよりもはましらしい。
(windowsメインならおとなしくHyper-V)
linuxメインならこれ使ってみるとか。
ttp://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
>>194
KVMよりマシなら試してみる価値ありそうです、
Hyper-Vも検討してみます。 >>192
両方使ってるけど、
ESXiの方が若干軽い感じがする。>Windowsゲスト
つーか、ESXiはハードウェアの好き嫌いがかなりあるからなぁ。
手持ちのマシンで何も考えずにお手軽に仮想環境が作りたいなら
KVMの方がいいかもしれん。 >>192
ディスクイメージを SSD に置けば気にならなくなるかも 以前の virt-manager って表示を
「稼働中のVM」とか「停止中のVM」って
切り替えられた思うんだけど、
最近(手元には0.9.0と0.9.4)ではなくなった?
縦に一杯並んじゃって見にくい。
一つのVMに9個以上のPCIデバイスを割り当てようとするとエラーになるんだが、
どこの設定を弄ればいいんだろう MAX_DEV_ASSIGN_CMDLINE(8)で思いっきりハードコーディングされてるのか…
ダメじゃん…OTL
なんでこんな制限設けてるんだ ハードコーディング=弄れる設定ではないってことです。
ちょっと事情があって自前でビルドできないので。
ダメ元で提供元に依頼をしてみる。 エミュレートしているBIOS/PCIブリッジの仕様だったりはしない? 最近KVMに興味出てきたんだけど
ESXi上でKVMて動く? 仮想化支援引き継ぐように設定されてれば条件満たすけど? nested(入れ子)VMに対応したCPUなら出来る NestedVMって概念を初めて知った。 メインフレームとかその手の技術かと思ったら
Intel VT 詰んだその辺のマシンとVMWareでも出来るんだな、、、 便利に成ったもんだなー ESXi上でESXi動いたけどその環境ならESXi上でKVMも動かせるって事か >>207
intelVTだけじゃ動くかどうか判らないよ >211
実機じゃなくてもハイパーバイザーの検証ができるとか >>211
仮想環境ごと仮想化できるメリットを理解できないとかw >>212はわかるけど
>>213はわからん
>>212以外の必要性ってあるのかよ
わかんない人は関係ない人だから聞いてもわかんないよ、どうせ。
でもわかんない人の関係のない世界では、多重の仮想化はもはや欠かせない
技術になっている。できないと崩壊するくらいに必須。 ポンコツな「パーソナルコンピュータ」しか触ったことのない人って見ててかわいそうだよね 仮想の多重化て実験以外の必要性が思い浮かばないのだが
いったいどんな時に必要になるんだ? >>215を可能な限り好意的に解釈してみると
仮想ホストを乗っかってるゲストごとライブミグラチオンするとか
仮想ホストを乗っかってるゲストごとFT鯖化するとか
メーカーも機種も異なる屑鯖の山でハードウェアリソースをプールして仮想ホスト&ゲストを乗っけるとか
実験にしか使えんな メインフレームとかPowerPCやItaniumみたいな非x86_64積んだのや
VMwareESXなんかの複数台をまとめて1仮想ホストで使える環境でなら、
仮想環境上にx86_64linuxなりを入れて更にxenやらKVM使うことはあるよ。
メリットは管理運用上や、ゲストOS・中間ホストOSで発生する各種上限の回避じゃないかな マジでそんなアホな案件通す会社があるのか?
仮想化使う保守管理費用がすげー事になりそうだが >>226
メインフレームのリプレースやサーバー数百台以上の統合レベルの案件だったら十分あるでしょ。
すでにハードウェアの保守管理費用がすげー事になってたはずだし、移行費用とランニングコスト次第じゃないかね。
ゲストOS/中間ホストOSで発生する各種上限の回避ってのが、
例えばESXiサーバの上にKVM用のLinuxを立てたとして、そのLinuxは
ESXiの制限に縛られるものなんじゃないの?
逆もまた然りで。 けっこうぬるい仕事しかしてない奴がほとんどなんだな。
VM on VMの利点すら考えつかないなんて、そうとうに楽して
稼いでいる感じ。 >>230
データセンタで監視のお仕事ご苦労様です。
明日も出勤頑張ってくださいね。 >>234
1:Windows 7上のXPモードが使える
2:ハイパーバイザのデバッグ(=開発)が簡単になる
3:組み込みハイパーバイザでも柔軟性が高まる
一般ユーザだとせいぜい1ぐらいしかメリット無くないか?
それも製品版XP持ってたらメリット無いしLinuxメインだと全然関係無いね
まぁ全く意味ないと言う事ではないが必死に必要性を力説する程じゃないな 商用の仮想アプライアンスはESXiで動く前提のものが多いから、
KVM上でESXiを動かせば多少はメリットがあるかな。
ただ、オーバーヘッドは気になる。
そう考えるとVMonVMというよりはESXionVMって感じか お前らは VMware 商用クラウドのVM上で XenDesktop 動かしたいとか言い出す変態SIerをパートナーに持ってないだけ幸せだよ
まあうちのクラウドサービスではネスト許可してないんだけどな 中古のPCでも目の前にドンて置いてやって「好きなだけ動かしな!(ペッ」って言ってやれ ■ このスレッドは過去ログ倉庫に格納されています