Назад | Перейти на главную страницу

Резервное копирование Zimbra 8.0.x, проблемы с data.mdb

При попытке создать резервную копию zimbra open source edition 8.0.1+ я столкнулся с проблемами со взрывом data.mdb.

В то время как мой каталог / opt / zimbra занимает всего около 8 ГБ, моя резервная копия составляет около 80 ГБ.

и rsync, и копия не работают должным образом.

Файл data.mdb на самом деле представляет собой файл с тонкой подготовкой 86 ГБ (по умолчанию).
Команды Rsync, а иногда и cp «взорвут» файл до его полного размера при копировании в каталог резервного копирования.
Это явно не помогает, если вы хотите создать резервную копию вне офиса или если у вас ограничены ресурсы.

Такое поведение кажется новым в версии 8.0.1.

Правильный способ предотвратить это - разделить резервную копию на 3 части. Ниже мой пример сценария резервного копирования (выполняемого от имени пользователя root).

Фрист Останови зимбру и убей все, что осталось.

#!/bin/bash
# Zimbra Backup Script
echo 'Starting Zimbra backup script'
date
echo 'Stopping Zimbra'
su zimbra -c '/opt/zimbra/bin/zmcontrol stop'
echo 'Kill Zimbra'
ps auxww | grep zimbra

Затем сделайте резервную копию каталога / opt / zimbra, ЗА ИСКЛЮЧЕНИЕМ каталога / opt / zimbra / data / ldap.

echo 'Saving base'
rsync -aHK --delete --exclude '*data/ldap*' /opt/zimbra/ /backup/zimbra-base

Затем преобразуйте файлы ldap в файлы ldif с помощью команды build in zmslapcat.
Вы можете сначала запустить сервер снова, так как эту команду можно запускать во время работы zimbra. но чтобы быть уверенным, что мы получим резервную копию замороженной среды, мы пока оставим ее отключенной.

echo 'Saving ldap config'
su zimbra -c '/opt/zimbra/libexec/zmslapcat -c /backup/zimbra-ldap'
echo 'Saving ldap main'
su zimbra -c '/opt/zimbra/libexec/zmslapcat /backup/zimbra-ldap'
echo 'Restarting zimbra'
su zimbra -c '/opt/zimbra/bin/zmcontrol start'
echo 'Finished'

Этот скрипт был протестирован на zimbra 8.0.1 под управлением ubuntu server 14.04.
Он должен работать в большинстве дистрибутивов и версий выше 8.0.1.

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

rsync -S  # it works, but it isn't "efficient"
cp --sparse=always
tar -S    # the GNU version.

К сожалению, моя любимая резервная копия, rdiff-backup, в настоящее время не поддерживает разреженные файлы. Я видел патч, чтобы он поддерживал разреженные файлы, но разработчики не извлекли его. Я тоже ничего не сделал с этим.

Duplicity, похоже, также не поддерживает разреженные файлы. Я не смотрел очень глубоко.

Вероятно, есть и другие, которые его поддерживают. Я знаю, что перемещение изображения qcow2 с разреженным файлом внутри работало должным образом.

Что касается резервного копирования, с чем-то столь же сложным, как Zimbra, я надеюсь, что все используют моментальные снимки LVM2 или моментальные снимки ZFS, чтобы избежать простоев, а затем запускают резервное копирование для хранилища моментальных снимков.