mirror of
https://github.com/bashclub/miyagi-pbs-zfs.git
synced 2025-12-06 06:28:43 +00:00
Merge branch 'dev' into main
This commit is contained in:
70
README.md
70
README.md
@@ -0,0 +1,70 @@
|
|||||||
|
# miyagi-pbs-zfs
|
||||||
|
Secure Proxmox PVE with Proxmox Backup Server PBS and ZFS Pull Replication with a mostly turned off System
|
||||||
|
Optimize Processes without colliding Replications, Backups, Monitorings or Scrubs
|
||||||
|
Save lot of Money with less performant Hardware
|
||||||
|
|
||||||
|
Start it with bash miyagi-pbs-zfs -c configfile
|
||||||
|
|
||||||
|
There are german payed Lessons here:
|
||||||
|
14. + 16.05.2024 (13-17h) - Replikationen und Backups Trojanersicher (V2) - on https://cloudisevil.com
|
||||||
|
|
||||||
|
You also can searh vor sysops.tv or zfs. rocks on YouTube #miyagi - an english Tutorial will follow!
|
||||||
|
|
||||||
|
What it does
|
||||||
|
Miyagi said, best defense, no be there
|
||||||
|
|
||||||
|
Usecase
|
||||||
|
Proxmox Backupserver is running unnecessarly 24/7
|
||||||
|
ZFS Replication is usually done by a zfs send, so its a push
|
||||||
|
|
||||||
|
What if our Backup/Replicaserver is turned off most the time, nobody can attack it
|
||||||
|
|
||||||
|
Consider not using a Gateway, use Routes!
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
|
||||||
|
Proxmox with ZFS on Host to Backup/Replicate - we recommend check_mk Agent for automaticly added Tests
|
||||||
|
Proxmox with ZFS on Target Machine - it´s WOL MAC Address
|
||||||
|
Proxmox Backup Server as a VM oder better PCT on Target machine
|
||||||
|
Proxmox Backup Server Datastore has to be Setup on Source
|
||||||
|
Your contet of your Public Key of the Target Host .ssh/id_rsa.pub added to
|
||||||
|
Host to Backup .ssh/authorized_keys
|
||||||
|
Proxmox Backup Server on Target Host .ssh/authorized_keys
|
||||||
|
ssh one from your Target Host to Source Host and PBS to confirm Host Key with a yes
|
||||||
|
|
||||||
|
At all Proxmox 'apt install zfs-auto-snapshot -y'
|
||||||
|
Target Hosts needs the following tools to be installed
|
||||||
|
|
||||||
|
https://github.com/bashclub/zsync
|
||||||
|
https://github.com/bashclub/check-zfs-replication
|
||||||
|
|
||||||
|
Any Host waking up the Target Host or a daily Cronjob
|
||||||
|
|
||||||
|
What we do...
|
||||||
|
|
||||||
|
Turning on the Computer with a @reboot Cron
|
||||||
|
|
||||||
|
@reboot /root/pbs-zfs-daily.sh -c 200-ssd.conf && /root/pbs-zfs-daily.sh -c 200-hdd.conf
|
||||||
|
|
||||||
|
So Miyagi at this point can pull two ZFS-Datastores to one Target Datastore, using the full Path of ZFS for Naming.
|
||||||
|
If you have multiple Target Datasets, please run multiple Configs and disable Proxmox Backup Server!
|
||||||
|
Miyagi will tag your Source for Replication with Zsync!
|
||||||
|
|
||||||
|
Replicating by a Pull with https://github.com/bashclub-zsync
|
||||||
|
Pushing a Report to Proxmox Source Host, monitored by Check_MK unsing https://github.com/bashclub/checkzfs
|
||||||
|
The Report will be found by Check_MK´s built in Autdiscovery for new Services.
|
||||||
|
Data will be valid vor about one Day (90000s) bevore it expires.
|
||||||
|
So there nothing can go wrong!
|
||||||
|
|
||||||
|
Regarding to the Weekday doing Maintenance on Proxmox Backup Server for getting more free Space.
|
||||||
|
Triggering a Push Backup with PBS (only Way to do) Backup to PBS and checking Exitcode for Report
|
||||||
|
Reporting PBS Result with 100% certainty in compact OK/WARN State to backuped PVE Host using Check_MK
|
||||||
|
|
||||||
|
Verifying older Backups
|
||||||
|
Protecting the PBS Backups with a ZFS Snapshot
|
||||||
|
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
|
||||||
@@ -1,27 +1,33 @@
|
|||||||
|
#Edit all Variables for best Experience
|
||||||
|
|
||||||
|
SSHPORT='22' #SSH Port, usually default 22 internally
|
||||||
|
BACKUPSERVER=no #use yes for triggering Proxmox Backup to Store
|
||||||
|
MAINTDAY=7 #1 Monday to 7 Sunday, dont start your System too late
|
||||||
|
SHUTDOWN=no #No be there anymore
|
||||||
|
|
||||||
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
|
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
|
ZFSROOT='rpool/data' #First Dataset/Datastoresourcepath from Proxmox VE System to be backuped and replicated daily
|
||||||
ZFSSECOND='rpool-hdd/data' #Optional second Dataset
|
ZFSSECOND='rpool-hdd/data' #Optional second Dataset
|
||||||
ZFSTRGT='rpool-ssd1/repl/pve200' #This pulling Machines Target ZFS Sourcepath
|
ZFSTRGT='rpool-ssd1/repl/pve200' #This pulling Machines Target ZFS Sourcepath
|
||||||
|
|
||||||
|
#Prevent Scrubs on Backups and Replications
|
||||||
ZPOOLSRC=rpool #First Pool/Tank from Proxmox VE System to be backuped and replicated daily
|
ZPOOLSRC=rpool #First Pool/Tank from Proxmox VE System to be backuped and replicated daily
|
||||||
ZPOOLDST=rpool #This pulling Machines Pool/Tank
|
ZPOOLDST=rpool #This pulling Machines Pool/Tank
|
||||||
|
|
||||||
|
#ZSYNC
|
||||||
ZPUSHTAG=bashclub:zsync-198-ssd #ZFS User parameter will be set on ZFSROOT and ZFSSECOND to select.
|
ZPUSHTAG=bashclub:zsync-198-ssd #ZFS User parameter will be set on ZFSROOT and ZFSSECOND to select.
|
||||||
ZPUSHMINKEEP=3 #Keep min x Snapshots on all Source Datasets to resume Replication
|
ZPUSHMINKEEP=3 #Keep min x Snapshots on all Source Datasets to resume Replication
|
||||||
ZPUSHKEEP=14 #Number of Snapshots with ZPUSHLABEL
|
ZPUSHKEEP=14 #Number of Snapshots with ZPUSHLABEL
|
||||||
ZPUSHLABEL=zsync-rz #Suffix for ZFS-Auto-Snapshot Engine
|
ZPUSHLABEL=zsync-rz #Suffix for ZFS-Auto-Snapshot Engine
|
||||||
ZPUSHFILTER="" #ZPUSHLABEL will be replicated. So you can add more Patterns from ZFS, line hourly, daily, weekly, monthly.
|
ZPUSHFILTER="" #ZPUSHLABEL will be replicated. So you can add more Patterns from ZFS, line hourly, daily, weekly, monthly.
|
||||||
|
|
||||||
|
#Backup
|
||||||
PBSHOST='192.168.50.199' #IP from your Proxmox Backupserver - dont forget to add your hosts public key to PBS authorized keys
|
PBSHOST='192.168.50.199' #IP from your Proxmox Backupserver - dont forget to add your hosts public key to PBS authorized keys
|
||||||
BACKUPSTORE=backup #Datastorename configured in your Proxmox VE System to be backuped and replicated daily
|
BACKUPSTORE=backup #Datastorename configured in your Proxmox VE System to be backuped and replicated daily
|
||||||
BACKUPSTOREPBS=backup #Datastorename configured in your Proxmox Backup Server
|
BACKUPSTOREPBS=backup #Datastorename configured in your Proxmox Backup Server
|
||||||
BACKUPEXCLUDE='124,3021,3022,3023,3251,3252,3253,3254' #Machines to be excluded from Proxmox Backup
|
BACKUPEXCLUDE='124,3021,3022,3023,3251,3252,3253,3254' #Machines to be excluded from Proxmox Backup
|
||||||
REPLEXCLUDE=$BACKUPEXCLUDE
|
REPLEXCLUDE=$BACKUPEXCLUDE
|
||||||
|
|
||||||
SSHPORT='22' #SSH Port, usually default 22 internally
|
|
||||||
|
|
||||||
BACKUPSERVER=no
|
|
||||||
|
|
||||||
MAINTDAY=7
|
|
||||||
|
|
||||||
SHUTDOWN=no
|
|
||||||
|
|||||||
Reference in New Issue
Block a user