mirror of
https://github.com/Grace-Solutions/PSProxmox.git
synced 2026-08-13 00:26:54 +00:00
213 lines
5.8 KiB
Markdown
213 lines
5.8 KiB
Markdown
# Cluster Backup and Restore
|
|
|
|
This guide explains how to backup and restore Proxmox VE clusters using the PSProxmox module.
|
|
|
|
## Prerequisites
|
|
|
|
- PSProxmox module installed
|
|
- Connection to a Proxmox VE server
|
|
- Administrative access to the Proxmox VE cluster
|
|
|
|
## Cluster Backups
|
|
|
|
Cluster backups in Proxmox VE contain the cluster configuration, including:
|
|
- Cluster configuration
|
|
- User and role configuration
|
|
- Storage configuration
|
|
- Network configuration
|
|
- Firewall configuration
|
|
- HA configuration
|
|
|
|
They do not include VM data or container data.
|
|
|
|
## Creating Cluster Backups
|
|
|
|
### Basic Backup
|
|
|
|
To create a basic cluster backup:
|
|
|
|
```powershell
|
|
# Connect to the Proxmox VE server
|
|
$credential = Get-Credential
|
|
$connection = Connect-ProxmoxServer -Server "proxmox.example.com" -Credential $credential -Realm "pam"
|
|
|
|
# Create a cluster backup
|
|
$backup = New-ProxmoxClusterBackup -Connection $connection
|
|
```
|
|
|
|
### Backup with Compression
|
|
|
|
To create a compressed cluster backup:
|
|
|
|
```powershell
|
|
$backup = New-ProxmoxClusterBackup -Connection $connection -Compress
|
|
```
|
|
|
|
### Backup and Wait for Completion
|
|
|
|
To create a backup and wait for it to complete:
|
|
|
|
```powershell
|
|
$backup = New-ProxmoxClusterBackup -Connection $connection -Compress -Wait -Timeout 600
|
|
```
|
|
|
|
This will wait up to 10 minutes (600 seconds) for the backup to complete.
|
|
|
|
## Listing Cluster Backups
|
|
|
|
To list all cluster backups:
|
|
|
|
```powershell
|
|
$backups = Get-ProxmoxClusterBackup -Connection $connection
|
|
```
|
|
|
|
To get a specific backup by ID:
|
|
|
|
```powershell
|
|
$backupID = "vzdump-cluster-2023_04_28-12_00_00.vma.lzo"
|
|
$backup = Get-ProxmoxClusterBackup -Connection $connection -BackupID $backupID
|
|
```
|
|
|
|
## Restoring Cluster Backups
|
|
|
|
### Basic Restore
|
|
|
|
To restore a cluster backup:
|
|
|
|
```powershell
|
|
$backupID = "vzdump-cluster-2023_04_28-12_00_00.vma.lzo"
|
|
Restore-ProxmoxClusterBackup -Connection $connection -BackupID $backupID -Force
|
|
```
|
|
|
|
The `-Force` parameter is required to confirm the restore operation.
|
|
|
|
### Restore and Wait for Completion
|
|
|
|
To restore a backup and wait for it to complete:
|
|
|
|
```powershell
|
|
Restore-ProxmoxClusterBackup -Connection $connection -BackupID $backupID -Force -Wait -Timeout 600
|
|
```
|
|
|
|
This will wait up to 10 minutes (600 seconds) for the restore to complete.
|
|
|
|
## Best Practices
|
|
|
|
### Backup Frequency
|
|
|
|
- Create regular backups of your cluster configuration
|
|
- Automate backup creation using scheduled tasks
|
|
- Keep multiple backups to ensure you can restore to different points in time
|
|
|
|
### Backup Verification
|
|
|
|
- Verify that backups are created successfully
|
|
- Test restoring backups in a non-production environment
|
|
- Document the backup and restore procedures
|
|
|
|
### Backup Storage
|
|
|
|
- Store backups in a secure location
|
|
- Consider storing backups off-site
|
|
- Implement backup rotation to manage storage space
|
|
|
|
## Example: Automated Backup Script
|
|
|
|
Here's an example script for automated cluster backups:
|
|
|
|
```powershell
|
|
# Automated-Cluster-Backup.ps1
|
|
# This script creates a cluster backup and logs the result
|
|
|
|
# Import the PSProxmox module
|
|
Import-Module PSProxmox
|
|
|
|
# Connect to the Proxmox VE server
|
|
$securePassword = ConvertTo-SecureString "password" -AsPlainText -Force
|
|
$connection = Connect-ProxmoxServer -Server "proxmox.example.com" -Username "root" -Password $securePassword -Realm "pam"
|
|
|
|
# Create a timestamp for the log
|
|
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
|
|
|
try {
|
|
# Create a cluster backup
|
|
$backup = New-ProxmoxClusterBackup -Connection $connection -Compress -Wait -Timeout 600
|
|
|
|
# Log the successful backup
|
|
$logMessage = "$timestamp - Backup created successfully: $($backup.BackupID)"
|
|
Add-Content -Path "C:\Logs\ProxmoxBackup.log" -Value $logMessage
|
|
}
|
|
catch {
|
|
# Log the error
|
|
$logMessage = "$timestamp - Backup failed: $($_.Exception.Message)"
|
|
Add-Content -Path "C:\Logs\ProxmoxBackup.log" -Value $logMessage
|
|
}
|
|
finally {
|
|
# Disconnect from the server
|
|
Disconnect-ProxmoxServer -Connection $connection
|
|
}
|
|
```
|
|
|
|
## Example: Restore Script
|
|
|
|
Here's an example script for restoring a cluster backup:
|
|
|
|
```powershell
|
|
# Restore-Cluster-Backup.ps1
|
|
# This script restores a cluster backup
|
|
|
|
# Import the PSProxmox module
|
|
Import-Module PSProxmox
|
|
|
|
# Connect to the Proxmox VE server
|
|
$credential = Get-Credential -Message "Enter your Proxmox VE credentials"
|
|
$connection = Connect-ProxmoxServer -Server "proxmox.example.com" -Credential $credential -Realm "pam"
|
|
|
|
# Get the latest backup
|
|
$latestBackup = Get-ProxmoxClusterBackup -Connection $connection | Sort-Object -Property Time -Descending | Select-Object -First 1
|
|
|
|
if ($latestBackup) {
|
|
Write-Host "Latest backup: $($latestBackup.BackupID) from $(Get-Date -Date $latestBackup.Time -Format 'yyyy-MM-dd HH:mm:ss')"
|
|
|
|
# Confirm the restore operation
|
|
$confirm = Read-Host "Do you want to restore this backup? (y/n)"
|
|
|
|
if ($confirm -eq "y") {
|
|
# Restore the backup
|
|
Restore-ProxmoxClusterBackup -Connection $connection -BackupID $latestBackup.BackupID -Force -Wait -Timeout 600
|
|
Write-Host "Backup restored successfully"
|
|
}
|
|
else {
|
|
Write-Host "Restore operation cancelled"
|
|
}
|
|
}
|
|
else {
|
|
Write-Host "No backups found"
|
|
}
|
|
|
|
# Disconnect from the server
|
|
Disconnect-ProxmoxServer -Connection $connection
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Backup Creation Fails
|
|
|
|
If backup creation fails, check:
|
|
- The user has sufficient permissions
|
|
- There is enough disk space
|
|
- The storage is accessible
|
|
- The cluster is healthy
|
|
|
|
### Restore Operation Fails
|
|
|
|
If restore operation fails, check:
|
|
- The backup file exists and is accessible
|
|
- The backup file is not corrupted
|
|
- The user has sufficient permissions
|
|
- The cluster is in a state that allows restore operations
|
|
|
|
## Next Steps
|
|
|
|
Now that you know how to backup and restore Proxmox VE clusters, you can proceed to the [High Availability](High-Availability.md) guide to learn how to configure high availability for your cluster.
|