User Tools

Site Tools


virtualisierung:proxmox:pve_upgrade_5.x_to_6.x

This is an old revision of the document!


PVE Upgrade von Version 5.x zu 6.x

Anhand dieser Doku sollte ein Update von PVE Version 4.x zu 5.x durchführbar sein.
Doku von Proxmox selbst: https://pve.proxmox.com/wiki/Upgrade_from_5.x_to_6.0

Backup Config Files

mkdir -p /root/backup/`date '+%Y%m%d'`
tar -czf /root/backup/`date '+%Y%m%d'`/pve-cluster-backup.tar.gz /var/lib/pve-cluster
tar -czf /root/backup/`date '+%Y%m%d'`/ssh-backup.tar.gz /root/.ssh
tar -czf /root/backup/`date '+%Y%m%d'`/corosync-backup.tar.gz /etc/corosync
cp /etc/hosts /root/backup/`date '+%Y%m%d'`/
cp /etc/network/interfaces /root/backup/`date '+%Y%m%d'`/


Löschen des Backup Patches (wenn vorhanden)

Vor jedem Update (dist-Upgrade) muss der Patch gelöscht werden.

dpkg -r pve-xdelta3
bash pve-4.4-13-diff-backup-addon revert


Patchen bis zum aktuellen Stand von 5.x

apt-get update
apt-get dist-upgrade
reboot


Upgrade Check

PVE bringt einen Upgrade Check mit. Mit diesem kann man einmal checken lassen ob ein Upgrade möglich wäre.
Wir werden wir sehen das wir Corosync selbst Upgraden müssen.

Beispiel:
root@pve03:~# pve5to6
= CHECKING VERSION INFORMATION FOR PVE PACKAGES =

Checking for package updates..
PASS: all packages uptodate

Checking proxmox-ve package version..
PASS: proxmox-ve package has version >= 5.4-2

Checking running kernel version..
PASS: expected running kernel '4.15.18-24-pve'.

= CHECKING CLUSTER HEALTH/SETTINGS =

PASS: systemd unit 'pve-cluster.service' is in state 'active'
PASS: systemd unit 'corosync.service' is in state 'active'
PASS: Cluster Filesystem is quorate.

Analzying quorum settings and state..
INFO: configured votes - nodes: 3
INFO: configured votes - qdevice: 0
INFO: current expected votes: 3
INFO: current total votes: 3

Checking nodelist entries..
PASS: pve02: ring0_addr is configured to use IP address '172.16.66.42'
PASS: pve03: ring0_addr is configured to use IP address '172.16.66.43'
PASS: pve01: ring0_addr is configured to use IP address '172.16.66.41'

Checking totem settings..
PASS: Corosync transport set to implicit default.
PASS: Corosync encryption and authentication enabled.

INFO: run 'pvecm status' to get detailed cluster status..

= CHECKING INSTALLED COROSYNC VERSION =

FAIL: corosync 2.x installed, cluster-wide upgrade to 3.x needed!

= CHECKING HYPER-CONVERGED CEPH STATUS =

SKIP: no hyper-converged ceph setup detected!

= CHECKING CONFIGURED STORAGES =

PASS: storage 'storage' enabled and active.
PASS: storage 'local' enabled and active.

= MISCELLANEOUS CHECKS =

INFO: Checking common daemon services..
PASS: systemd unit 'pveproxy.service' is in state 'active'
PASS: systemd unit 'pvedaemon.service' is in state 'active'
PASS: systemd unit 'pvestatd.service' is in state 'active'
INFO: Checking for running guests..
PASS: no running guest detected.
INFO: Checking if the local node's hostname 'pve03' is resolvable..
INFO: Checking if resolved IP is configured on local node..
PASS: Resolved node IP '172.16.66.43' configured and active on single interface.
INFO: Check node certificate's RSA key size
PASS: Certificate 'pve-root-ca.pem' passed Debian Busters security level for TLS connections (4096 >= 2048)
PASS: Certificate 'pve-ssl.pem' passed Debian Busters security level for TLS connections (2048 >= 2048)
INFO: Checking KVM nesting support, which breaks live migration for VMs using it..
SKIP: no kvm module found

= SUMMARY =

TOTAL:    23
PASSED:   20
SKIPPED:  2
WARNINGS: 0
FAILURES: 1

ATTENTION: Please check the output for detailed information!
Try to solve the problems one at a time and then run this checklist tool again.


SSH Cipher

Bei älteren Installationen kann es dazu kommen das der PVE Upgrade Check sich beschwert wegen zu alter SSH Cipher.
Wenn dies der Fall ist kann man diese in der Config übernehmen

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com


Upgrade von Corosync

Es muss ein Update von Corosync Version 2 auf Version 3 durchgeführt werden. Die beiden Versionen sind nicht kompatibel untereinander. Bei diesem Upgrade können die VMs und die PVE Hosts am laufen bleiben. Wir müssen jedoch HA abschalten und verlieren unser Quorum.
Dieser Schritt ist auf allen Hosts nötig bevor man das PVE Upgrade durchführen kann. Daher sollte dies gleich auf dem ganzen Cluster angewendet werden!

Abschaltung von HA

Stoppen vom PVE Local HA Ressource Manager Daemon auf allen Nodes

systemctl stop pve-ha-lrm

Wenn der pve-ha-lrm stop Befehl auf ALLEN Nodes durchgeführt wurde kann mit dem stoppen von HA begonnen werden. Dieser Service MUSS gestoppt sein bevor man weiter machen kann.

