TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #5773 7.42K
Расскажу кратенько, как я стараюсь делать бэкапы сервисов на конкретном примере. Это не значит, что я всегда делаю именно так, но этот пример взял с работающего сервера. Речь пойдёт не о хранении и проверки бэкапов, а о подходе к их снятию.

Для примера возьму Rocket.Chat. Он запущен в Docker в виртуальной машине и состоит из двух контейнеров:

▪️сам сервис rocket.chat, из полезного в нём файлы пользователей в директории upload;
▪️СУБД MongoDB, где хранится всё состояние сервера с перепиской пользователей.

Бэкапы делаю трёх видов:

1️⃣ Бэкап целиком виртуальной машины. Он состоит в основном из инкрементов, снимается быстро, регулярно разворачивается в автоматическом режиме и проверяется. Если что-то случится с сервером, самой системой в VM, то первое, что я сделаю - восстановлю бэкап виртуальной машины. Это самый простой и быстрый вариант. Не требуется ничего вспоминать, дополнительно настраивать и т.д. Эта виртуальная машина небольшая, поэтому каких-то нюансов и проблем с ним нет.

2️⃣ Бэкап на уровне docker volume. Использую, кстати, вот эту штуку - docker-volume-backup. Делаю им бэкап вольюма с MongoDB. Это не полноценный бэкап, потому что бэкапить так СУБД нельзя, она часть данных хранит в памяти, бэкап с некоторой долей вероятности может быть неконсистентным. Если СУБД не сильно нагружена по записи, то чаще всего всё ОК. Но как единственный вариант бэкапа это категорически не подходит, хотя регулярно вижу, как некоторые люди бэкапят так базы на постоянке. Обычно это те, кто не особо во всём этом разбирается - некоторые разработчики или просто случайные люди.

3️⃣ Делаю дамп базы данных средствами самой монги и забираю его как обычный файл, вместе с файлами директории upload из соседнего контейнера с рокетом.

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

Здесь я страхуюсь от проблем, в том числе накопившихся со временем, виртуальных машин и ОС на них. Бывают ситуации, что у тебя какие-то проблемы, ты восстанавливаешь бэкап месячной давности, а там по какой-то причине эта проблема уже есть из-за вируса или каких-то ещё проблем. Это редкие проблемы, но они бывают.

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

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

А бэкап всех файлов самой СУБД иногда помогает посмотреть на какие-то данные помимо непосредственно базы - журналы, конфиги, сертификаты и т.д. Для подстраховки не помешает. Это актуально не только для монги, а в том числе для mysql/postgresql.

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

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#backup
  • 👍 113
  • 👎 1
More from @srv_admin
  1. Sep 23, 2026Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает,…
  2. Sep 23, 2026Контейнеры в одном инструменте, виртуалки — в другом, частное облако — вообще отдельная ис…
  3. Sep 23, 2026Расскажу тем, кто не знает, и напомню тем, кто забыл, как я. Не надо в Proxmox в LXC конте…
  4. Sep 22, 2026Недавно случайно заметил любопытную информацию на тему Proxmox VE и новой функциональности…
  5. Sep 22, 2026✔️ Сети для всех — сообщество для тех, кто развивается в сетевом и системном администриров…
  6. Sep 22, 2026Я ранее уже рассказывал, что приобрёл себе домой полноценную серверную платформу на базе S…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →