mysurik.ru

Proxmox VE: Настройка Резервного Копирования (VZDump) (Часть 5)

5

Привет всем энтузиастам надежной инфраструктуры!

Мы научились создавать VM и LXC-контейнеры. Но что, если диск сервера выйдет из строя или вы случайно удалите важный файл? Без плана резервного копирования вся ваша работа будет потеряна. Я сам в этом убедился на горьком опыте: однажды по ошибке удалил не ту виртуальную машину, и меня спас только свежий бэкап.

Proxmox использует утилиту VZDump для создания полных (full) или инкрементальных (incremental) копий ваших VM и контейнеров. Я пользуюсь ей постоянно и в этой статье расскажу, как я настроил резервное копирование у себя дома.


Шаг 16: Подготовка Хранилища для Бэкапов

Прежде чем создавать бэкапы, вам нужно надежное место для их хранения. Никогда не храните бэкапы на том же диске, где находится Proxmox или ваши VM! Это правило я выучил быстро: если диск с VM умрёт, вместе с ним умрут и все копии.

У себя я сначала хранил бэкапы прямо на системном диске сервера, чтобы не возиться с настройкой. А потом понял, насколько это бессмысленно: бэкап рядом с оригиналом не спасает от поломки диска. Пришлось делать всё правильно.

1. Добавление Сетевого Хранилища (NFS/SMB/CIFS)

Самый лучший вариант — использовать отдельный сервер (NAS) или сетевой ресурс. Я использую отдельную машину, на которой крутится сетевое хранилище, и копии складываю именно туда.

  1. Перейдите в Datacenter (Центр данных) → Storage (Хранилище).
  2. Нажмите Add (Добавить) → NFS (для Linux-серверов) или CIFS/SMB (для Windows/NAS).
  3. ID: Присвойте имя (например, nas-backups).
  4. Server: Введите IP-адрес вашего NAS/сервера.
  5. Export (NFS) / Share (CIFS): Укажите путь к общей папке на вашем сетевом устройстве (например, /mnt/backups).
  6. Content (Содержимое): Обязательно выберите VZDump Backup File. Если забыть про этот пункт, хранилище будет добавлено, но копии в него не попадут — я на это однажды потратил вечер.
  7. Нажмите Add (Добавить).

2. Добавление Локального Хранилища (если есть отдельный диск)

Если у вас есть отдельный физический диск на сервере, не используемый для VM, его тоже можно задействовать. Я пошёл по этому пути на другой своей машине: взял диск, который лежал без дела, и отдал его под бэкапы.

  1. Создайте на нем файловую систему и точку монтирования (например, /mnt/backup-disk).
  2. Перейдите в DatacenterStorageAddDirectory (Каталог).
  3. Directory: Укажите путь (например, /mnt/backup-disk).
  4. Content: Выберите VZDump Backup File.
  5. Нажмите Add.

После добавления я проверил, что новое хранилище видно в списке и что на него можно записывать. Для этого я запустил тестовый бэкап одной небольшой VM. Лучше убедиться заранее, чем в самый нужный момент обнаружить, что копии не пишутся.


Шаг 17: Настройка Автоматического Расписания (Scheduled Backup)

После того как хранилище готово, мы настроим автоматическое резервное копирование. Ручной запуск копий — дело хорошее, но я быстро понял, что забываю о нём. Поэтому автоматическое расписание стало моим спасением: копии создаются сами, а я просто проверяю, что всё в порядке.

  1. Перейдите в DatacenterBackup (Резервное копирование).
  2. Нажмите Add (Добавить).

