Proxmox VE バージョンアップ手順(8.2.2->8.3.0)

# **Proxmox VE バージョンアップ手順(8.2.2->8.3.0)**

## **はじめに**

Proxmox VEは、高機能なオープンソースの仮想化プラットフォームです。バージョンアップを行うことで、新機能やセキュリティ修正を適用できます。しかし、バージョンアップ作業は慎重に行う必要があります。この記事では、Proxmox VE 8.2.2から8.3.0へのバージョンアップ手順について詳しく解説します。

---

## **準備**

### **1. 現在のバージョンの確認**
バージョンアップを行う前に、現在使用しているProxmox VEのバージョンを確認します。


```bash
pveversion
```

```bash
root@pve:~# pveversion
pve-manager/8.2.2/9355359cd7afbae4 (running kernel: 6.8.4-2-pve)
```

これにより、現在のバージョンとインストールされているパッケージの情報が表示されます。

### **2. バックアップの取得**
バージョンアップ中に問題が発生する可能性を考慮し、以下のバックアップを取得しておきます。

- **仮想マシンとコンテナのバックアップ**  
  GUIまたはCLIで仮想マシンやコンテナをバックアップします。

```bash
vzdump <VMID> --dumpdir /path/to/backup --compress zstd
```

- **設定ファイルのバックアップ**  
  Proxmoxの設定ファイルをバックアップします。

```bash
tar czvf /root/proxmox-config-backup.tar.gz /etc/pve
```

```bash
root@pve:~# tar czvf /root/proxmox-config-backup.tar.gz /etc/pve
tar: Removing leading `/' from member names
/etc/pve/
/etc/pve/.debug
/etc/pve/.vmlist
/etc/pve/.members
/etc/pve/lxc
/etc/pve/local
/etc/pve/.rrd
/etc/pve/.version
/etc/pve/.clusterlog
/etc/pve/openvz
/etc/pve/qemu-server
/etc/pve/storage.cfg
/etc/pve/user.cfg
/etc/pve/pve-root-ca.pem
/etc/pve/priv/
/etc/pve/priv/pve-root-ca.key
/etc/pve/priv/pve-root-ca.srl
/etc/pve/priv/authorized_keys
/etc/pve/priv/authkey.key
/etc/pve/priv/lock/
/etc/pve/priv/acme/
/etc/pve/virtual-guest/
/etc/pve/firewall/
/etc/pve/sdn/
/etc/pve/vzdump.cron
/etc/pve/datacenter.cfg
/etc/pve/mapping/
/etc/pve/authkey.pub
/etc/pve/ha/
/etc/pve/authkey.pub.old
/etc/pve/pve-www.key
/etc/pve/nodes/
/etc/pve/nodes/pve/
/etc/pve/nodes/pve/lxc/
/etc/pve/nodes/pve/pve-ssl.key
/etc/pve/nodes/pve/lrm_status
/etc/pve/nodes/pve/pve-ssl.pem
/etc/pve/nodes/pve/priv/
/etc/pve/nodes/pve/ssh_known_hosts
/etc/pve/nodes/pve/openvz/
/etc/pve/nodes/pve/qemu-server/
/etc/pve/nodes/pve/qemu-server/100.conf
```

### **3. システム状態の確認**
バージョンアップを行う前に、システムが正常な状態であることを確認します。

```bash
pvecm status   # クラスター状態の確認
df -h          # ディスク容量の確認
free -m        # メモリ使用状況の確認
```

```
root@pve:~# pvecm status
Error: Corosync config '/etc/pve/corosync.conf' does not exist - is this node part of a cluster?
root@pve:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
udev                   48G     0   48G   0% /dev
tmpfs                 9.5G  1.4M  9.5G   1% /run
/dev/mapper/pve-root   94G  7.1G   83G   8% /
tmpfs                  48G   46M   48G   1% /dev/shm
tmpfs                 5.0M     0  5.0M   0% /run/lock
/dev/fuse             128M   16K  128M   1% /etc/pve
tmpfs                 9.5G     0  9.5G   0% /run/user/0
root@pve:~# free -m
               total        used        free      shared  buff/cache   available
