Инструкция по безопасному бэкапу почтового сервера без риска повредить оригинальные данные.
Вы хотите сделать резервную копию почты, но боитесь повредить оригинальный диск? В этой статье я покажу, как безопасно подключить диск от почтовой виртуальной машины к другой VM в Proxmox, чтобы скопировать данные, не затрагивая живой сервер.
read-only, никакие изменения на оригинале невозможны.
📌 Сценарий
- У вас есть виртуальная машина с почтовым сервером (например, Postfix + Dovecot)
- Почтовые данные хранятся на отдельном разделе или диске (
/var/vmail) - Вы хотите сделать бэкап, не останавливая сервер надолго и не рискуя повредить данные
🔧 Шаг 1: Подготовка
Убедитесь, что:
- У вас есть доступ к хосту Proxmox (через SSH или веб-интерфейс)
- Есть вторая виртуалка (например, Ubuntu) — будем называть её
backup-vm - Почтовый сервер желательно остановить точнее ОБЯЗАТЕЛЬНО ОСТАНОВИТЬ. нельзя использовать один диск на две виртуалки. можно но с ооочень большой осторожность. Так что на время операции (или использовать снапшот) лучше оригинал заглушить.
⚙️ Шаг 2: Подключите диск к backup-VM через CLI
Зайдите на хост Proxmox по SSH и выполните команду:
qm set 111 -virtio1 ssd_storage:104/vm-104-disk-0.qcow2,ro=1
Где:
111— ID вашей backup-VM104— ID почтовой VMssd_storage— имя хранилищаro=1— ключевой параметр: диск подключается только для чтения
-unused0 — он не поддерживает опцию ro=1. Используйте -virtioX, -scsiX или -sataX.
💾 Шаг 3: Запустите backup-VM и смонтируйте диск
Запустите backup-VM и зайдите в неё:
qm start 111
Внутри backup-VM выполните:
# Создаём точку монтирования sudo mkdir -p /mnt/mail-disk # Проверяем, какой диск появился sudo lsblk # Если файловая система "грязная" (dirty), монтируем с noload sudo mount -o ro,noload /dev/vda /mnt/mail-disk
Флаг noload позволяет смонтировать ext4 с "незавершённым журналом" без восстановления — идеально для чтения бэкапа.
🔍 Шаг 4: Найдите почтовые данные
Почта обычно лежит в:
ls /mnt/mail-disk/var/vmail ls /mnt/mail-disk/home/*/Maildir ls /mnt/mail-disk/opt/zimbra
Если вы используете Postfix + Dovecot — скорее всего, это /var/vmail.
🔁 Шаг 5: Сделайте бэкап с помощью rsync
Скопируйте данные на внешний диск или в облако:
rsync -av /mnt/mail-disk/var/vmail/ /mnt/backup-drive/mail-backup/
Флаги:
-a— архивный режим (сохраняет права, владельца, время)-v— вывод в подробном режиме- Слеш в конце пути — копирует содержимое, а не папку целиком
🧹 Шаг 6: Отключите диск
После завершения бэкапа отмонтируйте диск и отключите его:
# На backup-VM sudo umount /mnt/mail-disk # На хосте Proxmox qm set 111 -virtio1 none
🛡️ Почему это безопасно?
- Диск подключён в режиме read-only на уровне гипервизора
- Монтирование выполнено с
ro,noload— никакой записи - Оригинальный сервер не затронут
- Даже если что-то пойдёт не так — данные на почтовом диске останутся нетронутыми
💡 Советы
- Используйте
qm shutdown 104вместоqm stop, чтобы избежать "грязных" журналов - Для регулярных бэкапов создайте скрипт с автоматическим подключением и
rsync - Рассмотрите использование
borgилиrcloneдля шифрования и дедупликации
Комментарии