3
04
2025
Proxmoxを仮想サーバ&コンテナー運用環境として試してみる(環境構築編)
Proxmoxの仮想サーバ&コンテナー運用環境を試してみる
昨年のBroadcomによるVMWare製品群の大幅なライセンス方針の改定により、これまでVMWare製品で運用していた各種システムを別な仮想ホスティング環境へ移行せざる負えなくなってしまった企業や組織が多いことだろう.Broadcomからのライセンス方針変更のアナウンスがあまりにも唐突で、詳しいライセンス改定方針が示されなかった事で、エンドユーザやVMWare製品をライセンス販売していた多くのITベンダーまでもが大混乱に陥ってしまった.多くの企業や組織の情報システム部門は未だに頭を抱えていることだろう.
VMWare製品に見切りを付けて他のソリューションへ移行する事を考えている企業や組織も多いことだろう.ここ数年 Proxmox というオープンソースベースの仮想サーバ&Linuxコンテナー運用環境についての記事を目にするようになってきた.どうやらこの Proxmox がVMware製品群から脱却するための有力なソリューションとして注目を集めているようだ.
Proxmoxが実際にどの程度使い物になるのか試して見たかったので、前の記事『ArubaのAPを用いて認証VLANを実装してみる#2(RADIUSサーバとの連携)』のテスト環境を急遽Proxmoxを用いて新規構築することにした.Proxmox環境を実際に構築しながら、仮想サーバやLinuxコンテナを動かしてみようと思う.
これまでのKVMベースの仮想サーバ運用環境ではコマンドラインを駆使しなければならなかったが、ProxmoxのWEB GUIはかなり洗練されていて、VMwareの VCenter Server 的な運用管理ができそうなので、仮想サーバ環境の運用面では大分負担が軽くなりそうだ.
Proxmox Virtual Environment(PVE)の概要
ProxmoxはオーストリアのProxmox Server Solutions社が開発している製品群のブランド名で、Proxmox Virtual Environment(PVE)、Proxmox Backup Server、Proxmox Mail Gatewayの3製品がメジャーなプロダクツのようだ.今回は仮想サーバ&Linuxコンテナーの運用環境であるPVEについて紹介することにする.
オープンソースベースの製品ではあるが、Proxmox Server Solutions社のサポートサブスクリプション(有償)を購入してサポートサービスを受けることもできる.日本でも現在2社(AXIS、Classact)ほどProxmox Server Solutions社のパートナーとして登録されているようなので、これらのパートナーを通じてインテグレーションサービスを受けることができるので、企業などでの利用でもそれなりの安心感は得られそうだ.
Proxmox Virtual Environmentの機能について簡単に説明するのは難しいので、先ずは Features のページを一通り眺めて見るのが良いだろう.
サーバ仮想化の方式として、Kernel-based Virtual Machine (KVM)とContainer-based virtualization (Linux Containers)の2方式を併用することが可能で、複数台の物理サーバマシンによるクラスタリングを組んでHA(High Availability)構成での運用が行える.また、ソフトウェアによるネットワーク構築やローカルストレージとネットワークストレージを組み合わせた柔軟なストレージ構成を採ることができ、VMWare製品などと較べてもそれ程遜色のないシステム構成や運用ができるのではないかと思う.尤も、私がVMware製品群に携わっていたのは大分昔の事なので、最新のVMWare製品群と較べることはできないのだが、少なくとも全てオープンソースベースの製品群の組み合わせなので、ブラックボックス仕様に悩まされたりベンダーロックインで身動きが取れなくなる心配はしなくても済むだろう.
PVEのインストールは簡単な筈だけど...
PVEのインストールの概要は、Get Started のページにあるように、
1. ISOイメージのダウンロード & ISOイメージからブータブルメディア(USBドライブ、CD/DVD)を作成する
2. ブータブルメディアからインストーラーを起動し、PVEを物理サーバにインストールする
3. PVEの設定
という簡単なGUIベースの作業な筈なのだが、物理サーバにGPUが搭載されている場合はGPUの種類(古いGPUや最新の物など)によってはPVEインストーラが起動段階でハングアップしてしまいそこから先へ一切進めなくなる事態が発生する可能性があるそうなので、もしGPU関連でインストールが上手く行かない場合は、GPUカードを外してインストールかGPUカードが無ければ画面出力ができない機種であれば、シリアルコンソールベースでインストール作業を進めて、後でGPUカードを載せると良いだろう.
私は仕事場に転がっていたSuperMicroの4Uサーバ筐体にNvidia GTX-3090 GPUボード1枚を載せた状態でPVEをインストールした際に、このインストーラーハングアップの洗礼を食らってしまった.同じ筐体に GTX-3080 の構成では無事GUIインストーラーが動いたので、インストーラーの起動OS(Debian) のドライバ廻りの問題のようだ.
この現象が起きた場合の回避策としては、インストーラーの起動OS(Debian) のGRUBのカーネルパラメータを編集して、インストーラの起動時にグラフィクス関連のドライバーを読み込まないようにすると良いようだ. [ “Adding the nomodeset Kernel Parameter” (Proxmox Wiki)” ]
企業などで、同じ仕様のPVEノードを大量にデプロイする場合は、“Automated Installation(Proxmox Wiki)” を参考にすると良いだろう.