Mem:           96640        2473       89417          52        5557       94167
Swap:           8191           0        8191
```

---

## **手順**

### **1. パッケージリポジトリの設定**
Proxmox VEのアップグレードには、適切なリポジトリが必要です。リポジトリの設定を確認・更新します。

1. **リポジトリの確認**
   `/etc/apt/sources.list.d/pve-enterprise.list`を確認し、適切なリポジトリが設定されているか確認します。

```bash
root@pve:~# ls -alF /etc/apt/sources.list.d/
total 16
drwxr-xr-x 2 root root 4096 Nov  5 16:36 ./
drwxr-xr-x 9 root root 4096 Nov  5 16:36 ../
-rw-r--r-- 1 root root   74 Aug  1 19:45 ceph.list
-rw-r--r-- 1 root root   70 Apr 24  2024 pve-enterprise.list
```

2. **エンタープライズリポジトリの無効化**

   次のコマンドでエンタープライズリポジトリを無効化します。

```bash
sed -i 's/^deb /#deb /' /etc/apt/sources.list.d/pve-enterprise.list
sed -i 's/^deb /#deb /' /etc/apt/sources.list.d/ceph.list
```

   実行後、ファイルの内容を確認してください。このファイル内のリポジトリエントリがコメントアウトされているはずです。

```bash
cat /etc/apt/sources.list.d/pve-enterprise.list
#deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise
cat /etc/apt/sources.list.d/ceph.list
#deb https://enterprise.proxmox.com/debian/ceph-quincy bookworm enterprise
```

3. **無償リポジトリの追加**

   無償版の`pve-no-subscription`リポジトリを使用するため、以下のコマンドを実行してリポジトリファイルを作成します。

```bash
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
```

   作成後、`/etc/apt/sources.list.d/pve-no-subscription.list`の内容を確認します。

```bash
cat /etc/apt/sources.list.d/pve-no-subscription.list
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
```

4. **リポジトリの更新**
   リポジトリを更新して、無償リポジトリが有効になっていることを確認します。

```bash
apt update
```

```bash
root@pve:~# apt update
Hit:1 http://ftp.jp.debian.org/debian bookworm InRelease
Hit:2 http://ftp.jp.debian.org/debian bookworm-updates InRelease
Hit:3 http://security.debian.org bookworm-security InRelease
Hit:4 http://download.proxmox.com/debian/pve bookworm InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
125 packages can be upgraded. Run 'apt list --upgradable' to see them.
```

   エラーが表示されないことを確認してください。

4. **システムのアップグレード（必要に応じて）**

   無償リポジトリが有効になったら、システムをアップグレードします。

```bash
apt full-upgrade -y
```

```bash
root@pve:~# apt full-upgrade -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  libpve-network-api-perl proxmox-kernel-6.8.12-4-pve-signed
The following packages will be upgraded:
  base-files bash bind9-dnsutils bind9-host bind9-libs bsdextrautils bsdutils btrfs-progs curl
  distro-info-data eject fdisk gnutls-bin ifupdown2 initramfs-tools initramfs-tools-core iputils-ping
  krb5-locales less libarchive13 libblkid1 libc-bin libc-l10n libc6 libcurl3-gnutls libcurl4 libexpat1
  libfdisk1 libfreetype6 libglib2.0-0 libgnutls-dane0 libgnutls30 libgnutlsxx30 libgssapi-krb5-2
  libgstreamer-plugins-base1.0-0 libjs-extjs libk5crypto3 libkrb5-3 libkrb5support0 libmount1 libmpg123-0
  libnghttp2-14 libnss-systemd libnss3 libnvpair3linux liboath0 libopeniscsiusr libpam-systemd
  libproxmox-acme-perl libproxmox-acme-plugins libproxmox-rs-perl libpve-access-control
  libpve-cluster-api-perl libpve-cluster-perl libpve-common-perl libpve-guest-common-perl
  libpve-http-server-perl libpve-network-perl libpve-notify-perl libpve-rs-perl libpve-storage-perl
  libpython3.11-minimal libpython3.11-stdlib libqt5core5a libqt5dbus5 libqt5network5 libseccomp2 libsmartcols1
  libsqlite3-0 libssl3 libsystemd-shared libsystemd0 libudev1 libuuid1 libuutil3linux libzfs4linux
  libzpool5linux locales mount nano novnc-pve open-iscsi openssh-client openssh-server openssh-sftp-server
  openssl postfix proxmox-archive-keyring proxmox-backup-client proxmox-backup-file-restore proxmox-firewall
  proxmox-kernel-6.8 proxmox-mail-forward proxmox-offline-mirror-docs proxmox-offline-mirror-helper
  proxmox-termproxy proxmox-ve proxmox-widget-toolkit pve-cluster pve-container pve-docs pve-esxi-import-tools
  pve-firewall pve-firmware pve-ha-manager pve-i18n pve-manager pve-qemu-kvm python3-idna python3.11
  python3.11-minimal qemu-server spl sqlite3 ssh systemd systemd-boot systemd-boot-efi systemd-sysv udev
  util-linux util-linux-extra zfs-initramfs zfs-zed zfsutils-linux
