From 72b73a3cb19040548e9a3ee0dde476d2caaff36d Mon Sep 17 00:00:00 2001 From: Chriz Date: Wed, 25 Sep 2024 10:49:31 +0200 Subject: [PATCH 01/10] Update README.md Restore Advices --- README.md | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d45b5a6..e8d161b 100644 --- a/README.md +++ b/README.md @@ -67,4 +67,44 @@ Updating the Host and PBS TURNING OFF THE MACHINE!!! Test Targets Tank if less than 75% free, otherwise report to Check_MK Test Disks after PBS Maintenance, before shutdown with SmartCTL Short Test and report to Check_MK -Support multiple Sources \ No newline at end of file +Support multiple Sources + +So how do you get back to Business, if your Source fails + +Option A + +Assign a new Proxmox Machine to your Proxmox Backup Server and restore all necessary VMs and Containers + +Option B + +Use your Miyagi System to get live + +1. Rename your Datasets + + zfs create rpool/data/pveold + zfs rename rpool/repl/pveold/data rpool/data/pveold/data + +2. Create a new PVE Datastore + + Type ZFS + Name rpool-data-pveold-data ZFS-POOL: rpool/data/pveold/data Content: Disk Image, Container + Check if your Disks show up in the new Datastore + +3. Copy Configs (Please verify VMID from PBS ist not on Source System + + cp rpool/data/pveold/PMconf/etc/pve/nodes/pveold/qemu-server /etc/pve/qemu-server + cp rpool/data/pveold/PMconf/etc/pve/nodes/pveold/lxc /etc/pve/lxc + +4. Rename Datastore Names in new Configs + + cd /etc/pve/qemu-server + sed -i 's/local-zfs:/rpool-data-pveold-data/g' *.conf + + cd /etc/pve/lxc + sed -i 's/local-zfs:/rpool-data-pveold-data/g' *.conf + +5. Optional repeat this Steps for a Second ZFS Pool and be aware of duplicate Names +6. Start your VMs +7. optional: run our Postinstaller + + From 19cc5e2090955e5a2dfa342bf8c17d5e6410f159 Mon Sep 17 00:00:00 2001 From: Chriz Date: Wed, 27 Nov 2024 13:12:38 +0100 Subject: [PATCH 02/10] Update pbs-zfs-daily.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Check_MK Piggyback transfered via Sourcehost Don´t forget to add a Host in CMK named: miyagi-$SOURCEHOSTNAME-$(hostname) without Agent, Piggyback enabled! --- pbs-zfs-daily.sh | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pbs-zfs-daily.sh b/pbs-zfs-daily.sh index af5c9f1..43b95ca 100644 --- a/pbs-zfs-daily.sh +++ b/pbs-zfs-daily.sh @@ -1,5 +1,7 @@ #!/bin/bash +sleep 30 + #Requirements for Myiagi ultimate Backup found in README! Always use a Config File! while getopts "c:" arg; do @@ -13,6 +15,8 @@ done source $configfile +SOURCEHOSTNAME=$(ssh $SOURCEHOST hostname) + ssh root@$SOURCEHOST zfs set $ZPUSHTAG=all $ZFSROOT ssh root@$SOURCEHOST zfs set $ZPUSHTAG=all $ZFSSECOND ssh root@$SOURCEHOST zfs set $ZPUSHTAG=all rpool/pveconf #you have to use our postinstaller on source @@ -35,6 +39,21 @@ $CHECKZFS --source $SOURCEHOST --replicafilter "$ZFSTRGT/" --filter "#$ZFSROOT/| scp /tmp/90000_checkzfs $SOURCEHOST:/var/lib/check_mk_agent/spool/90000_checkzfs_$(hostname)_$ZPOOLSRC +echo "Don´t forget to add a Host in CMK named: miyagi-$SOURCEHOSTNAME-$(hostname) without Agent, Piggyback enabled!" +echo "<<<>>>" > 90000_miyagi-$SOURCEHOSTNAME-$(hostname) +/usr/bin/check_mk_agent >> 90000_miyagi-$SOURCEHOSTNAME-$(hostname) +echo "<<<<>>>>" >> 90000_miyagi-$SOURCEHOSTNAME-$(hostname) +scp ./90000_miyagi-$SOURCEHOSTNAME-$(hostname) $SOURCEHOST:/var/lib/check_mk_agent/spool + +if [[ "$UPDATES" == "yes" ]] +then + apt dist-upgrade -y + else + echo no Updates configured - Consider updating more often! + +fi + + if [[ "$BACKUPSERVER" == "no" ]] then echo No Backup configured in this Run @@ -76,6 +95,7 @@ fi scp /tmp/90000_checkpbs root@$SOURCEHOST:/var/lib/check_mk_agent/spool + ### ssh root@$SOURCEHOST pvesm set $BACKUPSTORE --disable 1 @@ -88,7 +108,6 @@ scp /tmp/90000_checkpbs root@$SOURCEHOST:/var/lib/check_mk_agent/spool if [[ "$UPDATES" == "yes" ]] then - apt dist-upgrade -y ssh $PBSHOST apt dist-upgrade -y else echo no Updates configured - Consider updating more often! From 9c3f49958158fed894e53088c5ccee70a80cf616 Mon Sep 17 00:00:00 2001 From: Chriz Date: Wed, 27 Nov 2024 13:13:06 +0100 Subject: [PATCH 03/10] Update config.example Less Config --- config.example | 1 - 1 file changed, 1 deletion(-) diff --git a/config.example b/config.example index ede3e11..eca102d 100644 --- a/config.example +++ b/config.example @@ -7,7 +7,6 @@ SHUTDOWN=no #No be there anymore UPDATES=yes #Do PVE and PBS Updates after run SOURCEHOST='192.168.50.200' # IP from Proxmox VE System to be backuped and replicated daily -SOURCEHOSTNAME='pve3' #Hostname of Proxmox VE System to be backuped and replicated daily #Replication ZFSROOT='rpool/data' #First Dataset/Datastoresourcepath from Proxmox VE System to be backuped and replicated daily From 152f4199cab5d2630e0ddedbdfd792038fd1d03a Mon Sep 17 00:00:00 2001 From: Chriz Date: Wed, 27 Nov 2024 13:31:53 +0100 Subject: [PATCH 04/10] Update pbs-zfs-daily.sh Update before Upgrade --- pbs-zfs-daily.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pbs-zfs-daily.sh b/pbs-zfs-daily.sh index 43b95ca..a90d4de 100644 --- a/pbs-zfs-daily.sh +++ b/pbs-zfs-daily.sh @@ -47,7 +47,7 @@ scp ./90000_miyagi-$SOURCEHOSTNAME-$(hostname) $SOURCEHOST:/var/lib/check_mk_a if [[ "$UPDATES" == "yes" ]] then - apt dist-upgrade -y + apt update && apt dist-upgrade -y else echo no Updates configured - Consider updating more often! @@ -108,7 +108,7 @@ scp /tmp/90000_checkpbs root@$SOURCEHOST:/var/lib/check_mk_agent/spool if [[ "$UPDATES" == "yes" ]] then - ssh $PBSHOST apt dist-upgrade -y + ssh $PBSHOST apt update && apt dist-upgrade -y else echo no Updates configured - Consider updating more often! From 1b538541e82dbc44c3656d5c9dba6cd0b6058f9a Mon Sep 17 00:00:00 2001 From: Chriz Date: Thu, 28 Nov 2024 16:31:24 +0100 Subject: [PATCH 05/10] Update pbs-zfs-daily.sh Bugfixes --- pbs-zfs-daily.sh | 47 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/pbs-zfs-daily.sh b/pbs-zfs-daily.sh index a90d4de..1e6c027 100644 --- a/pbs-zfs-daily.sh +++ b/pbs-zfs-daily.sh @@ -1,6 +1,7 @@ #!/bin/bash -sleep 30 +echo "Sleeping for one Minute to be interruped if necessary" +sleep 60 #Requirements for Myiagi ultimate Backup found in README! Always use a Config File! @@ -15,6 +16,10 @@ done source $configfile +# bashclub-zsync Part + +echo "Configuring and runnging bashclub-zsyncs Config in /etc/bashclub/$SOURCEHOST.conf" + SOURCEHOSTNAME=$(ssh $SOURCEHOST hostname) ssh root@$SOURCEHOST zfs set $ZPUSHTAG=all $ZFSROOT @@ -32,32 +37,50 @@ echo "zfs_auto_snapshot_label=$ZPUSHLABEL" >> /etc/bashclub/$SOURCEHOST.conf /usr/bin/bashclub-zsync -d -c /etc/bashclub/$SOURCEHOST.conf +# checkzfs Part CHECKZFS=$(which checkzfs) # So one Day has 1440 Minutes, so we go condition Yellow on 1500 +echo "Running checkzfs via $SOURCEHOSTNAME and this Miyagi Server" $CHECKZFS --source $SOURCEHOST --replicafilter "$ZFSTRGT/" --filter "#$ZFSROOT/|#$ZFSSECOND/" --threshold 1500,2000 --output checkmk --prefix pull-$(hostname):$ZPUSHTAG> /tmp/cmk_tmp.out && ( echo "<<>>" ; cat /tmp/cmk_tmp.out ) > /tmp/90000_checkzfs +echo "Copying checkzfs Results to $SOURCEHOSTNAME" scp /tmp/90000_checkzfs $SOURCEHOST:/var/lib/check_mk_agent/spool/90000_checkzfs_$(hostname)_$ZPOOLSRC -echo "Don´t forget to add a Host in CMK named: miyagi-$SOURCEHOSTNAME-$(hostname) without Agent, Piggyback enabled!" -echo "<<<>>>" > 90000_miyagi-$SOURCEHOSTNAME-$(hostname) -/usr/bin/check_mk_agent >> 90000_miyagi-$SOURCEHOSTNAME-$(hostname) -echo "<<<<>>>>" >> 90000_miyagi-$SOURCEHOSTNAME-$(hostname) -scp ./90000_miyagi-$SOURCEHOSTNAME-$(hostname) $SOURCEHOST:/var/lib/check_mk_agent/spool - +# Updating Miyagi Host to latest Proxmox VE (no major Version Upgrades!) if [[ "$UPDATES" == "yes" ]] then apt update && apt dist-upgrade -y + apt autopurge else - echo no Updates configured - Consider updating more often! + echo "No Updates configured - Consider updating more often!" fi +# Creating and moving Piggyback data to Sourcehost for soon shut down Miyagi Server +if [[ "$SHUTDOWN" == "yes" ]] +then -if [[ "$BACKUPSERVER" == "no" ]] -then -echo No Backup configured in this Run -exit + echo "Don´t forget to add a Host in CMK named: miyagi-$SOURCEHOSTNAME-$(hostname) without Agent, Piggyback enabled!" + echo "<<<>>>" > 90000_miyagi-$SOURCEHOSTNAME-$(hostname) + /usr/bin/check_mk_agent >> 90000_miyagi-$SOURCEHOSTNAME-$(hostname) + echo "<<<<>>>>" >> 90000_miyagi-$SOURCEHOSTNAME-$(hostname) + scp ./90000_miyagi-$SOURCEHOSTNAME-$(hostname) $SOURCEHOST:/var/lib/check_mk_agent/spool + + else + echo "No Shutdown configured, so we don´t do any Piggyback Data" +fi + + +if [[ "$BACKUPSERVER" == "no" ]]; then + echo No Backup configured in this Run + [[ "$SHUTDOWN" == "yes" ]] && shutdown +fi + + +if [[ "$BACKUPSERVER" == "no" ]]; then + echo No Backup configured in this Run + [[ "$SHUTDOWN" == "yes" ]] && exit fi PRUNEJOB=$(ssh $PBSHOST proxmox-backup-manager prune-job list --output-format json-pretty | grep -m 1 "id" | cut -d'"' -f4) From 912d580c6c1c8607be6d79597066c55f37f4d261 Mon Sep 17 00:00:00 2001 From: Chriz Date: Thu, 28 Nov 2024 16:35:36 +0100 Subject: [PATCH 06/10] Update pbs-zfs-daily.sh no --- pbs-zfs-daily.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pbs-zfs-daily.sh b/pbs-zfs-daily.sh index 1e6c027..b8a5d5c 100644 --- a/pbs-zfs-daily.sh +++ b/pbs-zfs-daily.sh @@ -80,7 +80,7 @@ fi if [[ "$BACKUPSERVER" == "no" ]]; then echo No Backup configured in this Run - [[ "$SHUTDOWN" == "yes" ]] && exit + [[ "$SHUTDOWN" == "no" ]] && exit fi PRUNEJOB=$(ssh $PBSHOST proxmox-backup-manager prune-job list --output-format json-pretty | grep -m 1 "id" | cut -d'"' -f4) From c3e665bdfdf217c06158642ae48f0f7a2adb33b2 Mon Sep 17 00:00:00 2001 From: Chriz Date: Thu, 5 Dec 2024 15:54:05 +0100 Subject: [PATCH 07/10] Update pbs-zfs-daily.sh Major improvements Logging --- pbs-zfs-daily.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pbs-zfs-daily.sh b/pbs-zfs-daily.sh index b8a5d5c..4c54056 100644 --- a/pbs-zfs-daily.sh +++ b/pbs-zfs-daily.sh @@ -1,7 +1,8 @@ #!/bin/bash +PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" echo "Sleeping for one Minute to be interruped if necessary" -sleep 60 +echo sleep 60 #Requirements for Myiagi ultimate Backup found in README! Always use a Config File! @@ -137,7 +138,6 @@ then fi - if [[ "$SHUTDOWN" == "yes" ]] then shutdown now From 41d3e9a0ae698dbd542d2a1fef35b83731e3d503 Mon Sep 17 00:00:00 2001 From: Chriz Date: Tue, 31 Dec 2024 10:51:08 +0100 Subject: [PATCH 08/10] Update pbs-zfs-daily.sh --change-detection-mode metadata for faster backups --- pbs-zfs-daily.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pbs-zfs-daily.sh b/pbs-zfs-daily.sh index 4c54056..b2d507b 100644 --- a/pbs-zfs-daily.sh +++ b/pbs-zfs-daily.sh @@ -106,7 +106,7 @@ fi ### one Day is 86400 Seconds, so we going Condition grey if no new Status File will be pushed -ssh root@$SOURCEHOST vzdump --node $SOURCEHOSTNAME --storage $BACKUPSTORE --exclude $BACKUPEXCLUDE --mode snapshot --all 1 --notes-template '{{guestname}}' +ssh root@$SOURCEHOST vzdump --node $SOURCEHOSTNAME --storage $BACKUPSTORE --exclude $BACKUPEXCLUDE --mode snapshot --all 1 --notes-template '{{guestname}}' --change-detection-mode metadata if [ $? -eq 0 ]; then echo command returned 0 is good From 3662e477981a439a4965bad16840474ef5d1988c Mon Sep 17 00:00:00 2001 From: Chriz Date: Tue, 31 Dec 2024 13:53:38 +0100 Subject: [PATCH 09/10] Update pbs-zfs-daily.sh undo --- pbs-zfs-daily.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pbs-zfs-daily.sh b/pbs-zfs-daily.sh index b2d507b..cf0db8c 100644 --- a/pbs-zfs-daily.sh +++ b/pbs-zfs-daily.sh @@ -106,7 +106,7 @@ fi ### one Day is 86400 Seconds, so we going Condition grey if no new Status File will be pushed -ssh root@$SOURCEHOST vzdump --node $SOURCEHOSTNAME --storage $BACKUPSTORE --exclude $BACKUPEXCLUDE --mode snapshot --all 1 --notes-template '{{guestname}}' --change-detection-mode metadata +ssh root@$SOURCEHOST vzdump --node $SOURCEHOSTNAME --storage $BACKUPSTORE --exclude $BACKUPEXCLUDE --mode snapshot --all 1 --notes-template '{{guestname}}' if [ $? -eq 0 ]; then echo command returned 0 is good From 64e9733f86a52829ea3a9164a4e0f7b8932d1050 Mon Sep 17 00:00:00 2001 From: Chriz Date: Tue, 15 Apr 2025 15:38:38 +0200 Subject: [PATCH 10/10] Update pbs-zfs-daily.sh Optimized for new bashclub-zsync and check_mk Piggyback if system hat set to shutdown --- pbs-zfs-daily.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pbs-zfs-daily.sh b/pbs-zfs-daily.sh index cf0db8c..1369124 100644 --- a/pbs-zfs-daily.sh +++ b/pbs-zfs-daily.sh @@ -35,18 +35,18 @@ echo "snapshot_filter=$ZPUSHFILTER" >> /etc/bashclub/$SOURCEHOST.conf echo "min_keep=$ZPUSHMINKEEP" >> /etc/bashclub/$SOURCEHOST.conf echo "zfs_auto_snapshot_keep=$ZPUSHKEEP" >> /etc/bashclub/$SOURCEHOST.conf echo "zfs_auto_snapshot_label=$ZPUSHLABEL" >> /etc/bashclub/$SOURCEHOST.conf +echo "zfs_auto_snapshot_engine=internal" >> /etc/bashclub/$SOURCEHOST.conf +echo "checkzfs_disabled=0" >> /etc/bashclub/$SOURCEHOST.conf +echo "checkzfs_local=0" >> /etc/bashclub/$SOURCEHOST.conf +echo "checkzfs_prefix=miyagi-$SOURCEHOSTNAME-$HOSTNAME" >> /etc/bashclub/$SOURCEHOST.conf +echo "checkzfs_max_age=1500,2000" >> /etc/bashclub/$SOURCEHOST.conf +echo "checkzfs_max_snapshot_count=180,200" >> /etc/bashclub/$SOURCEHOST.conf +echo "checkzfs_spool=1" >> /etc/bashclub/$SOURCEHOST.conf +echo "checkzfs_spool_maxage=90000" >> /etc/bashclub/$SOURCEHOST.conf + /usr/bin/bashclub-zsync -d -c /etc/bashclub/$SOURCEHOST.conf -# checkzfs Part -CHECKZFS=$(which checkzfs) - -# So one Day has 1440 Minutes, so we go condition Yellow on 1500 -echo "Running checkzfs via $SOURCEHOSTNAME and this Miyagi Server" -$CHECKZFS --source $SOURCEHOST --replicafilter "$ZFSTRGT/" --filter "#$ZFSROOT/|#$ZFSSECOND/" --threshold 1500,2000 --output checkmk --prefix pull-$(hostname):$ZPUSHTAG> /tmp/cmk_tmp.out && ( echo "<<>>" ; cat /tmp/cmk_tmp.out ) > /tmp/90000_checkzfs - -echo "Copying checkzfs Results to $SOURCEHOSTNAME" -scp /tmp/90000_checkzfs $SOURCEHOST:/var/lib/check_mk_agent/spool/90000_checkzfs_$(hostname)_$ZPOOLSRC # Updating Miyagi Host to latest Proxmox VE (no major Version Upgrades!) if [[ "$UPDATES" == "yes" ]]