KVM(Kernel based Virtual Machine)を語れ 3
最新のパッチはここにあるらしい ttps://queuecumber.gitlab.io/linux-acs-override/ 一度バニラでビルドしてからディストロのパッチと共存できるか試した方がいいよ スロットに空きがあるならオンボのlan殺してsr-iovのイーサカード使ってみるとか面白いんじゃないかな うおー! ありがとう!! まさかこんなに早く回答が頂けるとは! 試してみるよ! 空きスロットあるからカード指すのもありかな。グループに思いの外色々つながってて怖いけどw >>84 Zen kernel に取り込まれるから辞めるわ〜って書いてあるね。 Zenベースのカーネル使ってるやつ(Manjaro等)は待ってれば降ってくるかもな lubuntuホストにkvm立ててゲストにWindows入れたんだけど、kvmてマルチモニターに表示できない? vmwareだと簡単にできるから当然できると思ってたけど設定が見当たらないです、、 ついに念願のGPUパススルーできたぜ! VMらしからぬなめらか描画! 超うれぴー! 最終的にはmanjaroのlinux-vfioバッケージがアップデートされてコンパイル通るようになったからできるようになった。 相談に乗ってくれた人ありがとう! kvm上に立てたwin10のタスクマネージャーのネットワーク使用率が異常に高いんだが同じ人います? 1gbpsのインターフェイスなのに5gbps受信とか表示される >>89 QEMUは、何も設定しなければ帯域制限をしてないので 仮想マシンから見えているモノとしては1gbpsのインタフェースでも それ以上の速度が出る qemuの仮想マシン定義xmlファイルに、bandwidthエントリで そのインタフェースに上限1gpsと帯域制限をかけることで 見え方と動作が一致するよ kvmのGuest:windows10にてNVMeなSSDをPCI Passthroughで使っていたが、Fedora34にアップグレードしてからすぐに落ちるようになった。 原因切り分けの結果、NVMeなSSDが原因と判明したので、失敗した対策と成功した対策を自分用メモとして書いておく。 なお、PCI PassthroughでもLinux(Fedora33)ではbonnie++完走する程度には安定しているので、Guest:Windows特有の現象と思われる。 参考URL "http://events17.linuxfoundation.org/sites/events/files/slides/Userspace NVMe driver in QEMU - Fam Zheng.pdf" "https://blog.christophersmart.com/2019/12/18/kvm-guests-with-emulated-ssd-and-nvme-drives/" ; "https://libvirt.org/formatdomain.html" ; 他 nvmeドライブ:/dev/nvme1n1 PCI:<domain>:<bus>:<slot>.<func>/<namespace>=0000:03:00.0/1 vm name:win10 <続く> 失敗例 1)ドライブまるごとqemuのdiskとして認識させる 1.1)普通のブロックデバイスとして <disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/'/> <target dev='vda' bus='virtio'/> </disk> 1.2)NMVeドライブとして <disk type='nvme' device='disk'> <driver name='qemu' type='raw'/> <source type='pci' managed='yes' namespace='1'> <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </source> <target dev='vda' bus='virtio'/> </disk> 結果:Windows10はNVMe ssdは起動処理がSATA他のドライブと違うらしく、VIrtio Disk/SATA Disk/IDE Disk[vda/sda/hda]としてkvmに認識させると起動に失敗する。 NVMeなドライブとして認識させなければならない模様。 <続く> 2)NVMeなドライブとして認識させる 2.1)普通のブロックデバイスとして <qemu:commandline> <qemu:arg value='-drive'/> <qemu:arg value='file=/dev/nvme1n1,format=raw,if=none,id=NVME1'/> <qemu:arg value='-device'/> <qemu:arg value='nvme,drive=NVME1,serial=nvme-1'/> </qemu:commandline> 結果: qemu-system-x86_64: -drive file=/dev/nvme1n1,if=none,format=raw,id=NVME1: Could not open '/dev/nvme1n1': No such file or directory $ls -l /dev/nvme1n1 brw-rw----. 1 root disk 259, 0 May 2 20:19 /dev/nvme1n1 file='<disk image file>'の場合起動はするが、hdd上のイメージファイルだと使い物にならない重さになる。 2.2)Userspace driver利用 (unbid nvme driver and bind vfio-pci driverが必要) <qemu:commandline> <qemu:arg value='-drive'/> <qemu:arg value=nvme://0000:03:00.0/1',format=raw,if=none,id=NVME1'/> <qemu:arg value='-device'/> <qemu:arg value='nvme,drive=NVME1,serial=nvme-1'/> </qemu:commandline> 結果:同じくCould not open '/dev/vfio/7': No such file or directory $ls -l /dev/vfio/7 crw-rw----. 1 root root 241, 0 May 2 20:19 /dev/vfio/7 <続く> 3)virsh attach-disk $sudo virsh attach-disk win10 /dev/nvme1n1 vda --config --driver nvme エラー: ディスクの接続に失敗しました エラー: サポートされない設定: ディスク 'nvme' 用のドライバー名 'vda' にはサポートがありません target(vdaの部分)の名前は target controls the bus or device under which the disk is exposed to the guest OS. It indicates the "logical" device name とドライバーに対応した正しい名前にしなければなら良い模様だが、nvme向けの名前はいくらググっても出てこなかった。 成功例 デバイスファイルは存在するのにNo such file or directoryと言われるなら、強引にrootで実行すればいいのではないかという事で、qemu-sysytem-x86_64でやってみた sudo qemu-system-x86_64 \ -drive file="/dev/nvme1n1",format=raw,cache=none,if=none,id=NVME1 \ -device nvme,drive=NVME1,serial=nvme-1\ その他は適宜追加する。 これにて無事ドライブを認識して起動、当面はこれで運用する 時々PCI passthroughで起動させて安定するようになったかどうか確認はしてみる。 >>95 おー tpmエミュレーションなんてあるのね 実機より仮想のほうがスペック満たしそうね 95です。 Windows Insider Programを見てみると https://i.imgur.com/gYrnWeQ.png と出ていたので、一般に公開されたら動かないかもしれません。 Windows 11の互換性チェックを試したら https://i.imgur.com/yExDdHg.png な感じでした。 CPUは4個割り当てています。 ttps://pc.watch.impress.co.jp/docs/news/1351860.html また厳しくなるのか 続き マシンのスペックは https://i.imgur.com/dxxBnUB.png です。 Windows11のインストールは https://getlabsdone.com/how-to-install-windows-11-on-kvm/ を参考にしました。 最後の方の映像はおまけで、ドラッグ&ドロップとコペピは https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md のLatest virtio-win-guest-tools.exe(要Spiceサーバー)で実現しています。 最新版のLatest virtio-win ISOドライバーもダウンロード出来ます。 wslを有効にすると、Windowsが起動出来なくなることがあるので、バックアップはした方が安全です。 バックアップの例として Domainはwin11ですか、適時読み替えて下さい。 バックアップ virsh dumpxml win11 > バックアップホルダ/win11.xml cp -pf VMホルダ/win11.img バックアップホルダ/win11.img リストア (sudo) cp -pf バックアップホルダ/win11.img VMホルダ/win11.img sudo cp -pf バックアップホルダ/win11.xml /etc/libvirt/qemu/win11.xml virsh define /etc/libvirt/qemu/win11.xml ubuntu 20.04.3 LTSでカーネルはHWEカーネルを使用しています。 uname -r 5.11.0-43-generic USB接続したSSDからのブートです。 USB3.0で接続されているので、コントローラー USB 0のモデルをUSB 3にしました。 https://i.imgur.com/fh8syQh.png ハードウェアの追加でUSBホストデバイスから対応するハードウェアを選択。 https://i.imgur.com/TSjgcKV.png ブートオプションで追加したハードウェアにチェックしブート出来るよ様にする。 https://i.imgur.com/mN5fSOq.png 電源を入れてブートが始まるまでにUSBをリダイレクトします。 動画ではlibreoffice7をインストールして、書き込み具合を表しています。 https://youtu.be/HhiJBeqDCRk KVM上のKVMでVirgil 3dが使えるか試してみました。 android上で3D Bench markを実行しています。 https://youtu.be/SX8t9uPl5pE KVM上のandroidでは https://i.imgur.com/N1pAC2X.png ぐらいになります。 KVM上のWindows11の件で、訂正があります。 CPUの設定で https://i.imgur.com/rBghBGg.png のようにしないとWindows11のインサイドプレビューがインストール出来ませんでした。 そのままで、wslgは動いています。 CPUの数は2つ以上必要です。 インテルプロセッサのKVM上のWindows11でwslgが起動出来ました。 因みに今までのデモはAMD Ryzen 7 3700xでした。 virt-managerのCPUの設定 https://i.imgur.com/x5h9gyq.png virsh editは必要無いです。 システムは https://i.imgur.com/zTYljUO.png Windows Insider Preview ビルドはDevチャンネルです。 Windowsの機能は赤丸を有効にしました。 https://i.imgur.com/oeaGPPm.png 今回はPowerToysを使ってLibreOfficeを起動してみました。 https://i.imgur.com/yFMXKXG.png 他のPCで起動しているので、RDPで接続して操作しています。 https://i.imgur.com/jRz0D7c.png あら動くのね Windows 11を動作させる要件の例の暗号化セキュリティ機構はパススルーさせてるのかしら ネットワークですが、Hyper-Vの外部ネットワークみたいなの設定できますか? Wi-Fiだとブリッジ出来ないと聞いたので… >>111 Wifiだからってか 固定型IPにしないとブリッジ厳しいんじゃないんですか つまり、GUIに頼れない うちは、有線でボンディングしてブリッジしてますが… >>112 そうなんですか。 なんか、ArchWiki見てたら「network」というタイプがあるらしく、 それがWi-Fi + DHCP環境に良いと合ったのですが、 名前が名前なのでググってもなかなかヒットせず… もうちと調べてみます。 >>113 dhcpでwifiの固定IPってどうやるのか知らないけど (dhcpサーバーで固定割り当てしない方法) うちのは、Ubuntuなんで、netplanでゴニョゴニョやってます GUIのだと、ログインしないと接続できませんし バーチャルPCじゃなくてKVM使うってことは ログインしなくても動く仮想サーバー見たいにするんでしょ? その辺が肝ですね よくわかんないけど… >>114 ホストもゲストもIPは可変でいいと思ってる。 ゲストはWindows10にする予定なのですが、 同じLAN内の別PCからゲストのWinにRDPしたいのです。 Hyper-Vだと外部スイッチにするだけで行けるのですが… やりたいことこれ? https://headtonirvana.hatena blog.com/entry/2020/07/11/223922 NGワードで弾かれたから改行消して >>115 その、Hyper-Vの外部スイッチってのが、ブリッジなんじゃいの? ブリッジにすると、ゲストも同一LAN内から見えます ブリッジ設定するには、ホストのIPアドレスが必要だから ホストは固定IPじゃなくちゃダメ wifiでも、固定IPにする方法あるらしいので、もしかしたらWifiでもイケるかもしれません ブリッジ作るのは、GUIでできなんいんで ちょっと難しいかも知れないけど >>116 そんな、めんどくさい話だったのか めっちゃハードル高いね 有線で使ってて良かった >>116 >やりたいことこれ? >https://headtonirvana.hatena >blog.com/entry/2020/07/11/223922 > >NGワードで弾かれたから改行消して これ、見ました。 結局サーバセグメントに設置して有線接続することにしました。 でもtapとかなんとか面倒くさい! >>119 だから、有線でブリッジすればいいじゃない なんで、wifiなの? まさか、有線LAN付いてないの? ラズパイですら付いてるのに… 先日無線でブリッジ出来るか質問した者です。 会社では有線にしたので問題なく動いていますが、 自宅の無線ではやはりブリッジ出来ず… 仕方ないのでTailscale経由でRDPしてますが、 簡単にブリッジ実現する方法ないですかね… Virtual Boxでは出来るそうですが、Oracleというのが嫌で、 やはりネイティブなKVMで行きたいと思っています。 >>122 有線にするんじゃなかったの? どうしてもKVMが良いなら有線でブリッジが簡単です それより、もっと簡単なのが、Virtualboxのブリッジです(GUIでブリッジ選ぶだけ) 非ログイン状態でサービスとしてゲストを起動させといてネットごしに外部から使いたい って仮想サーバーみたいな運用なら KVMの方が簡単です で サーバーでwifi使うなんて普通やらないです >>123 そうですか… 有線にしたのは会社のやつで、 自宅のArchにはWin10を仮想にしているのですが、 iPadからRDPする時に一々Tailscaleに繋ぐのが面倒で… 出来ればVirtualBoxは使いたくないのですよね… 簡単な方法ないものでしょうか。 >>124 ほんと、話の通じない人だな そのArchを有線LANにすれば簡単でしょ? Archでやろうと思ったことないけど… 私の場合は、Windows常時稼働させとく用事なんか無いから 物理PCに入れたヤツを必要時にWOLで 叩き起こしてリモートしてます その、なんとかってVPNで、何をどうやって、あなたのやりたいこと実現してて 何をめんどくさい って思ってるのか知らないけど 使えてるんなら、それがベストなんじゃないですか? 無い物ねだりしたしょうがないでしょ すみませんでした。 有線で繋げないのでした。 ROMります… 俺ならpwshでsshポートフォワーディングでやるかな Linuxホストでブリッジ(10.0.12.99)作成してWindowsゲストをDHCPでインストールしました。 DHCPサーバは10.0.0.1、ゲートウェイは10.0.12.254なのですが、 Windowsゲストには10.0.12.1が割り振られてしまいます。 第四オクテットが1なのが非常〜に気になります。 これって問題ないでしょうか? >>129 え なんで、DHCPのアドレスそんなのにしてるのか知らないけど 気になるならDHCPの設定確認してみれば? 基本重複してなければOKです うちは、DHCPで、MACアドレスで固定割り振りに…って管理してますよ RDPするにも、SSHするにもアドレスわかんないとめんどくさいので… 仮想スイッチdefaultの内部ネットワークにいる仮想マシン同士でiptables使ってUDPのポートフォワードさせようとしているのですが、全く動作しません。 KVMではprerouting, dnat, forwardは使えない仕様なのでしょうか? >>131 ブリッジしちゃえば、どうとでもなるでしょ KVM関係ないと思いますけど… >>132 それが、閉じた内部ネットワークという要件なのでブリッジは使えないのです… 何か悪さしているところありますかね? Windows Server Backup(2016)のシステムイメージからqcow2はたはrawにインポートできた方いますか? リカバリ環境の最終段階で「再起動して下さい」となり、リストアに失敗します。 そもそもWindows Server BackupからKVMへのインポートって出来るのですか? すみませんでした。 disk2vhdでイメージ作成してその後qcow2に変換したらうまく行きました… win11 gpuパススルー barrier synergy使うと境界跨ぎで引っ掛かりがあったけどおま環かな https://i.imgur.com/MiqiJCp.jpg ゲストのコンソールをホストの仮想コンソールにバインドする方法ってないかな? KVMを使ってUSB接続のSSDにCloudReadyをインストールして ノートPCで起動出来ました。 LenovoのDesktopについてきたWin10Pro Guestで、 VirtIOのNWドライバ入れるまではアクティベーション通っているのに、 オンラインになるとアクティベーション通らなくなる。 ホストのMSDMのキー入れても無理。 こんなに面倒でしたっけ?皆さんは普通にアクティベーション通りますか? Windowsを捨てて、hostをLinuxにする、以上。 Windows11だけど普通に使えているよ。 マイクロソフトのアカウントにサインインして、アクティベーションが重複していないか調べたら。 https://account.microsoft.com/ >>143 ありがとう。 それが、会社のやつで… MSアカウント紐づいてないんですよ。 何故かLenovoだけうまくいかない。DELLのは大丈夫なのに… Archで11月に物理機2台にedk2のアプデしたらVMが起動しなくなった。 以前のバージョンに戻したら治ったけどこれはなに? 未だにアプデ来ないし、他の新規インストール物理機は問題ないんだよな… 何かわかる人いますか? 半年前に出たRyzen5, 48GB RAMだけど何台くらいつめこんでる? うちはsamba, squid, hiveos, win11くらい。 まだまだ行けるよね? linuxで写真の現像をしているのだけど、KVM上のWindows11でPureRAWをうごかすと、CPUがAMD 3700xの頃は十数枚処理するとWindowsが落ちていたが、AMD 5700xに変えたら落ちる事もなくなり安心して眠れる様になった。 写真1枚の処理中はどちらのCPUでも仮想マシンマネージャーのCPU使用率が100%になるのだけど落ちなくなったので、CPUの耐性が上がったみたい。 libvirtd 8.0 qemu 7.0を使ってcpuコア数を複数にしながらwin7でgpuパススルーできた 設定が煩雑な感じ グラフィックカードを1枚追加してWindows11のGPUパススルーをすると、 マウスカーソルが追加したGPUを通してしか描画されないので USBカードを1枚パススルーして、画面とマウスとキーボードを HDMIとUSBの切り替え器で切り替えたら上手くいった。 現状ACSパッチ当てずに安心して仮想化環境組めるプラットホームってなに? 相変わらずIntelやAMDのメインストリームCPUはACSパッチが必要なの? HEDTプラットホームが壊滅状態なので、行き場がない 仮想化で遊ぶときに使ってたPCの買い換え考えてるんだけど、PコアとかEコアってどうなの? 最近のカーネルはPコアを優先ってことらしいけど、6P4E16TのCPUで8VCPUのVM動かしたら Pコアの6コア12T上で8VCPUを動かそうとするのかな ホストOSから見れば(雑に言って)ただのクソデカプロセスなんだから、そこはホストOSの仕様に準拠するのでは? >>155 cpupinとかでvCPUをPコアに割り当てるのがいいよ ホスト側OSは自身の都合でPコアとEコアを選べるけど、 仮想マシン側はホスト側に割り当てられたコアを使わざるを得ないし、 それまではPコアを使っていたのにホスト側OSの都合でいきなりEコアに変わったりすると 仮想マシン側でのプロセススケジューリングも一旦御破算になるしね Pコアは仮想マシンで使え Eコアはハイパーバイザで使え Eコアをスレッド数に入れてるIntelは詐欺 と、偉い人がプレゼンしてた Intel Thread Directorもまだまだ発展途上らしいしな Linuxでの最適化はまだまだ先だろう PコアとかEコアとか気にせず仮想化につかうならAMDの方がよさげかと Pコアは2スレッドっつったって、結局はHyperThreadingだしな 全部Eコアの方がマシだろう Bridgeでゲストからホストの通信が遅い。 会社だと10Gbps出たりするが自宅だと60Mbpsくらい。 特に特別な設定してないけど何かあるのかな? Arch最新Kernelで4台構成 NFS組んでるのだけど ライブマイグレーションでWindowsだけマイグレ後に固まる。 Linuxは問題ないのだが留意事項ありますか? >>161 そんなに落ちるなら 1Gbpsじゃなくて、100Mbpsになっちゃってんじゃないの? ネゴシエーションしくじって 100Mbpsになっちゃう現象とか 古いKDEで体験したことあります ストレージやNICの割り込み処理もEコアで十分なんかね Disk2vhdで吸い出したWin10をqcow2に変換して、 KVMに持ってきて無事起動するし普通に使えてたのだが、 ランダムなタイミングでホスト毎フリーズする。 一応SATA, e1000(VirtIOも試した)になっているのだけど… なにか原因考えられますか? ちなみに新規インストールしたWin10,11は安定稼働します。 >>166 vhdxからqcow2にして普通に動くんですよ…ただホスト巻き込んでフリーズするという。 新規インスコして更にインポートする感じですか? 165ですが解決。 BIOSでパワーマネジメント全て無効にしたら治った。 e1000e NICではC1stateは無効にすべきとありました。 詳細はe1000e hungでググってね。 なるほろ たしかに電源系を疑うべきパターンなのだな それとNICのチェックサム外せともあった。 これで°安定したよ。 BIOSで全部無効にしなくても↓をonにするだけで解決しない? /sys/devices/pci0000:00/[イーサネットカード]/power/control >>172 そうだね。フォーラムでも買いてあった。 何にせよ良かったよ。 ランダム発生でoopsも出なかったから焦ったよ。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる