48
Организация надежного резервного копирования веб- проекта Антон Баранов

Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

  • Upload
    ontico

  • View
    208

  • Download
    9

Embed Size (px)

Citation preview

Page 1: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Организация надежного резервного копирования

веб-проекта

Антон Баранов

Page 2: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Кто я?

Антон Барановначальник отдела по работе с клиентами в компании ITSumma

В прошлом - системный администратор Linux.

Более 7 лет опыта работы с Linux-системами и web-проектами различной сложности.

Последние два года тружусь над обеспечением стабильной работы highload-проектов для посетителей со всего мира.

Page 3: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

О нашей компании:

Работаем с 2008 года.

Офисы в Иркутске, Санкт-Петербурге и Москве.

150+ клиентов на круглосуточной поддержке.

90ТБ резервных копий.

5 оповещений о «сломавшихся» бэкапах в сутки.

Page 4: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Мы поддерживаем:

Page 5: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Содержание доклада:

•Что бэкапить?•Когда?•Чем?•Откуда?•Как проверить бэкапы?

Page 6: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Внимание!

Говорим про LA(N)MP

Page 7: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкап ломается раз в 29 дней

Page 8: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Series1

0 10 20 30 40 50

Люди делают бэкапы один раз в …

День 8%

Неделю 9%

Месяц 19%

Год 39%

Никогда 25%

* по статистике BackBlaze за 2015-й год

Page 9: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Общая информация

•Что именно нужно бэкапить? •Типы бэкапов. Плюсы и минусы.•Периодичность создания. •Выбор хранилища.

Page 10: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Что бэкапим?

•Файлы сайтов•Базы данных•Конфигурационные файлы•Список установленного ПО•Директории с самосборными сервисами

Page 11: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Типы бэкапов

•Полный•Инкрементальный

Page 12: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Полные бэкапы

Плюсы:• Самодостаточен• Прост в восстановлении• Легко проверить

Page 13: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Полные бэкапы

Минусы:• Большой объем• Длительное время создания• Большая нагрузка по сравнению с

инкрементальным бэкапом

Page 14: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Инкрементальные бэкапы

Плюсы:• Меньше нагрузка на систему• Для передачи нужно меньше трафика• Занимают меньше места

Page 15: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Инкрементальные бэкапы

Минусы:• Сложно проверить валидность• Сложно восстанавливать

Page 16: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Периодичность создания

Один раз в сутки ночью

Page 17: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Периодичность создания

Основные факторы:• Важность данных• Объем

Page 18: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Периодичность создания

• Важные данные бэкапим чаще• Объемные - реже

Page 19: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Период хранения

• Минимально - 1 неделя• Идеально - бесконечно

Page 20: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Выбор хранилища

Не нужно хранить все яйца в одной корзине

Page 21: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Выбор хранилища

Плохое внешнее хранилище:• ftp от хостера в этом же ДЦ• сервер в офисе• Dropbox/Яндекс.Диск

Page 22: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Выбор хранилища

Хорошее внешнее хранилище:• выделенный сервер с объемными дисками• Amazon S3 или аналоги (может быть низкая

скорость аплоада)

Page 23: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Выбор хранилища

Идеальный вариант:• Локальное: отдельный диск• Внешнее: сервер в другом ДЦ

Page 24: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Создание бэкапов

• Источники данных для бэкапа• Файлы• БД• Конфигурационные файлы• Особенности создания/восстановления

Page 25: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Источники данных

• production-сервер• резерв

Page 26: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкапы с production

• аффектят производительность ресурса• проблемы с местом на дисках• можно создавать только в определенное

время

Page 27: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкапы с резерва

Плюсы:• не аффектят работу ресурса• нет ограничений по времени и способам

создания

Page 28: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкапы с резерва

Минусы:• нужно поддерживать резерв в актуальном

состоянии

Page 29: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Синхронизация на резерв

• Файлы: lsyncd (без delete)• БД: штатные средства репликации(реплика не является бэкапом)

Page 30: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкапы файлов

• Небольшой объем и количество файлов - архивация и копирование• Большой объем данных - rsync на бэкапный

сервер (без delete, либо в /backup/YY-MM-DD)

Page 31: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкапы файлов

• Данных много, места мало: стриминг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

Page 32: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкапы файлов

Не нужно бэкапить:• кэши• внутренние бэкапы CMS• логи приложения

Page 33: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкапы БД

Инструменты:• Mysqldump• Percona xtrabackup• pg_dump

Page 34: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкапы БД

Трюки:• отложенная репликацияpt-slave-delay или CHANGE MASTER TO MASTER_DELAY• репликация и резервирование бинлогов

Page 35: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Бэкапы конфигов

• Настройки, кроны, список установленных пакетов, иногда - самосборное ПО• Git в /etc + autocommit• Системы управления конфигурациями

Page 36: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Неочевидные особенности бэкапов

• Процесс бэкапа БД не запускается• Бэкапим не ту БД• Бэкап с неактуального резерва• Период бэкапа БД не выверен• Процедура восстановления БД не отлажена

Page 37: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Неочевидные особенности бэкапов

• Восстанавливаем не той версией xtrabackup• Нет места для распаковки• ETA восстановления внезапно велико• Апдейт ПО на сервере привел к

неработоспособности бэкапов

Page 38: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Неочевидные особенности бэкапов

• Архив битый• Бэкап без статики• Архив с картинками сжимается• Бэкапы на том же сервере• Конфиги сервера не бэкапятся

Page 39: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Верификация бэкапов

• Тестовый стенд• Мониторинг процесса• Ручные проверки

Page 40: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Верификация бэкапов

Непроверенный бэкап - не бэкап

Page 41: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Тестовый стенд

• Пять виртуалок для проверки MySQL: 5.1, 5.5, 5.6, 5.7, MariaDB 10• Скрипты для распаковки, apply-log• Возможность создать виртуалку для

проверки всех бэкапов проекта (БД, файлы, конфиги)

Page 42: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Мониторинг процесса

• Сервер во время создания (место на диске, нагрузка, доступность проекта)• Вывод логов бэкапных скриптов

(innobackupex: completed OK!)• Размер созданных бэкапов

Page 43: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Мониторинг процесса

• Изменение размера заливаемых бэкапов• Дату последнего бэкапа

Page 44: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Ручные проверки

• Возможность распаковки бэкапа• Проверка времени распаковки• Проверка содержимого бэкапа

Page 45: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Ручные проверки

На стенде:• Восстанавливаем БД• Распаковываем файлы сайта• Восстанавливаем конфиги• Проверяем сайт в браузере

Page 46: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Надежный бэкап

• Содержит все необходимое для восстановления с нуля• Известны сроки восстановления и они

приемлемы• Бэкап актуален• Бэкап проверен• Создается

Page 47: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

Антон Баранов

https://www.facebook.com/[email protected]

https://anton-baranov.me

Page 48: Организация надежного резервного копирования веб-проекта. Практика и подводные камни / Антон Баранов

http://www.itsumma.ru/blog/1/https://www.percona.com/blog/2012/01/18/backing-up-binary-log-files-with-mysqlbinlog/https://www.itsumma.ru/blog/5/