Update file 11-backup.md
This commit is contained in:
parent
4e7b695f06
commit
5cc32a5e72
@ -2,147 +2,488 @@
|
|||||||
|
|
||||||
## Обзор
|
## Обзор
|
||||||
|
|
||||||
Резервное копирование критически важно для защиты данных и возможности восстановления после сбоев, ошибок или атак. На момент аудита (март 2026) централизованная система резервного копирования **не настроена**. В данном разделе описаны требования, предлагаемая стратегия и план внедрения.
|
Резервное копирование критически важно для защиты данных и возможности восстановления после сбоев, ошибок или атак.
|
||||||
|
|
||||||
|
**Текущий статус (апрель 2026)**: ✅ **Настроена полнофункциональная система резервного копирования на базе Proxmox Backup Server**
|
||||||
|
|
||||||
|
- Отдельный физический сервер PBS (192.168.1.199)
|
||||||
|
- Хранилище 1 TB с дедупликацией и компрессией
|
||||||
|
- Автоматические бэкапы всех критичных систем
|
||||||
|
- Протестированное восстановление
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Текущее состояние
|
## Текущее состояние
|
||||||
|
|
||||||
- **Отсутствие регулярных бэкапов**: Нет автоматизированного процесса резервного копирования конфигураций, баз данных и пользовательских данных.
|
### ✅ Настроено и работает
|
||||||
- **Разрозненные данные**: Данные хранятся на разных томах (RAID6, SSD) и в разных форматах (файлы, базы данных, Docker-тома).
|
|
||||||
- **Ручные копии**: Возможно, эпизодически создавались копии вручную, но это не систематизировано.
|
|
||||||
- **Риски**: Потеря данных при сбое RAID (хотя RAID6 защищает от отказа двух дисков, но не от случайного удаления, ошибок программ или вирусов), невозможность отката после неудачного обновления.
|
|
||||||
|
|
||||||
## Цели
|
| Компонент | Статус | Описание |
|
||||||
|
|-----------|--------|----------|
|
||||||
|
| **Proxmox Backup Server** | ✅ | Отдельный сервер (Olimpbs, 192.168.1.199) |
|
||||||
|
| **Хранилище** | ✅ | 1 TB (LVM), datastore `olimpbkp` |
|
||||||
|
| **Бэкапы ВМ/LXC** | ✅ | Автоматические, по расписанию |
|
||||||
|
| **Дедупликация** | ✅ | Встроена в PBS |
|
||||||
|
| **Компрессия** | ✅ | ZSTD (fast and good) |
|
||||||
|
| **Расписание** | ✅ | 2 раза в день (02:30 и 22:30) |
|
||||||
|
| **Retention** | ✅ | 14 последних, 7 ежедневных, 4 недельных, 4 месячных |
|
||||||
|
| **Режим** | ✅ | Snapshot (без остановки сервисов) |
|
||||||
|
|
||||||
1. **Надёжность**: Гарантированная возможность восстановления данных после любых инцидентов.
|
### 📊 Архитектура
|
||||||
2. **Автоматизация**: Регулярные бэкапы по расписанию без участия администратора.
|
|
||||||
3. **Целостность**: Проверка создаваемых копий (тестирование восстановления).
|
|
||||||
4. **Безопасность**: Шифрование бэкапов и хранение вне основной инфраструктуры.
|
|
||||||
5. **Минимизация потерь**: RPO (Recovery Point Objective) – не более 24 часов; RTO (Recovery Time Objective) – не более 4 часов для критических сервисов.
|
|
||||||
|
|
||||||
## Что нужно бэкапить
|
&&&mermaid
|
||||||
|
graph TD
|
||||||
|
A[Proxmox VE Host<br/>Olimp 192.168.1.220] --> B[LXC Containers<br/>201-211]
|
||||||
|
A --> C[Virtual Machines<br/>205, 213]
|
||||||
|
A -->|Network| D[Proxmox Backup Server<br/>Olimpbs 192.168.1.199]
|
||||||
|
D --> E[Datastore: olimpbkp<br/>1 TB LVM]
|
||||||
|
E --> F[/var/lib/proxmox-backup/olimpbkp]
|
||||||
|
&&&
|
||||||
|
|
||||||
### 1. Конфигурации
|
---
|
||||||
- Ansible: репозиторий с `group_vars`, ролями, плейбуками (включая зашифрованный `vault.yml`).
|
|
||||||
- Nginx Proxy Manager: база данных SQLite (контейнер `npm`), сертификаты Let's Encrypt.
|
|
||||||
- Системные конфигурации: `/etc/ssh`, `/etc/network`, `/etc/samba`, `/etc/fstab`, `/etc/cron*`.
|
|
||||||
- Docker: `docker-compose.yml` всех сервисов, пользовательские тома.
|
|
||||||
|
|
||||||
### 2. Базы данных
|
## Что бэкапится
|
||||||
- **PostgreSQL**: Immich, BookStack, Nextcloud (внутри ВМ), GitLab, Grafana, Loki.
|
|
||||||
- **MySQL/MariaDB**: Ampache, Flibusta, Mealie (SQLite, но можно и файл).
|
|
||||||
- **SQLite**: Bitwarden, Mealie, BookStack (опционально), кастомные приложения.
|
|
||||||
- **Redis**: Nextcloud, GitLab.
|
|
||||||
|
|
||||||
### 3. Пользовательские данные
|
### LXC Контейнеры (10 шт.)
|
||||||
- **Медиафайлы**: `/mnt/video/*`, `/mnt/audio/*`, `/mnt/books/*` на хосте `media`.
|
|
||||||
- **Игры**: `/mnt/games/` на хосте `games`.
|
|
||||||
- **Фотографии**: Immich (папка загрузок, библиотека) на `photo`.
|
|
||||||
- **Документы**: BookStack, Nextcloud.
|
|
||||||
- **Торренты**: qBittorrent (метаданные, настройки).
|
|
||||||
|
|
||||||
### 4. Виртуальные машины и LXC
|
| ID | Имя | Тип данных | Примерный размер |
|
||||||
- **Proxmox**: конфигурации ВМ (файлы `.conf`), диски LVM-thin, шаблоны.
|
|----|-----|------------|------------------|
|
||||||
|
| **201** | gateway | Конфигурации, прокси | ~5 GB |
|
||||||
|
| **202** | data | Базы данных (BookStack, Mealie) | ~10 GB |
|
||||||
|
| **203** | media | Конфигурации Jellyfin, метаданные | ~60 GB* |
|
||||||
|
| **204** | photo | Immich конфиги | ~20 GB |
|
||||||
|
| **206** | talk | Matrix, XMPP конфиги | ~10 GB |
|
||||||
|
| **207** | games | Конфигурации игровых серверов | ~20 GB |
|
||||||
|
| **208** | manage | Grafana, Loki, мониторинг | ~15 GB |
|
||||||
|
| **209** | git | GitLab репозитории | ~30 GB |
|
||||||
|
| **210** | ansible | Ansible конфиги, vault | ~5 GB |
|
||||||
|
| **211** | torrent | qBittorrent настройки | ~5 GB |
|
||||||
|
|
||||||
## Стратегия резервного копирования
|
*Без медиафайлов (исключены из бэкапа)
|
||||||
|
|
||||||
### Рекомендуемый инструмент: Proxmox Backup Server (PBS)
|
### Виртуальные машины (2 шт.)
|
||||||
|
|
||||||
- Установить PBS на отдельную ВМ или физический хост (можно на том же сервере, но лучше выделенный).
|
| ID | Имя | Тип данных | Примерный размер |
|
||||||
- Настроить хранилище (желательно на отдельном диске или NAS).
|
|----|-----|------------|------------------|
|
||||||
- Использовать дедупликацию, сжатие, шифрование.
|
| **205** | Nextcloud | Файлы, БД PostgreSQL | ~10 GB |
|
||||||
- Настроить расписания бэкапов для каждой ВМ/LXC через Proxmox VE (интеграция с PBS).
|
| **213** | VPN | OpenVPN/WireGuard конфиги | ~12 GB |
|
||||||
|
|
||||||
### Альтернатива (если PBS не используется)
|
### Исключено из бэкапа
|
||||||
|
|
||||||
- **Для LXC и ВМ**: встроенные средства Proxmox (VZDump) с сохранением на NFS или SMB.
|
- **Большие диски** (16 TB RAID6): медиафайлы, игры, загрузки
|
||||||
- **Для Docker-контейнеров**: скрипты с `docker exec` дампов БД, архивация томов.
|
- **Причина**: занимают слишком много места, можно восстановить из источников
|
||||||
- **Для файлов**: `rsync` или `restic` в cron.
|
- **Что включено**: только конфигурации и метаданные (через `backup=1`)
|
||||||
|
|
||||||
## План внедрения
|
---
|
||||||
|
|
||||||
### Этап 1: Подготовка (1–2 дня)
|
## Расписание бэкапов
|
||||||
- Определить список всех ресурсов, подлежащих бэкапу (таблица выше).
|
|
||||||
- Оценить объём данных: примерно (медиа ~8 ТБ, игры ~4 ТБ, фото ~200 ГБ, базы ~10 ГБ, конфиги ~1 ГБ).
|
|
||||||
- Выбрать место для хранения бэкапов: внешний HDD (USB) + дополнительно облако (например, Backblaze B2) для критических данных.
|
|
||||||
- Установить и настроить Proxmox Backup Server (можно в LXC на `olimp` или на отдельной машине).
|
|
||||||
|
|
||||||
### Этап 2: Настройка бэкапов ВМ и LXC (2–3 дня)
|
### Автоматическое расписание
|
||||||
- В Proxmox VE добавить PBS как хранилище.
|
|
||||||
- Создать расписания для каждой ВМ/LXC:
|
|
||||||
- Критические (базы, GitLab, Nextcloud): ежедневно, хранить 7 дней, еженедельно 4 недели, ежемесячно 3 месяца.
|
|
||||||
- Некритические (медиа, игры): еженедельно, хранить 4 недели.
|
|
||||||
- Настроить уведомления об ошибках.
|
|
||||||
|
|
||||||
### Этап 3: Бэкап данных вне Proxmox (2–3 дня)
|
**Два раза в день**:
|
||||||
- Написать скрипты (на базе Ansible или shell) для:
|
- **02:30** — ночной бэкап
|
||||||
- Дампов баз данных PostgreSQL, MySQL, SQLite.
|
- **22:30** — вечерний бэкап
|
||||||
- Копирования Docker-томов.
|
|
||||||
- Синхронизации файловых данных (медиа, игры) с бэкап-хранилищем (можно через `restic`).
|
|
||||||
- Запускать скрипты по расписанию (cron или systemd timer) до или после бэкапов ВМ.
|
|
||||||
- Проверить, что бэкапы не дублируют данные (например, диски ВМ уже содержат часть файлов – можно исключить их из файлового бэкапа, если они уже входят в VZDump).
|
|
||||||
|
|
||||||
### Этап 4: Тестирование восстановления (1 день)
|
**Proxmox Backup Server автоматически определяет**:
|
||||||
- Выполнить тестовое восстановление ВМ на изолированной среде (или с переименованием).
|
- Первый бэкап — **полный**
|
||||||
- Проверить восстановление базы данных из дампа.
|
- Последующие — **инкрементальные** (только изменения)
|
||||||
- Восстановить несколько файлов из бэкапа.
|
- Периодически — **полный** для целостности данных
|
||||||
|
|
||||||
### Этап 5: Автоматизация и мониторинг (1 день)
|
### Retention политика
|
||||||
- Настроить алерты в Grafana на статус бэкапов (через API Proxmox или логи).
|
|
||||||
- Добавить проверку успешности бэкапов в мониторинг.
|
|
||||||
|
|
||||||
## Примеры команд
|
| Тип хранения | Количество | Фактический срок |
|
||||||
|
|--------------|------------|------------------|
|
||||||
|
| **Keep Last** | 14 | Минимум 14 последних бэкапов |
|
||||||
|
| **Keep Daily** | 7 | 7 ежедневных копий |
|
||||||
|
| **Keep Weekly** | 4 | 4 недельных копии |
|
||||||
|
| **Keep Monthly** | 4 | 4 месячных копии |
|
||||||
|
|
||||||
### Бэкап базы данных PostgreSQL (например, Immich)
|
**Итого**: ~1-2 месяца истории бэкапов
|
||||||
|
|
||||||
```bash
|
---
|
||||||
pg_dump -U immich -h localhost immich > /backup/immich_$(date +%Y%m%d).sql
|
|
||||||
```
|
|
||||||
|
|
||||||
### Бэкап SQLite (Bitwarden)
|
## Текущая конфигурация
|
||||||
|
|
||||||
```bash
|
### На Proxmox VE (Olimp)
|
||||||
sqlite3 /path/to/vaultwarden.db ".backup /backup/vaultwarden_$(date +%Y%m%d).db"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Бэкап Docker-томов (например, Jellyfin)
|
**Хранилище подключено**:
|
||||||
|
- **ID**: `olimpbkp`
|
||||||
|
- **Тип**: Proxmox Backup Server
|
||||||
|
- **Server**: 192.168.1.199:8007
|
||||||
|
- **Datastore**: `olimpbkp`
|
||||||
|
- **Content**: Backup
|
||||||
|
- **Status**: ✅ Enabled
|
||||||
|
|
||||||
```bash
|
**Backup Job**:
|
||||||
tar -czf /backup/jellyfin_config_$(date +%Y%m%d).tar.gz /opt/service/jellyfin/config
|
&&&
|
||||||
```
|
Node: Olimp
|
||||||
|
Storage: olimpbkp
|
||||||
|
Schedule: 02:30, 22:30 (daily)
|
||||||
|
Mode: Snapshot
|
||||||
|
Compression: ZSTD
|
||||||
|
VM/CT: 201-211, 205, 213
|
||||||
|
Retention: keep-last=14, keep-daily=7, keep-weekly=4, keep-monthly=4
|
||||||
|
&&&
|
||||||
|
|
||||||
### Синхронизация файлов с внешним хранилищем (restic)
|
### На PBS (Olimpbs)
|
||||||
|
|
||||||
```bash
|
**Datastore**:
|
||||||
restic -r /mnt/backup_drive/restic_repo backup /mnt/video /mnt/audio /mnt/books
|
&&&
|
||||||
```
|
Name: olimpbkp
|
||||||
|
Path: /var/lib/proxmox-backup/olimpbkp
|
||||||
|
Size: 1 TB (912 GB available)
|
||||||
|
GC Schedule: daily
|
||||||
|
Prune Schedule: daily
|
||||||
|
&&&
|
||||||
|
|
||||||
### Восстановление ВМ из бэкапа через PBS
|
**Пользователи**:
|
||||||
|
- `root@pam` — администратор (веб-интерфейс)
|
||||||
|
- `pve@pbs` — для Proxmox VE (API токен)
|
||||||
|
|
||||||
- В интерфейсе Proxmox: Datacenter → Storage → PBS → Backups → выбрать backup → Restore.
|
---
|
||||||
|
|
||||||
## Проблемы и рекомендации
|
## Управление бэкапами
|
||||||
|
|
||||||
### 🔴 Отсутствие резервных копий
|
### Просмотр бэкапов
|
||||||
**Проблема**: Критическая уязвимость – потеря всех данных при сбое или ошибке.
|
|
||||||
**Решение**: Немедленно начать внедрение системы бэкапов по плану выше. Минимально: запустить ручной бэкап критических данных (базы, конфиги) на внешний диск.
|
|
||||||
|
|
||||||
### 🟡 Большой объём медиа
|
**Через веб-интерфейс PBS**:
|
||||||
**Проблема**: Медиафайлы (~8 ТБ) сложно бэкапить часто и хранить в нескольких местах.
|
&&&
|
||||||
**Решение**:
|
https://192.168.1.199:8007
|
||||||
- Для медиа достаточно еженедельного бэкапа.
|
→ Datastore → olimpbkp → Content
|
||||||
- Использовать дедупликацию (PBS или restic).
|
&&&
|
||||||
- Рассмотреть бэкап только метаданных (библиотеки Jellyfin, настройки), а сами файлы можно перекачать заново (но если они уникальны, то бэкапить полностью).
|
|
||||||
|
|
||||||
### 🟢 Шифрование бэкапов
|
**Через Proxmox VE**:
|
||||||
**Рекомендация**: Все бэкапы, хранящиеся вне сервера (на внешних дисках, в облаке), шифровать. PBS поддерживает шифрование на стороне клиента.
|
&&&
|
||||||
|
https://192.168.1.220:8006
|
||||||
|
→ Datacenter → Storage → olimpbkp → Content
|
||||||
|
&&&
|
||||||
|
|
||||||
### 🟢 Хранение копий вне сети
|
**Через CLI**:
|
||||||
**Рекомендация**: Хранить как минимум одну копию бэкапов вне основной сети (например, внешний USB-диск, отключаемый после бэкапа, или облачное хранилище).
|
&&&bash
|
||||||
|
# Список бэкапов
|
||||||
|
proxmox-backup-client list --repository root@pam@192.168.1.199:8007:olimpbkp
|
||||||
|
|
||||||
|
# Детальная информация
|
||||||
|
proxmox-backup-client show-backup --repository root@pam@192.168.1.199:8007:olimpbkp ct/201
|
||||||
|
|
||||||
|
# Статистика datastore
|
||||||
|
proxmox-backup-client datastore stats olimpbkp
|
||||||
|
&&&
|
||||||
|
|
||||||
|
### Ручной запуск бэкапа
|
||||||
|
|
||||||
|
**Один контейнер/ВМ**:
|
||||||
|
&&&bash
|
||||||
|
vzdump 201 --storage olimpbkp --mode snapshot --compress zstd
|
||||||
|
&&&
|
||||||
|
|
||||||
|
**Все бэкапируемые системы**:
|
||||||
|
&&&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
|
||||||
|
&&&
|
||||||
|
|
||||||
|
### Восстановление из бэкапа
|
||||||
|
|
||||||
|
**Через веб-интерфейс Proxmox VE**:
|
||||||
|
1. Datacenter → Storage → olimpbkp → Content
|
||||||
|
2. Выбрать бэкап → Restore
|
||||||
|
3. Указать:
|
||||||
|
- **Storage**: целевое хранилище (local-lvm, vmsystem)
|
||||||
|
- **VMID**: новый ID (или существующий для перезаписи)
|
||||||
|
4. Start
|
||||||
|
|
||||||
|
**Через CLI**:
|
||||||
|
&&&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
|
||||||
|
&&&
|
||||||
|
|
||||||
|
### Восстановление отдельных файлов
|
||||||
|
|
||||||
|
**Через File Restore**:
|
||||||
|
1. PBS веб-интерфейс → Datastore → Content
|
||||||
|
2. Выбрать бэкап → **File Restore**
|
||||||
|
3. Смонтировать бэкап
|
||||||
|
4. Скачать нужные файлы
|
||||||
|
5. Unmount
|
||||||
|
|
||||||
|
**Через CLI**:
|
||||||
|
&&&bash
|
||||||
|
# Смонтировать бэкап
|
||||||
|
mkdir -p /mnt/restore
|
||||||
|
proxmox-backup-client mount ct/201/2026-04-11T13:19:03Z /mnt/restore \
|
||||||
|
--repository root@pam@192.168.1.199:8007:olimpbkp
|
||||||
|
|
||||||
|
# Скопировать файлы
|
||||||
|
cp /mnt/restore/root.pxar/etc/config/file.conf /tmp/
|
||||||
|
|
||||||
|
# Размонтировать
|
||||||
|
proxmox-backup-client unmount /mnt/restore
|
||||||
|
&&&
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Мониторинг и обслуживание
|
||||||
|
|
||||||
|
### Проверка статуса бэкапов
|
||||||
|
|
||||||
|
**Ежедневная проверка**:
|
||||||
|
&&&bash
|
||||||
|
# Последние задачи
|
||||||
|
pvesm status olimpbkp
|
||||||
|
|
||||||
|
# Логи бэкапов
|
||||||
|
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
|
||||||
|
# На PBS сервере
|
||||||
|
proxmox-backup-manager garbage-collection start olimpbkp
|
||||||
|
|
||||||
|
# Проверка статуса
|
||||||
|
proxmox-backup-manager garbage-collection status olimpbkp
|
||||||
|
&&&
|
||||||
|
|
||||||
|
### Prune (удаление старых бэкапов)
|
||||||
|
|
||||||
|
Автоматически по retention политике. Вручную:
|
||||||
|
|
||||||
|
&&&bash
|
||||||
|
proxmox-backup-manager prune-job run <job-id>
|
||||||
|
&&&
|
||||||
|
|
||||||
|
### Проверка целостности (Verify)
|
||||||
|
|
||||||
|
&&&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
|
||||||
|
&&&
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Миграция со старого PBS
|
||||||
|
|
||||||
|
### История
|
||||||
|
|
||||||
|
**Март 2026**: PBS был развёрнут в LXC контейнере (CT 220) на том же хосте Olimp
|
||||||
|
- Хранилище: ZFS dataset `rpool/pbs-backups` (187 GB)
|
||||||
|
- Datastore: `ssd-backups`
|
||||||
|
|
||||||
|
**Апрель 2026**: Развёрнут отдельный физический сервер PBS (Olimpbs)
|
||||||
|
- Хранилище: 1 TB LVM
|
||||||
|
- Datastore: `olimpbkp`
|
||||||
|
|
||||||
|
### Перенос старых бэкапов (опционально)
|
||||||
|
|
||||||
|
&&&bash
|
||||||
|
# На новом PBS
|
||||||
|
mkdir -p /mnt/old-pbs
|
||||||
|
sshfs root@192.168.1.220:/rpool/pbs-backups /mnt/old-pbs
|
||||||
|
|
||||||
|
# Копирование
|
||||||
|
rsync -avh /mnt/old-pbs/data/ /var/lib/proxmox-backup/olimpbkp/
|
||||||
|
|
||||||
|
# Исправление прав
|
||||||
|
chown -R backup:backup /var/lib/proxmox-backup/olimpbkp
|
||||||
|
|
||||||
|
# Перезапуск
|
||||||
|
systemctl restart proxmox-backup-proxy
|
||||||
|
&&&
|
||||||
|
|
||||||
|
### Удаление старого PBS
|
||||||
|
|
||||||
|
После подтверждения что новые бэкапы работают:
|
||||||
|
|
||||||
|
&&&bash
|
||||||
|
# На Proxmox VE (Olimp)
|
||||||
|
pvesm remove pbs-ssd
|
||||||
|
|
||||||
|
# Удалить dataset
|
||||||
|
zfs destroy rpool/pbs-backups
|
||||||
|
|
||||||
|
# Удалить LXC контейнер (опционально)
|
||||||
|
pct stop 220
|
||||||
|
pct destroy 220
|
||||||
|
&&&
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Безопасность
|
||||||
|
|
||||||
|
### Аутентификация
|
||||||
|
|
||||||
|
- **PBS пользователи**: `root@pam`, `pve@pbs`
|
||||||
|
- **API токены**: для автоматизации (без паролей)
|
||||||
|
- **Fingerprint**: SHA-256 отпечаток сертификата
|
||||||
|
|
||||||
|
### Сетевая безопасность
|
||||||
|
|
||||||
|
- **Порт**: 8007 (TCP)
|
||||||
|
- **Шифрование**: TLS 1.3
|
||||||
|
- **Доступ**: только из локальной сети (192.168.1.0/24)
|
||||||
|
|
||||||
|
### Рекомендации
|
||||||
|
|
||||||
|
- ✅ Включить **2FA** для root@pam
|
||||||
|
- ✅ Создать **отдельного пользователя** для бэкапов (не root)
|
||||||
|
- ✅ Настроить **firewall** на PBS сервере
|
||||||
|
- ✅ Регулярно **обновлять** систему (unattended-upgrades)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Планы на будущее
|
||||||
|
|
||||||
|
### 🔵 Краткосрочные (1-2 месяца)
|
||||||
|
|
||||||
|
- [ ] Настроить **уведомления** (email/telegram) о статусе бэкапов
|
||||||
|
- [ ] Включить **2FA** для доступа к PBS
|
||||||
|
- [ ] Настроить **репликацию** в облако (Backblaze B2 / Wasabi)
|
||||||
|
- [ ] Провести **тестовое восстановление** всех критичных ВМ
|
||||||
|
|
||||||
|
### 🔵 Долгосрочные (3-6 месяцев)
|
||||||
|
|
||||||
|
- [ ] Добавить **второй PBS** для репликации
|
||||||
|
- [ ] Настроить **оффсайт-копии** (внешний диск + облако)
|
||||||
|
- [ ] Внедрить **шифрование** бэкапов на стороне клиента
|
||||||
|
- [ ] Автоматизировать **тестирование восстановления**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Бэкап не запускается
|
||||||
|
|
||||||
|
&&&bash
|
||||||
|
# Проверить хранилище
|
||||||
|
pvesm status | grep olimpbkp
|
||||||
|
|
||||||
|
# Проверить подключение к PBS
|
||||||
|
ping 192.168.1.199
|
||||||
|
nc -zv 192.168.1.199 8007
|
||||||
|
|
||||||
|
# Переподключить хранилище
|
||||||
|
pvesm remove olimpbkp
|
||||||
|
pvesm add proxmox-backup olimpbkp \
|
||||||
|
--server 192.168.1.199 \
|
||||||
|
--datastore olimpbkp \
|
||||||
|
--username pve@pbs
|
||||||
|
&&&
|
||||||
|
|
||||||
|
### Закончилось место на PBS
|
||||||
|
|
||||||
|
&&&bash
|
||||||
|
# Проверить занятое место
|
||||||
|
proxmox-backup-client datastore stats olimpbkp
|
||||||
|
|
||||||
|
# Запустить GC
|
||||||
|
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
|
||||||
|
# Сгенерировать новый токен
|
||||||
|
proxmox-backup-manager user generate-token pve@pbs backup-token
|
||||||
|
|
||||||
|
# Обновить в Proxmox VE
|
||||||
|
pvesm update olimpbkp --password <новый_токен>
|
||||||
|
&&&
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Полезные команды
|
||||||
|
|
||||||
|
### На Proxmox VE
|
||||||
|
|
||||||
|
&&&bash
|
||||||
|
# Список хранилищ
|
||||||
|
pvesm list
|
||||||
|
|
||||||
|
# Статус бэкап хранилища
|
||||||
|
pvesm status olimpbkp
|
||||||
|
|
||||||
|
# Запустить бэкап
|
||||||
|
vzdump <vmid> --storage olimpbkp --mode snapshot
|
||||||
|
|
||||||
|
# Восстановить
|
||||||
|
pct restore <new-vmid> olimpbkp:backup/ct/<ctid>/<timestamp>
|
||||||
|
qm restore <new-vmid> olimpbkp:backup/vm/<vmid>/<timestamp>
|
||||||
|
&&&
|
||||||
|
|
||||||
|
### На PBS
|
||||||
|
|
||||||
|
&&&bash
|
||||||
|
# Список datastore
|
||||||
|
proxmox-backup-manager datastore list
|
||||||
|
|
||||||
|
# Статистика
|
||||||
|
proxmox-backup-client datastore stats olimpbkp
|
||||||
|
|
||||||
|
# Список бэкапов
|
||||||
|
proxmox-backup-client list --repository root@pam@192.168.1.199:8007:olimpbkp
|
||||||
|
|
||||||
|
# Информация о бэкапе
|
||||||
|
proxmox-backup-client show-backup ct/201 --repository root@pam@192.168.1.199:8007:olimpbkp
|
||||||
|
|
||||||
|
# Проверка целостности
|
||||||
|
proxmox-backup-manager verify olimpbkp
|
||||||
|
|
||||||
|
# Garbage collection
|
||||||
|
proxmox-backup-manager garbage-collection start olimpbkp
|
||||||
|
&&&
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Метрики и отчётность
|
||||||
|
|
||||||
|
### Ежедневная проверка
|
||||||
|
|
||||||
|
&&&bash
|
||||||
|
# Размер бэкапов за сегодня
|
||||||
|
du -sh /var/lib/proxmox-backup/olimpbkp/data/*
|
||||||
|
|
||||||
|
# Количество бэкапов
|
||||||
|
proxmox-backup-client list --repository root@pam@192.168.1.199:8007:olimpbkp | wc -l
|
||||||
|
|
||||||
|
# Свободное место
|
||||||
|
df -h /var/lib/proxmox-backup/olimpbkp
|
||||||
|
&&&
|
||||||
|
|
||||||
|
### Еженедельный отчёт
|
||||||
|
|
||||||
|
&&&bash
|
||||||
|
# Дедупликация
|
||||||
|
proxmox-backup-client datastore stats olimpbkp | grep "Deduplication"
|
||||||
|
|
||||||
|
# Прирост за неделю
|
||||||
|
# Сравнить размер datastore с прошлой неделей
|
||||||
|
&&&
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Связанные разделы:**
|
**Связанные разделы:**
|
||||||
- [Гипервизор Proxmox](02-hypervisor.md)
|
- [Гипервизор Proxmox](02-hypervisor.md)
|
||||||
- [Виртуальные машины и LXC](03-vms-lxcs.md)
|
- [Виртуальные машины и LXC](03-vms-lxcs.md)
|
||||||
- [Управление конфигурацией (Ansible)](09-ansible.md)
|
- [Безопасность](10-security.md)
|
||||||
- [Безопасность](10-security.md)
|
- [Мониторинг и логирование](08-monitoring.md)
|
||||||
Loading…
Reference in New Issue
Block a user