mirror of
https://github.com/bashclub/miyagi-pbs-zfs.git
synced 2025-12-06 06:28:43 +00:00
42
README.md
42
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
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
@@ -1,4 +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"
|
||||
echo sleep 60
|
||||
|
||||
#Requirements for Myiagi ultimate Backup found in README! Always use a Config File!
|
||||
|
||||
@@ -13,6 +17,12 @@ 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
|
||||
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
|
||||
@@ -25,20 +35,53 @@ 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=$(which checkzfs)
|
||||
|
||||
# So one Day has 1440 Minutes, so we go condition Yellow on 1500
|
||||
$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
|
||||
# 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!"
|
||||
|
||||
scp /tmp/90000_checkzfs $SOURCEHOST:/var/lib/check_mk_agent/spool/90000_checkzfs_$(hostname)_$ZPOOLSRC
|
||||
fi
|
||||
|
||||
if [[ "$BACKUPSERVER" == "no" ]]
|
||||
then
|
||||
echo No Backup configured in this Run
|
||||
exit
|
||||
# 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
|
||||
[[ "$SHUTDOWN" == "yes" ]] && shutdown
|
||||
fi
|
||||
|
||||
|
||||
if [[ "$BACKUPSERVER" == "no" ]]; then
|
||||
echo No Backup configured in this Run
|
||||
[[ "$SHUTDOWN" == "no" ]] && exit
|
||||
fi
|
||||
|
||||
PRUNEJOB=$(ssh $PBSHOST proxmox-backup-manager prune-job list --output-format json-pretty | grep -m 1 "id" | cut -d'"' -f4)
|
||||
@@ -63,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}}'
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo command returned 0 is good
|
||||
@@ -76,6 +119,7 @@ fi
|
||||
|
||||
scp /tmp/90000_checkpbs root@$SOURCEHOST:/var/lib/check_mk_agent/spool
|
||||
|
||||
|
||||
###
|
||||
|
||||
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" ]]
|
||||
then
|
||||
apt dist-upgrade -y
|
||||
ssh $PBSHOST apt dist-upgrade -y
|
||||
ssh $PBSHOST apt update && apt dist-upgrade -y
|
||||
else
|
||||
echo no Updates configured - Consider updating more often!
|
||||
|
||||
fi
|
||||
|
||||
|
||||
if [[ "$SHUTDOWN" == "yes" ]]
|
||||
then
|
||||
shutdown now
|
||||
|
||||
Reference in New Issue
Block a user