бэкап - 1С

Report
Резервное копирование: нужно ли
делать бэкапы, как часто, сценарии
использования
Александр Демидов
«1С-Битрикс»
Не забывайте «сохраняться»
Исследование Strategic Research Institute
30% предпринимателей после утраты
данных прекращают
предпринимательскую деятельность в
течение года.
60% предпринимателей, потерявших ВСЕ
данные, прекращают
предпринимательскую деятельность в
течение 6 месяцев после этого.
Общие принципы
Для разных сценариев сбоев – разные бэкапы
Нужно бэкапить файлы и базу данных
Это нужно делать постоянно, а не перед аварией 
Нужно бэкапить конфиги и настройки серверов и софта
Полезно проводить учения по восстановлению системы
Нужно уметь восстанавливаться быстро и уверенно
Восстановление можно частично автоматизировать
Лишь 1 из 10 сайтов имеет «правильный»
бэкап
Изолированность
Целостность
Версионность
Безопасность
Бэкап базы данных
Репликация – не бэкап. Но может выполнить некоторые его функции
(например, при использовании pt-slave-delay).
Для восстановления целого сервера БД в случае аварии используем
образ машин со всеми дисками – делаем целостный бэкап RAID’а,
используя файловую систему, поддерживающую freeze и механизм
snapshot’ов.
Логические (mysqldump) и бинарные инкрементальные (Xtrabackup)
бэкапы используются для восстановления отдельных баз или таблиц,
поврежденных в случае некорректных операций в системе или ошибок
пользователей.
Второй тип бэкапов делается на выделенном slave, на который не
распределяется общая нагрузка. Тем самым ресурсоемкие операции
создания бэкапов не влияют на работу пользователей.
Бэкап файлов – традиционно:
tar + gz/bz2:
Есть везде
Элементарный скрипт напишет любой программист
Каждый раз полный бэкап, большие объемы
Есть псевдо-инкрементальный бэкап. Он неудобный
Много мелких файлов - проблемы
Если не SSD, то тормозят прочие дисковые операции
Достать один файл - распаковывать все
Альтернативы
rsync
csync2
lsyncd
rdiff-backup
csync2 + inotify + самописные скрипты
bacula
И т.д.
Нюансы
*sync* - не бэкапы, в «зеркало» контента
Как и в случае с базой, могут использоваться для создания резервных
копий (чтобы не делать этого на «бою»)
inotify
Defaults
/proc/sys/fs/inotify/max_user_watches
8192
/proc/sys/fs/inotify/max_user_instances
128
/proc/sys/fs/inotify/max_queued_events
16384
Как делать бэкап RAID?
Для Amazon EC2 есть удобный механизм snapshot’ов. Как
сделать целостный бэкап RAID из нескольких дисков? А
лучше – всей машины в целом
Используем файловую систему, поддерживающую freeze (xfs, утилита
xfs_freeze; или на новых ядрах Linux и ext3/ext4 и механизм fsfreeze).
Делаем freeze файловой системы (в случае MySQL правильно
предварительно сделать FLUSH TABLES WITH READ LOCK).
Делаем снэпшоты всех дисков.
«Размораживаем» файловую систему.
Для бэкапа файлов – достаточно, но если хотим быстро и удобно
переезжать между AZ (Availability Zones), используем более высокий
уровень абстракции и оперируем образами целых машин – AMI
(Amazon Machine Image).
Где хранить бэкап?
Облачные хранилища (например, Amazon S3)
Доступность – 99.99%
Надежность – 99.999999999%
ACL
Шифрование (server-side, client-side)
Версионность
Резервирование собственными средствами
«Глубина» хранения
По одному на день
Еженедельный
Ежемесячный
Дополнительно - Glacier
Мониторинг всех процессов бэкапов
Лог работы скрипта (>) – обновился за N часов
Лог ошибок работы скрипта (2>) – должен быть пуст
Как упростить
процесс?
Безопасность: унести на другой
диск, сервер, к другому
провайдеру.
Раньше для создания резервной
копии было нужно: заключить
договор с провайдером,
настроить, развернуть бэкап.
С облачным бэкапом договоров не
нужно, настроек не нужно, а бэкап
сразу сохраняется в облаке «1СБитрикс».
Облачный бэкап
Каждому лицензионному ключу бесплатно выделяется
место в облаке (в зависимости от редакции).
Редакция
Место в облаке
Старт
500 Мб
Стандарт
1 Гб
Малый бизнес
2 Гб
Эксперт
3 Гб
Бизнес
5 Гб
Веб-кластер
10 Гб
Бизнес веб-кластер
25 Гб
Хранение бэкапа в облаке «1С-Битрикс» полностью
безопасно. У нас нет доступа к этим данным.
Безопасность в облаке
Облако 1С-Битрикс
Пароль архива
Шифрование blowfish
Бэкап
restore.php
Как настроить автоматический
бэкап
Если сайт работает на собственном окружении
Настроить выполнение агентов на cron,
запуская каждую минуту
/bitrix/modules/main/tools/cron_events.php
ИЛИ
Поставить на нужное время задачу на cron на
запуск
/bitrix/modules/main/tools/backup.php
Как работает автоматический
бэкап
cron
почта
агенты
cron_events.php
время X
backup.php
Если обновлены до 14 версии
Облако 1С-Битрикс
Независимость от провайдера
сайт легко перенести
Надежность
данные многократно резервируются в облаке
Доступность
в любом месте можете развернуть бэкап
Простота
не требуется заключать договор с провайдером, не
требуется настройка
Безопасность
ваши данные шифруются, даже сотрудники 1С-Битрикс не
имеют к ним доступа
Бэкап настроек и конфигурации
системного ПО
Система контроля версий
etckeeper
Образы машин с «чистой» конфигурацией
RPM-пакеты
Chef и т.п.
Резюме
Имея правильно спроектированную систему резервного
копирования, а также отлаженные процессы работы с
резервными копиями, можно быстро восстановить
работоспособность проекта или отдельных его элементов,
даже в случае критических сбоев, в том числе с потерей
данных.
Спасибо за внимание!
Вопросы?
Александр Демидов
[email protected]
+7-926-521-3700
@demidov
http://www.1c-bitrix.ru

similar documents