<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Леннарт Поттеринг представил свой новый проект Casync]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=39287&amp;type=atom" />
	<updated>2017-06-20T14:16:01Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=39287</id>
		<entry>
			<title type="html"><![CDATA[Леннарт Поттеринг представил свой новый проект Casync]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=455918#p455918" />
			<content type="html"><![CDATA[<p><br />&nbsp; &nbsp; Леннарт Поттеринг (Lennart Poettering) анонсировал&nbsp; проект Casync, над которым он работал последние несколько месяцев. Casync позиционируется как эффективное средство для распространения&nbsp; образов файловых систем, оптимизированное для организации частых обновлений&nbsp; через интернет, в том числе поверх HTTP и CDN-сетей. Casync нацелен на предоставление оптимального метода хранения и доставки различных&nbsp; версий содержимого крупных файловых систем или каталогов.&nbsp; &nbsp; &nbsp;В настоящее время разработка Casync сосредоточена на оптимизации доставки прошивок для потребительских интернет-устройств, образов контейнеров и виртуальных машин, приложений, переносимых сервисов и различных образов операционных систем. В будущем возможности проекта будут расширены для таких задач как резервное копирование&nbsp; и синхронизация домашних каталогов. Код написан на языке Си и распространяется под лицензией LGPLv2.1. Поддерживается работа как на уровне блочного устройства (доставка содержимого дисков, образов ФС и блочных устройств), так и на уровне файловой системы (обработка содержимого каталогов).&nbsp; &nbsp; &nbsp; В качестве причины создания нового ПО упоминается отсутствие готового решения для эффективного распространения часто меняющихся образов ФС. Например, Docker оперирует многоуровневыми архивами и требует слишком много дисковых ресурсов для поддержания полной истории изменений; OSTree передаёт отдельные файлы по HTTP, требует много места для delta-изменений на сервере и имеет проблемы с CDN; поставка образов в виде готовых файловых систем squashfs или IS09660&nbsp; неэффективна в точки зрения дисковых затрат и трафика. В итоге, изучив недостатки имеющихся решений, перед проектом Casync были поставлены следующие цели:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Минимизация трафика при доставке образов с интенсивным циклом обновления (для решения данной задачи большинство существующих систем используют доставку дельта-изменений);&nbsp; &nbsp; &nbsp;Экономное использование дискового пространства на серверах (поддержание дельта-изменений для всех комбинаций версий приводит к экспоненциальному росту занимаемого дискового пространства);&nbsp; &nbsp; &nbsp;Экономное использование дискового пространства на стороне клиента;&nbsp; &nbsp; &nbsp;Адаптация для задействования сетей доставки контента (CDN) и загрузки поверх HTTP;&nbsp; &nbsp; &nbsp;Простой интерфейс для пользователей, администраторов репозиториев и разработчиков. Управление производится через утилиту командной строки&nbsp; casync, предоставляющей команды подобные &quot;casync list http://www.foobar.com/lennart.caidx&quot; и &quot;сasync extract http://www.foobar.com/lennart.caidx /home/lennart&quot;.&nbsp; &nbsp; &nbsp; Для достижения поставленных задач Casync комбинирует алгоритмы передачи данных от проекта rsync с git-подобными средствами организации контенто-адресуемых хранилищ. Данные сохраняются в файле .castr, который представляет собой хранилище отрывков (chunk store), в котором большой линейный поток данных разбивается на отрывки (chunk) переменной длинны, которые сохраняются в виде отдельных сжатых файлов с именем, составляющим хэш SHA256 от содержимого этого файла. Таким образом имя файла выступает ключом для извлечения порции данных. Chunk store позволяет абстрагироваться от отдельных файлов - например, несколько мелких файлов будут объединены в один chunk, а большой файл разбит на несколько chunk-ов. При этом размер chunk-а варьируется и выбирается с учётом размера файлов для обеспечения дедупликации, т.е. если размер файла укладывается в допустимый диапазон размера chunk-ов, то он будет размещён в отдельном chunk-е.&nbsp; &nbsp; &nbsp; Хранилище дополняют два вида индексов (.caidx и caibx) и архив со структурой дерева каталогов (.catar). Индекс отрывков (&quot;chunk index&quot;) содержит список хэшей отрывков и их размер, что позволяет выявлять идентичные отрывки и исключать сохранение дубликатов, что актуально при хранении нескольких версий данных. При обновлении клиент определяет недостающие кусочки и загружает только их. Содержимое дерева каталогов представлено в формате, обеспечивающем повторяемую сериализацию, т.е. упаковка одних и тех же данных всегда приводит к созданию идентичных архивов Casync, что позволяет применять расширенные схемы верификации.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Источник: <strong>http://www.opennet.ru/opennews/art.shtml?num=46728</strong><br />&nbsp; &nbsp; <br /><a href="http://www.opennet.ru/opennews/art.shtml?num=46728">_источник</a></p>]]></content>
			<author>
				<name><![CDATA[R2-D2]]></name>
				<uri>https://linuxforum.ru/profile.php?id=40794</uri>
			</author>
			<updated>2017-06-20T14:16:01Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=455918#p455918</id>
		</entry>
</feed>
