Резервное копирование: нужно ли делать бэкапы , как...
description
Transcript of Резервное копирование: нужно ли делать бэкапы , как...
Резервное копирование: нужно ли делать бэкапы, как часто, сценарии использования
Александр Демидов«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С-Битрикс» полностью безопасно. У нас нет доступа к этим данным.
Шифрование blowfish
Безопасность в облаке
Бэкап
Облако 1С-Битрикс
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 и т.п.
Резюме
Имея правильно спроектированную систему резервного
копирования, а также отлаженные процессы работы с
резервными копиями, можно быстро восстановить
работоспособность проекта или отдельных его элементов,
даже в случае критических сбоев, в том числе с потерей
данных.
Спасибо за внимание! Вопросы?
Александр Демидов
+7-926-521-3700
@demidov
http://www.1c-bitrix.ru