125 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 371 MB of archives.
After this operation, 677 MB of additional disk space will be used.
   ...
Processing triggers for dbus (1.14.10-1~deb12u1) ...
Processing triggers for debianutils (5.7-0.5~deb12u1) ...
Processing triggers for mailcap (3.70+nmu1) ...
Processing triggers for libc-bin (2.36-9+deb12u9) ...
Processing triggers for systemd (252.31-1~deb12u1) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for initramfs-tools (0.142+deb12u1) ...
update-initramfs: Generating /boot/initrd.img-6.8.12-4-pve
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.
Couldn't find EFI system partition. It is recommended to mount it to /boot or /efi.
Alternatively, use --esp-path= to specify path to mount point.
Processing triggers for pve-ha-manager (4.0.6) ...
```

**注意点:**
- パッケージの更新には時間がかかる場合があります。
- 予め、仮想マシンやコンテナを停止した上で実施してください。

### **3. 再起動**
パッケージの更新後、システムを再起動します。

```bash
reboot
```

**再起動後の確認:**
- `pveversion`コマンドでバージョンが正しく更新されていることを確認します。

```bash
root@pve:~# pveversion
pve-manager/8.3.0/c1689ccb1065a83b (running kernel: 6.8.12-4-pve)
```

- クラスターのノード間通信や仮想マシンの起動を確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/15afef35-eed5-6f70-5521-9c5bc8f73fc0.png)

:::note warn
アップデート後WebUIにアクセスすると、上記画面のように古いバージョンが表示されることがあります。Webブラウザのキャッシュによる可能性があるため、ショートカットキー（例: Chromeでは Ctrl + Shift + R）を使用して強制リロードを行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/5cc150a4-8303-551d-7b6b-d74e53c01569.png)
:::

---

## **注意点**

1. **クラスター環境での作業**
   クラスター環境では、1つのノードずつ順番にバージョンアップを行う必要があります。他のノードに影響を与えないよう、作業中は仮想マシンやストレージの状態を慎重に監視してください。

2. **カスタム設定の注意**
   `/etc/pve`や`/etc/network/interfaces`などにカスタム設定がある場合は、アップグレード後に動作を確認し、必要に応じて設定を修正します。

---

## **トラブルシューティング**

1. **アップデートが失敗した場合**
   エラーメッセージを確認し、必要に応じて以下のコマンドでシステム状態を修復します。

```bash
dpkg --configure -a
apt install -f
```

2. **仮想マシンが起動しない場合**
   仮想マシンの設定ファイルを確認し、エラーを修正します。

```bash
qm config <VMID>
```

3. **ネットワークの問題**
   `/etc/network/interfaces`ファイルを確認し、設定を再適用します。

```bash
systemctl restart networking
```