Просмотров: 12360

Фэйл при 1500 бекапах: как KDE свой код зеркалировал


Один из администраторов инфраструктуры проекта KDE описал подробности произошедшего несколько дней назад инцидента, который разработчики KDE уже назвали Великим бедствием KDE 2013 года. В результате случившегося, проект KDE чуть было не потерял содержимое всех Git-репозиториев, включая репозитории смежных проектов.

Всё началось с повреждения содержимого файловой системы Ext4 на первичном Git-сервере после неудачного перезапуска хоста. В результате сбоя файловой системы оказалась нарушена целостность Git-репозитория, содержимое которого было разрушено. Ситуация стала напоминать катастрофу, когда администраторы приступили к восстановлению данных из резервных копий. Дело в том, что для резервного копирования применялась практика зеркалирования Git-репозитория.

Всего в мире было поднято около 1500 зеркал, но перебирая их администраторов охватил ужас — система зеркалирования успела автоматически синхронизировать ошибочные данные на запасные репозитории, содержимое которых также пришло в негодность.

Таким образом, содержимое большинства репозиториев KDE было удалено.

Великое бедствие KDE 2013 Git-репозиторий надежность облачного зеркалирования сбой Фейл при 1500 бекапах: как KDE зеркалировал свой код

История оказалась со счастливым концом — на одном из 1500 зеркал была найдена копия информации и содержимое репозиториев удалось полностью восстановить. Если бы не случайное стечение обстоятельств, данная копия вполне могла бы не появиться.

Дело в том, что за день до инцидента, в рамках переноса содержимого сервера на новое оборудование, была дополнительно настроена система клонирования репозитория на ещё не введённый в эксплуатацию новый сервер, при этом синхронизация была настроена на запуск раз в 20 минут и начало очередного цикла пришлось на перезагрузку проблемного сервера, что привело к завершению запуска скрипта полной синхронизации по таймауту и выполнению следом только скрипта загрузки последней ревизии из репозитория на сбойном сервере, который также завершился неудачей, так как сервер не сумел сформировать корректный набор данных.

В итоге разработчики получили хороший урок и поспешили предупредить коллег об опасности излишнего доверия к распределённому характеру Git и использованию git -mirror в качестве способа резервного копирования.

Великое бедствие KDE 2013 Git-репозиторий надежность облачного зеркалирования сбой Фейл при 1500 бекапах: как KDE зеркалировал свой код

А мораль здесь такова: эта история о том, что ошибки в проектировании архитектуры системы не решаются полуторатысячным дублированием информации — Github здесь бессилен. Старая как мир аксиома звучит так: «Зеркалирование != резервное копирование».

Внешняя ссылка по этой противоречиво-опасной специфике Git’a (у Git нельзя сделать нормально инкрементальный бэкап в файлы всех бранчей): Git Isn’t as Safe as You Think.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , , , ,
Эта запись опубликована: Понедельник, 25 марта 2013 в рубрике ИсторииНовости.

8 комментариев

Следите за комментариями по RSS
  1. Прошу вас обратить внимание на постоянную "резку" текста сайта (пару букв справа не видны, и так по всему тексту), просматривая его на планшете или телефоне в zoom-овом режиме.

    Уже не единожды прошу!

  2. Аноним: К сожалению, у меня есть только два планшета, оба андроидных: старенький Galaxy Tab и новый Asus Nexus 7 - на обоих нет эффекта обрезания букв, как вы описываете. Сейчас глянул также через встроенный примитивный браузер на Нокиа E71 - тоже всё нормально.

    Просто не знаю, что это и из-за чего эффект возникает в вашем случае.

  3. Что, ни у кого из разработчиков склоненной репы не было? Не верю.

  4. Хочу показать, как примерно это выглядит - http://ubuntuone.com/5FXPsFLhYg68srE8kTJgxY это в вертикальном отображении

  5. iPad 2 - никаких проблем с текстом.

  6. Ну или стоит использовать две системы для резервного копирования.

    Тогда если одна накроется, вторая скорее всего спасет ситуацию.

  7. Извините, но это хрень какая-та). При разработке в git, у каждого разработчика есть локальная копия репозитория. При количестве разработчиков KDE, я уверен, восстановить всё из этих локальных копий не составило бы проблемы.

  8. Не понял, откуда взялась цифра в "1500 зеркал по всему миру". Про 1500 репозиториев есть в первоисточнике, 1500 зеркал - нет.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз