ProxmoxはDebianベースのオープンソース仮想化プラットフォームで、KVMとLXCを使ったVM管理が可能です。Windows 10/11をProxmox上で動かす場合のメリットと注意点をまとめます。
メリット
スナップショットの強さ
Proxmoxのスナップショット機能は非常に強力です。Windowsの状態をいつでも保存でき、問題が起きたら瞬時に復元できます。
- ソフトウェアのインストール前にスナップショットを取る
- アップデート前に保険をかける
- マルウェア感染時にクリーンな状態に戻す
- レジストリをいじる前に保存しておく
Windows標準の復元ポイントよりも確実で、OS全体を丸ごと戻せるのが強みです。復元ポイントはシステムファイルしか戻せないことが多いですが、Proxmoxのスナップショットはディスク全体を戻せます。
スナップショットの取得はWebUIから数クリックでできます。「Datacenter」→「VM」→「Snapshots」→「Take Snapshot」で完了です。復元も同じ画面から「Rollback」を選ぶだけです。
バックアップの柔軟性
ProxmoxはVMを丸ごとバックアップできます。ディスクイメージごと保存するため、別のマシンへの移行も容易です。
バックアップの形式は以下から選べます。
- LZO … 高速だがファイルサイズ大きめ
- GZIP … 標準的な圧縮率
- ZSTD … 高圧縮で高速。最近のProxmoxではおすすめ
定期バックアップのスケジューリングもWebUIから簡単に設定でき、NASやリモートストレージへの保存も可能です。「Datacenter」→「Backup」から設定できます。毎日深夜に自動バックアップ、といった運用ができます。
バックアップ先としてNFS、SMB/CIFS、Proxmox Backup Serverなどが使えます。自宅のNASにバックアップしておけば、Proxmoxホストが壊れても復旧できます。
環境汚染の低減
テスト用のソフトウェアや怪しいプログラムを試す際に、メイン環境を汚さずに済みます。VMを使い捨て感覚で運用でき、必要なくなったら削除するだけです。
複数のWindows環境を用途別に分けることもでき、開発用・テスト用・日常用などの使い分けが可能です。
よくある使い方としては以下のようなパターンがあります。
- クリーンインストール直後の状態をテンプレートとして保存しておき、必要な時にクローンする
- 怪しいソフトを試す専用VMを作っておく
- 古いWindowsバージョン(Windows 7など)を残しておいて互換性テストに使う
リソースの有効活用
1台の物理マシンで複数のWindows VMを動かせます。16コア32スレッドのCPUと64GBメモリがあれば、Windows VMを3〜4台同時に動かすことも可能です。
VMごとにCPUコア数やメモリを割り当てられるので、用途に応じて調整できます。普段使いのVMには8コア16GB、テスト用には2コア4GB、といった具合です。
注意点・障壁
GPU周りの扱い
GPUパススルーは設定が複雑で、すべてのハードウェアで動作するわけではありません。
- IOMMUグループの確認が必要。マザーボードによってはGPUが他のデバイスと同じグループに入っていて分離できない
- 一部のGPUはリセットバグがある(VMを再起動するとGPUが正常に初期化されず、ホストの再起動が必要になる問題)。AMDの古いGPUで多い
- ドライバのCode 43問題(特にNVIDIA。仮想環境を検出するとドライバが動作を拒否する)
Code 43問題の回避には、VM設定で以下のような設定が必要です。
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=NV43FIX,kvm=off'
また、VM設定ファイル(/etc/pve/qemu-server/VMID.conf)に以下を追加することもあります。
cpu: host,hidden=1,flags=+pcid
ゲームや3Dレンダリングなどのグラフィック性能が必要な用途では、生Windowsに比べてハードルが高くなります。GPUパススルーがうまくいけば性能は出ますが、設定の難易度が高いです。
GPUパススルーなしでも、QXLやvirtio-gpuを使えば基本的なデスクトップ操作は可能です。ただ、3D性能は期待できません。
USB機器の扱い
USB機器のパススルーは可能ですが、以下の点で生Windowsより扱いづらくなります。
- ホットプラグ時にVM側で認識されないことがある
- USBコントローラごとパススルーする必要がある場合もある
- 一部のセキュリティキーやドングルが動作しないことがある
USB機器をパススルーするには、WebUIから「Hardware」→「Add」→「USB Device」で追加できます。デバイスIDで指定する方法と、ポートで指定する方法があります。
頻繁に抜き差しするUSBメモリなどは、ポート指定にしておくと便利です。特定のUSBポートに挿したデバイスが自動でVMにパススルーされます。
日常作業のUX
仮想化によるオーバーヘッドは避けられません。
- 起動にProxmoxホストの起動時間が加わる。トータルで1〜2分余計にかかる
- VNCやSPICE経由のアクセスは生Windowsほど滑らかではない
- サウンドの遅延やビデオ再生のカクつきが発生することがある
SPICEを使うとVNCよりは快適になります。virt-viewerをクライアントにインストールして使います。
# Ubuntuの場合
sudo apt install virt-viewer
ProxmoxのWebUIからSPICE接続用のファイルをダウンロードして開けば接続できます。
より快適にしたい場合は、GPUパススルー + Looking Glassという構成もあります。Looking GlassはGPUの出力をホスト側で表示するソフトウェアで、遅延がほぼゼロになります。ただ設定は複雑です。
VirtIOドライバのインストール
Windows VMを快適に動かすには、VirtIOドライバが必要です。これを入れないとディスクI/Oやネットワークが遅くなります。
VirtIOドライバのISOはProxmoxのリポジトリからダウンロードできます。
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
Windowsインストール時にこのISOをマウントしておき、ディスクドライバとして読み込ませます。インストール後はDevice ManagerからVirtIO関連のドライバを追加でインストールします。
QEMU Guest Agentも入れておくと、ホストからVMの状態を正しく取得できるようになります。
用途による使い分け
ProxmoxでのWindows運用が向いているケース
- 開発・テスト環境として使う
- セキュリティを重視した隔離環境が欲しい
- 複数のWindows環境を効率的に管理したい
- バックアップ・復元を頻繁に行いたい
- 1台の物理マシンで複数のOSを動かしたい
向いていないケース
- ゲームなどGPU性能を最大限使いたい(GPUパススルーの設定に自信がない場合)
- 日常作業のメインマシンとして使いたい
- USBデバイスを頻繁に抜き差しする
- 設定に時間をかけたくない
Windows VMの推奨スペック
参考までに、Windows 10/11 VMの推奨スペックを書いておきます。
軽い作業(ブラウジング、Office程度)
- CPU 2コア
- メモリ 4GB
- ディスク 64GB
普通の作業(開発、複数アプリ同時起動)
- CPU 4コア
- メモリ 8GB
- ディスク 128GB
重い作業(動画編集、重いアプリ)
- CPU 8コア以上
- メモリ 16GB以上
- ディスク 256GB以上(SSD必須)
まとめ
ProxmoxでWindowsを動かすことは、実験用や安全な作業環境としては非常に強力な選択肢です。スナップショットやバックアップの恩恵は大きく、環境を汚さずに様々な検証ができます。
一方で、日常作業のメインマシンとしては、GPU周りやUSB機器の扱い、全体的なUXの面でデメリットがあります。用途に応じて使い分けるのがベストでしょう。
個人的には、メインの作業は生Windowsで行い、テストや検証はProxmox上のVMで行う、という使い分けがバランス良いと思います。