はじめに
Proxmox VE 9が2025/8/5にリリースされました。気になる新機能としてはHA機能の強化があり、それを試してみたいです。
そこで、手元のPVEクラスターに対してProxmox VE 8→9へのアップグレードを実行してみました。本記事では、実際に実行したコマンドを含めアップグレード手順を解説していきます。また、細かい作業内容もログとして残しています。
基本的には以下の公式Wikiの手順に従ってアップグレードを実行していきます。
作業環境
- Proxmox VE 8.4
- クラスター構成:
- ノード4台構成
- 内3ノードでCephストレージクラスターを構成
事前準備
パッケージの最新化
まず、現在のProxmox VE 8を最新状態にアップデートします。
WebUIのノード選択→Updatesからアップデートを実行するか、以下のコマンドで更新します。
apt update && apt full-upgrade
Cephバージョンの確認(Cephストレージを使っている場合)
CephのバージョンがSquid 19.2 なことを確認します。それ以外のバージョンであれば先にCephのアップグレードが必要となります。
ceph --version
pve8to9チェックスクリプトの実行
アップグレード用の事前チェックリストスクリプトがあるので実行します。
pve8to9
# 警告メッセージだけ見たい場合(警告の前後を見ないと何の項目か分からない場合があるのに注意)
pve8to9 | grep 'WARN:'
pve8to9 --full
実行結果:
= CHECKING VERSION INFORMATION FOR PVE PACKAGES =
Checking for package updates..
PASS: all packages up-to-date
[色々チェックリストの結果が出力される]
PASS: Found matching CPU microcode package 'amd64-microcode' installed.
SKIP: NOTE: Expensive checks, like CT cgroupv2 compat, not performed without '--full' parameter
= SUMMARY =
TOTAL: 59
PASSED: 47
SKIPPED: 4
WARNINGS: 4
FAILURES: 0
失敗項目(FAILURES)がある場合は0になるまで解消していって、警告(WARNINGS)は可能な限り解消しておきます。
自環境で実際に出た警告と対処
実際の環境で出た警告と対処を説明しておきます。
WARN: total votes < expected votes: 4/5!
以前に設定した多数決用の外部マシン(QDevice)からの投票が無くなってしまっていたので出ている警告。
使っていたマシンでQDeviceをセットアップし直して解消しました。
WARN: 'noout' flag not set - recommended to prevent rebalancing during upgrades.
アップグレードの最中はCephの
noout
フラグを有効にしておくことが推奨とのことなので、WebUIのCeph→OSD→Manage Global Flagsからnoout
フラグを有効にします。(クラスター全体のアップグレード作業が終わったら忘れず戻してください。)WARN: systemd-boot meta-package installed but the system does not seem to use it for booting. This can cause problems on upgrades of other boot-related packages. Consider removing 'systemd-boot'
systemd-boot
パッケージが不要とのこと(公式Wiki)メタパッケージとして
systemd-boot
パッケージがインストールされているものの、実際にはsystemd-boot-efi
andsystemd-boot-tools
パッケージのどちらかが自動でインストールされているはずのため不要となっている。このメッセージが表示されたらsystemd-boot
は消してしまって問題ない。apt remove systemd-boot
systemd-bootWARN: The matching CPU microcode package 'intel-microcode' could not be found! Consider installing it to receive the latest security and bug fixes for your CPU.
またはWARN: The matching CPU microcode package 'amd64-microcode' could not be found! Consider installing it to receive the latest security and bug fixes for your CPU.
CPUのマイクロコードの更新用パッケージが入っていないとの警告
公式Wikiに従ってパッケージをインストールします。
(Proxmox VE 9以降は新規インストールした際に最初から有効化)
CPUマイクロコード更新用パッケージ追加手順(公式Wiki)
/etc/apt/sources.list
のDebian公式リポジトリ(debian.orgを含む行全部)にnon-free-firmware
コンポーネントを追加deb http://ftp.jp.debian.org/debian bookworm main contrib non-free-firmware deb http://ftp.jp.debian.org/debian bookworm-updates main contrib non-free-firmware # security updates deb http://security.debian.org bookworm-security main contrib non-free-firmware deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
/etc/apt/sources.list- パッケージをインストール
apt update # Intelの場合 apt install intel-microcode # AMD(Ryzen)の場合 apt install amd64-microcode
WARN: multiple running versions detected for daemon type {monitor, manager, OSD}!
・WARN: overall version mismatch detected, check 'ceph versions' output for details!
Cephバージョンのノード間での不一致(クラスタの2台目以降のノードのアップグレード作業時に発生)
確認したところ、アップグレード前のノード(事前に更新済み)のCephバージョンは
19.2.2
で、Proxmox VE 9にアップグレードしたノードのCephのバージョンは19.2.3
になっていました。Proxmox VE 8でのCephの最新版は今のところ19.2.2
でアップデートしようがなく、全ノードをアップグレードしたらバージョンが揃って問題ないのはずなので無視しました。
アップグレード手順
VM/CTの移行or停止
稼働しているVMがある場合は事前に停止するか、クラスター環境の場合は別のノードに移行しておきます。
APTリポジトリの更新
Debianバージョン更新
Proxmox VE 9ではベースOSがDebian bookwormからtrixieになったため、リポジトリ設定のバージョン名を更新します。
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list
Proxmox VE 9リポジトリ(no-subscription)の追加
無料版Proxmoxを使っている場合は、新しいdeb822スタイルの書き方(.sources
ファイル)でno-subscriptionのProxmox VEリポジトリを追加します。
cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
古いリポジトリ設定を削除します。/etc/apt/sources.list
か/etc/apt/sources.list.d/pve-install-repo.list
(追加方法により異なる)に記載されている、no-subscriptionリポジトリの行をコメントアウトするか削除します。
deb http://ftp.jp.debian.org/debian trixie main contrib non-free-firmware
deb http://ftp.jp.debian.org/debian trixie-updates main contrib non-free-firmware
# security updates
deb http://security.debian.org trixie-security main contrib non-free-firmware
# 以下の行が不要なのでコメントアウトか削除する
#deb http://download.proxmox.com/debian/pve trixie pve-no-subscription
rm /etc/apt/sources.list.d/pve-install-repo.list
Cephリポジトリの更新(Ceph使用時)
Cephを使っている場合はCephのリポジトリも更新します。
cat > /etc/apt/sources.list.d/ceph.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
既存のリポジトリ設定は削除します。
rm /etc/apt/sources.list.d/ceph.list
APTのインデックス更新
リポジトリ設定が完了したのでAPTのインデックスを更新します。エラーが出た場合は恐らくリポジトリ設定ファイルが間違っているので、確認して修正します。
apt update
アップグレード実行
パッケージを更新して、アップグレードを実行します。
apt dist-upgrade
アップグレード実行中の対応
- 更新履歴の表示(
apt-listchanges
)が出た場合:「q」を押して閉じる。 - 設定ファイル更新時の対応
/etc/issue
: デフォルト(既存ファイル保持)「N」/etc/lvm/lvm.conf
: 新ファイル採用「Y」
- 何かしらのパッケージの更新作業に失敗した場合(
Errors were encountered while processing: パッケージ名
):問題を解決してから再度apt dist-upgrade
コマンドを実行 - その他の対応は公式Wiki を確認
アップグレード完了確認と再起動
チェックスクリプトを実行してエラーが出ないことを確認します。
(Warningが増えてなければ無視)
pve8to9
最後に再起動します。
reboot
動作確認
再起動が終わったらWebUIにアクセスして確認します。
アクセスした際には、古いブラウザキャッシュを更新するためスーパーリロード(Ctrl + F5, Ctrl + Shift +R, Command + Shift+ R)を実行します。
上部バーに書いてあるProxmox Virtual Environmentの後に表示されているバージョンが9.x.xになってればOK

