Proxmox VE: 7系から8系へupgradeしてみたメモ

Proxmox VE: 7系から8系へupgradeしてみたメモ
Page content

公式ドキュメントに沿って作業

自宅での実験場としている仮想化プラットフォーム (仮想化基盤) のProxmox Virtual Environment (Proxmox VE) を、7系から8系へアップグレードしてみました。作業は次の公式ドキュメントに沿って進めまして、本記事には作業時の要点をメモしておきます。

以下の見出しに付与している番号は、公式ドキュメントでのセクション番号と対応させています。

4 In-place upgrade

既存PVEのアップグレードをaptコマンドを使って行います。

4.1 Prerequisites

前提条件が9つ書かれていますので事前にクリアしておきます。

  • PVE 7系の環境でapt upgradeを完了して7系最新版へ更新しました
    $ pveversion
    pve-manager/7.4-17/513c62be (running kernel: 5.15.126-1-pve)
    
  • 今回の環境ではCephは未使用です
  • 今回の環境ではclusterを組んでおらず、PVEノード1台のstandalone構成です
  • VMイメージ全てを外部ストレージにバックアップしました
  • root領域の空き容量は十分あります
    $ df -h /
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/pve-root   94G  8.3G   81G  10% /
    

4.3 Actions step-by-step

アップグレード作業は、clusterに属するそれぞれのPVEノードのCLIで行う必要があります。また、作業はPVEの直接コンソールまたはSSH経由で行います。PVEのGUIで提供される仮想コンソールを通じて作業してはいけません (アップグレード途中で中断してしまうため)。

4.3.1 Continuously use the pve7to8 checklist script

pve7to8というコマンドを使って、アップグレード前のPVE環境の事前チェックを行います。

$ sudo pve7to8
= CHECKING VERSION INFORMATION FOR PVE PACKAGES =

Checking for package updates..
PASS: all packages up-to-date

Checking proxmox-ve package version..
PASS: proxmox-ve package has version >= 7.4-1

Checking running kernel version..
PASS: running kernel '5.15.126-1-pve' is considered suitable for upgrade.

= CHECKING CLUSTER HEALTH/SETTINGS =

SKIP: standalone node.

= CHECKING HYPER-CONVERGED CEPH STATUS =

SKIP: no hyper-converged ceph setup detected!

= CHECKING CONFIGURED STORAGES =

SKIP: storage 'google-cloud-storage' disabled.
PASS: storage 'local' enabled and active.
PASS: storage 'local-lvm' enabled and active.
PASS: storage 'qnap' enabled and active.
INFO: Checking storage content type configuration..
PASS: no storage content problems found
PASS: no storage re-uses a directory for multiple content types.

= MISCELLANEOUS CHECKS =
(省略)

= SUMMARY =

TOTAL:    33
PASSED:   24
SKIPPED:  7
WARNINGS: 0
FAILURES: 0

pve7to8 --fullでもサマリーは同じ状態になりました。総じて問題はなさそうです。

$ sudo pve7to8 --full
(省略)

= SUMMARY =

TOTAL:    33
PASSED:   24
SKIPPED:  7
WARNINGS: 0
FAILURES: 0

4.3.3 Update the configured APT repositories

PVEが7.4-15以上になっていることを最終確認します。

$ sudo apt update
(省略)
All packages are up to date.

$ sudo apt dist-upgrade
(省略)
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ pveversion
pve-manager/7.4-17/513c62be (running kernel: 5.15.126-1-pve)
4.3.3.1 Update Debian Base Repositories to Bookworm
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list

公式ドキュメントにある上記コマンドは、ファイル/etc/apt/sources.list内の、Debianのバージョンを示すコードネーム文字列「bullseye (Debian 11)」を「bookworm (Debian 12)」に置換せよという意味だと読み取れます。今回の環境では、PVEのデフォルト状態にtailscaleとzabbixのリポジトリを別ファイルで追加している状態だったので、下記のように、それらに関する別ファイルも同様に書き換えておく必要がありました。

## 別ファイル書き換えの例
$ grep -R bullseye /etc/apt/
$ sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/HOGE1.list
$ sudo vim /etc/apt/sources.list.d/HOGE2.list
4.3.3.2 Add the Proxmox VE 8 Package Repository

4.3.3.1で行った置換をチャラにすることになりますが、今回の環境はPVEを無償版として使用するので、/etc/apt/sources.listを、No-Subscription向けのリポジトリを記述したProxmox VE No-Subscription Repositoryの内容へとまるごと入れ替えます。

$ cat /etc/apt/sources.list
deb http://ftp.debian.org/debian bookworm main contrib
deb http://ftp.debian.org/debian bookworm-updates main contrib

# Proxmox VE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

# security updates
deb http://security.debian.org/debian-security bookworm-security main contrib
4.3.3.3 Update the Ceph Package Repository

今回の環境ではCephは使用していませんが今後使用するかもしれないので、CephのNo-Subscription向けリポジトリを追加しておきます。