Параметры Задания

  • Storage (Хранилище): Выберите хранилище, которое вы настроили на Шаге 16 (например, nas-backups).
  • Schedule (Расписание): Установите частоту.
    • Daily (Ежедневно)
    • Weekly (Еженедельно)
    • Monthly (Ежемесячно)
    • Пример: Установите Weekly на ночь с воскресенья на понедельник (Sun 23:00). Я выбрал для себя ночь с воскресенья на понедельник, чтобы копии не мешали работе в будни.
  • Day of Week (День недели): Выберите день.
  • Start Hour (Начальный час): Выберите время.
  • Selection (Выбор): Выберите, что копировать. Лучше выбрать All (Все) или All enabled VMs/CTs (Все включенные VM/CT). Я сначала настраивал бэкап только для одной VM, а потом перешёл на все машины сразу — так надёжнее.
  • Mode (Режим):
    • Snapshot (Снимок): Самый быстрый. VM остается работать, бэкап делается на лету. Я пользуюсь именно этим режимом для большинства машин.
    • Suspend (Приостановка): VM приостанавливается на время бэкапа.
    • Stop (Остановка): VM выключается на время бэкапа (самый надежный, но требует простоя).
    • Для большинства домашних нужд подходит Snapshot.
  • Compression (Сжатие): Рекомендуется Zstd (быстро и эффективно). Я раньше использовал обычное сжатие, а после перехода на Zstd заметил, что копии стали делаться заметно быстрее.
  • Retention (Хранение): Укажите, сколько копий нужно хранить (например, 7). Старые копии будут автоматически удаляться. Это удобно: папка с бэкапами не разрастается бесконечно, а нужные версии остаются на месте.
  1. Нажмите Create (Создать).

После создания задания я вручную запустил первый бэкап, чтобы убедиться, что всё работает. В списке задач появился процесс, и через некоторое время копия успешно завершилась. Такой контрольный запуск помогает найти ошибки настройки до того, как они станут критичными.


Шаг 18: Восстановление Данных

Если что-то пошло не так, восстановление данных в Proxmox очень простое. Я проверил это не по инструкции, а в жизни: когда я по ошибке удалил одну из виртуальных машин, именно восстановление из бэкапа вернуло всё на место.

  1. Выберите хранилище с бэкапами (например, nas-backups).
  2. Найдите нужный файл бэкапа (vzdump-qemu-XXX...).
  3. Нажмите Restore (Восстановить).
  4. Proxmox автоматически создаст новую VM/CT из этого файла. Вы можете восстановить ее с новым ID, не затрагивая старую. Мне это помогло: я восстановил машину под новым ID, убедился, что она работает, и только потом убрал старую.

Поздравляю! Теперь ваша домашняя инфраструктура защищена от сбоев. Но я советую не останавливаться на одной копии: если есть возможность, заведите второе хранилище и иногда копируйте важные бэкапы туда. Однажды у меня сломалось сетевое хранилище, и хорошо, что самые ценные копии лежали ещё и на другом диске.

Следующий Шаг: Мы разобрали основы. Теперь пора заняться мониторингом и безопасностью. Хотите узнать, как настроить брандмауэр (Firewall) в Proxmox для защиты ваших VM?

Тогда вам сюда.

Кстати, вот история, как я случайно удалил VM и меня спас снапшот.

Все статьи про Proxmox — от установки до High Availability — я собрал в одном месте. Заодно там ссылка на статью про случайное удаление VM и спасение через снапшот.

Что я понял про частоту бэкапов

Сначала я делал копии раз в неделю и думал, что этого достаточно. Пока однажды не потерял почти целый день работы, который накопился с момента последнего бэкапа. Тогда я пересмотрел свои взгляды: для серверов, где постоянно что-то меняется, я поставил ежедневные копии.

Для редко меняющихся машин еженедельных копий по-прежнему хватает. Главное — не делать всё на глаз, а подумать, сколько работы вы готовы потерять в худшем случае. Ответ на этот вопрос и подскажет нужную частоту.

Проверка восстановления — обязательно

Самая частая ошибка, которую я вижу у новичков, — бэкапы есть, а восстановление никто не проверял. Я и сам так делал, пока не понадобилось восстановить VM в реальной ситуации и не оказалось, что копия старая и неполная. Теперь у меня правило: раз в месяц открываю свежую копию и проверяю, что она реально запускается.

Проверка занимает несколько минут, но даёт уверенность, что в критический момент бэкап сработает. Восстановил тестовую машину, посмотрел, что всё на месте, удалил её. Зато сплю спокойно, зная, что мои данные под защитой.

Куда смотреть, если копия не создалась

Иногда задание резервного копирования завершается с ошибкой. Я сталкивался с этим из-за нехватки места в хранилище и из-за проблем с сетевым доступом к NAS. В таких случаях я открываю список задач, смотрю сообщение об ошибке и чиню причину.

Чаще всего достаточно освободить место или поправить права доступа к папке. После исправления я запускаю копию вручную и убеждаюсь, что всё прошло успешно. Проверка результата после каждого задания вошла у меня в привычку.

Инкрементальные копии против полных

