Open1

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
https://forums.servethehome.com/index.php?threads%2Fproject-tinyminimicro-reviving-small-corporate-desktops.29075%2F

足りない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ポートか調べるには、

  1. LANポートに適当なスイッチなどを接続し、Linkupさせる。
  2. PROXMOX上からすべて稼働中にする。(しなくてもよいかも
  3. Proxmoxからシェルを立ち上げ、コマンド「ip -c link」を打つ
  4. ネットデバイス毎に 「state up」や「state down」と表示されるので、一つずつ調べる。

ディスクの追加

インストールしたディスク以外をどのようなフォーマットで扱うか、Proxmoxでは重要です。

公式
https://pve.proxmox.com/wiki/Storage
個人的に、仮想環境はスナップショットをとれるのが最大のポイントだと思っていて、そうなると、ZFSか、LVM-thinあたりが無難です。ただ、ZFSは大量のメモリー(最低8GB~)を使うので、ひとまずは「LVM-thin」でよいのかと思います。
この辺は、使っていく中でいろいろと試してみたいところ。

消す際

「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作成

公式に付属マニュアルは以下
https://192.168.1.32:8006/pve-docs/chapter-qm.html#qm_virtual_machines_settings

QEMUに関して

https://pve.proxmox.com/wiki/Qemu-guest-agent
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にアップロードする。

  1. 全般
  • ノード:pve01 インストールするマシンの選択
  • VM ID:基本そのままでよい。数字が勝手に増えていくとのこと
  • 名前:名前をつけるが、何か制限があって、ダメな時があった(ubuntu-test01 はOKだったが、アンダーバーはNGだった。)
  • リソースプール:謎
  1. OS
  • メディア(isoとか)指定。
    isoファイルは、ノード直下にある、localディレクトリにしかアップできない。
    localディレクトリは、基本、proxmoxをインストールしたディレクトリになるらしく、少々もったいない。
    →proxmoxのインストール先はHDDなどの、安いメディアの方がいい気がする。後日検討する。
  • ゲストOS
     種類:インストールするメディアに合わせて指定
     バージョン:OSに合わせて指定
  • 「VirtIO ドライバ用の追加ドライブを追加」にチェックを入れて、isoイメージをマウントする。
  1. システム
  • グラフィックカード:既定
  • マシン:古い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じゃなきゃ不要?
  1. ディスク
    ・バス/デバイス:SCSIが一番パフォーマンスがよいらしい。
    ・ストレージ:ストレージの選択。(Internal_SSD or
    ・ディスクサイズ:サイズを指定
    ・キャッシュ:
     以下サイトが詳しいが、ちょっと微妙。
    https://qiita.com/disksystem/items/b18412a69fdbf2fac0fc
     公式の見解の以下でよいと思う
    「none」:書き込みが多い
    「writethrough」:読み込みが多い
    https://pve.proxmox.com/wiki/Performance_Tweaks

  2. 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

  3. メモリー
    ・メモリ:サイズ入力
    ・詳細設定にチェックを入れて「Balloonigデバイス」をオフにしておく。

  4. ネットワーク

・ブリッジ:ネットワークはブリッジに接続することしかできない。なので、あらかじめブリッジを作成しておく必要がある。
・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あたりの設定ができる?

◆そのた
・ディレクトリの消去

  1. インストール
    ・Windowsをインストールするときは、Diskが認識しないので、
     「virtio-win-0.1.217.iso」を起動時にあらかじめマウントしておき、インストール時にドライバーを指定する。

  2. インストール後
    ・ドライバーをインストールする
     デバイスマネージャを見ると、二つデバイスが認識していないので、インストール時にマウント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