The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Леннарт Поттеринг представил свой новый проект Casync"
Отправлено opennews, 20-Июн-17 20:26 
Леннарт Поттеринг (Lennart Poettering) анонсировал (http://0pointer.net/blog/casync-a-tool-for-distributing-file...)  проект Casync (https://github.com/systemd/casync/), над которым он работал последние несколько месяцев. Casync позиционируется как эффективное средство для распространения  образов файловых систем, оптимизированное для организации частых обновлений  через интернет, в том числе поверх HTTP и CDN-сетей. Casync нацелен на предоставление оптимального метода хранения и доставки различных связанных версий содержимого крупных файловых систем или каталогов.


В настоящее время разработка Casync сосредоточена на оптимизации доставки прошивок для потребительских интернет-устройств, образов контейнеров и виртуальных машин, приложений, переносимых сервисов и различных образов операционных систем, при этом в будущем возможности проекта будут расширены для таких задач как резервное копирование  и синхронизация домашних каталогов. Код написан на языке Си и распространяется (https://github.com/systemd/casync/) под лицензией LGPLv2.1. Поддерживается работа как на уровне блочного устройства (доставка содержимого дисков, образов фС и блочных устройств), так и на уровне файловой системы (обработка содержимого каталогов).

В качестве причины создания нового ПО упоминается отсутствие готового решения для эффективного распространения меняющихся образов ФС. Например, Docker оперирует многоуровневыми архивами и требует слишком много дисковых ресурсов для поддержания полной истории изменений; OSTree передаёт отдельные файлы по HTTP, требует много места для delta-изменений на сервере и имеет проблемы с CDN; поставка образов в виде готовых файловых систем squashfs или IS09660  неэффективна в точки зрения дисковых затрат и трафика. В итоге, изучив недостатки имеющихся решений, перед проектом Casync были поставлены следующие цели:


-  Минимизация трафика при доставке образов с интенсивным циклом обновления (для решения данной задачи большинство существующих систем используют доставку дельта-изменений);

-  Экономное использование дискового пространства на серверах (поддержание дельта-изменений для всех комбинаций версий приводит к экспоненциальному росту занимаемого дискового пространства);

-  Экономное использование дискового пространства на стороне клиента;

-  Адаптация для задействования сетей доставки контента (CDN) и загрузки поверх HTTP;

-  Простой интерфейс для пользователей, администраторов репозиториев и разработчиков. Управление производится через утилиту командной строки  casync, предоставляющей команды подобные "casync list http://www.foobar.com/lennart.caidx" и "сasync extract http://www.foobar.com/lennart.caidx /home/lennart".


Для достижения поставленных задач Casync комбинирует алгоритмы передачи данных от проекта rsync с git-подобными средствами организации контенто-адресуемых хранилищ. Данными сохраняется в файле .castr, который представляет собой хранилище отрывков (chunk store), в котором большой линейный поток данных разбивается на отрывки (chunk) переменной длинны, который сохраняются в виде отдельных сжатых файлов с именем, составляющим хэш SHA256 от содержимого этого файла. Таким образом имя файла выступает ключом для извлечения порции данных. Chunk store позволяет абстрагироваться от отдельных файлов - например, несколько мелких файлов будут объединены в один chunk, а большой файл разбит на несколько chunk-ов. При этом размер chunk-а выбирается с учётом размера файлов для обеспечения дедупликации.

Хранилище дополняют два вида индексов (.caidx и caibx) и архив со структурой дерева каталогов (.catar). Индекс отрывков ("chunk index") содержит список хэшей отрывков и их размер, что позволяет выявлять идентичные отрывки и исключать сохранение дубликатов, что актуально при хранении нескольких версий данных. При обновлении клиент определяет недостающие кусочки и загружает только их. Содержимое дерева каталогов представлено в формате, обеспечивающем повторяемую сериализацию, т.е. упаковка одних и тех же данных всегда приводит к созданию идентичных архивов Casync, что позволяет применять расширенные схемы верификации.

URL: http://0pointer.net/blog/casync-a-tool-for-distributing-file...
Новость: https://www.opennet.ru/opennews/art.shtml?num=46728

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру