# 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