Proxmox (GPUパススルー) 導入
Windows10 サポート終了(2025/10/14)が1年後ということで、Windows11も触っとかな~と思い、Synology NAS (DS1621+)のVMでWindows11を動かしてみたが、もっさりしててなんだかなーだった。AMD Ryzen 4-core 2.2GHz、64GBメモリ上で、4コア・16GBメモリをくべたのだが・・・
一方で、日常生活のWindows10マシンは、お試しソフトやら、Hyper-V、VMware workstation、VirtualBoxでいろいろ遊んだりして、なんかぐちゃぐちゃになってきた。
このままWindows11にアプデするのはアレなのでクリーンインストールしたい。
日常生活とは別に遊ぶ?マシン環境を別途設けたくなった次第。
Proxmoxは、以前、ラズベリーパイ4 (8GB)のRaspberry Pi OS上に入れてみたことがあったが、遅すぎて遊ぶ気が起きなかった。
最近買った中古ミニPC(Intel Core i5-2.3GHz(10500T)、32GBメモリに増設)では、Proxmox上のWindows11が結構まともに動いた。おー。
ほんなら?!ということで、GPUパススルーありのProxmox環境を新たに構築し、PCゲームやら、画像生成AI系とか、自宅オンプレ仮想マシン上で遊べるようにしようと思った次第。
目次
Proxmoxとは
にわか素人があれこれ語るとボロがでそうなのでw、さらっとだけ。
Proxmoxは、オープンソースの仮想化プラットフォームだそうです。debianベースでKVMを使用した仮想マシンとLXCを使用したLinuxコンテナを一つのWeb管理画面から行えることが特徴とされています。
有料サブスクリプションに加入すると安定した(無料版に比べよりテストした)パッケージリポジトリのProxmox Enterprise Repositoryにアクセスでき、技術サポートを受けることができるようですが、無料版リポジトリでみんなガンガン使ってます。
いちお、Proxmoxの中の人は、本番環境(prod環境)には有料リポジトリをと思っているようで、無料リポジトリだとWeb管理画面に警告は出ますがうざくはないです。
Proxmoxをインストールした複数台のマシンで、クラスタやHA(High Availability)システムを組むこともできるようです。
VMware ESXi Hypervisor (無償版 VMware ESXi) が提供終了(2024/2)となった今、個人で手軽に遊べる仮想化プラットフォームとしてはProxmox一択でしょう。
PC購入
GPU(グラフィックボード)ありのPCを買うということで、新品のBTO、自作PCとかも考えましたが、リースアップの中古のゲーミングPCをQualitで調達。同等品の新品は20万円超えるし、同店ではセール期間外の中古で12万円ぐらいなので、9月の期末セールでお得に買えたのではないだろうか。
ヤフオクやメルカリで、ジャンクぎりぎりみたいなのを買って修理するのも楽しいのかもしれませんが、それはまた別の機会に。
PCスペック
メーカ | HP |
型番 | Elite Tower 800 G9 (2022年頃購入とのこと) |
CPU | Core i7-2.1GHz (12700) (12世代。12コア 20スレッド) (Perfomance-core 8+Efficient-core 4) |
チップセット | インテル Q670 |
メモリ | 16GB (DDR5 4800MHz 8GB×2)(4スロット) |
ストレージ | 256GB M.2 NVMe |
グラフィック | NVIDIA GeForce RTX 3070 (DisplayPort×3、HDMI×1) |
光学ドライブ | DVD-R/RW |
インタフェース | 前面:USB Type-C×1、USB 3.2×3、USB 2.0×1 背面:USB 3.2×3、USB 2.0×3、RJ45(1GBイーサネット)、CPU内蔵グラフィックス DisplayPort×2、HDMI×1、VGA(Flex IO v2増設済)×1 |
PCIeスロット | PCIe 4.0 x16 ×1スロット(グラボが使用済)、PCIe 3.0 x16(x4動作)×1スロット、PCIe 3.0 x1×2スロット(うち1スロットは、グラボの下にもぐってる)、M.2 PCIe 3×1(2230 for WiFi/Bluetooth) |
内蔵ストレージスロット | 3.5インチ×2、2.5インチスリムベイ×2(うち、1つをDVDドライブで使用済) |
ストレージポート | SATA3×4(うち、1つはDVDドライブが使用済)、M.2 PCIe NVMe(PCIe4 x4)(2280)×2(うち、1つを使用済) |
その他 | 内蔵スピーカあり、SDカードスロットなし、USB日本語キーボード、USB有線マウス |
OS | Windows10 Pro 64bit (Win11ダウングレード) |
商品ランク | C (並品) |
価格 | 81,180円(税込) (期間限定セール価格に、10%割引クーポン適用) |
会社でHPのデスクトップを支給されても、蓋開けて中見たことなかったが、改めて見ると、マザボの電源に24ピンコネクタを挿すところがなく、白い6ピンと白いちっちゃい6ピンがそれにあたるらしい。別途、CPU補助電源の白い6ピン。
SATAドライブ電源は電源ユニットからではなく、マザボから生えてる。謎・・・
別途購入品
空いてる穴は埋めたく性分で、いろいろ買いすぎたw
3.5inch HDDはTrueNAS ScaleでRAID1にするつもり。
メモリは、32GB×4枚で128GBにしてみたが、4スロット全部挿したら、4800MHz動作せず、3600MHz動作になってしまった(涙)
ま、スリムベイ用のSSDとケース、WiFiカード・アンテナ、増設シリアルポートは、あきらかに余計ですな。
あと埋めるとしたら、PCIe 3.0 x1接続のイーサネットボードぐらいか。他には、補助電源なしグラボ追加できるかもだが、PCIe 3.0 x16接続ではなく、x4接続になるしね。
HP純正パーツで、PS/2ポート×2+COMポート用のポートがある(PCIeスロットは消費しない)があるが、PS/2のキーボード・マウスは我が家でも流石に使用終了予定なので。
3.5インチベイの下は、高さの余裕がないので、SATAケーブルはコネクタが小さいもの・ケーブルの長さが短めのものがよい。
また、グラボがすぐそばまで来ているので、SATAケーブルやSATA電源ケーブルは、L字型コネクタが必須。
ただし、スリムベイのDVDドライブやSSDのSATAケーブルやSATA電源ケーブルは、L字型だとうまくささらないので、そっちはストレート型コネクタのもので。
メモリ | Crucial PRO DDR5-5600 32GB×4枚 (DDR5-4800より安かったので) | Amazon | 47,538円 |
M.2 NVMe | HP FX700 4TB SSD NVMe2.0 M.2 Type 2280 PCIe Gen4×4 (最大読込:7200MB/s (R:7200MB/s、W:6200MB/s) ×2枚 | Amazon | 79,960円 |
M.2 NVMeヒートシンク | オウルテック アルミ製両面ヒートシンク OWL-SSDHS04PS (2枚目のNVMeスロットはNVMeがマザボの外にハミ出し、NVMeがPCケースから浮いている状況になって、なんかの拍子にNVMeをボキッと折ってしまいそうなのでつけた) | Amazon | 968円 |
3.5inch HDD | Western Digital WD Red Plus 8TB CMR ×2個 | Amazon | 57,760円 |
SATAケーブル (HDD用) | アイネックス シリアルATAケーブル L型コネクタ 20cm SAT-3002LBL ×2本 | Amazon | 1,152円 |
HP HDD固定用ネジ | iJungYee HDD固定ネジ 5 本セット ×2 | Amazon | 1,980円 |
2.5inch SSD | Crucial SSD 2000GB MX500 CT2000MX500SSD1/JP | Amazon | 24,727円 |
スリムベイケース | ステートドライブブラケット アルミ合金 | Amazon | 1,150円 |
ステイ | HP EliteDesk 800 G2等 ウルトラスリムドライブ取り付けステイ | ヤフオク | 648円 (送料込) |
SATAケーブル (SSD用) | 手元に余ってたもの | | |
SATA電源分岐ケーブル | Deear SATA電源(15ピン)×2分岐ケーブル 15ピンオスー15ピン2メス 20cm長さ 2個セット L字型 | Amazon | 680円 |
スリムベイ用SATA電源変換ケーブル | Xiatiaosann SATA 15ピン オス - SATA 6ピン メス 30cm 4本セット | Amazon | 659円 |
WiFiカード | Intel WiFi 6E Intel AX210NGW | Amazon | 2,889円 |
WiFiアンテナ(背面外出し用) | QAREQU NGFF M.2 ネットワーク 6dBi WiFi 4G アンテナ RP-SMA MHF4 ピグテール ケーブル 2本セット | Amazon | 989円 |
WiFiアンテナ(前面用) | WiFi 無線LAN用 PCBアンテナ 5DBi 2.4G/5G デュアルバンド MHF4 2本セット | Amazon | 870円 |
増設シリアルポート | HP 3TK82AA | Amazon | 6,575円 |
| | | |
別途購入品小計 | | | 228,536円 |
| | | |
本体購入額含め合計 | | | 309,716円 |
プリインの256GB NVMeのWindows10は、Windows11にバージョンアップ後、Macrium Reflect Home(30日間無償トライアルライセンス)で、4TB NVMeにクローン(256GB→512GBパーテションに伸長)し、差し替えた。残り3TB強はProxmox用にする。4TBのまっさらのNVMeと合わせて7TB強あれば、どんなに無駄に?VM作りまくっても大丈夫だろう。
Proxmoxのインストール
- Proxmox VE (Virtual Environment) ver.8.2のISOインストラーをダウンロードして、RufusやRaspberry Pi Imagerなどを使用して、USBメモリに焼く
- ProxmoxのインストーラがNVMeドライブ全体を潰してしまう(インストーラの使い方が悪いだけかも)ので、同容量のNVMeのインストール先選択を間違わないよう、Windows11をクローンしたNVMeは抜いて、まっさらのNVMeのみにする
- 1.のUSBメモリをPC本体に挿し、CPU内蔵グラフィックのポートにモニタをつなぐ
- HPのPC起動後、ESCキー連打でBIOS(UEFI)画面に入り、F9キー押下でBoot選択画面に入り、USBメモリから起動する。
- 画面の案内に沿って、Proxmoxをインストール
- インストール後、再起動され、モニタ画面に、設定用にアクセスすべきURL (https://192.168.xx.xx:8006/)が表示されるので、別PCのブラウザでアクセスし、ユーザ root、インストール中に設定したパスワードでログイン
- 一旦、Proxmoxをシャットダウン
- USBメモリは抜き、Windows11をクローンしたNVMeを挿し、PCを起動
- BIOS(UEFI)のブート優先順位の設定では、Proxmoxが入っているNVMeドライブを優先にする。
ProxmoxとWindows11のブート切り替えは、Proxmox側NVMeのGRUBから、「UEFI Firmware Settings」を選択し、BIOS(UEFI)画面→F9キー押下でBoot選択画面→Windows Managerを選択することにした。
最近のGRUBは、Windowsドライブ・パーテションの自動検知はデフォルトオフになっていて、パーテション破壊リスク回避や、Secure Boot回避手段となることを避けているようだ。os-proberインストールしたり、/etc/default/grub.d/proxmox-ve.cfg で、
GRUB_DISABLE_OS_PROBER=falseしたり、なんなりいろいろしてみたが、うまくWindows11を起動できなかったのであきらめた。
- Proxmoxを起動し、6. 同様に別PCのブラウザでアクセスし、ユーザ root、インストール中に設定したパスワードでログイン
- 有償リポジトリから無償リポジトリに変更。ブラウザ画面上のshellから、apt update、apt dist-upgrade
- ブラウザ画面上のshellから、ユーザ追加 adduser
- ブラウザ画面上のshellから、apt install sudo
- /etc/group を編集し、追加したユーザをsudoグループに追加
- 追加したユーザでSSHで入れ、sudoできることを確認
- (任意) ジョブ結果などを通知するメール設定を行う。
ブラウザ画面のData Center→Notification→追加→SMTP にて
サーバ:smtp.gmail.com、暗号化:STARTTLS、ユーザ名はGmailのアカウント、パスワードはGoogleアカウントから発行。(「Googleアカウント」をググって、セキュリティ→2段階認証プロセス→アプリパスワード から生成)
- (任意) VMのイメージバックアップやVMインストール時のISOイメージ格納用に、別マシンのNAS等をNFSマウントする設定を行う。
ブラウザ画面のData Center→Storage→追加→NFS にて設定。
「内容」は、VZDumpバックアップファイル、ディスクイメージ、ISOイメージを選択。
Proxmoxホスト側に、/mnt 以下にマウントされる
- (任意) Proxmox管理画面にCPU温度を表示させる
やり方は複数あるようです。
インストール後のProxmoxのバージョン等:
- カーネルバージョン:Linux 6.8.12-2-pve (2024-09-05T10:03Z)
- PVEマネージャバージョン:8.2.7
ProxmoxのGPUパススルーの設定
参考:
手順:
- PCのBIOS(UEFI)画面でIntel VT-dを有効化しておく
- ブラウザ画面(Proxmoxのマネージャ画面)上のshell、または、SSHログインしてのsudo配下で以下のコマンド操作を行う
- /etc/default/grub を編集し変更
編集前:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
編集後(Intel CPUの場合):
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off"
-
update-grub
してから、Proxmoxを再起動
-
dmesg | grep -e DMAR -e IOMMU
すると
[ 0.145975] DMAR: IOMMU enabled
となっていることを確認できる。
- /etc/modules を編集し追記
追記内容:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
- /etc/modprobe.d/blacklist.conf を作成し、下記を記載
記載内容:
blacklist pcspkr
blacklist radeon
blacklist nvidia
blacklist nvidiafb
blacklist nouveau
blacklist amdgpu
blacklist vfio
- /etc/modprobe.d/kvm.conf を作成し、下記を記載
記載内容:
options kvm ignore_msrs=1
-
update-initramfs -u -k all
- Proxmoxを再起動
Windows11(24H2)のインストール(GPUパススルーあり)
参考:
手順:
- Proxmox管理画面右上の「Create VM」
- VM IDは他と被らないようにお好みで入力。名前はお好みで入力。「次へ」
- MicrosoftからダウンロードしたWindows11 ISOイメージをProxmoxにアップロードしたISOイメージを指定、ゲストOSの種別は「Microsoft Windows」、バージョンは「11/2022/2025」、VirtIOのWindowsドライバをダウンロードしProxmoxにアップロードしたISOイメージを追加。「次へ」
- 「Qemuエージェント」にチェックを入れる、BIOSが「OVMF(UEFI)」となっていることを確認、EFIストレージ、TPMストレージを指定。「次へ」
- 「バス/デバイス」をSCSIからSATAに変更、キャッシュを「Write through」に変更(お好みで)、「中止」(Discard)にチェックを入れる。ディスクサイズはとりあえず「256GB」に。「次へ」
- 「種別」を「host」(リストが長いので入力すると絞り込まれる)、コアはとりあえず「4」。「次へ」
- メモリ容量はとりあえず「16384」(16GB)(お好みで)。「Ballooningデバイス」のチェックを外すとメモリサイズが動的割当から固定割当になるらしく多少性能が良くなるらしい(お好みで)。「次へ」
- ネットワークインタフェースは、ひとまず「VirtIO」から「Intel E1000」に変更。VirtIOドライバインストール後に戻す。「次へ」
- 表示内容を確認して「完了」。
- NVIDIAのドライバインストールがうまくいかない場合があるので、シェルから、下記の編集をしたほうがよいようだが、しなくてもうまくいった。逆に、この編集をすると、Windows11 24H2では、BIOS画面永久ループに陥った謎
/etc/pve/qemu-server/1199.conf (1199はVMのID)
編集前:cpu: host
編集後:cpu: host,hv_vendor_id=whatever,kvm=off
- 当該のVMの「コンソール」から「Start Now」(または右上の「開始」
- Proxmox VMのBIOS(UEFI)スプラッシュ画面
- Windows11のインストールディスクの起動にあたり、なにかキーを押下
- Windows11 セットアップ画面になったので、ここからは粛々と進める。
- Windows11のインストールが進行中。
- 再起動し、インストール継続。何度か再起動する。
- Windows11のセットアップ画面。ここからは基本的に粛々と進める。
- コンピュータ名を入力後、再起動した後、Windows Updateが走る。時間が長い。何度か再起動する。
- Windows11懸案?のMicrosoftオンラインアカウントと紐づけたくない件は、サインインに「no@thankyou.com」を入力し、パスワードは適当に入力、「問題が発生しました」画面になるが「次へ」すれば、ローカルアカウントが作成できる。
- こんにちは
- 固まったかに見えることがありますが、じっと待つ。
- Windows11 デスクトップ画面に来た。
- 後々のために、スタートボタン→設定→システム→リモートデスクトップ からリモートデスクトップを有効にしておく。
- Dドライブの virtio-win-gt-x64 、virtio-win-guest-tools をダブルクリックしてインストールする。
- Windows11をシャットダウンする。
- Proxmox管理画面から、ハードウェア→ネットデバイス から、Intel E1000をVirtIOに変更し、「OK」
- 当該のVMの「コンソール」から「Start Now」(または右上の「開始」から)、Windows11を起動。ログインし、スタートボタンを右クリックして、デバイスマネージャを起動。
ネットワークアダプタが「Red Hat VirtIO Ethernet Adapter」になっていることを確認。
リモートデスクトップ接続でログインできることを確認。
- Windows11をシャットダウンする。
- Proxmox管理画面から、ハードウェア→追加→PCIデバイス
Rawデバイスを選択して、デバイス一覧からグラボを選択。
「プライマリGPU」「全機能」「PCI-Express」にチェックを入れ、「追加」
- 合わせて、CD/DVDドライブのISOイメージを削除
- リモートデスクトップ接続以外に、グラボの出力ポートにモニタをつないで使うなら、USBキーボードやマウスをパススルーしとく。
- 当該のVMの「コンソール」から「Start Now」(または右上の「開始」)
- 「サーバーへの接続に失敗しました」となるが、これは想定通り。
グラボの出力ポートにモニタをつないで見ると、ProxmoxのBIOS(UEFI)スプラッシュ画面が出力されている。
- 以降、リモートデスクトップ接続、または、グラボの出力ポートにつないだモニタ&パススルーしたUSBキーボード・マウスで操作する。
しばらくすると、グラボのドライバが自動的に適用されているのがわかる。
自動適用されなければ、NVIDIAのWebサイトからドライバをダウンロードしてインストールする。
タスクマネージャ上も、GPUが見えている。
- 継続的に使用するなら、Windows11のプロダクトキーを調達し、設定。
- 備考:
- M.2のWiFiカードをPCIeパススルーした際、同カードのBluetoothがゲストOSから見えない場合
M.2のWiFiカードは、WiFi機能はPCIデバイスのをパススルーでゲストOSのハードウェアに追加することになるが、同カードのBluetooth機能はUSBデバイスとして見え、そのUSBデバイスをパススルーでゲストOSにハード追加する。
- Windows11 24H2 ISOイメージを使用して、Windows11 23H2から24H2にアップデートする際、HW要件を満たさないと表示された場合:
Windows11 23H2の中で、ISOイメージを右クリックしてマウントし、管理者権限のDOS窓から下記操作を行う。
Windows Serverだと、HW要件がゆるいらしい。あくまで、Windows Serverがインストールされるわけではなく、HW要件チェックを緩和させるため。
> d:
> setup /product server
- Windows11 24H2の初回インストール時、HW要件を満たさないとエラッた場合:
Rufusで、ゴニョゴニョしたUSBメモリを焼き、当該USBメモリをProxmoxのPCに挿し、USBメモリをパススルー、ISOイメージのCD/DVDドライブを削除してから、VMを起動し、Proxmoxの起動画面でESCキーでBIOS(UEFI)画面に行き、ブートメニューでUSBメモリから起動すれば、インストールできる。
ベンチマーク
下記、2種類について、ベンチマークを取る。
- Proxmoxを介さないベアメタルなWindows11
- Proxmoxを介したWindows11
ベンチマークツールは下記を使用。時間の関係上、それぞれ1回のみ測定。
- Cinebench R23
- CrystaldiskMark
- ファイナルファンタジー XV ベンチマーク (画質:標準品質、1920x1080、ウィンドウ表示)
ベンチマーク結果の数値は下表のとおり。以下、軽い考察。
- No.1のベアメタル環境:
Cinebench R23での12コア20スレッドの標準的な値が出ている。
また、CrystalDiskMarkの結果によれば、当該NVMeの理論性能値 読出:7200MB/s、書込:6200MB/sが実際にも概ね出ている。
FF XVベンチでは、12,000以上が「非常に快適」となっており、FF XVだけで見れば十分なGPU性能を保有していると言える。
- Proxmoxを介することによる性能オーバヘッド
- CPU (Cinebench R23)
シングルコア性能で見ると、4~12%の性能オーバヘッドに見える。
マルチコア性能からの性能オーバヘッドを語るのは難しそう。
- Disk I/O (CrystalDiskMark)
SEQ1M Q8T1の性能だけで見ると、ベアメタルがPCIe 4.0x4性能相当であるのに対し、Proxmoxを介するとPCIE 3.0x4相当ぐらいか。
RND4K Q32T1の性能で見ると、細かいサイズを多数同時アクセスする場合の性能オーバヘッドは大きく見える。
- GPU (FF XVベンチ)
VMに割り当てるメモリ数・コア数により、多少違いはあるが、5~15%程度。
体感に大きな影響を及ぼす程ではないと推察される。
- VMに割り当てる、メモリ数・コア数による性能違い
- CPU (Cinebench R23)
シングルコア性能は当然ながらあまり差は出ない。
マルチコア性能は、VMに割り当てるコア数の影響はあるが、割り当てたコア数に対しリニアに性能があがるわけではなさそう。使い方によって不足があれば都度増やせば良さそう。
- Disk I/O (CrystalDiskMark)
確かに差はあるが、体感に影響を及ぼす程ではないと推察される。
- GPU (FF XVベンチ)
確かに差はあるが、体感に影響を及ぼす程ではないと推察される。
FF XVだけで見れば、32GBメモリ・4コアでも十分そう。
| マシン | Cinebench R23 | CrystaldiskMark | FF XV ベンチ |
マルチコア | シングルコア |
1 | Proxmoxを介さないベアメタルなWindows11 (グラボあり) | メモリ128GB、12コア 20スレッド | 15,752 | 1,800 | | 17,560 非常に快適 |
2 | Proxmoxを介したWindows11 (グラボあり(GPUパススルー)) | メモリ32GB、4コア 4スレッド | 6,382 | 1,587 | | 15,030 非常に快適 |
3 | メモリ32GB、6コア 6スレッド | 8,668 | 1,730 | | 16,781 非常に快適 |
4 | メモリ32GB、8コア 8スレッド | 9,849 | 1,699 | | 16,891 非常に快適 |
5 | メモリ96GB、12コア 12スレッド | 10.639 | 1,688 | | 15,851 非常に快適 |
TrueNAS Scaleのインストール
参考:
- Download TrueNAS SCALEからISOイメージをダウンロードする。
メアド登録かGoogleアカウント連携を求めているが、「No Thank you, I have already signed up.」をクリックすればバイパスできる。
今回は、STABLE版の24.04.2.3をダウンロード。
- TrueNAS SCALEの最小推奨構成を参考に、VM作成する。
- Dual-Core 64-bit CPU
- 8GB RAM (16GB Recommended)
- 16GB SSD Boot Device
- 2 Identically Sized Devices
bootドライブ以外のストレージ領域用には、SATAコントローラごとパススルーしたほうがよいのかもだが、
独立したSATAコントローラを今回持ってないので、HDD 2台をパススルーすることにする。
- VM作成
- ゲストOS:デフォルトのまま:種別=Linux、バージョン=6.x - 2.6 Kernel
- システム:「Qemuエージェント」にチェックを入れる
- ディスク:容量は64GB
- CPU:コア=4、種別=host (TrueNAS Scale上でコンテナなどをネストして動かすならhostらしい)
- メモリ:16384 (16GB)
- それ以外はデフォルトのまま
- HDDをパススルーするための設定
-
apt install lshw
-
lshw -class disk -class storage
- 出力内容のうち、/dev/sda、/dev/sdb、/dev/sdc の serialの値をコピペでメモる
-
lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'|grep -v -E 'part|lvm'
- 出力内容のうち、/dev/disk/by-id/ata-ほげほげ の「ata-ほげほげ」の値をsda、sdb、sdc それぞれコピペでメモる
-
qm set VM_ID -scsi1 /dev/disk/by-id/ata-ほげほげ-その1
qm set VM_ID -scsi2 /dev/disk/by-id/ata-ほげほげ-その2
- VMの「ハードウェア」の一覧に、scsi1とscsi2ができたことを確認する
- VMを起動し、Proxmoxの管理画面のコンソールを開き、画面案内にしたがって設定する。なお、今回、swap partitionは作成しない(「No swap」)を選択。EFI bootには「YES」を選択。(「NO」だとエラッた)
- 「3 Reboot System」を選択
- GRUB画面になる。ほっといてもタイムアウトして、TrueNAS Scaleの起動が始まる。
- Console setupの画面になる。表示されているURLにブラウザでアクセスする
- 静的IPアドレスの設定は、画面左のNetworkから。
- ストレージディスクの設定は画面左の「Storage」から「Create Pool」する。
- ユーザ作成は、画面左の「Credentials」→「Local Users」→「Add」
- ファイル共有は、画面左の「Datasets」→「Add Dataset」
- SMBのWorkgroup名の設定は、画面左の「Share」→「Windows(SMB)Shares」の縦3つ・・・の「Config Service」から。
- 設定後のTrueNASのダッシュボード画面
Mac OSのインストール
参考:
インストール
- このインストールスクリプトを使う初回のみの操作。
以降、MacOSのVMを追加作成する場合は、再操作不要
- Proxmox管理画面のシェルから下記を実行
/bin/bash -c "$(curl -fsSL https://install.osx-proxmox.com)"
- ホスト側のProxmoxの /etc/default/grub を結構いじるようなので、気になるところは、要修正。
GRUB_TIMEOUTを「0」にされてて、ハマった・・・
- Proxmox自体を再起動
- Proxmox管理画面のシェルから下記を実行
osx-setup
- 「6. macos Ventura - 13」を選択
- 画面の案内に従って、VM作成
- Proxmox管理画面にて、指定したVM_IDを選択し、コンソールから起動する。
- 「1. VENTURA」を選択(「1」を入力)
- マウスで「Disk Utility」をクリックし、「Continue」をクリック
- 左上の「Apple Inc. VirtIO Block Media」を選択して、右上の「Erase」をクリック。「Name」に「MacOS」などと入力し、「Erase」をクリック。
- 「Erase」処理が終わったので、「Done」をクリック
- 左上の赤丸をクリックして、ウィンドウを閉じる。
- 「Reinstall macOS Ventura」をクリックし、「Continue」をクリック
- 「Continue」をクリック
- 「Agree」をクリック。(ポップアップ画面で再確認求められるので「Agree」をクリック
- 先ほどEraseしたパーテションにつけた名前の「MacOS」をクリックし、「Continue」をクリック
- 2時間17分かかると言っているが、実際、10~20分ぐらい。
- VMが再起動するので、「2. macOS Installer」を選択 (「2」を入力)。
- 今度は、29分と言っているが、実際、5~10分ぐらい。
- VMが再起動するので、もう1回「2. macOS Installer」を選択 (「2」を入力)。
- 今度は、所要時間は表示されないが、実際、数分ぐらい。
- VMが再起動するので、今度は「2. MacOS」(先ほどEraseしたパーテションにつけた名前の「MacOS」)を選択 (「2」を入力)
- 今度は、所要時間は表示されないが、実際、数分ぐらい。
- VMが再起動するので、もう1回「2. MacOS」(先ほどEraseしたパーテションにつけた名前の「MacOS」)を選択 (「2」を入力)
- VMが再起動すると、MacOSのインストール画面。
以降、画面の案内に従って、MacOSのインストールを進める。
- インストール完了。
- 言語設定などの変更。
左上のアップルアイコン→More Info→General→Language&Region にて、「Prefered Languages」の「English (US)」を選択して「-」をクリック
- 再起動を促されるので、「Restart Now」をクリック
- VMが再起動され、「2. MacOS」(先ほどEraseしたパーテションにつけた名前の「MacOS」)を選択 (「2」を入力)
- ログイン画面になるので、MacOSインストール中に設定したローカルアカウントのパスワードを入力してログイン
- 画面共有の設定。VNCなどで接続できるようになる。
左上のアップルアイコン→「システム設定」→「一般」→「共有」にて、「画面共有」をオンに。
画面描画などがもっさりなのが、RealVNCでアクセスすると少し解消するらしい。
- マウスホイールの上限の向きをWindowsと同じにする。
左上のアップルアイコン→「システム設定」→「マウス」→「ナチュラルなスクロール」をオフにする
画面描画などがもっさりなのが、RealVNCでアクセスすると少し解消するらしい。
- タイムゾーンがおかしい。
左上のアップルアイコン→「システム設定」→「一般」→「日付と時刻」ではどうにも変更できないようなので、ターミナルからコマンドで変更
sudo systemsetup -settimezones Asia/Tokyo
なんかエラーが出るが、「システム設定」→「一般」→「日付と時刻」を見ると反映されている。
- その他の初期設定:
参考:Proxmox VEにmacOS(BigSur)のインストールとmacVMの初期設定
Docker/Portainer環境構築
T.B.D.
Ubuntu 24.04 LTS インストール
参考:
- GPUパススルーなし
- ISOダウンロード
- VM作成
- BIOS:OVMF(UEFI)
- CPU 種別:x86-64-v2-AESのまま
- ストレージ容量、CPUコア数、メモリ容量はお好みで。
- VM起動。Ubuntuインストール画面。画面案内に従って粛々と進める。
ただし、言語設定をいきなし日本語にすると、ホームディレクトリに日本語フォルダができるのが気持ち悪いので、「English」のままインストールを進め、インストール後、言語設定を変更する。
- インストール後、再起動すると、インストールメディアを抜けと言われた。
一旦、「メディアを使用しない」に変更して、Enterキー押下すると、VM再起動。
あとで、CD/DVDドライブそのものを削除。
- ひとまず、インストール完了
- Ubuntu Pro (Free Personal)の紐づけをいちおうやっとく
- 言語設定変更。VM再起動
- それが嫌だっちゅうねん。「古い名前のままにする」「次回から表示しない」
- 静的IPv4アドレス設定
- お約束の作業
sudo apt update
sudo apt ugrade
sudo apt install net-tools
sudo apt install openssh-server
sudo systemctl start ssh
sudo apt install qemu-guest-agent
- Windows等からのリモートデスクトップ接続を可能にする設定
- とりあえず、VM再起動
- ログインせずに、リモートデスクトップ接続。入れた。
- GPUパススルーあり
- ProxmoxのGPUパススルーの設定 を先に終えておく
- まず、「GPUパススルーなし」同様に、Ubuntu VM作成。
メモリは「Ballooningデバイス」のチェックを外しておく。
VMを起動し、「GPUパススルーなし」同様に、Ubuntuインストール、Ubuntuの設定を同様に実施。
ただし、SSHアクセス可にはするが、リモートデスクトップ接続可にはしない。
また、念の為、Ubuntuインストール中の下記画面はチェックを入れてみた。
- VM(ゲスト)側作業
- VM(ゲスト)側で下記コマンド実行
sudo apt-add-repository ppa:xorg-edgers/ppa
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo update-initramfs -u
- VM(ゲスト)側の /etc/default/grub を編集
編集前:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
編集後:
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset quiet splash"
update-grub
しておく
- 続いて /etc/rc.local を作成し、下記を記入
#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
N3D=`lspci | grep -i NVIDIA | grep "3D controller" | wc -l`
NVGA=`lspci | grep -i NVIDIA | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i;
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
exit 0
-
sudo chmod a+x /etc/rc.local
- VMシャットダウン
- Proxmox管理画面から、ハードウェア→追加→PCIデバイス
Rawデバイスを選択して、デバイス一覧からグラボを選択。
「プライマリGPU」「全機能」「PCI-Express」にチェックを入れ、「追加」
USBキーボードやマウスもパススルーしとく。
- VM起動。
Proxmox側のコンソールは「サーバへの接続に失敗しました」と表示されるのは、想定通り。
グラボの出力ポートにモニタをつないで見ると、ProxmoxのBIOS(UEFI)スプラッシュ画面が出力され、Ubuntuのログイン画面が表示される。
Proxmoxホスト側につないだ、キーボード、マウスを使ってログインする。
- Ubuntuのターミナルを開いて、コマンド実行
$ sudo ubuntu-drivers devices
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
== /sys/devices/pci0000:00/0000:00:10.0 ==
modalias : pci:v000010DEd00002488sv0000103Csd000088DCbc03sc00i00
vendor : NVIDIA Corporation
model : GA104 [GeForce RTX 3070 Lite Hash Rate]
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-535-server-open - distro non-free
driver : nvidia-driver-550 - distro non-free recommended
driver : nvidia-driver-535 - distro non-free
driver : nvidia-driver-470 - distro non-free
driver : nvidia-driver-550-open - distro non-free
driver : nvidia-driver-535-open - distro non-free
driver : nvidia-driver-535-server - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
- recommendedがついている、nvidia-driver-550 をインストール
sudo apt install nvidia-driver-550
UEFI起動にしているので、次回起動時チェック用のパスワード入力がある。
- VM再起動
「Enroll MOK」を選択し、先程入力したパスワードを入力。
パスワードが合っていれば「Reboot」を選べるので、選択して再起動。
- ログイン後、画面解像度がモニタの解像度に合っていれば、GPUパススルー成功。
sudo lshw
でも確認可能。
- SafariでYouTube見てみると、GPUパススルーなしのリモートデスクトップ接続でUbuntuにアクセスした際は音声がブチブチ言ってたのがなく、音声も動画の描画もスムーズで快適です。
- GPUのベンチマークを取ってみた。
Proxmox仮想化、GPUパススルーによる、GPU性能のオーバヘッドの影響は小さいようだ。
マシン環境 | SUPERPOSITION 2017 OpenGL 1080p Medium フルスクリーン | BASEMARK GPU OpenGL 1920x1080 フルスクリーン | BASEMARK GPU Vulkan 1920x1080 フルスクリーン | GpuTest FurMark(OpenGL) 1920x1080 フルスクリーン | FF XV ベンチ |
Windows11 ベアメタル 12コア、20スレッド 128GBメモリ GPUあり | 21,575 | 11,496 | 14,298 | 14,638 | 17,560 非常に快適 |
Windows11 on Proxmox 6コア、6スレッド 32GBメモリ GPUパススルーあり | 21,929 | 11,474 | 14,254 | 14,752 | 16,781 非常に快適 |
Ubuntu 24.04 LTS on Proxmox 6コア、6スレッド 32GBメモリ GPUパススルーあり | 21,290 | 10,885 | 13,156 | 3,597 | 14,544 非常に快適 (Steam、Proton上) |
- ProxmoxのGPUパススルーの設定 でやったように、リモートデスクトップ接続を有効にしてみる。
リモートデスクトップの中で、GPUが動くアプリケーションを起動すると、リモートデスクトップ接続が切れる。
Ubuntuのシステム設定から有効にするRDP不安定な感じ。一旦、全部無効化してから、xrdp使ったほうが安定しているくさい。
sudo apt install xrdp
systemctl enable xrdp
xpenologyのインストール
xpenologyは、NASのSynologyのOS(DMS=DiskStation Manager)をSynologyのハードウェア以外でも起動可能とするBootloaderなどのソリューションです。
我が家のメインのNASはSynology DS1621+ですが、稼働状態のNAS以外に、SynologyのOS上でなにか試して確認できる環境として、Proxmox上にxpenology環境を構築しときました。
- xpenologyで使用するHDDのストレージ領域として、ホスト側のSSDをLVM-thinドライブとして利用することにしました。パーテションを切ってない生ドライブ状態です。
- シェルからの操作
# fdisk -l
・・・
Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: CT2000MX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/sdb: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors
・・・
2TBの生ドライブが/dev/sdaであることがわかる。
/dev/sdaを1パーテションのみ作成するため、下記。
# sgdisk -n 1 /dev/sda
・・・
Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: CT2000MX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: BA2B78D6-B8B7-4BB2-A5D9-AD4A48E2F382
Device Start End Sectors Size Type
/dev/sda1 2048 3907029134 3907027087 1.8T Linux filesystem
Disk /dev/sdb: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors
・・・
1パーテションで2TB(実質1.8TB)のLinux filesystemができた。
- ディスク→LVM-Thin→「作成:Thinpool」から、ターゲットを選択
適当な名前をつけて「OK」すると、pool作成が始まる。
出来上がり。
- 以降の参考:
- VM作成
- bootloaderとしてArcのimgファイルをダウンロード。zip解凍し、ISOイメージとしてProxmoxにアップロードする
- OSイメージの選択:「Do not use any media」(メディアを使用しない)
- Qemu agent:有効
- ストレージ:デフォルトの「scsi0」をゴミ箱アイコンから削除
(別途、Arcのイメージをシェル操作でインポートする)
- コア数:2 (お好みで)
- CPU Type:デフォルトのx86-62-v2-AES
- メモリ:8192 (8GB) (お好みで)
- VM設定の最終確認
- シェル操作でArcのイメージをインポート
# qm importdisk <VM_ID> /var/lib/vz/template/iso/arc.img local-lvm
・・・
transferred 1020.0 MiB of 1.0 GiB (99.61%)
transferred 1.0 GiB of 1.0 GiB (100.00%)
transferred 1.0 GiB of 1.0 GiB (100.00%)
Successfully imported disk as 'unused0:local-lvm:vm-<VM_ID>-disk-0'
- インポートしたイメージが未使用のディスク扱いになっているので、
SATA0に変更する。キャッシュモードは、Proxmox 公式wiki Performance Tweaksを参考に「Writethrough」(お好みで)
- xpenologyが内蔵するHDDの設定
TrueNASの時と同じようにSATAディスクドライブをまるっとパススルーこともできるが、今回構築するxpenology環境はあくまで検証環境だし、生ドライブがもう余ってないので、内蔵SSDのLVM-Thinから、4本分のHDDを作成する。
(稼働しているSynology NASはドライブ6本でRAIDタイプがSHR2なので、それに近しい環境を構築してみた)
- VM起動
- 最初、4本+ブートローダイメージの合計5本のドライブのいずれから起動するかの設定がなされていないためか、PXE bootの永久ループになってしまった。
ProxmoxのBIOS(OVMF)画面をEscキーで抜け、1024MB(1GB)のブートローダイメージを起動して、ブートローダarcを起動
- 次回シャットダウン時にこの設定をすれば良い。
- 「Choose Model」から、Synologyのモデルを選択する。
稼働機と同じ「DS1621+」を選択
- SynologyのOS(DSM)バージョンはとりあえず、最新のもの(稼働機と同じもの)を選択
ダウンロードが進み、再起動される
- 再起動後画面。ここからは、画面に表示されている http://192.168.xxx.xxx:5000/にブラウザアクセスして設定を続ける
- Synolodgy DSMの設定
- 設定開始画面。ここから画面案内に従って、粛々と設定を進める。
- 作成した4本のドライブが使用されることを確認できる。
- DSMをダウンロード・インストールが進む
- お約束の10分待ちタイム
- 裏では10分かからず再起動が終わってるので、ブラウザをリロードすると、間もなく、とのこと。
- やっとこ、ようこそ。
- 画面の案内に従って、粛々と設定を進める。
- ストレージプールとボリュームの作成
- 稼働機と同じ「SHR2」を選択
- ストレージプール完成
- DSMの操作で、ユーザ作成、SMB設定、固定IP化などを行う
- 【任意】SSHアクセスの有効化
- 【任意】qemu-guest-agentのパッケージのインストール
sudo sed -i 's/package/root/g' /var/packages/qemu-ga/conf/privilege
Raspberry Pi OSのインストール
T.B.D.
Amazon Linux 2023のインストール
T.B.D.
Proxmox VE Helper-Scripts
Proxmox VE Helper-Scripts (GitHub)