Stoppen von PVE Cluster Ressource Manager Daemon auf allen Nodes

systemctl stop pve-ha-crm


Upgrade Corosync

Installieren von Corosync.
Diese Befehle sind auf allen Nodes durchzuführen.

echo "deb http://download.proxmox.com/debian/corosync-3/ stretch main" > /etc/apt/sources.list.d/corosync3.list
apt update
apt list --upgradable

INFO: Jede Node die das Corosync Upgrade einspielt hat ist nicht mehr kompatibel mit Nodes in Corosync Version 2 und bekommt kein Quorum mehr.
Erst wenn mehr als 50% der Nodes das Upgrade eingespielt haben kann wieder ein Quorum hergestellt werden.
Daher sollte man den kompletten Cluster auf Corosync Version 3 heben auch wenn man das PVE Upgrade selbst nicht auf allen Nodes am selbst Tag durchführt.
Die Nodes werden im WebGUI auch als Offline angezeigt beim Upgrade. Keine Sorge das ist ok.
Dies liegt daran eine Node mit Corosync 2 die Nodes mit Corosync 3 nicht mehr sehen kann. Umgekehrt ist dies genauso.

ENTSCHEIDUNG: Man kann das Corosync Upgrade entweder schön langsam jede Node nach der anderen einspielen oder man spielt es gleichzeitig auf allen Nodes ein. Dafür benötigt man Royalts oder tmux oder einen anderen SSH Client der Befehle paralell absetzten kann.

Download der Packages

Zur Sicherheit einmal die Packete runterladen damit sie lokal vorliegen

apt dist-upgrade --download-only


Upgrade der Nodes

Upgrade Corosync auf allen Nodes. (Ich habe mich immer für Node nach Node entscheiden)

apt dist-upgrade


Status Check

Der Status vom Quorum kann jederzeit auf jeder Nodes abfragt werden.

pvecm status


Wenn auf allen Nodes das Upgrade durchgeführt wurde sollte man sich den Status des Clusters ansehen

pvecm nodes
pvecm status


Aktivierung von HA

Starten vom PVE Local HA Ressource Manager Daemon auf allen Nodes

systemctl start pve-ha-lrm

Wenn der pve-ha-lrm start Befehl auf ALLEN Nodes durchgeführt wurde kann mit dem starten von HA begonnen werden.

Starten von PVE Cluster Ressource Manager Daemon auf allen Nodes

systemctl start pve-ha-crm


Upgrade Check - Wiederholen

pve5to6


Jetzt sollte alles grün sein ausser wenn aktive VMs auf einer Nodes laufen. Diese müssen natürlich migriert werden. ACHTUNG: VMs können von PVE Nodes Version 5 auf Version 6 online migriert werden. Es können aber KEINE VMs von Version 6 auf Version 5 migriert werden. Sprich wenn eine PVE Node das Upgrade auf Version 6 erhalten hat können von dort keine VMs mehr auf eine alte PVE Server migriert werden.

Upgrade PVE auf Version 6

Ändern der Apt Sourcen

Ändern alle Debain Sources

sed -i 's/stretch/buster/g' /etc/apt/sources.list



Deaktivieren ALLER PVE Version 5 Repos und ändern auf Version 6

Für Enterprise: sed -i -e 's/stretch/buster/g' /etc/apt/sources.list.d/pve-enterprise.list
Für Non-Sub: sed -i -e 's/stretch/buster/g' /etc/apt/sources.list.d/pve-install-repo.list 
echo "deb http://download.proxmox.com/debian/ceph-luminous buster main" > /etc/apt/sources.list.d/ceph.list



Eventuell muss der Filename angepasst werden.
Bitte nach den sed Befehlen eine optische Kontrolle der Files!
Wenn es wo Backports Repos konfiguriert sind müssen diese gelöscht werden!

Upgrade PVE

Upgrade auf Debian 10 (Buster) und PVE 6.x (bei mir hat das Upgrade auf einer NVMe SSD ca. 6 Minuten gedauert)

apt update
apt dist-upgrade



Fragen die einem gestellt werden:

  • Keyboard layout: German
  • Configuration file '/etc/issue' → Y
  • Restart Services → Y
  • Configuration file '/etc/systemd/timesyncd.conf' → N
  • Configuration file '/etc/apt/sources.list.d/pve-enterprise.list' → N


reboot


Aufräumen

Nach dem Upgrade kann das Corosync 3 Repo wieder gelöscht werden

rm /etc/apt/sources.list.d/corosync3.list
apt update


Installieren des Backup Patches

Falls man den Backup Patch nicht entfernen konnte vor dem Updaten sind hier noch ein paar Schritte mehr zu machen

apt-get --reinstall install pve-manager qemu-server libpve-storage-perl
reboot
dpkg -r pve-xdelta3

Wenn der Patch erfolgreich entfernt werden konnte vor dem Update kann man hier beginnen

apt-get install git
cd /root
rm -rf pve-patches
git clone https://github.com/ayufan/pve-patches
cd pve-patches
bash pve-6.0-48-diff-backup-addon apply
systemctl status pveproxy.service
systemctl status pvedaemon.service
dpkg -i pve-xdelta3_3.0.6-1_amd64.deb


Sonstiges

Falls man einen Ceph Cluster am laufen hat muss hier noch auf Nautilus umgestellt werden. Dazu bitte in die Doku schauen https://pve.proxmox.com/wiki/Upgrade_from_5.x_to_6.0

virtualisierung/proxmox/pve_upgrade_5.x_to_6.x.1596014099.txt.gz · Last modified: by stone