Зміст

🔄 Бекапи в Proxmox: Частина 1 Базове резервне копіювання

1. Вступ

Резервне копіювання один з найважливіших аспектів адміністрування Proxmox. Якщо ви використовуєте Proxmox як домашній сервер або у робочих цілях, важливо мати надійний механізм резервного копіювання, щоб у разі збою легко відновити дані.

Отже у цій статті ми:

✅ Розглянемо основні режими бекапів.
✅ Налаштуємо просте резервне копіювання на мережеве сховище по графіку.
✅ Дізнаємося, як відновити віртуальну машину або контейнер.
✅ А також, як відновити сервер після критичного збою.
✅ Налаштуємо сповіщення про помилки резервного копіювання.

Тож давайте почнемо!

2. Режими резервного копіювання у Proxmox VE

Proxmox має три основних режими резервного копіювання, кожен із яких має свої переваги та обмеження.

🟠 Призупинений бекап (Suspend) – тимчасово заморожує стан віртуальної машини або контейнера, щоб забезпечити цілісність даних під час створення резервної копії. Використовується для систем, які не можна повністю зупинити, але важливо уникнути пошкодження даних.

📸 Знімок (Snapshot) – дозволяє миттєво зберегти поточний стан VM або контейнера без зупинки сервісів. Це зручно для регулярного резервного копіювання в робочий час. Працює тільки на файлових системах, які підтримують snapshot-режим, наприклад LVM-thin або ZFS. У цьому випадку Proxmox тимчасово створює знімок, зчитує з нього дані і формує повноцінний бекап-файл

🛑 Зупинка (Stop) – цей тип резервного копіювання гарантує 100% консистентність даних, адже перед створенням бекапу машина вимикається. Це може бути критично важливо для баз даних, файлових серверів або інших сервісів, які повинні бути у стабільному стані перед копіюванням.

🔹 Окрім цих варіантів, важливо розуміти, що бекап Proxmox НЕ включає налаштування самого хоста, такі як системні конфігурації або додатково встановлені пакети. Щоб повністю відновити сервер після збою, їх потрібно резервувати окремо

Тому, окрім резервного копіювання віртуальних машин, варто подбати і про їхнє збереження. Це дозволить у разі повного збою швидко відновити не тільки віртуальні машини, а й усі важливі системні налаштування.

3. Налаштування простого резервного копіювання

3.1. Додавання сховища для бекапів

Перед тим, як створювати резервні копії, потрібно визначитися, де вони будуть зберігатися. Proxmox підтримує різні сховища, зокрема:

Локальне сховище (local, local-lvm) – знаходиться на основному диску сервера. швидке, просте, але небезпечне: якщо сервер вийде з ладу, всі резервні копії будуть втрачені.
Мережеве сховище (NFS, CIFS/SMB) – резервні копії зберігаються на зовнішньому сервері. Так безпечніше, бо дані зберігаються на іншому пристрої, але швидкість доступу лімітована мережею.
Proxmox Backup Server (PBS) – спеціалізоване рішення для резервного копіювання яке підтримує інкрементальні копії та дедуплікацію що пришвидшує процесс бекапу та економить місце. Це досить продвинуте та круте рішення, але його розглянемо в окремому розділі

Бекапити я хочу на мережеве сховище, тому його і додамо:

  1. Переходимо в Datacenter → Storage → Add.

  2. Вибираємо тип (наприклад, SMB для мережевого сховища).

  3. Вводимо IP-адресу сервера, логін та пароль і шлях до теки для зберігання бекапів.

  4. Натискаємо Add.

Тепер у нас є сховище для резервних копій.

3.2. Створення резервної копії для окремої машини

Якщо вам потрібно зробити бекап лише однієї віртуальної машини або контейнера, це можна зробити обравши їх спочатку, а потім:

  1. Перейти на вкладку Backup.

  2. Натискаємо Backup now.

  3. Вибираємо місце для збереження резервної копії.

  4. Тип резервного копіювання (Snapshot, Suspend або Stop).

  5. Натискаємо Start.

Через деякий час резервна копія буде готова. Це корисно, якщо вам потрібно зробити разовий бекап перед важливими змінами.

3.3 Створення автоматичного резервного копіювання всіх машин

