2016 Failoverconf - Организация резервного копирования сложных интернет магазинов.pptx
- Количество слайдов: 53
Организация резервного копирования сложных интернет магазинов Евгений Потапов ITSumma
Евгений Потапов ITSumma. ru, генеральный директор Круглоcуточное удаленное администрирование серверов и техническая поддержка сайтов 100 миллионов уникальных посетителей в сутки на поддерживаемых сайтах
на поддержке
Работаем с 2008 года Офисы в Иркутске, Санкт-Петербурге и Москве 150+ клиентов на круглосуточной поддержке 90 ТБ резервных копий 5 оповещений о «сломавшихся» бэкапов в сутки
Содержание • Что такое надежный бэкап? • С какими проблемами можно столкнуться? • Как правильно делать бэкапы? • Как правильно проверять бэкапы? • Disclaimer: говорим LA(N)MP
Критерии надежности бэкапа • Бэкап создается, туда входит все необходимое • Из бэкапа можно восстановиться в приемлемое время • При восстановлении из бэкапа данные сохраняют свою актуальность • Из бэкапа можно восстановиться в случае аварии сервера/датацентра
«Да чему там ломаться? »
Где можно ошибиться - БД • Процесс дампа базы не запускается
Где можно ошибиться - БД • Процесс дампа базы не запускается • Дамп базы данных копирует не ту базу данных
Где можно ошибиться - БД • Процесс дампа базы не запускается • Дамп базы данных копирует не ту базу данных • Во время резервного копирования заканчивается место на диске
Где можно ошибиться - БД • Процесс дампа базы не запускается • Дамп базы данных копирует не ту базу данных • Во время резервного копирования заканчивается место на диске • Дамп базы данных делается с неработающего слейва
Где можно ошибиться - БД • Процесс дампа базы не запускается • Дамп базы данных копирует не ту базу данных • Во время резервного копирования заканчивается место на диске • Дамп базы данных делается с неработающего резерва • Дамп базы данных делается реже чем необходимо
Где можно ошибиться - БД • Процесс дампа базы не запускается • Дамп базы данных копирует не ту базу данных • Во время резервного копирования заканчивается место на диске • Дамп базы данных делается с неработающего резерва • Дамп базы данных делается реже чем необходимо • Дамп базы данных сохраняется только на том же сервере
Где можно ошибиться - БД • Процесс дампа базы не запускается • Дамп базы данных копирует не ту базу данных • Во время резервного копирования заканчивается место на диске • Дамп базы данных делается с неработающего резерва • Дамп базы данных делается реже чем необходимо • Дамп базы данных сохраняется только на том же сервере • Дамп базы данных делается «хитрым» способом и невосстановим
Где можно ошибиться - статика • Статические файлы вообще не копируются
Где можно ошибиться - статика • Статические файлы вообще не копируются • Статика копируется без карточек товара
Где можно ошибиться - статика • Статические файлы вообще не копируются • Статика копируется без карточек товара • Статика запаковывается в архив
Где можно ошибиться - статика • Статические файлы вообще не копируются • Статика копируется без карточек товара • Статика запаковывается в архив • Все складывается на тот же сервер
Где можно ошибиться - конфигурация • «Конфиги» не бэкапируются
Как сделать правильно? • Осознание и постановка требований • Правильное копирование • Регулярная проверка работоспособности • Проверка восстановления
Как сделать правильно? – постановка требований • Насколько актуальными будут данные при восстановлении на заданный момент времени?
Как сделать правильно? – постановка требований • Насколько актуальными будут данные при восстановлении на заданный момент времени? • Как долго займет процесс восстановления базы? Статики? Сервера целиком?
Как сделать правильно? – постановка требований • Насколько актуальными будут данные при восстановлении на заданный момент времени? • Как долго займет процесс восстановления базы? Статики? Сервера целиком? • Где хранятся бэкапы? Насколько эта площадка не связана с основной?
Как сделать правильно? – бэкап My. SQL • Mysqldump – долгая, блокирующая процедура с долгим полным восстановлением.
Как сделать правильно? – бэкап My. SQL • Mysqldump – долгая, блокирующая процедура с долгим полным восстановлением. • Применяем Xtrabackup для создания полных копий (отдельные таблицы восстановить можно, но сложнее) http: //www. itsumma. ru/blog/1/
Как сделать правильно? – бэкап My. SQL • Mysqldump – долгая, блокирующая процедура с долгим полным восстановлением. • Применяем Xtrabackup для создания полных копий (отдельные таблицы восстановить можно, но сложнее) http: //www. itsumma. ru/blog/1/ • Сервер с отложенной репликацией для защиты от человеческого фактора (pt-slave-delay или CHANGE MASTER TO MASTER_DELAY)
Как сделать правильно? – бэкап My. SQL • Mysqldump – долгая, блокирующая процедура с долгим полным восстановлением. • Применяем Xtrabackup для создания полных копий (отдельные таблицы восстановить можно, но сложнее) http: //www. itsumma. ru/blog/1/ • Сервер с отложенной репликацией для защиты от человеческого фактора (pt-slave-delay или CHANGE MASTER TO MASTER_DELAY) • Репликация и резервирование binlog-ов (с помощью mysqlbinlog https: //www. percona. com/blog/2012/01/18/backing-up-binary-logfiles-with-mysqlbinlog/)
Как сделать правильно? – статика • Нефатальное количество файлов – архивация и копирование
Как сделать правильно? – статика • Нефатальное количество файлов – архивация и копирование • Не хватает места, много данных – tar + stream tar czhf - /home/bitrix/www/ —exclude=bitrix/managed_cache — exclude=bitrix/stack_cache —exclude=bitrix/cache | ssh $SSH "cat -> ${RPATH}/${FN}" ; » $LOG 2>&1 || die_if_tar_failed files_tar
Как сделать правильно? – статика • Нефатальное количество файлов – архивация и копирование • Не хватает места, много данных – tar + stream tar czhf - /home/bitrix/www/ —exclude=bitrix/managed_cache — exclude=bitrix/stack_cache —exclude=bitrix/cache | ssh $SSH "cat -> ${RPATH}/${FN}" ; » $LOG 2>&1 || die_if_tar_failed files_tar • Большой объем данных – rsync на бэкапный сервер (без delete)
Как сделать правильно? – статика • Нефатальное количество файлов – архивация и копирование • Не хватает места, много данных – tar + stream tar czhf - /home/bitrix/www/ —exclude=bitrix/managed_cache — exclude=bitrix/stack_cache —exclude=bitrix/cache | ssh $SSH "cat -> ${RPATH}/${FN}" ; » $LOG 2>&1 || die_if_tar_failed files_tar • Большой объем данных – rsync на бэкапный сервер (без delete) • Есть резерв – lsyncd на резервный сервер без delete
Как сделать правильно? – конфиги • git autocommit /etc директории
Как сделать правильно? – конфиги • git autocommit /etc директории • составляем список всего что надо бэкапить (кроны, конфиги) и бэкапим
Как сделать правильно? – конфиги • git autocommit /etc директории • составляем список всего что надо бэкапить (кроны, конфиги) и бэкапим • Совсем по хорошему – управление конфигурацией
Как сделать правильно? – конфиги • git autocommit /etc директории • составляем список всего что надо бэкапить (кроны, конфиги) и бэкапим • Совсем по хорошему – управление конфигурацией
Как сделать правильно? – мониторинг • Бэкап ломается раз в 29 дней. Если вы его не проверяли - весьма вероятно что он уже сломан.
Как сделать правильно? – мониторинг • Бэкап ломается раз в 29 дней. Если вы его не проверяли - весьма вероятно что он уже сломан. • Мониторим сервер во время создания бэкапа (место на диске, доступность сайта)
Как сделать правильно? – мониторинг • Бэкап ломается раз в 29 дней. Если вы его не проверяли - весьма вероятно что он уже сломан. • Мониторим сервер во время создания бэкапа (место на диске, доступность сайта) • Мониторим вывод логов бэкапных скриптов (innobackupex: completed OK!)
Как сделать правильно? – мониторинг • Бэкап ломается раз в 29 дней. Если вы его не проверяли - весьма вероятно что он уже сломан. • Мониторим сервер во время создания бэкапа (место на диске, доступность сайта) • Мониторим вывод логов бэкапных скриптов (innobackupex: completed OK!) • Мониторим размер залитых бэкапов (слишком маленькие – алерт)
Как сделать правильно? – мониторинг • Бэкап ломается раз в 29 дней. Если вы его не проверяли - весьма вероятно что он уже сломан. • Мониторим сервер во время создания бэкапа (место на диске, доступность сайта) • Мониторим вывод логов бэкапных скриптов (innobackupex: completed OK!) • Мониторим размер залитых бэкапов (слишком маленькие – алерт) • Мониторим изменение размера залитых бэкапов (не меняется – алерт)
Как сделать правильно? – мониторинг • Бэкап ломается раз в 29 дней. Если вы его не проверяли - весьма вероятно что он уже сломан. • Мониторим сервер во время создания бэкапа (место на диске, доступность сайта) • Мониторим вывод логов бэкапных скриптов (innobackupex: completed OK!) • Мониторим размер залитых бэкапов (слишком маленькие – алерт) • Мониторим изменение размера залитых бэкапов (не меняется – алерт) • Мониторим последнюю дату залитых бэкапов (не было больше суток – алерт)
Как сделать правильно? – мониторинг • Бэкап ломается раз в 29 дней. Если вы его не проверяли - весьма вероятно что он уже сломан. • Мониторим сервер во время создания бэкапа (место на диске, доступность сайта) • Мониторим вывод логов бэкапных скриптов (innobackupex: completed OK!) • Мониторим размер залитых бэкапов (слишком маленькие – алерт) • Мониторим изменение размера залитых бэкапов (не меняется – алерт) • Мониторим последнюю дату залитых бэкапов (не было больше суток – алерт)
Как сделать правильно? – контроль • Не верим роботам
Как сделать правильно? – контроль • Не верим роботам • Проверка возможности распаковать архив
Как сделать правильно? – контроль • Не верим роботам • Проверка возможности распаковать архив • Проверка времени распаковки
Как сделать правильно? – контроль • Не верим роботам • Проверка возможности распаковать архив • Проверка времени распаковки • Проверка того что в бэкап входит все что нужно
Как сделать правильно? – контроль • Не верим роботам • Проверка возможности распаковать архив • Проверка времени распаковки • Проверка того что в бэкап входит все что нужно • Попытка поднять БД
Как сделать правильно? – контроль • Не верим роботам • Проверка возможности распаковать архив • Проверка времени распаковки • Проверка того что в бэкап входит все что нужно • Попытка поднять БД • Попытка поднять сайт
Как сделать правильно? – bonus track • Не проверенный бэкап – не бэкап
Как сделать правильно? – bonus track • Не проверенный бэкап – не бэкап • Реплика – не бэкап
Как сделать правильно? – bonus track • Не проверенный бэкап – не бэкап • Реплика – не бэкап • Сделать правильно на старте проще чем сделать правильно потом
Как сделать правильно? – bonus track • Не проверенный бэкап – не бэкап • Реплика – не бэкап • Сделать правильно на старте проще чем сделать правильно потом • Все равно очень страшно
Евгений Потапов http: //facebook. com/eapotapov@itsumma. ru http: //itsumma. ru