アップグレード後の推奨作業
APTリポジトリ設定ファイルの変換
次のコマンドで、旧形式のリポジトリ設定ファイル(.list)を新方式のdeb822スタイル(.sources)に変換します。
apt modernize-sources
PVEの有償リポジトリ(pve-enterprise)をコメントアウトで無効化していた場合、このコマンドで復活してしまうので/etc/apt/sources.list.d/pve-enterprise.sources
にEnabled: no
を追加することで再度無効化します。
Enabled: no
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
不要パッケージの削除
不要な依存パッケージが残っている場合があるので削除します。
apt autoremove
クラスター環境でのアップグレード
クラスターを組んでいる場合は1台ずつアップグレードを実行します。
注意
- 前述の通りCephクラスターを組んでいる場合はGlobal Flagsを弄る必要があるので、作業完了後に元に戻すのを忘れないようにします。
- HAグループを使っていた場合は、全ノードのアップグレードが完了した段階で自動的に新機能のHAルールに移行されます。
新機能追加の確認
Web UIでDatacenter→HA→Affinity Rules(旧項目名: Groups)を確認すると、Node Affinity RulesとResource Affinity Rulesという2つの項目があります。Resource Affinity Groupの方がProxmox VE 9の新機能です。この機能については別記事で検証していきます。

まとめ
ProxmoxクラスターのProxmox VE 9へのアップグレードが完了しました。
新機能の検証については別記事で紹介予定です。
参考サイト
- 公式アップグレード手順
- ロードマップ(更新点など)
- マイクロコード自動更新セットアップ手順