Щоб не робити резервні копії вручну, можна налаштувати автоматичне резервне копіювання для обраних машин чи контейнерів. Для цього:

  1. Переходимо у Datacenter → Backup.

  2. Натискаємо Add.

  3. Вибираємо сховище для збереження бекапів.

  4. Обираємо графік коли ми хочемо робити бекапи

  5. Вибираємо All або конкретні машини для резервування.

  6. Вибираємо розклад (Daily, Weekly тощо).

  7. Також обираємо режим резервування про які ми говорили раніше. В мене критичних до цілісності даних сервісів немає тому обираю Снепшот за його швидкість.

  8. На вкладці Retention можна вказати яку кількість бекапів зберігати, наприклад тримати лише 5 останніх чи 3 тижневих. Досить зручно щоб не залити весь свій вільний простір бекапами, один раз налаштував і proxmox буде слідкувати за резервуванням і кількістю таких копій

  9. Також є можливість відредагувати шаблон для поміток до бекапів та додаткові можливості конфігурування такі як ліміт швидкості запису, але в нашому прикладі використання вони нам не потрібні, просто знайте де їх можна знайти

  10. Натискаємо Create.

З цього моменту Proxmox буде автоматично створювати резервні копії згідно з розкладом. Можна також запустити налаштований бекап вручну за допомогою кнопки ”Run now”

3.4. Приклад проблеми з великими дисками у VM

Коли ви додаєте великі фізичні диски до віртуальних машин у Proxmox, є ризик, що під час резервного копіювання буде збережено весь об’єм цього диска — навіть якщо на ньому майже нічого немає. Це не лише займає багато місця, але й затягує сам процес бекапу.

Я створив віртуальну машину для мого домашнього NAS-серверу на базі OpenMediaVault (OMV). Додатковий диск з даними я приєднав напряму через Proxmox (не через PCI Passthrough), просто як звичайний диск **sata1**, наприклад:

/dev/disk/by-id/ata-My_Big_Data_Drive

Проблема виникла тоді, коли я спробував зробити резервну копію цієї VM. Proxmox автоматично включив у бекап і цей додатковий диск. Незалежно від того, скільки на ньому фактично даних, резервується весь об’єм — а це сотні гігабайтів. Як наслідок, бекап стає великим і повільним.

Є три способи уникнути цього:

1. Тимчасово від’єднувати диск перед бекапом

Це найпростіше зробити через веб-інтерфейс:

  • Вимкніть віртуальну машину.

  • У вкладці Hardware оберіть диск і натисніть Detach.

  • Зробіть бекап як зазвичай.

  • Після завершення поверніть диск назад через консоль:

qm set 101 -sata1 /dev/disk/by-id/ata-My_Big_Data_Drive

🟡 Мінус: доведеться вручну повторювати ці кроки при кожному резервному копіюванні.

2. Використати PCI Passthrough

PCI Passthrough — це технологія, яка дозволяє передати фізичний пристрій напряму у віртуальну машину. У такому випадку диск не фігурує в конфігурації VM, і Proxmox не включає його в бекап.

🟢 Плюси:

  • Надійність

  • Простота у майбутніх бекапах (не потребує втручання)

🔴 Мінуси:

  • Потрібна підтримка з боку материнської плати та процесора

  • Ускладнена початкова конфігурація

3. Вимкнути бекап для конкретного диска

Найзручніший варіант — вказати прямо у конфігурації VM, які диски не потрібно бекапити.

Для цього:

  • Відкрийте файл конфігурації VM:
nano /etc/pve/qemu-server/101.conf
  • Додайте до потрібного рядка параметр backup=0. Наприклад:
sata1: /dev/disk/by-id/ata-My_Big_Data_Drive,backup=0

✅ Усе. Тепер при резервному копіюванні цей диск буде пропущено, а інші компоненти машини — збережені.

3.5. Повний бекап хоста Proxmox VE: конфігурації, пакети та налаштування

Бекап віртуальних машин — це добре, але якщо сервер повністю вийде з ладу, важливо також мати копії системних конфігурацій. Інакше доведеться все налаштовувати з нуля.

Коли це потрібно?

Якщо ви не змінювали стандартні налаштування — цей крок можна пропустити. Але якщо ви:

  • встановлювали додаткові пакети (NUT, WireGuard…)

  • додавали мережі, VLAN або сховища

  • налаштовували повідомлення чи PCI passthrough

— резервне копіювання конфігів вам необхідне.

Готове рішення

Proxmox не має вбудованої функції бекапу конфігурацій. Тому я використовую скрипт від DerDanilo:

🔗 GitHub: proxmox-stuff

