Files
proxmox/scripts/migrate-2-containers-via-backup.sh
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

93 lines
2.6 KiB
Bash

#!/usr/bin/env bash
# Migrate 2 containers to pve2 using thin1 storage via backup/restore method
# This approach allows us to specify target storage
set -euo pipefail
PROXMOX_HOST="${PROXMOX_HOST:-192.168.11.10}"
PROXMOX_PASS="${PROXMOX_PASS:-L@kers2010}"
SOURCE_NODE="ml110"
TARGET_NODE="pve2"
TARGET_STORAGE="thin1"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
ssh_proxmox() {
sshpass -p "$PROXMOX_PASS" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 root@"$PROXMOX_HOST" "$@"
}
# Migrate container via backup/restore
migrate_via_backup() {
local vmid=$1
local name=$2
log_info "Migrating container $vmid ($name) to $TARGET_NODE using $TARGET_STORAGE..."
# Step 1: Create backup on source node
log_info " Step 1: Creating backup of container $vmid..."
backup_file="/tmp/vzdump-lxc-${vmid}-$(date +%Y_%m_%d_%H_%M_%S).tar.zst"
if ssh_proxmox "vzdump $vmid --compress zstd --storage local --dumpdir /tmp --remove 0" 2>&1 | tee /tmp/backup-${vmid}.log; then
log_success " Backup created"
# Find backup file
backup_file=$(ssh_proxmox "ls -t /tmp/vzdump-lxc-${vmid}-*.tar.zst 2>/dev/null | head -1")
if [[ -z "$backup_file" ]]; then
log_error " Backup file not found"
return 1
fi
log_info " Backup file: $backup_file"
else
log_error " Backup failed"
return 1
fi
# Step 2: Restore on target node with thin1 storage
log_info " Step 2: Restoring container on $TARGET_NODE with $TARGET_STORAGE storage..."
if ssh_proxmox "vzdump --storage $TARGET_STORAGE --ostype unmanaged $vmid $backup_file" 2>&1; then
log_success " Container restored on $TARGET_NODE"
else
log_error " Restore failed"
return 1
fi
# Step 3: Remove original container (optional - ask user)
log_warn " Original container still exists on $SOURCE_NODE"
log_info " You may want to remove it after verifying the migration"
return 0
}
echo "========================================="
echo "Migrate 2 containers via backup/restore"
echo "========================================="
echo ""
CONTAINERS=(
"1500:besu-sentry-1"
"1501:besu-sentry-2"
)
for container in "${CONTAINERS[@]}"; do
vmid="${container%%:*}"
name="${container#*:}"
echo ""
migrate_via_backup "$vmid" "$name"
echo ""
done
echo "Migration complete!"