Site icon rpine lab Tech Blog

趣味のプログラミング(Web系・バックエンド)や自宅ラボ(Homelab)構築・マイコンを使った電子工作などを雑多に扱った技術ブログです。

🔧 Proxmox VE 8から9へのアップグレード手順

はじめに

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
pve8to9コマンドの出力(一部)

失敗項目(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フラグを有効にします。(クラスター全体のアップグレード作業が終わったら忘れず戻してください。)

    Image in a image block
  • 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 and systemd-boot-toolsパッケージのどちらかが自動でインストールされているはずのため不要となっている。このメッセージが表示されたらsystemd-bootは消してしまって問題ない。

    apt remove systemd-boot
    systemd-boot
  • WARN: 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
    1. /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
    2. パッケージをインストール
      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でアップデートしようがなく、全ノードをアップグレードしたらバージョンが揃って問題ないのはずなので無視しました。

アップグレード手順

💡
以降の手順は、Web UIのShellではなく、ノードに直接モニタを繋いで物理コンソールで実行するかSSHでログインして実行してください。SSHの場合はbyobuなどのターミナルマルチプレクサの使用を推奨します。(接続断などによる中断防止のため)

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
/etc/apt/sources.list の場合
rm /etc/apt/sources.list.d/pve-install-repo.list
/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

アップグレード後のWebUI画面 (Cephについては前述の通りGlobal Flagsを変更しているため警告が出ている)
アップグレード後のWebUI画面 (Cephについては前述の通りGlobal Flagsを変更しているため警告が出ている)

アップグレード後の推奨作業

APTリポジトリ設定ファイルの変換

次のコマンドで、旧形式のリポジトリ設定ファイル(.list)を新方式のdeb822スタイル(.sources)に変換します。

apt modernize-sources

PVEの有償リポジトリ(pve-enterprise)をコメントアウトで無効化していた場合、このコマンドで復活してしまうので/etc/apt/sources.list.d/pve-enterprise.sourcesEnabled: 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
/etc/apt/sources.list.d/pve-enterprise.sources

不要パッケージの削除

不要な依存パッケージが残っている場合があるので削除します。

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の新機能です。この機能については別記事で検証していきます。

Image in a image block

まとめ

ProxmoxクラスターのProxmox VE 9へのアップグレードが完了しました。

新機能の検証については別記事で紹介予定です。

参考サイト

この記事が役に立ったら是非ご支援をお願いします!

支援する

※Squareの決済ページに移動します