Когда бэкапов становится много, я начинаю задумываться, не переплачиваю ли я за место. Тут на помощь приходят инкрементальные копии: первая копия полная, а следующие содержат только изменения. Это экономит место и время. Я переключил некоторые машины на такой режим.

Правда, у инкрементальных копий есть нюанс: восстановление требует наличия всех частей цепочки. Если одна из копий повредится, восстановить машину из более ранней версии будет сложнее. Поэтому для самых важных серверов я оставил полные копии, а инкрементальные использую для остальных.

Бэкапы для контейнеров LXC

Контейнеры LXC копируются не хуже виртуальных машин. Я добавил их в то же задание резервного копирования, и они попадают в расписание автоматически. Для контейнеров тоже работает режим snapshot, поэтому копии не мешают их работе.

Мне нравится, что Proxmox относится к LXC так же серьёзно, как и к VM. Не нужно придумывать отдельные механизмы — всё настраивается в одном месте. Бэкап для контейнеров стал частью моей общей схемы защиты данных.

Место в хранилище — постоянный контроль

Хранилище для бэкапов имеет свойство заканчиваться. Я проверяю свободное место перед каждым обновлением настроек и слежу за отчётами заданий. Когда места остаётся мало, я увеличиваю retention или добавляю ещё один диск. Так копии всегда имеют куда писаться.

Контроль места в хранилище я сделал частью регулярного осмотра сервера. Пара минут в неделю экономят много нервов. Неприятно узнать об ошибке бэкапа в момент, когда данные уже потеряны.

Отправка уведомлений о бэкапах

Proxmox умеет уведомлять о результатах резервного копирования по почте. Я настроил уведомления об ошибках, чтобы сразу узнавать о проблемах. Когда задание завершается с ошибкой, мне приходит письмо, и я не пропускаю сбой.

Поначалу я не настраивал почту и узнавал о проблемах случайно. После того как одно задание неделю молча падало, я исправил настройку уведомлений. Теперь о сбоях я узнаю в тот же день и быстро чиню.

Автоматический запуск бэкапов по требованию

Иногда нужно сделать копию вне расписания. Например, перед большим обновлением или экспериментом с настройками. Я научился запускать бэкап вручную из веб-интерфейса за пару кликов. Это добавляет гибкости к автоматическому расписанию.

Ручной запуск помогает мне чувствовать себя спокойнее перед серьёзными изменениями. Сделал копию, проверил, что она создалась, и только потом меняю настройки. Если что-то пойдёт не так, я всегда могу вернуться назад.

Ещё одна копия за пределами дома

Держать все бэкапы в одном месте — риск. Я задумался о том, чтобы хранить копию важных данных ещё где-то, вне домашней сети. Пока это в планах, но схема простая: периодически выносить свежую копию на внешний диск или в удалённое хранилище.

Такая практика называется правилом трёх копий, и она реально работает. Если дом сгорит, бэкапы в локальной сети не помогут. Поэтому для самых ценных данных я планирую третью копию вне дома.

Ошибка восстановления и как я её обошёл

Однажды при восстановлении VM из копии Proxmox выдал ошибку из-за несовпадения конфигурации. Сначала я растерялся, но потом восстановил машину под новым ID и поднял старый конфиг вручную. Машина поднялась, и данные оказались на месте.

Этот случай научил меня не паниковать при ошибках восстановления. Почти всегда проблему можно решить, если посмотреть на текст ошибки и подумать. В крайнем случае всегда можно извлечь файлы из бэкапа без полного восстановления машины.

Планы на развитие защиты данных

Дальше я хочу добавить репликацию важных машин между серверами, чтобы в случае поломки одного сервера второй быстро взял нагрузку на себя. Это следующий уровень надёжности после бэкапов. Пока основная защита — регулярные копии, но планы есть.

Главное, что я вынес из настройки бэкапов, — лучшее время для их создания было вчера, а второе лучшее — сегодня. Не откладывайте защиту своих данных. Настройка занимает час, а спокойствие стоит того.

Итог по настройке бэкапов

Резервное копирование в Proxmox я настроил один раз и больше почти не вспоминаю о нём. Хранилище, расписание и режим snapshot сделали своё дело: данные копируются автоматически, а восстановление работает. Если вы ещё не настроили бэкапы, сделайте это сейчас — пока не случилось неприятности.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *