KVM(Kernel based Virtual Machine)を語れ 2
■ このスレッドは過去ログ倉庫に格納されています
virt-manager Gnome-Boxes AQEMU いろいろ出てきたね それぞれの長所短所が知りたい >>369 おお、よくまとまっています。 しかし、こんなにたくさんあるとは。驚きです。 CentOS4で動いてる環境を、KVMに持ってきたいんですが P2Vでおすすめソフトって、何かありますか? 出来れば、元のOSが稼働中でも出来るものがないかと探してます。 (VMConvertorみたいなもの) もうメンテされてないOS使うな。正月出勤してCentOS6に更新しろ。 P2Vって、新しい(仮想の)ハードウェアに対応させるために、ドライバの組み換えもするんですよね。 すごいな。 OSを知り尽くしているのか。 >>377 virt-p2v だと、Cold Cloningかな、 Mond Rescueなら、Hot Cloningでも、いけそう。 これを試してみます。 でも、373や376の意見をみてると、VMWareにした方がいいのかもしれない。 カーネル統合されてる。というので、KVM期待してたんだけど。 KVMでも、HotCloningいけそうなので、両方試してみよう >KVM期待 良いと思う。 VMWAREはお金かかるよ >>378 KVMは危険だよ。業務で使うならVMWareしかないよ。 データ消えちゃってもいいの? 普通に使ってたらデータは消えない ちゃんと使えないクズは金払ってVMwareスレに行けばいいよ クズの中のクズはスレチに粘着するらいがw >382 318 名前:login:Penguin[sage] 投稿日:2012/12/05(水) 21:07:12.28 ID:a9npjCoE [2/2] >>316 virsh destroyってコマンド実行して 普通に終了させただけだよ。 なにやら無茶なことしたくせに、壊れた壊れたって叫んでいるだけのように聞こえるんだけど。 >>380 また君か壊れるなぁ(怒) >>319 が見たのってこれだよね 第22章 virsh でゲストを管理 ゲストを強制的に停止 virsh コマンドを使用してゲストの停止を強制します: # virsh destroy {domain-id, domain-name or domain-uuid} このコマンドは素早くに強引にシャットダウンして、指定したゲストを停止します。 virsh destroy を使用すると、ゲストのファイルシステムを 破損するかも知れません。 destroy オプションは、ゲストが 反応しない時にのみ使用して下さい。 para-virtualized ゲスト用には代わりに shutdown オプション ( ゲストのシャットダウン) を使用します。 やっぱり壊れるコマンドを実行してただけじゃないか(憤怒) 壊っちまえ(やっちまえ)ーーーー!! virsh save ?virsh shutdown ? そんなもの・・・ クソ喰らえだ! そんなものは見えやしねーー!! 「a9npjCoE」の目にうつるものはただ一つ!! virsh destroyーーーーー!!(デストローーーーーイ!!) --―――-- 、 /::::::::::::::::::::::::::::::::::::\ /:::::::::::::::::::::::::::::::::::::::::::::::\ |::::厂 ̄'''ー――一'' ̄ ̄|:::::| |:::| |::::| |:/ ____ /______ヽ:| /^''Yニ -=ニ・ニ>卅彡ナナナ ニY''ヘ | 久|ニ ー'´| `ー ニ|/ヘ| v V v V v V v V v V v !.イ| ニ l| ニ|ヽ | > 二〃 フ | < ヽ_|彡/ l|、_l 〕 ヽミ|_ノ > ノ へ |ヽ < |`<// v======v ヽヾ>| < _ / < |:::::`<// ヽ___/ ヾ>'::::| > |_| ー―― /| < | :l:::::::`< `――‐'′>'::::|:: | > < | l ::::::::::\__/::::::: l | ハ 八 ハ 八 ハ 八 ハ 八 ハ / l ::::::::::::::::::::::::::::::: l \ 問題なく起動してたのに、ビデオドライバをqxlにしたくてspice導入とか 色々やっていたら、KVMそのものが起動しなくなってしまった。 必要なファイルは一通り入れてるんだけどなぜか、QEMU/KVMのカーネルが 組み込まれてないとか、ハイパーバイザーのオプションがありません やらのエラーが出るんだけど、どうすればいいんだろうか。 一回全部アンインストールしてみても駄目だったし、どうすればいいか分からない 関係あるか分からないけど、下のURLを参考にした後起動できなくなりました。 ttp://www.kkaneko.com/rinkou/cloudcomputing/spice.html 残念だが、これでわかったらエスパー。 KVMそのものが起動しないってのがまず判らない。 特定のゲストマシンが一つだけ起動しなくなったのか、 それとも、ホスト上の仮想マシンがすべて起動しなくなったのか。 エラーが出るなら、エラーメッセージと、それがどこで 出力されてるのかを書いてもらったほうが良いかも。 > QEMU/KVMのカーネルが組み込まれてないとか これは、ホスト側の話だとすれば、 lsmod | grep kvm やってみて。 KVMそのものがって意味不明でしたね。新しい仮想マシンを作成しようとしても できなくなった。その前に入れてたゲストOSも起動しなくなった。 ログにエラーの内容は書かれていないし、そのコマンドでも きちんとカーネルは組み込まれてるんですよね。 操作はvirt-manager上でやっています。 virt-manager使ってるとしたら、libvirtdはちゃんと動いてるのでしょうか。 virt-manager起動後に仮想マシンリストが表示されてるなら 多分そのへんは問題ないのだろうと思うけど。 CentOS6ベースでしか分からないけど、、 libvirtを使ってる場合は、 /vav/log/libvirt の下に いくつかログを吐くから、そのへんで何かでてないですかね。 >393のURLを見てみましたけど、 「Ubuntu で SPICE 対応の QEMU+KVM のインストール 」てのを やってるとすると、Qemuのバイナリを入れ替えてるぽいから これが原因かも。 運が良ければ、ここでインストールしたqemuを削除とか、 出来れば綺麗にアンインストールすればなんとかなるのかもしれない。 /usr/local/bin/qemuにSPICE対応が入ってて、 /usr/bin/qemuに、元々動いてたqemuが入ってたりしないでしょうか。 両方のフォルダにたくさんのqemu系ファイルがありましたね。 競合してるということなんでしょうかね。 とりあえず削除して様子見します KVMなんて使うからこんな残念なことになるんだよ。 あほだろ CentOS5から6に乗り換えたのを契機にvirshを使うようにしたんだけど、 ゲストのCPU定義の仕方がよくわからん…。 qemu-kvm直接実行の時の-cpu=hostは、virshのXMLではどう書けばいい? Windows8 32bit版のインストールDVDが起動できなくて困っている…。 >>404 <cpu mode='host-passthrough'/> にしたら、-cpu hostで起動できた! けど、起動できないのは相変わらず…。64bit版のインストールDVDは起動できるからさらに謎。 よくわからん…。 困っている…。 相変わらず…。 さらに謎。 >>404 ,406 お前ら、優しいなw >>407 KVMは意味不明なバグがまだ数千以上 存在するから使うの辞めたほうがいいよ 開発者自身もわかってないし ビデオドライバによって、画面の描写の一部分が変になるんだけど (ゲストOSがWindowsなんだけど、チェックボックスで設定を変更するタイプの メニューがうまく表示されない。一部のアプリケーションのメニューの操作が出来ない) これは自分のPC構成による相性の問題なのかな。それともKVM自体の設定でどうにかできる ものなんですかね?ドライバ形式を変えたらなくなるけど、重くなったりするからな。 ゲストのwindowsのドライバがちゃんと当たってないとか? 画面の描写はKVMと関係ないんじゃ? VNCやspiceなんかの仕事でしょ PCIパススルーについて質問です。 B75チップセットのマザーで、libvirtを使ったPT1&PT2のパススルーがうまくいきません。 PT2の一枚だけPCに挿した状態であれば virsh start hostname で問題なく起動できるのですが PT1とPT2の二枚を挿した状態で同じことをしようとすると、以下のようにエラーで起動できません。 # virsh start hostname エラー: ドメイン hostname の起動に失敗しました エラー: 内部エラー PCI デバイス 0000:06:01.0 をリセットできません: 内部エラー 0000:06:02.0 を持つバス上のアクティブな 0000:06:01.0 デバイス、バスのリセットをしていません 事前に nondev-dettach をすれば起動できるのですが、ゲストPC(Win7)上でパススルーされたデバイスを 使おうとするとデバイスマネージャー上で認識されているにも関わらず、オープンに失敗します。 # virsh nodedev-dettach pci_0000_06_01_0 # virsh nodedev-dettach pci_0000_06_02_0 # virsh start hostname ドメイン hostname が起動されました ホストはCentOS 6.3で、公式リポジトリに登録されているlibvirt 0.9.10以外にも 本家最新版の1.0.1ソースからコンパイルた物も試してみましたが、変わりませんでした。 libvirtを使わず、qemu-kvmのオプション指定で直接起動した場合はPT1&PT2の二枚構成でも 問題なく起動できているので、構成的にはクリアできていると思います。 # /usr/libexec/qemu-kvm -version QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2), Copyright (c) 2003-2008 Fabrice Bellard # lspci 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a4) 06:01.0 Multimedia controller: Xilinx Corporation Device 211a (rev 01) 06:02.0 Multimedia controller: Xilinx Corporation Device 222a (rev 01) # lspci -t -[0000:00]-+-00.0 +-1e.0-[06]--+-01.0 \-02.0 どうにかしてlibvirtで管理したいのですが、この問題を解決する方法はありますでしょうか? libvirtでPT1やPT2の二枚挿しを正常に起動できているという方もいらっしゃいましたら教えてください。 B75ってVT-d使えないんじゃなかったっけ CPUもK付きやi3以下は使えない筈だし下手したら全取っ替えかな? ASRockのマザーではB75でVT-d使えてるよ VT-dはノースブリッジの機能だからCPUに内蔵された現在はチップセットは関係ない CPUとBIOSが対応してるかどうかだけが問題になる Intelのサイトを見るとQ77以外はVT-d ×とか書いてあって混乱させられるけどな >>420 PCIなんかはサウス管轄になってるからチップセットにも関係してくる しかもBIOSによっては両方対応してないとどっちも使えないとかが あるからかなりややこしい >421 いずれにせよB75チップセットで問題になることはない。Q77マザー並に安牌。 >>420 その辺のレジスタもデータシートを見ればわかるけど、ノースブリッジ側にあるよ が、デバイス自体にも対応が必要らしいんで若干不正確だった Intel(R) 7 Series / C216 Chipset Family Platform Controller Hub (PCH) Datasheetより > 5.29.2 Intel(R) VT-d Features Supported > ・ The following devices and functions support FLR in the PCH: > - High Definition Audio (Device 27: Function 0) > - SATA Host Controller 1 (Device 31: Function 2) > - SATA Host Controller 2 (Device 31: Function 5) > - USB2 (EHCI) Host Controller 1 (Device 29: Function 0) > - USB2 (EHCI) Host Controller 2 (Device 26: Function 0) > - GbE Lan Host Controller (Device 25: Function 0) > ・ Interrupt virtualization support for IOxAPIC > ・ Virtualization support for HPETs SKUごとの差異があるとは記述されてないのでどちらにしろどれでも問題はないようだ 若干どころかPCIバスの向こう側にも対応が必要だったらノースブリッジだけが 対応すればいいなんて到底言えないと思うんだが >>416-417 にも書いてますが、今回ハマってる組み合わせ(PTx二枚挿し+libvirt)以外では パススルーも普通に使えています。 ということは PT1枚+libvirt や PT2枚 libvirtなし だと動いてる? ここの人はvt-dでPCI透過させて、ゲストOSでTV見たりしてるの? すごいね >>426 そういうことになります。 PTxとは書いていますが、PT2+PT3+libvirtの組み合わせであれば パススルーでゲストが認識できるところまでは確認しています。 またPT1&PT2が挿さっていると、libvirtで片方だけアタッチして起動しようとしても同じく失敗します。 以上のことから思うに、レガシーPCI配下に複数デバイスがぶら下がってると libvirtがそれらのデバイスの割り当てに失敗するようです。 新しいカーネルならもしや、と思ってUbuntu 12.10で試してみたけどダメだった・・・ # uname -a Linux hostname 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:32:08 UTC 2012 i686 i686 i686 GNU/Linux # kvm --version QEMU emulator version 1.2.0 (qemu-kvm-1.2.0+noroms-0ubuntu2, Debian), Copyright (c) 2003-2008 Fabrice Bellard # virsh --version 0.9.13 皆さんレガシーPCIに二枚以上デバイスぶら下げて、あまつさえlibvirt使ってみたりしないんですか??? libvirtが同一デバイスを上手くハンドルできないんじゃ疑惑 でした libvirt が起動している qemu のコマンドライン引数と 素でうまくいくときの qemu のコマンドライン引数を くらべてみたいお >>433 PT2+SAA7130キャプチャボード+libvirtという組み合わせも試してみてダメだったので、PT1やPT2がというより レガシーPCIに複数のデバイスがぶら下がってること自体が原因のような気がします(PCIeと違って共有バスだから?)。 本当に上記が理由だとしたら比較的簡単に再現できると思います。しかしその割に、他で報告を聞かないのも変な気はしますが・・ 私は最初PCIe→PCIブリッジチップを介しているのがいけないのかと思って、H67からB75に乗り換えたのですが 再現の仕方が同じなので、問題はそこではなさそうです。他にはZ68でも同じ状況でした。 残念ながらソースは読めない人なので、qemuに直接渡す場合とlibvirtで実行する場合とで 設定晒してみます。流石にUUIDとゲストの名前は(厨二過ぎる設定な為)書き換えてますが、ご容赦ください。 qemu-kvmを直接起動する場合 ttp://www1.axfc.net/uploader/so/2756620.txt libvirt経由で実行する場合 ttp://www1.axfc.net/uploader/so/2756615.txt >>435 /var/log/ の下に libvirt のログない? debian なら /var/log/libvirt/qemu/<仮想マシン名>.log とかなんだけど... >>435 お前さ、何故libvirtdのデバッグログをうpしないの? 何で初心者ですみたいに、ソース読めない人なので なんでも聞いていいですよね?解決してくださいって 調子に乗ってるの? お前ってさ、qemu:commandlineに利用しているなら、直接引数 渡せば起動できるのわかってて、嫌がらせとか本当に たちの悪い糞野郎だよな。 spice-guest-tools-0.3.exe 来てた kvm のホストマシンで ZFS on Linux を使って作った zpool に, kvm のゲストマシンからアクセスすることってできる? そもそもzpoolって、他のホストがアクセスできるような代物じゃないと おもうんですが、違うの? ホストで /dev/sdb を zpool に追加して,/dev/sdb をゲストに接続しておいて, ゲスト上で $ mount -t zfs /dev/sdb1 /mnt みたいないことできないかなと思って質問しました. (ほんとはゲスト上では /dev/sdb1 っていう名前じゃなくて違う名前だと思うけど便宜上こう書いてます) ZFSはFreeBSDで使ってて、ZFS on Linuxは使ってないけど・・・ zpoolは、一つか複数のディスクを一つのpoolにまとめる。 zpoolに参加してるディスクをダイレクトにいじろうとするのは そもそもZFSの使い方としておかしいんじゃないかと。 例えば、ホスト上でtankというプールを作ってみる。 zpool create tank /dev/sdb ←tankというpoolを作ってsdbを参加させる こんなふうにやった後は、/tankにディスクがマウントされている。 この後に/dev/sdbへ直接アクセスするような真似をしたら、 KVMとか関係なく、ZFSを壊すだけでは。 ブロックアクセスしたいならzvolを作るべきだと思う。 >>442 なるほど,zvol でブロックデバイスが作れるんだ.いいこと聞いた. 実は試しに,ゲストマシンに ZFS on Linux を導入してみた. インストールは簡単にできて zpool も作れた.しかし ホストとか他のゲストと共有するために sharenfs とか sharesmb を 使おうとしたら,未実装らしい.これだと ZFS on Linux を入れたあんま意味ない気もする. ホストに導入するのが自分の用途によさそうだが,あんまりホストの 機能が肥大化するのも好きじゃない.悩ましいな. KVMを本運用で使ってる所ってあるの? 安定度が気になる 山ほどあると思うが。 まあチューニングはガンガンにしてるだろうけどね。 チューニング、ガンガンですか そのあたりのおすすめ本とかありますか 運用が厳しいということは、大規模ってことかね。 うちは殆ど吊るしで使ってるけど、チューニングって例えば何がある? うちもほぼ吊るしだよ。 VMイメージをNFS上に置いてるけど、ちょっとそろそろ限界。 ホストもNFSサーバもNIC帯域も余裕なんだけど、 1つのVMが使えるNFS帯域に何かボトルネックがあるらしく ゲストのうち、アクセスの多いWebサーバの動作が滞りだした。 もうこの環境は厳しいからiSCSIかなんかで立て直して移行する >1つのVMが使えるNFS帯域に何かボトルネックがあるらしく 自分の環境では1Gbpsまではちゃんと出たので、NFS帯域のボトルネックなんて無いと思うんです。 先にHDDの限界がくるんじゃないかな。 1台のストレージに何台本番が乗ってるの? 単純にHDDのシークタイムがオーバーヘッドになってるように思うのですが。 >>451 KVMホストは5台、ゲストは20台ぐらい。 ある1ゲストだけ飛び抜けて高負荷なんだけど、 いずれにしてもそんなにストレージへのアクセスが頻繁なものではなくて、 そのゲストが高負荷な時でもNFSサーバ自体の負荷は余裕、 他ゲストからのNFSパフォーマンスも落ちない(常時70MB/s程度)。 ので、KVMonNFSそのものがもうキツいのかな…と思ったんだけど、 確かに載せすぎでシークタイムが厳しいのかも。 NFSサーバーは7本のRAID6。 その構成にゲスト20台ならストレージやNFS自体はまだ余裕あるはず。 ゲスト達がどんな動きしてるか解らんので妄想入ってますが。 最初に思いつくのは、そのゲストに当ててるCPUやメモリが足りないとか、 それ以外のDBとかが足引っ張ってる可能性もあるとおもふ。 そのゲストがWindowsの場合はCPU使用率とかメモリ利用率を見て、足りないなら足せばいいいし、 Linuxの場合はロードアベレージは当てにならんから、CPU使用率を見てCPU負荷が高いのか、 IOウェイトが発生してるのかを見れば、原因がどこにあるかが判るはず。 あとは、ストレージのネットワーク速度すかね。 >>452 NFSサーバが余裕なのは、本当に処理負荷がひくいからなのかな。 NFSサーバがリソースを使いきれるようにチューニングされていなくて、NFSクライアントを待たせながらのんびり動いてからかもよ。 >>454 それだとKVMホストのロードアベレージがやたら上がるはずなのよね。 >>455 あがらないだろ。 ioとかnfsのqueueが長くなるだけだから。 nfs しばらく使ってないのではずしてると思うが、概念的にはworkerが足りないときとは処理要求は多いのにcpuの負荷は低くなると思うが、そんなケースがないかと想像してる。 >456 ううん、NSFサーバがNFSクライアントを待たせると、 クライアント側ではCPUのウェイトのパーセンテージが上がって、 それでロードアベレージがあがるんですよ。 クライアントはデータの読み書きをサーバに依頼するけど、 サーバがモタモタしてると、クライアントは自分のHDDの処理が遅いような認識になって、 ロードアベレージがあがるんです。 ロードアベレージって実行待ちプロセスの平均値でしょ、だからそうなるの。 その「1台だけ高負荷なKVMゲスト」の 何の負荷が高いのかから調査して行かないと厳しそうでは。 ・その高負荷ゲスト(Linux)では、とあるWebグループウェアが稼働。DBも同居。ゲストは8CPU/32GB ・高負荷なので臨時にホストをそのゲスト1台で占有使用させてる。ホストは12コア36GB ・高負荷時、ゲスト上でiowait30〜50、ロードアベレージ7程度 ・高負荷時、ホスト上でiowait20〜40、ロードアベレージ4〜6程度 ・高負荷時でも、他のノードからNFS転送速度を計測すると普通に80MB/sとか出る(無負荷時で90MB/s程度)し、 他ゲストのパフォーマンスにはさほどの低下がみられない ・各物理危機はL2機器で直結 ・NFSサーバーはほぼ吊るし設定。CPUもIOもtopで見る限りまったく余裕 こんな状態です。 NFSのマウントオプションはどうなってる? syncかasyncでかなり違う。 NFSのバージョンも気になるけど、v3以降ならパフォーマンス面の不安はほとんど無いはず。 NFSってかなりオプションあるけど、いくつか押さえておけば基本的に吊るしでおk。 NFSクライアントで nfsstat -m NFSサーバで exportfs -v だったと思う、ステータスが確認できるお。 高負荷な時の、そのゲストに使用してるNFS転送速度ってのは 調べられないのかな。 そのゲスト上で dstat -fd 入ってなければyumかrpmで 許可要るだろうけど、あると便利ですよ Xeon E3-1270v2 で CentOS 6.3 の KVM で FreeBSD 9.1 amd64 のインストール をしようとすると、カネールのロードのところでフリーズしてしまうのだが、 何が原因だろう…? 別メーカーの Xeon E3-1270v2 でも FreeBSD はダメ Xeon E5-2670 では FreeBSD OK E3-1270v2 でも Linux 系は問題無くブートする。。 >>459 すまん。テキトウなこと書いてしまった。ただ、load averageはなんか起きてるってのがわかるくらいで、原因の特定にはならないのでほかの指標見た方がよいですよ。 >>463 ゲストに見せるCPUの設定変えてみてもダメなのかな。ゲストのxmlの<model>xxx</model>のとことか >>465 Xeon E5 はデフォルトの cpu64-rhel6 でも SandyBridge でもどっちでもいけるんだけど、 Xeon E3 はどっちもダメです。 >>466 GPUまわりかな。いずれにしてもFreeBSD側でカーネルデバッグをしてみるといいだろう。 >>467 Xeon E3-1270v2 なので、GPU 無しです。 Host で top とか sar でみると、CPU を 100% くってるので、どこかでループしてそうな感じです。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる