Снова поднимаю тему бэкапов. Я про них уже много писал и кажется, что уже и добавить нечего, но как известно: "Повторение - мать учения". Я сам постоянно работаю с бэкапами, поэтому и пишу про них часто, так как это практически ежедневная часть моей деятельности.
Сделаю пару заметок на основе своего недавнего опыта. Тестировал восстановление виртуалок с Proxmox Backup Server в случае, если основной гипервизор умрёт. Цеплял хранилище с бэкапами к новому гипервизору и пробовал восстанавливать. Бэкапы лились через инет по 100 мегабитному каналу. При размере виртуалок более 30-50 Гб очень велика вероятность получения ошибки при восстановлении. Ошибка не информативная, в духе:
HTTP/2.0 connection failedrestore failed: broken pipe
Скорее всего из-за каких-то проблем с каналом, хотя на практике он не отваливался. Восстановление падало в произвольном месте, но с 3-5 попытки в итоге всё получалось. Из-за этих проблем невозможно спрогнозировать время восстановления. Можно целый день пытаться и ничего не получится. Если других бэкапов нет, это провал. Нужно обязательно иметь архив на уровне данных, а не только VM.
Второй пример c Veeam. Есть архивы на уровне файлов, хотелось ещё и VM забэкапить полностью. А это файловые сервера с дисками по 1,5-2Т. Канал в интернет - 50 мегабит. На практике оказалось просто невозможно выполнить первый полный бэкап. Он должен длиться где-то 3-4 дня для каждый VM. Если по какой-то причине связь прервётся, всё надо начинать с начала. Докачки нет. Даже если каким-то чудом удастся сделать полный бэкап, очевидно, что восстановиться из него потом тоже не получится в разумные сроки. Я в итоге применил такую тактику. Оставлял по одному диску на VM, делал бэкап, потом добавлял второй диск, делал бэкап с ним и т.д., пока не будут добавлены все диски сервера. Так что рекомендую по возможности не делать один большой диск для VM. Лучше разбить на маленькие и потом объединить уже на уровне ОС. Это если вы хотите через интернет делать полные бэкапы VM. С одним большим диском это просто невозможно на практике сделать. При этом на уровне файлов все эти файловые сервера успешно бэкапятся, так как не критичны кратковременные обрывы связи. В данном случае мне полные бэкапы VM нужны, чтобы восстанавливать их локально на подменный сервер, который в случае необходимости будет физически доставлен в нужное место.
Какой из всего этого стоит сделать вывод? Надо всегда держать под рукой два вида бэкапов - полные VM и исходные данные в них (дампы баз, файлы и т.д.). Ну и проверять регулярно и то, и другое. Я повсеместно вижу, как люди делают бэкапы VM и на этом успокаиваются. И при этом много раз сталкивался с ситуациями, когда потом не получается восстановиться из этих бэкапов по разным причинам.
#backup