mirror of
https://github.com/bashclub/miyagi-pbs-zfs.git
synced 2025-12-06 09:28:44 +00:00
40
README.md
40
README.md
@@ -68,3 +68,43 @@ TURNING OFF THE MACHINE!!!
|
|||||||
Test Targets Tank if less than 75% free, otherwise report to Check_MK
|
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
|
Test Disks after PBS Maintenance, before shutdown with SmartCTL Short Test and report to Check_MK
|
||||||
Support multiple Sources
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ SHUTDOWN=no #No be there anymore
|
|||||||
UPDATES=yes #Do PVE and PBS Updates after run
|
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
|
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
|
#Replication
|
||||||
ZFSROOT='rpool/data' #First Dataset/Datastoresourcepath from Proxmox VE System to be backuped and replicated daily
|
ZFSROOT='rpool/data' #First Dataset/Datastoresourcepath from Proxmox VE System to be backuped and replicated daily
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/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"
|
||||||
|
echo sleep 60
|
||||||
|
|
||||||
#Requirements for Myiagi ultimate Backup found in README! Always use a Config File!
|
#Requirements for Myiagi ultimate Backup found in README! Always use a Config File!
|
||||||
|
|
||||||
@@ -13,6 +17,12 @@ done
|
|||||||
|
|
||||||
source $configfile
|
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
|
ssh root@$SOURCEHOST zfs set $ZPUSHTAG=all $ZFSROOT
|
||||||
ssh root@$SOURCEHOST zfs set $ZPUSHTAG=all $ZFSSECOND
|
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
|
ssh root@$SOURCEHOST zfs set $ZPUSHTAG=all rpool/pveconf #you have to use our postinstaller on source
|
||||||
@@ -25,20 +35,53 @@ echo "snapshot_filter=$ZPUSHFILTER" >> /etc/bashclub/$SOURCEHOST.conf
|
|||||||
echo "min_keep=$ZPUSHMINKEEP" >> /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_keep=$ZPUSHKEEP" >> /etc/bashclub/$SOURCEHOST.conf
|
||||||
echo "zfs_auto_snapshot_label=$ZPUSHLABEL" >> /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
|
/usr/bin/bashclub-zsync -d -c /etc/bashclub/$SOURCEHOST.conf
|
||||||
|
|
||||||
CHECKZFS=$(which checkzfs)
|
|
||||||
|
|
||||||
# So one Day has 1440 Minutes, so we go condition Yellow on 1500
|
# Updating Miyagi Host to latest Proxmox VE (no major Version Upgrades!)
|
||||||
$CHECKZFS --source $SOURCEHOST --replicafilter "$ZFSTRGT/" --filter "#$ZFSROOT/|#$ZFSSECOND/" --threshold 1500,2000 --output checkmk --prefix pull-$(hostname):$ZPUSHTAG> /tmp/cmk_tmp.out && ( echo "<<<local>>>" ; cat /tmp/cmk_tmp.out ) > /tmp/90000_checkzfs
|
if [[ "$UPDATES" == "yes" ]]
|
||||||
|
|
||||||
scp /tmp/90000_checkzfs $SOURCEHOST:/var/lib/check_mk_agent/spool/90000_checkzfs_$(hostname)_$ZPOOLSRC
|
|
||||||
|
|
||||||
if [[ "$BACKUPSERVER" == "no" ]]
|
|
||||||
then
|
then
|
||||||
|
apt update && apt dist-upgrade -y
|
||||||
|
apt autopurge
|
||||||
|
else
|
||||||
|
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
|
||||||
|
|
||||||
|
echo "Don´t forget to add a Host in CMK named: miyagi-$SOURCEHOSTNAME-$(hostname) without Agent, Piggyback enabled!"
|
||||||
|
echo "<<<<miyagi-$SOURCEHOSTNAME-$(hostname)>>>>" > 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
|
echo No Backup configured in this Run
|
||||||
exit
|
[[ "$SHUTDOWN" == "yes" ]] && shutdown
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$BACKUPSERVER" == "no" ]]; then
|
||||||
|
echo No Backup configured in this Run
|
||||||
|
[[ "$SHUTDOWN" == "no" ]] && exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PRUNEJOB=$(ssh $PBSHOST proxmox-backup-manager prune-job list --output-format json-pretty | grep -m 1 "id" | cut -d'"' -f4)
|
PRUNEJOB=$(ssh $PBSHOST proxmox-backup-manager prune-job list --output-format json-pretty | grep -m 1 "id" | cut -d'"' -f4)
|
||||||
@@ -76,6 +119,7 @@ fi
|
|||||||
|
|
||||||
scp /tmp/90000_checkpbs root@$SOURCEHOST:/var/lib/check_mk_agent/spool
|
scp /tmp/90000_checkpbs root@$SOURCEHOST:/var/lib/check_mk_agent/spool
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
ssh root@$SOURCEHOST pvesm set $BACKUPSTORE --disable 1
|
ssh root@$SOURCEHOST pvesm set $BACKUPSTORE --disable 1
|
||||||
@@ -88,14 +132,12 @@ scp /tmp/90000_checkpbs root@$SOURCEHOST:/var/lib/check_mk_agent/spool
|
|||||||
|
|
||||||
if [[ "$UPDATES" == "yes" ]]
|
if [[ "$UPDATES" == "yes" ]]
|
||||||
then
|
then
|
||||||
apt dist-upgrade -y
|
ssh $PBSHOST apt update && apt dist-upgrade -y
|
||||||
ssh $PBSHOST apt dist-upgrade -y
|
|
||||||
else
|
else
|
||||||
echo no Updates configured - Consider updating more often!
|
echo no Updates configured - Consider updating more often!
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [[ "$SHUTDOWN" == "yes" ]]
|
if [[ "$SHUTDOWN" == "yes" ]]
|
||||||
then
|
then
|
||||||
shutdown now
|
shutdown now
|
||||||
|
|||||||
Reference in New Issue
Block a user