$ sudo -s
$ echo "deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph.list
4.3.3.4 Refresh Package Index

編集したリポジトリ情報を用いてapt updateが問題なく行えるかを確認します (余談: 今回の環境におけるzabbixのリポジトリとしてUbuntu用を使っているのは何らかの運用上の都合ですかね?>過去の自分)。

$ sudo apt update
Hit:1 http://security.debian.org/debian-security bookworm-security InRelease                       
Hit:2 http://download.proxmox.com/debian/pve bookworm InRelease                                    
Hit:3 http://download.proxmox.com/debian/ceph-quincy bookworm InRelease                            
Get:4 https://repo.zabbix.com/zabbix/5.4/ubuntu focal InRelease [4,958 B]
Hit:5 http://ftp.debian.org/debian bookworm InRelease                            
Get:6 https://pkgs.tailscale.com/stable/debian bookworm InRelease
Hit:7 http://ftp.debian.org/debian bookworm-updates InRelease
Fetched 11.5 kB in 6s (1,869 B/s)                                                                  
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
625 packages can be upgraded. Run 'apt list --upgradable' to see them.

4.3.4 Upgrade the system to Debian Bookworm and Proxmox VE 8.0

PVEを実際にアップグレードするためにapt dist-upgradeを実行します。

$ sudo apt dist-upgrade
(省略)
625 upgraded, 145 newly installed, 4 to remove and 0 not upgraded.
Need to get 640 MB of archives.
After this operation, 1,071 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

実行中、公式ドキュメントに言及されている問い合わせが表示されます。今回の環境では次のような選択を行いました。

  • /etc/issue: defaultのNを選択
  • /etc/lvm/lvm.conf: LVMに関して特別な変更をしていないので上書きのYを選択
  • /etc/ssh/sshd_config: 問い合わせが現れませんでした
  • /etc/default/grub: 新旧の差分を表示して確認したあと、上書きで問題ないと判断してYを選択
  • /etc/apt/sources.list.d/pve-enterprise.list: 上書きのYを選択 (No-Subscription向けリポジトリへの変更は後ほどPVEのGUIでも行えるため)

4.3.5 Check Result & Reboot Into Updated Kernel

apt dist-upgradeの完了後に再確認の意味でpve7to8を実行しますと、表示されたのは「rebootをまだ行っていませんね」的なWARNINGSばかりだったので、PVEのアップグレードのやり残しはないと判断できました。

そしてPVEノードの再起動を行った後にpveversionでPVEのバージョン確認を行ったところ、以下のように8系へ更新できていることが確認できました。各VMの起動も正常でした。

$ pveversion
pve-manager/8.0.4/d258a813cfa6b390 (running kernel: 6.2.16-15-pve)

4.4 After the Proxmox VE upgrade

4.4.1 For Clusters

今回のstandalone環境ではもちろん1台分で作業完了です。cluster構成を組んでいるのであれば、残りのPVEノードを1台ずつアップグレードせよとのこと。

追記 [2023-10-26]: upgrade後に異常があったのでKernelだけ古いままにした

上記とは別の実験環境 (マザーボード上の有線NICのドライバとしてe1000eを使用するハードウェア) のProxmox VEを、7系から8系へupgradeしたところ、有線接続のネットワークが使えなくなる現象に遭遇してしまいました。原因究明よりも復旧を急ぐべき状態だったため、山勘でKernelだけをupgrade前のものに戻して起動したところ、正常にネットワークが使える状態に戻ることが分かりました。

PVEバージョンKernelバージョン状況
7系 (忘却)5.15.126-1-pve異常なし
8系 (8.0.4)6.2.16-18-pve有線接続のネットワークが不通になる
8系 (8.0.4)5.15.126-1-pve異常なし

とりあえず、PVEは8系だけどもKernelはひとつ前、という組み合わせで仮想化プラットフォームの利用を継続するためには、(起動時にGRUBで都度手動選択をするわけにはいかないので) デフォルトKernelをひとつ前のものへ切り替えておく必要があります。この切り替えが可能なコマンドとして、PVEにはproxmox-boot-toolが用意されていると知り、次のように実行したところ、デフォルトKernelを切り替えることができました。

# proxmox-boot-tool kernel pin 5.15.126-1-pve
Setting '5.15.126-1-pve' as grub default entry and running update-grub.
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.2.16-18-pve
Found initrd image: /boot/initrd.img-6.2.16-18-pve
Found linux image: /boot/vmlinuz-5.15.126-1-pve
Found initrd image: /boot/initrd.img-5.15.126-1-pve
Found linux image: /boot/vmlinuz-5.15.30-2-pve
Found initrd image: /boot/initrd.img-5.15.30-2-pve
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
Adding boot menu entry for UEFI Firmware Settings ...
done

なぜupgrade後にネットワークが不通になったのか。今思えば、8系でNICの名前が変更されて再設定が必要になったからという可能性もあるかもしれません。

参考リンク