From a1b8e75fef39388ec567db049f60aefce8f92ce3 Mon Sep 17 00:00:00 2001 From: jessikitty Date: Fri, 12 Dec 2025 09:54:03 +1100 Subject: [PATCH] Initial commit: Add README --- README.md | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..88184dd --- /dev/null +++ b/README.md @@ -0,0 +1,99 @@ +# Hyper-V Backup Scripts + +Automated backup solution for Hyper-V virtual machines with three-tier backup strategy. + +## Overview + +This repository contains PowerShell scripts for comprehensive Hyper-V VM backup and management: + +- **Daily Snapshots** - Checkpoint-based incremental backups (7pm) +- **Weekly Live Backups** - Live backups without downtime (Friday 8pm) +- **Monthly Full Backups** - Complete VM exports with shutdown (First Sunday 1am) + +## Features + +- 🔄 Load-balanced checkpoint management +- 💾 7-Zip compression for storage efficiency +- 📦 Three-phase workflow: local processing → compression → NAS transfer +- 🛡️ Critical server protection (business hours awareness) +- 📊 Comprehensive logging and error handling +- 🔧 Automated retention policies + +## Scripts + +### Daily-SnapshotBackup.ps1 +Creates daily VM checkpoints with staggered scheduling across two groups for load balancing. +- **Schedule**: 7pm daily +- **Retention**: 3 checkpoints per VM (6 days coverage) +- **Groups**: VMs divided into two groups with 2-day intervals + +### weekly_vmbackup.ps1 +Live backup using checkpoints without VM downtime. +- **Schedule**: Friday 8pm +- **Retention**: 2 weekly backups (local and NAS) +- **Compression**: 7-Zip (mx=7) + +### monthly_vmbackup.ps1 +Full shutdown export for complete VM backup. +- **Schedule**: First Sunday 1am +- **Retention**: 3 monthly backups (local and NAS) +- **Compression**: 7-Zip (mx=9 maximum) + +### HyperVCheck.ps1 +Quick status check for all VMs and their checkpoints. + +### HyperVDiag.ps1 +Comprehensive diagnostic tool for performance issues and merge operations. + +## Configuration + +All scripts use the following paths (configurable): +- **NAS**: `\\nas5362\Backups` +- **Temp**: `F:\TempBackup` +- **Local Backups**: `F:\Backups` +- **7-Zip**: `C:\Program Files\7-Zip\7z.exe` + +## Usage + +```powershell +# Daily snapshots - All VMs +.\Daily-SnapshotBackup.ps1 -AllVMs -MaxSnapshots 7 + +# Weekly backup - All VMs except critical servers +.\weekly_vmbackup.ps1 -AllVMs -ExcludeVMs @("PS01", "DC01") -MaxBackups 2 + +# Monthly backup - All VMs except critical servers +.\monthly_vmbackup.ps1 -AllVMs -ExcludeVMs @("PS01", "DC01") -MaxBackups 3 + +# Check VM status +.\HyperVCheck.ps1 + +# Run diagnostics +.\HyperVDiag.ps1 -Detailed -ExportReport +``` + +## Task Scheduler Integration + +All scripts are designed to run via Windows Task Scheduler: +- Daily: 7pm (snapshots) +- Weekly: Friday 8pm (live backups) +- Monthly: First Sunday 1am (full backups) + +## Infrastructure + +- **Platform**: Windows Server 2022 +- **Hyper-V**: Version 10.0.20348.1 +- **Storage**: F: drive for processing, NAS for long-term storage +- **Critical Servers**: PS01, DC01 (weekend-only maintenance) + +## Backup Strategy + +1. **Local Processing First**: All operations on F: drive +2. **Compression**: 7-Zip with appropriate levels +3. **Network Transfer**: Bulk copy after all VMs complete +4. **Immediate Cleanup**: Temp files removed after each VM +5. **Retention Management**: Automated on both local and NAS storage + +## License + +Personal use - Hyper-V backup automation \ No newline at end of file