Proxmox設定メモ(その1)
はじめに
自宅にProxmoxの検証環境を構築した際の個人的なメモです。参考にしてください。
Proxmoxのインストール
ベースのコンピュータ
昨今、intelのN100を積んだミニPCがをベースのコンピュータにする事例が多いですが、2024年5月現在2万円以上し、正直なところお小遣い制のお父さんには相当厳しいと思います。
そこでおすすめなのが、俗に「1L PC」(1リットルPC)と呼ばれる、小型PCの中古です。
1L PCですが、大手PCメーカー各社が必ずと言ってもいいほど製品化しており、ラインナップは豊富なのと、ヤフオク市場も潤沢です。また、性能もN100と変わらず半額以下で入手できます。
1L PCのことを書き始めるとかなりの量になるので、ここではメリット、デメリットだけまとめておきます。
1L PCのメリット
- ヤフオクであれば安価(ミニPCと比較して半値以下)
- ヤフオク市場に潤沢
- そこそこ小型
- メーカー製だけあって、それなりにしっかりとした作り
- 増設、CPUの交換が可能な場合が多い
- CPU性能も最新のN100と比べ同程度
1L PCのデメリット
- N100と比べて大きい。特にアダプターを含めると相当大きい
- 情報が少なく、品定めに迷う
- ネットワークI/Fが貧弱(これは、ミニPCも同じ。)
上記デメリットが比較的少なく機種があり、私の自宅環境でもそれを使っていいるのですが、その紹介は別の機会にします。
参考URL
足りないLANポートをどうするか
Proxmoxに限らずHyper-VやVmware等で仮想環境を構築すると、いくらLANポートがあっても足りなくなります。N100ミニPC、1L PCどちらにも言えるのですが、基本、LANポートが1ポートしかなく増やす必要があります。
USB-LAN変換
普通に購入してもよいですが、これもヤフオクで安く購入できます。理由は解りませんが複数本まとめて安価に出品されることがあり、それを狙うことをお勧めします。
(私も20本入り、2,000円位で購入できました。)
ProxmoxでUSB-LANを刺した場合、実際のHWとProxmox上のGUI表示されるネットワークデバイスがどれに該当するかわかりません。特に複数本刺した場合はややこしくなります。
USB-LANを2本差した状態。enxから始まるIDが二つあり、どちらかわからない。
ただしこのIDは、USB-LANごとにユニークに振られているらしく、1本ずつ刺してUSB-LAN本体にこのIDを記載しておけば、簡単に見分けることができるので、最初のセットアップ段階でメモしておくことをお勧めします。
デバイスにIDを記載しておく
M.2 LAN変換
比較的新しい1LPCであれば、無線LANカード用のM.2スロットが大体あります。世の中には、M.2から有線LANへの変換コネクターが売っているので、それを利用する方法があります。
ただし、PC本体にきれいに装着できなかったり、あまり安価ではないことを考慮すると、USB-LAN変換でよいと落ち着いてしまいます。
インストール
Proxmoxのインストール方法は、世界中の先輩方がまとめてくれているので、ここでは割愛。
インストール先のメディアに関しての考察
私が使っている1L PCは、3台のストレージが積めます。
1.M.2スロット 256GB NVMe SSD(どこかの中古から引きはがしたもの)
2.SATA1 512GB SATA SSD (中華製の安価なSSD)
3.SATA2 320GB SATA HDD(使っていなかった2.5インチHDD)
Proxmoxをインストールするのに必要な容量は明確な記事はなかったのですが、100GBぐらい使うようです。また、ゲストインストール用のISOも同じディスクにアップロードする必要があり、SSDにProxmoxをインストールするのは正直もったいないと感じていました。
(特に、WindowsでVMを作成すると、あっという間にSSD枯渇するので。)
そこで我が家の環境では、HDDにProxmoxにインストールして使っていますが、Proxmoxの起動が多少遅く感じだけで特に不自由なく使えています。お小遣いが厳しい中少しでも安価に構築するのであれば、HDDへのProxmoxのインストールはおすすめです。
(無論、お金があればSSDがよいです。)
ネットワークの確認
PROXMOX上でネットデバイスがどの物理LANポートか調べるには、
- LANポートに適当なスイッチなどを接続し、Linkupさせる。
- PROXMOX上からすべて稼働中にする。(しなくてもよいかも
- Proxmoxからシェルを立ち上げ、コマンド「ip -c link」を打つ
- ネットデバイス毎に 「state up」や「state down」と表示されるので、一つずつ調べる。
ディスクの追加
インストールしたディスク以外をどのようなフォーマットで扱うか、Proxmoxでは重要です。
公式
この辺は、使っていく中でいろいろと試してみたいところ。
消す際
「IDを入れろ」と出る。最初なんだがわからなかったが、作成時に作った名前だった。Internal_HDDと作成したら、IDはInternal_HDDとなる。
ボンディング(linux bonding)
設定方法は以下Youtubeがわかりやすい。(英語だけど)
https://www.youtube.com/watch?v=auMugO3zsKw
ボンディングのタイプは以下ある。
mode=0 balance-rr 要EtherChannel
mode=1 active-backup なし
mode=2 balance-xor 要EtherChannel
mode=3 broadcast 用途がよく解らない
mode=4 LACP(802.3ad) 要802.3ad
mode=5 balance-tld なし
mode=6 balance-alb なし
※一般的なのは、mode=1,2,4 の様です。ただし、L2スイッチが必要
※基本は、mode=4
※LACPできないただのスイッチでは、mode=6でもいいようです。
ブリッジ
にはIPを設定できる欄があり、設定しないと単なるL2スイッチの様な振る舞いとなる。このあたりは、Hyper-V、VMwareと同じ。
ブリッジを作成する際
GUIから、IPアドレスの設定ができる。一見「ルーター?」と思ったがどうやら違うらしく、IPアドレスを振ると、そこからPROXMOXの設定画面にアクセスできるようになるだけの様子。
ただし、GUIではできないが、iptablesをいじると、NATとかできるらしい
VM作成
公式に付属マニュアルは以下
QEMUに関して
qemu-guest-agent は、ゲストにインストールされるヘルパー デーモン。ホストとゲストの間で情報を交換したり、ゲストでコマンドを実行したりするために使用。Proxmox VE では、qemu-guest-agent は主に次の 2 つの目的で使用する。
- ACPI コマンドや Windows ポリシーに頼るのではなく、ゲストを適切にシャットダウンする。
- バックアップの作成時にゲスト ファイル システムをフリーズする 。(Windows では、ボリューム シャドウ コピー サービス VSS を使用。)
Windowsインストール
まず、以下参照
https://pve.proxmox.com/wiki/Windows_10_guest_best_practices#See_also
以下も詳しい
https://subro.mokuren.ne.jp/1872.html
https://zenn.dev/northeggman/articles/49c6b73c03c81c
Windowsをインストールするには、Windowsのインストールメディア(iso)だけではなく、VirtIO Driversのisoも必要なので、適当に探してDLし、proxmoxにアップロードする。
- 全般
- ノード:pve01 インストールするマシンの選択
- VM ID:基本そのままでよい。数字が勝手に増えていくとのこと
- 名前:名前をつけるが、何か制限があって、ダメな時があった(ubuntu-test01 はOKだったが、アンダーバーはNGだった。)
- リソースプール:謎
- OS
- メディア(isoとか)指定。
isoファイルは、ノード直下にある、localディレクトリにしかアップできない。
localディレクトリは、基本、proxmoxをインストールしたディレクトリになるらしく、少々もったいない。
→proxmoxのインストール先はHDDなどの、安いメディアの方がいい気がする。後日検討する。 - ゲストOS
種類:インストールするメディアに合わせて指定
バージョン:OSに合わせて指定 - 「VirtIO ドライバ用の追加ドライブを追加」にチェックを入れて、isoイメージをマウントする。
- システム
- グラフィックカード:既定
- マシン:古いBIOSは「既定(i440fx)」、UEFIや、PCIeパススルーを使う場合は「Q35」。
→最近はQ35でよいらしい。 - BIOS:OVMF(UEFI)が基本。PCIeパススルーを使う場合OVMF に。
- EFIディスクの追加:上記で、OVMF(UEFI)を選択すると出てくる。Win10以上使うのであれば、チェックをつけておくこと。
- EFIストレージ:基本、OSをインストールするディスクを選択するらしい。
- SCSIコントローラー:
基本自動選択。Ver.8から「VirtIO SCSI single」が規定値になった。 - Qemu:チェック入れる。
また、インストール後にドライバーがー必要。
Win11だと無いと、シャットダウンに時間がかかるらしい。
また、インストール時にドライバーがー必要。
詳細は、以下公式を見るべし
https://pve.proxmox.com/wiki/Qemu-guest-agent - TPM:最近MBに乗っているセキュリティ関連。Win11じゃなきゃ不要?
-
ディスク
・バス/デバイス:SCSIが一番パフォーマンスがよいらしい。
・ストレージ:ストレージの選択。(Internal_SSD or
・ディスクサイズ:サイズを指定
・キャッシュ:
以下サイトが詳しいが、ちょっと微妙。
https://qiita.com/disksystem/items/b18412a69fdbf2fac0fc
公式の見解の以下でよいと思う
「none」:書き込みが多い
「writethrough」:読み込みが多い
https://pve.proxmox.com/wiki/Performance_Tweaks -
CPU
・ソケット:基本1でよいと思う。
・コア:必要なコア数を指定。
・種別:V8から、既定(x86-64-v2-AES)になったらしい。
CPU独自のの命令群を使う場合は、適切に指定する必要がありそう。
公式は以下 https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines#qm_virtual_machines_settings
以下サイトも役に立つ
https://www.yinfor.com/2023/06/how-i-choose-vm-cpu-type-in-proxmox-ve.html -
メモリー
・メモリ:サイズ入力
・詳細設定にチェックを入れて「Balloonigデバイス」をオフにしておく。 -
ネットワーク
・ブリッジ:ネットワークはブリッジに接続することしかできない。なので、あらかじめブリッジを作成しておく必要がある。
・VLANタグ:適当に。
・ファイアウォール:なに?
以下が公式
https://pve.proxmox.com/wiki/Firewall
・モデル:公式曰く最高のパフォーマンスは「VirtIO (準仮想化)」とのこと。
ただし、Windows11をインストールする際、ネットワークにつながっている必要があり、
「VirtIO (準仮想化)」だと、インストール時につながらず、にっちもさっちもいかなくなる。その場合は「Realtek 8139」を選択する。
◆ブリッジとは(以下、マニュアルより抜粋)
ブリッジは、ソフトウェアで実装された物理ネットワーク スイッチのようなものです。すべての仮想ゲストが 1 つのブリッジを共有することも、複数のブリッジを作成してネットワーク ドメインを分離することもできます。各ホストは、最大 4094 のブリッジを持つことができます。
・物理的なLANポートと、ブリッジと結びつけることが可能。(結びつけないことも可能。)
◆ブリッジには大きく分けて、LinuxとOVSがある。
・Linux:Linux標準?
→基本、こっちでよいらしい。
・OVS:Open vSwitch オープンソースなソフトウェアスイッチ
→OVSには、「OVSオプション」というのが追記でき、VLANあたりの設定ができる?
◆そのた
・ディレクトリの消去
-
インストール
・Windowsをインストールするときは、Diskが認識しないので、
「virtio-win-0.1.217.iso」を起動時にあらかじめマウントしておき、インストール時にドライバーを指定する。 -
インストール後
・ドライバーをインストールする
デバイスマネージャを見ると、二つデバイスが認識していないので、インストール時にマウントCD-ROMを検索してドライバーを入れる。
・QEMUエージェントを入れる
https://pve.proxmox.com/wiki/Qemu-guest-agent
同じくマウントしたCD-ROMにagentがあるので、インストールする
Windowsから、Powershellで以下実行
PS C:\Users\Administrator> Get-Service QEMU-GA
Status Name DisplayName
------ ---- -----------
Running QEMU-GA QEMU Guest Agent
PROXMOX上のシェルで
qm agent <vmid> ping とする。
問題ないと、何事無く終わり。
うまく動いていないと以下となる。
root@pmve01:/var/run/qemu-server# qm agent 100 ping
QEMU guest agent is not running