清水理史の「イニシャルB」
GPUパススルーも簡単にできる仮想化プラットフォーム「Proxmox VE」
2022年10月17日 06:00
自宅に古いPCが余っているなら、オープンソースの仮想化プラットフォーム「Proxmox VE(Virtual Environment)」で自宅サーバーを構築してみてはどうだろうか?
ほぼGUI設定のみで、GPUパススルーも設定可能なので、リモートデスクトップなどで接続できるクラウドゲーミング的な仮想マシンも簡単に構築できる。今回は、Proxmox VEのインストールと、GPUパススルーの設定方法を解説する。
ハードウェアの対応が幅広く、1〜2世代前のPCでも使いやすい
Proxmox VEと同様の環境としては、VMware ESXiが有名だが、Proxmox VEはDebianをベースに管理用のウェブインターフェースを搭載した環境となっており、Linuxカーネルをハイパーバイザーとして利用する「KVM」による仮想マシンに加えて、同一カーネル上で独立したLinux環境を構築できる「LXC」によるコンテナを管理できるようになっている。
ベースがDebianなので、後述するグラフィックカードやUSB LANアダプターなど、ハードウェアの対応が幅広い。加えて、オープンソース版であってもクラスタ構成が可能になっている上、設定や仮想マシンのコンソール操作などもウェブブラウザー上で可能になっており、多機能かつ使いやすいのが特徴の製品だ。
今回、筆者は、以下の構成のPCが手元に余っていたため、Proxmox VEをインストールした。自宅に1~2世代古いPCが余っている場合は、Proxmox VEによって、自宅クラウド環境を構築できるのでお勧めだ。
項目 | 型番・内容 |
CPU | Intel Core i3 10100 |
MB | MSI H510I PRO WIFI |
RAM | 64GB |
SSD | 1TB NVMe |
GPU | GeForce GTX 1650 |
LAN | オンボード2.5Gbps |
特にGPUが搭載されているPCの場合、Proxmox VEでGPUパススルーの設定をすることによって、仮想マシンからホスト上のGPUを利用できる。これにより、GPUによる計算やゲームなどの用途に仮想マシンを利用することもできる。
Proxmox VEをインストールする
Proxmox VEのインストールは簡単だ。ダウンロードサイトから「Proxmox Virtual Environment」のISOをダウンロードし、USBメモリなどに書き込んでから、PCでブートしてインストールすればいい。
注意点としては、あらかじめPCのUEFIで仮想化関連の機能を有効化しておくことだ。特に、後述するGPUパススルーを利用する場合は、「Intel VT-d」は必ず有効化しておく必要がある。
インストール時の設定は、インストール先のストレージの選択、キーボードの設定、管理者アカウントのパスワード、ネットワークの設定(IPアドレスなど)と、最低限になっている。基本的には画面の指示に従って操作を進めればよく、簡単だ。
インストールが完了すると、コンソールにアクセス用のURLが表示されるので、ネットワーク内のPCからウェブブラウザーでログインすれば、アクセスすれば管理画面を表示できる。ログイン時に「Japanese」を選択すれば日本語で利用可能だ。
なお、今回は、GPUパススルーに焦点を当てて解説するので、サブスクリプションなしの場合のアップデート方法などは、こちらを参照してほしい。記述はコマンドによる設定だが、画面のようにGUIでも設定できる。
GPUパススルーを設定する
GPUパススルーは、どうやらProxmox VEのバージョンによって、設定方法が異なっていたり、安定性に課題があったりするようだが、筆者が今回試した環境(Proxmox VEバージョンは7.2-11)では、以下の設定のみで安定して利用できている。
具体的には、以下のように、ウェブブラウザーから管理画面にアクセスし、ノードを選択後、[シェル]ボタンをクリックしてコンソールを起動し、「nano /etc/defaut/grub」などで設定ファイルを開き、「GRUB_CMDLINE_LINUX_DEFAUTL」に、「intel_iommu=on」を追加すればいい。
ネット上の情報を見ると、ほかにもパラメーターを指定するケースもあるようだが、筆者の環境では、これだけで稼働した。
なお、GPUパススルーを利用すると、PCI Expressのグラフィックカードが仮想マシンに占有されるため、当然のことながら、ホスト側の画面がグラフィックカードから出力されなくなる。サーバーとして利用するなら、出力されなくても問題ないが、ネットワークトラブルなどで管理画面にアクセスできなくなる可能性もある。
今回の構成のようにCPU内蔵のグラフィックス機能が使える場合は、以下のように、UEFIでCPU側(IGD)を標準出力に設定し、ホストはマザーボードのHDMIなどから画面表示できるようにしておくことをお勧めする。
GPUパススルー設定で仮想マシンを作成する
ここまで準備ができたら、あとは仮想マシンを作成するだけだ。Windows 11のインストール用ISOをホストにあらかじめアップロードしておき、以下のような設定で仮想マシンを作成する。
システム
システムは、基本的なハードウェアの構成を設定する。Windows 11を利用するので、UEFIとTPMは必須となる。それぞれオンにし、ファームを設置するストレージを指定しておく(VMと同じ場所でいい)。
いよいよPCIデバイスをパススルーする
ひとまず仮想マシンを作成し終えたら、仮想マシンの「ハードウェア」でPCIパススルーの設定をする。以下のような流れで、PCI Expressに接続されているグラフィックカードを仮想マシンに割り当てる。
PCIデバイスの設定
最後にPCIデバイスの設定をする。[プライマリGPU]以外全てをオンにする。[プライマリGPU]をオンにすると、仮想マシンの出力が標準でグラフィックカード経由になり、Proxmox VE管理画面のコンソールで仮想マシンの画面を表示できなくなる。
オフにしておくと、仮想マシンは画面出力に標準の仮想アダプター(Microsoft基本ディスプレイアダプター)を利用し、ゲームなどGPU処理にパススルーしたグラフィックカードを利用できる。このため、Proxmox VEのコンソールから仮想マシンの画面を操作できて都合がいい。最終的にリモートデスクトップをオンにできれば問題ないので、HDMIで出力してリモートデスクトップをオンにしてもいい。
これで、仮想マシンを起動し、Windowsをインストールすればいい。GeForceのドライバーは、Windows Update経由でインストールすることもできるが、最新版が必要ならNVIDIAからダウンロードしてインストールすることもできる。最後にリモートデスクトップをオンにしておく。
性能の評価は「ソコソコ」
このように設定することで、手元のPCからリモートデスクトップで仮想マシンにアクセスし、グラフィックカードを利用した処理が可能になる。
実際にどれくらいの性能かというと、これはグラフィックカード次第だ。今回利用したGeForce 1650は、さほど性能が高くはないため、以下のようにFF15ベンチマークで5000前後、「やや快適」という評価になった。ネット上で公開されているGeForce GTX1650のスコアと同等だ。
ただし、普段の操作では、リモートデスクトップでもさほどラグを感じることはないが、ゲームによってはラグが気になる可能性もある。実際の快適さは、ゲームの種類によって異なると言えそうだ。
なお、GPUパススルー自体は、複数の仮想マシンに設定することも可能だが、同時に起動できるのは1台のみとなる。どれか1台、パススルー設定した仮想マシンが起動していると、ほかの仮想マシンは起動に失敗するので注意が必要だ。