Проект KDE чудом не потерял содержимое всех Git-репозиториев
2013-03-26
LinuxDoc.Ru,
Один из администраторов инфраструктуры проекта KDE описал подробности произошедшего несколько дней назад инцидента, который мог бы быть назван "Великим бедствием KDE 2013 года". В результате случившегося, разработчики KDE чуть было не потеряли содержимое 1500 Git-репозиториев проекта.
Всё началось с повреждения содержимого файловой системы Ext4 на первичном Git-сервере после неудачного перезапуска виртуальной машины после применения обновлений на одном из серверов проекта. В результате сбоя файловой системы оказалась нарушена целостность первичного Git-репозитория, содержимое которого было разрушено и данные многих репозиториев потеряны. Ситуация стала напоминать катастрофу, когда администраторы приступили к восстановлению данных из резервных копий. Дело в том, что для резервного копирования применялась практика зеркалирования Git-репозитория. Перебирая зеркала администраторов охватил ужас - система зеркалирования успела автоматически синхронизировать ошибочные данные на все вторичные серверы, содержимое репозиториев на которых также пришло в негодность или было удалено.
История оказалась со счастливым концом - была найдена копия информации и содержимое репозиториев удалось полностью восстановить. Если бы не стечение обстоятельств, данная копия вполне могла бы не появиться и восстанавливать данные пришлось бы по крупицам. Дело в том, что за день до инцидента, в рамках переноса содержимого одного из серверов на новое оборудование, была дополнительно настроена система клонирования Git-репозиториев на ещё не введённый в эксплуатацию новый сервер. При этом синхронизация была настроена на запуск раз в 20 минут и начало очередного цикла пришлось на перезагрузку проблемного сервера, что привело к завершению запуска скрипта полной синхронизации по таймауту и выполнению следом только скрипта загрузки последней ревизии из репозитория на сбойном сервере, который также завершился неудачей так как сервер не сумел сформировать корректный набор данных. В результате, на сервере сохранилась копия репозитория в виде до перезагрузки основного Git-сервера.
Главной ошибкой проектирования стало излишнее доверие первичному серверу git.kde.org, который воспринимался в качестве эталонного и в итоге стал единой точкой отказа. Система резервировния была рассчитана на восстановление в случае полной потери данных или краха сервера, но не оценивалась с позиции частичного повреждения данных и метаданных. В итоге разработчики получили хороший урок и поспешили предупредить коллег об опасности излишнего доверия к распределённому характеру Git и использованию "git clone --mirror" в качестве способа резервного копирования.
Оказалось, что механизм самоверификации, работающий при выполнении команд git, не работает для режима "--mirror".
При выполнении "git --mirror" зекралирование выполняется без проверки целостности и без лишних предупреждений даже в случае наличия в репозитории повреждённых объектов коммитов, ошибка выводится только при выполнении git-операций, обходящих всё дерево коммитов, или при запуске "git fsck".
linux
Новости Linux
.
Проект KDE чудом не потерял содержимое всех Git-репозиториев
Проект KDE чудом не потерял содержимое всех Git-репозиториев
admin
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности -
сообщите о них.
>>> После года разработки и 29 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API - Wine 6.0, который вобрал в себя более 8300 изменений. Из ключевых достижений новой версии отмечается поставка базовых модулей Wine в формате PE, бэкенд на основе графического API Vulkan для WineD3D, новая реализация текстовой консоли, поддержка DirectShow и фреймворка Media Foundation.
>>> Состоялся релиз Alpine
Linux 3.13, минималистичного дистрибутива, построенного на базе системной библиотеки Musl и набора утилит BusyBox. Дистрибутив отличается повышенными требованиями к обеспечению безопасности и собран с защитой SSP (Stack Smashing Protection). В качестве системы инициализации используется OpenRC, для управления пакетами применяется собственный пакетный менеджер apk. Alpine применяется для формирования официальных образов контейнеров Docker. Загрузочные iso-образы (x86_64, x86, armhf, aarch64, armv7, ppc64le, s390x, mips64) подготовлены в пяти вариантах: стандартном (130 МБ), с ядром без патчей (150 МБ), расширенном (570 МБ) и для виртуальных машин (40 МБ).
>>> 
MSN Погода – это легкое и удобное мобильное приложение для владельцев Android-смартфонов, которое позволяет получить прогноз погоды на ближайшие 5-10 дней, независимо от того, где именно находится человек. Утилита информирует об изменениях температуры воздуха, силе ветра, уровне влажности, возможных осадках и т. п.
>>> Началась подготовка к предстоящей заморозке пакетной базы выпуска Debian 11 "Bullseye", релиз которого ожидается летом 2021 года. Первая стадия заморозки пакетной базы намечена на 12 января 2021 года. На данном этапе будет прекращено выполнение "transitions" (обновление пакетов, требующее корректировки зависимостей у других пакетов, которое приводит к временному удалению пакетов из Testing), а также прекращено обновление пакетов, необходимых для сборки (build-essential).
Редакция портала:
Добро пожаловать на сайт, посвященный документации к ОС Linux, ее переводу и распространению. Мы надеемся, что Вы найдете тут всю необходимую информацию. Здесь представлены три основных вида документации на русском языке: руководства (man-pages), HOWTO и mini-HOWTO. В скором будущем возможно появление и других видов документации.
Авторские права на представленные документы принадлежат авторам перевода и распространяются в соответствии со Стандартной Общественной Лицензией, если в документе не указано обратное.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.