<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Проект KDE чудом не потерял содержимое всех Git-репозиториев]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=27484&amp;type=atom" />
	<updated>2013-03-25T19:10:51Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=27484</id>
		<entry>
			<title type="html"><![CDATA[Re: Проект KDE чудом не потерял содержимое всех Git-репозиториев]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=336437#p336437" />
			<content type="html"><![CDATA[<p>Ужастики прям какие-то про зеркала без бэкапов.</p>]]></content>
			<author>
				<name><![CDATA[zenon]]></name>
				<uri>https://linuxforum.ru/profile.php?id=6867</uri>
			</author>
			<updated>2013-03-25T19:10:51Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=336437#p336437</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Проект KDE чудом не потерял содержимое всех Git-репозиториев]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=336434#p336434" />
			<content type="html"><![CDATA[<p>А у меня такое ощущение, что это и <a href="http://www.opennet.ru/opennews/art.shtml?num=36492">это</a> — первоапрельские шутки, правда, несколько преждевременные <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /></p>]]></content>
			<author>
				<name><![CDATA[Lupo Alberto]]></name>
				<uri>https://linuxforum.ru/profile.php?id=9018</uri>
			</author>
			<updated>2013-03-25T19:01:53Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=336434#p336434</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Проект KDE чудом не потерял содержимое всех Git-репозиториев]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=336432#p336432" />
			<content type="html"><![CDATA[<p>Нет худа без добра)</p>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2013-03-25T18:58:19Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=336432#p336432</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Проект KDE чудом не потерял содержимое всех Git-репозиториев]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=336431#p336431" />
			<content type="html"><![CDATA[<p>Один из администраторов инфраструктуры проекта KDE <a href="http://jefferai.org/2013/03/24/too-perfect-a-mirror/"> описал</a> подробности произошедшего несколько дней назад инцидента, который мог бы быть назван &quot;Великим бедствием KDE 2013 года&quot;. В результате случившегося, разработчики KDE чуть было не потеряли содержимое 1500 Git-репозиториев проекта. </p><p>Всё началось с повреждения содержимого файловой системы Ext4 на первичном Git-сервере после неудачного перезапуска виртуальной машины после применения обновлений на одном из серверов проекта. В результате сбоя файловой системы оказалась нарушена целостность первичного Git-репозитория, содержимое которого было разрушено и данные многих репозиториев потеряны. Ситуация стала напоминать катастрофу, когда администраторы приступили к восстановлению данных из резервных копий. Дело в том, что для резервного копирования применялась практика зеркалирования Git-репозитория. Перебирая зеркала администраторов охватил ужас - система зеркалирования успела автоматически синхронизировать ошибочные данные на все вторичные серверы, содержимое репозиториев на которых также пришло в негодность или было удалено.</p><p>История оказалась со счастливым концом - была найдена копия информации и содержимое репозиториев удалось полностью восстановить. Если бы не стечение обстоятельств, данная копия&nbsp; вполне могла бы не появиться и восстанавливать данные пришлось бы по крупицам. Дело в том, что за день до инцидента, в рамках переноса содержимого одного из серверов на новое оборудование, была дополнительно настроена система клонирования Git-репозиториев на ещё не введённый в эксплуатацию новый сервер. При этом синхронизация была настроена на запуск раз в 20 минут и начало очередного цикла пришлось на перезагрузку проблемного сервера, что привело к завершению запуска скрипта полной синхронизации по таймауту и выполнению следом только скрипта загрузки последней ревизии из репозитория на сбойном сервере, который также завершился неудачей&nbsp; так как сервер не сумел сформировать корректный набор данных. В результате, на сервере сохранилась копия репозитория в виде до перезагрузки основного Git-сервера.</p><p>Главной ошибкой проектирования стало излишнее доверие первичному серверу&nbsp; git.kde.org, который воспринимался в качестве эталонного и в итоге стал единой точкой отказа. Система резервировния была рассчитана на восстановление в случае полной потери данных или краха сервера, но не оценивалась с позиции частичного повреждения данных и метаданных. В итоге разработчики получили хороший урок и поспешили предупредить коллег об опасности излишнего доверия к распределённому характеру Git и использованию &quot;git clone --mirror&quot; в качестве способа резервного копирования. </p><p>Оказалось, что механизм самоверификации, работающий при выполнении команд git, не работает&nbsp; для режима &quot;--mirror&quot;.<br />При выполнении &quot;git --mirror&quot; зекралирование выполняется без проверки целостности и без лишних предупреждений&nbsp; даже в случае наличия в репозитории повреждённых объектов коммитов, ошибка выводится только при выполнении git-операций, обходящих всё дерево коммитов, или при запуске &quot;git fsck&quot;. </p><p><a href="http://www.opennet.ru/opennews/art.shtml?num=36491">Источник »</a><br /><a href="http://jefferai.org/2013/03/24/too-perfect-a-mirror/">Главная ссылка к новости »</a></p>]]></content>
			<author>
				<name><![CDATA[Lupo Alberto]]></name>
				<uri>https://linuxforum.ru/profile.php?id=9018</uri>
			</author>
			<updated>2013-03-25T18:53:59Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=336431#p336431</id>
		</entry>
</feed>
