diff --git a/docs/11-backup.md b/docs/11-backup.md index 697a082..c73c7bd 100644 --- a/docs/11-backup.md +++ b/docs/11-backup.md @@ -30,14 +30,14 @@ ### 📊 Архитектура -&&&mermaid +```mermaid graph TD A[Proxmox VE Host
Olimp 192.168.1.220] --> B[LXC Containers
201-211] A --> C[Virtual Machines
205, 213] A -->|Network| D[Proxmox Backup Server
Olimpbs 192.168.1.199] D --> E[Datastore: olimpbkp
1 TB LVM] E --> F[/var/lib/proxmox-backup/olimpbkp] -&&& +``` --- @@ -114,7 +114,7 @@ graph TD - **Status**: ✅ Enabled **Backup Job**: -&&& +``` Node: Olimp Storage: olimpbkp Schedule: 02:30, 22:30 (daily) @@ -122,18 +122,18 @@ Mode: Snapshot Compression: ZSTD VM/CT: 201-211, 205, 213 Retention: keep-last=14, keep-daily=7, keep-weekly=4, keep-monthly=4 -&&& +``` ### На PBS (Olimpbs) **Datastore**: -&&& +``` Name: olimpbkp Path: /var/lib/proxmox-backup/olimpbkp Size: 1 TB (912 GB available) GC Schedule: daily Prune Schedule: daily -&&& +``` **Пользователи**: - `root@pam` — администратор (веб-интерфейс) @@ -146,19 +146,19 @@ Prune Schedule: daily ### Просмотр бэкапов **Через веб-интерфейс PBS**: -&&& +``` https://192.168.1.199:8007 → Datastore → olimpbkp → Content -&&& +``` **Через Proxmox VE**: -&&& +``` https://192.168.1.220:8006 → Datacenter → Storage → olimpbkp → Content -&&& +``` **Через CLI**: -&&&bash +```bash # Список бэкапов proxmox-backup-client list --repository root@pam@192.168.1.199:8007:olimpbkp @@ -167,22 +167,22 @@ proxmox-backup-client show-backup --repository root@pam@192.168.1.199:8007:olimp # Статистика datastore proxmox-backup-client datastore stats olimpbkp -&&& +``` ### Ручной запуск бэкапа **Один контейнер/ВМ**: -&&&bash +```bash vzdump 201 --storage olimpbkp --mode snapshot --compress zstd -&&& +``` **Все бэкапируемые системы**: -&&&bash +```bash for id in 201 202 203 204 205 206 207 208 209 210 211 213; do vzdump $id --storage olimpbkp --mode snapshot --compress zstd & done wait -&&& +``` ### Восстановление из бэкапа @@ -195,13 +195,13 @@ wait 4. Start **Через CLI**: -&&&bash +```bash # LXC контейнер pct restore 216 olimpbkp:backup/ct/201/2026-04-11T13:19:03Z --storage local-lvm # Виртуальная машина qm restore 216 olimpbkp:backup/vm/205/2026-04-11T13:19:03Z --storage vmsystem -&&& +``` ### Восстановление отдельных файлов @@ -213,7 +213,7 @@ qm restore 216 olimpbkp:backup/vm/205/2026-04-11T13:19:03Z --storage vmsystem 5. Unmount **Через CLI**: -&&&bash +```bash # Смонтировать бэкап mkdir -p /mnt/restore proxmox-backup-client mount ct/201/2026-04-11T13:19:03Z /mnt/restore \ @@ -224,7 +224,7 @@ cp /mnt/restore/root.pxar/etc/config/file.conf /tmp/ # Размонтировать proxmox-backup-client unmount /mnt/restore -&&& +``` --- @@ -233,7 +233,7 @@ proxmox-backup-client unmount /mnt/restore ### Проверка статуса бэкапов **Ежедневная проверка**: -&&&bash +```bash # Последние задачи pvesm status olimpbkp @@ -242,38 +242,38 @@ tail -f /var/log/pve/tasks/* # Проверка места на PBS ssh root@192.168.1.199 "df -h /var/lib/proxmox-backup/olimpbkp" -&&& +``` ### Garbage Collection (очистка) PBS автоматически запускает GC ежедневно. Вручную: -&&&bash +```bash # На PBS сервере proxmox-backup-manager garbage-collection start olimpbkp # Проверка статуса proxmox-backup-manager garbage-collection status olimpbkp -&&& +``` ### Prune (удаление старых бэкапов) Автоматически по retention политике. Вручную: -&&&bash +```bash proxmox-backup-manager prune-job run -&&& +``` ### Проверка целостности (Verify) -&&&bash +```bash # Проверить все бэкапы proxmox-backup-manager verify olimpbkp # Проверить конкретный бэкап proxmox-backup-client verify ct/201/2026-04-11T13:19:03Z \ --repository root@pam@192.168.1.199:8007:olimpbkp -&&& +``` --- @@ -291,7 +291,7 @@ proxmox-backup-client verify ct/201/2026-04-11T13:19:03Z \ ### Перенос старых бэкапов (опционально) -&&&bash +```bash # На новом PBS mkdir -p /mnt/old-pbs sshfs root@192.168.1.220:/rpool/pbs-backups /mnt/old-pbs @@ -304,13 +304,13 @@ chown -R backup:backup /var/lib/proxmox-backup/olimpbkp # Перезапуск systemctl restart proxmox-backup-proxy -&&& +``` ### Удаление старого PBS После подтверждения что новые бэкапы работают: -&&&bash +```bash # На Proxmox VE (Olimp) pvesm remove pbs-ssd @@ -320,7 +320,7 @@ zfs destroy rpool/pbs-backups # Удалить LXC контейнер (опционально) pct stop 220 pct destroy 220 -&&& +``` --- @@ -369,7 +369,7 @@ pct destroy 220 ### Бэкап не запускается -&&&bash +```bash # Проверить хранилище pvesm status | grep olimpbkp @@ -383,11 +383,11 @@ pvesm add proxmox-backup olimpbkp \ --server 192.168.1.199 \ --datastore olimpbkp \ --username pve@pbs -&&& +``` ### Закончилось место на PBS -&&&bash +```bash # Проверить занятое место proxmox-backup-client datastore stats olimpbkp @@ -398,17 +398,17 @@ proxmox-backup-manager garbage-collection start olimpbkp proxmox-backup-client prune \ --repository root@pam@192.168.1.199:8007:olimpbkp \ --max-daily 7 --max-weekly 2 -&&& +``` ### Ошибка аутентификации -&&&bash +```bash # Сгенерировать новый токен proxmox-backup-manager user generate-token pve@pbs backup-token # Обновить в Proxmox VE pvesm update olimpbkp --password <новый_токен> -&&& +``` --- @@ -416,7 +416,7 @@ pvesm update olimpbkp --password <новый_токен> ### На Proxmox VE -&&&bash +```bash # Список хранилищ pvesm list @@ -429,11 +429,11 @@ vzdump --storage olimpbkp --mode snapshot # Восстановить pct restore olimpbkp:backup/ct// qm restore olimpbkp:backup/vm// -&&& +``` ### На PBS -&&&bash +```bash # Список datastore proxmox-backup-manager datastore list @@ -451,7 +451,7 @@ proxmox-backup-manager verify olimpbkp # Garbage collection proxmox-backup-manager garbage-collection start olimpbkp -&&& +``` --- @@ -459,7 +459,7 @@ proxmox-backup-manager garbage-collection start olimpbkp ### Ежедневная проверка -&&&bash +```bash # Размер бэкапов за сегодня du -sh /var/lib/proxmox-backup/olimpbkp/data/* @@ -468,17 +468,17 @@ proxmox-backup-client list --repository root@pam@192.168.1.199:8007:olimpbkp | w # Свободное место df -h /var/lib/proxmox-backup/olimpbkp -&&& +``` ### Еженедельный отчёт -&&&bash +```bash # Дедупликация proxmox-backup-client datastore stats olimpbkp | grep "Deduplication" # Прирост за неделю # Сравнить размер datastore с прошлой неделей -&&& +``` ---