Скрипт:

  • зберігає всі ключові конфігурації

  • формує список встановлених пакетів

  • зберігає інформацію про диски та віртуалки

⚠️ Скрипт також містить окремий файл для автоматичного відновлення системи на іншому хості — теоретично він має повністю відтворити вашу конфігурацію, якщо залізо ідентичне.

На практиці в мене це не запрацювало — можливо через відмінності в системі або недоопрацьованість скрипта.

Тож я використовую лише частину для створення бекапу, яка працює стабільно й надійно.

Як налаштувати

  1. Завантажити скрипт в теку з тижневими запусками скриптів (cron):
wget https://raw.githubusercontent.com/DerDanilo/proxmox-stuff/main/backup-and-restore/pve-autoconfig-backup.sh -O /etc/cron.weekly/pve-autoconfig-backup
  1. Зробити файл виконуваним:
chmod +x /etc/cron.weekly/pve-autoconfig-backup
  1. Вказати шлях для збереження резервних копій:
nano /etc/cron.weekly/pve-autoconfig-backup

Змінити:

DEFAULT_BACKUP_DIR="/mnt/nas/proxmox-config-backups"
  1. Запустити вручну для перевірки:
./etc/cron.weekly/pve-autoconfig-backup

Цей крок не займає багато часу, але в критичний момент може врятувати вашу систему.

Таблиця всіх важливих файлів для резервного копіювання у Proxmox VE

Важливі конфігурації для перенесення

Файл/КаталогЩо міститьНавіщо це потрібно?
🔹 Базові конфігурації Proxmox
/etc/pve/Основні налаштування Proxmox VE (кластер, сховища, VM, CT)🔹 Без цього Proxmox не працюватиме коректно
/etc/pve/nodes/<node>/qemu-server/Конфігурації всіх VM🔹 Містить параметри всіх віртуальних машин
/etc/pve/lxc/Конфігурації контейнерів LXC🔹 Потрібні для відновлення всіх CT
/etc/pve/jobs.cfgНалаштування всіх запланованих завдань (бекапи, верифікація)🔹 Автоматично відновить заплановані завдання
🔹 Сховища та диски
/etc/pve/storage.cfgНалаштування всіх сховищ (NFS, LVM, ZFS, PBS)🔹 Відновлює конфігурацію сховищ
/etc/fstabМонтування додаткових дисків🔹 Якщо використовуються окремі диски або NAS
/etc/lvm/lvm.confКонфігурація LVM🔹 Важливо, якщо використовується LVM для зберігання
/etc/zfs/zfs-list.cacheКонфігурація ZFS🔹 Потрібно для відновлення ZFS-пулів
🔹 Мережа та доступ
/etc/network/interfacesМережеві налаштування (IP, VLAN, мости)🔹 Якщо сервер має спеціальну мережеву конфігурацію
/etc/hostsЛокальні записи DNS🔹 Уникає проблем з підключенням між вузлами
/root/.ssh/SSH-ключі адміністратора🔹 Важливо для віддаленого доступу
/etc/ssh/sshd_configНалаштування SSH🔹 Якщо змінювали стандартний доступ до SSH
🔹 Безпека та користувачі
/etc/passwd, /etc/shadow, /etc/groupСписок користувачів та паролів🔹 Якщо є локальні облікові записи
/etc/pve/user.cfgКонфігурація користувачів та ролей Proxmox🔹 Відновлює права доступу
/etc/pve/firewall/Налаштування брандмауера🔹 Важливо, якщо налаштовано Proxmox Firewall
🔹 Кластер Proxmox VE
/etc/corosync/corosync.confКонфігурація Corosync для кластера🔹 Без цього вузли кластера не зможуть знайти один одного
/var/lib/pve-cluster/Дані кластера🔹 Використовується Proxmox для керування вузлами
🔹 PCI/USB Passthrough
/etc/default/grubПараметри ядра (IOMMU, PCI passthrough)🔹 Обов’язково для роботи passthrough
/etc/modprobe.d/vfio.confКонфігурація VFIO для passthrough🔹 Важливо для передачі пристроїв у VM
/etc/modulesСписок модулів ядра🔹 Додає vfio-pci, якщо потрібно
🔹 Бекапи та логи
/var/log/pve/Логи роботи Proxmox🔹 Допомагає діагностувати проблеми
/etc/vzdump.confГлобальні налаштування резервного копіювання🔹 Відновлює правила бекапів