Из-за сбоя зеркалирования проект KDE оказался на грани потери всех данных в Git-репозиториях

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

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

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

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

Источник:
http://www.opennet.ru/opennews/art.shtml?num=36491

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>