今回 Proxmox (PVE) をインストールしたSuperMicroのサーバ筐体(1号機)

GUIベースのインストールで簡単な筈だが...

インストーラーが起動中にハングアップしてしまう

GRUBのカーネルパラメータを編集モードで確認

“vga=788” ==> “nomodeset” へ変更

テキストベースのインストーラが無事起動した

Proxmox(PVE)の管理コンソールは使い勝手が良さそう
Proxmox(PVE)環境をクラスタ構成で構築してみる
PVE環境をクラスター化する前に、クラスターを組むためのシステム的な要件を先ず確認しておく必要がある.クラスターを構成する各物理サーバのハードウェアスペックや構成、搭載しているリソースなどが全部同じであれば、運用上とても楽ちんなのだが、大抵の場合は各物理マシン毎に異なる場合が殆どだろう.クラスターを構成する上でのハードウェアの要件を定義するのはどのような構成を採るのかによって大きく異なるので簡単には決められないだろうが、実際にテスト運用をしてみながら最終的な構成を作っていくしかなさそうだ.
幸いなことに、今回は使っていないほぼ同じスペックのSuperMicro製のサーバマシンを4台ほど確保できたので、比較的楽にシンメトリーな構成を組むことができそうだ.今回検証用に用意できたサーバのスペックや構成を簡単に紹介しておく.
今回インストールしたProxmox(PVE) のバージョンは 8.3.4 で、インストール後に PVEのアップデート用のリポジトリに “pve-no-subscription” を追加してベースOSの debian12 (Bookworm) とPVE廻りのアップデートを最初に実行してある.この状態で、”Shell” を起動し各種HW情報取得コマンドを実行してみる.尚、ここで表示する情報は4号機にNVidia A6000カードを2枚差したときの物だ.
【CPU情報】
root@pve04:~# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 20
On-line CPU(s) list: 0-19
Vendor ID: GenuineIntel
BIOS Vendor ID: Intel(R) Corporation
Model name: Intel(R) Xeon(R) Silver 4210R CPU @ 2.40GHz
...
Virtualization features:
Virtualization: VT-x
Caches (sum of all):
L1d: 320 KiB (10 instances)
L1i: 320 KiB (10 instances)
L2: 10 MiB (10 instances)
L3: 13.8 MiB (1 instance)
...
【サーバ筐体&マザーボード】
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Supermicro
Product Name: SYS-5049A-TR
Version: 0123456789
Serial Number: A3xxxxxxxxxx92
UUID: ec---00-7---2-1--eb-8000-3c--f75---43
Wake-up Type: Power Switch
SKU Number: To be filled by O.E.M.
Family: To be filled by O.E.M.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Supermicro
Product Name: X11SPA-T
Version: 1.01
Serial Number: W0xxxxxxx86
Asset Tag: To be filled by O.E.M.
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: To be filled by O.E.M.
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
【メモリ情報】
root@pve04:~# free -ht
total used free shared buff/cache available
Mem: 92Gi 3.4Gi 89Gi 71Mi 1.1Gi 89Gi
Swap: 8.0Gi 14Mi 8.0Gi
Total: 100Gi 3.4Gi 97Gi
root@pve04:~#
【電源ユニット確認】
root@pve04:~# dmidecode -t 39
# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.2.1 present.
Handle 0x001A, DMI type 39, 22 bytes
System Power Supply
Power Unit Group: 1
Location: PSU1
Name: PWS-2K20A-1R
Manufacturer: SUPERMICRO
Serial Number: P2K20CK41HB0590
Asset Tag: N/A
Model Part Number: PWS-2K20A-1R
Revision: 2.0
Max Power Capacity: 2200 W
Status: Present, OK
Type: Switching
Input Voltage Range Switching: Auto-switch
Plugged: Yes
Hot Replaceable: Yes
Handle 0x001B, DMI type 39, 22 bytes
System Power Supply
Power Unit Group: 2
Location: PSU2
Name: PWS-2K20A-1R
Manufacturer: SUPERMICRO
Serial Number: P2K20CK41HB0589
Asset Tag: N/A
Model Part Number: PWS-2K20A-1R
Revision: 2.0
Max Power Capacity: 2200 W
Status: Present, OK
Type: Switching
Input Voltage Range Switching: Auto-switch
Plugged: Yes
Hot Replaceable: Yes
root@pve04:~#
【GPUカード確認】
root@pve04:~# lspci | grep -i nvidia
19:00.0 VGA compatible controller: NVIDIA Corporation GA102GL [RTX A6000] (rev a1)
19:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)
b3:00.0 VGA compatible controller: NVIDIA Corporation GA102GL [RTX A6000] (rev a1)
b3:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)
root@pve04:~#
【NIC情報確認】
root@pve04:~# lspci | grep Ethernet
04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
05:00.0 Ethernet controller: Aquantia Corp. AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] (rev 02)
root@pve04:~#
【PVEのネットワーク設定】
root@pve04:~# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eno2: mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 3c:ec:ef:75:93:bb brd ff:ff:ff:ff:ff:ff
altname enp5s0
3: eno1: mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
link/ether 3c:ec:ef:75:94:33 brd ff:ff:ff:ff:ff:ff
altname enp4s0
4: vmbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 3c:ec:ef:75:94:33 brd ff:ff:ff:ff:ff:ff
inet 192.168.xxx.yyy/24 scope global vmbr0
valid_lft forever preferred_lft forever
inet6 fe80::3eec:efff:fe75:9433/64 scope link
valid_lft forever preferred_lft forever
root@pve04:~#
【物理NICのリンクモード確認】
root@pve04:~# ethtool eno2 <=== Aquantia AQC107
Settings for eno2:
Supported ports: [ TP ]
Supported link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
Supports Wake-on: pg
Wake-on: g
Current message level: 0x00000005 (5)
drv link
Link detected: no
root@pve04:~# ethtool eno1 <=== Intel I210
Settings for eno1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
MDI-X: off (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
root@pve04:~#
SuperMicroのサーバ用の筐体とマザーボードなので、一般的なPCとはかなりスペックが異なるが、業務用途でPVEを動かすホストマシンとしては安心して利用することができるだろう.先日、NVidiaの株価と連動するようにSuperMicro社の株価も爆上がりしたが、サーバ専用機としてSuperMicro社の製品が多く使われているのはやはり業務用としての信頼性や安定性が優れているからなのだろう.
多くの仮想サーバをホストするマシンのCPUとしては今回のシングルソケットのXeon Silver 4210Rは少し貧弱なので、本番運用する際にはCPUを2個積んだサーバを用意する方が良いかもしれない.
マザーボードの背面パネルにはEthernetポートが3つあるが、PVEで使用することが可能なのは2つだけだ、赤い方のポートは10Gに対応しているが、もう一方のポートは1Gなので、クラスター構成を採る場合には少し心許ない.PCIeスロットは豊富にあるので、10GのNICを追加して、クラスター間の専用リンクとして使いたいところだ.
搭載しているメモリが16GBx6枚でメモリの容量が少なめだが、マザーボードメモリスロットは12スロットあるので、本番用に稼働させる場合は256GB位は欲しいところだ.今回は検証用途なのでとりあえずこの状態でコンテナーを動かすためのGPUサーバとしてテストしてみようと思う.電源ユニットも 2.2kWが2台(冗長構成)なので、A6000クラスのGPUなら4枚程度は問題なく行けそうだ.

3つ有るEthernetポートの1つはサーバ管理用のIPMIポートなのでPVEからは認識されていない
[ 続く... ]