====== PVE Upgrade von Version 5.x zu 6.x ====== Anhand dieser Doku sollte ein Update von PVE Version 5.x zu 6.x durchführbar sein. \\ Doku von Proxmox selbst: [[https://pve.proxmox.com/wiki/Upgrade_from_5.x_to_6.0|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. \\ Hier 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 das 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]]