Перший реліз wZD 1.0.0, сервер компактного зберігання дрібних файлів

доступний перший випуск wZD 1.0.0 — сервера для ефективного зберігання великої кількості файлів у компактному вигляді, що зовні виглядає як звичайний WebDAV-сервер. Для зберігання використовується модифікована версія BoltDB. Код проекту написаний мовою Go та поширюється під ліцензією BSD.

Сервер дозволяє Суттєво скоротити кількість маленьких файлів на звичайних або кластерних файлових системах із повною підтримкою блокувань. Кластер, що підтримується розробниками wZD, зберігає близько 250 мільйонів дрібних файлів, рознесених по 15 мільйонам директорій у кластерній ФС. MooseFS.

wZD дає можливість перемістити (архівувати) вміст директорій до архівів у форматі BoltDB і потім роздавати ці файли з цих архівів (або поміщати файли до архівів методом PUT), значно скоротивши кількість файлів у ФС та знизивши накладні витрати на зберігання метаданих. Для підвищення ефективності обробки великих файлів такі файли можуть зберігатися окремо від Bolt-архівів. Подібний підхід дозволяє організувати зберігання величезної кількості дрібних файлів, не впираючись у ліміт на число inode у файловій системі.

Перший реліз wZD 1.0.0, сервер компактного зберігання дрібних файлів

Сервер також можна використовувати як базу NoSQL для даних у форматі ключ/значення (з шардингом на базі структури директорій) або для роздачі з БД попередньо згенерованих html або json-документів. Що стосується продуктивності, то віддача та запис даних з використанням Bolt-архівів призводить до збільшення затримки приблизно на 20-25% при читанні та на 40-50% при записі. Чим менший розмір файлу, тим менша різниця в затримках.

Перший реліз wZD 1.0.0, сервер компактного зберігання дрібних файлів

Основні можливості:

  • Багатопотоковість;
  • Мультисерверність, що забезпечує відмовостійкість та збалансованість навантаження;
  • Максимальна прозорість для користувача чи розробника;
  • Підтримувані HTTP-методи: GET, HEAD, PUT та DELETE;
  • Управління поведінкою під час читання та запису через клієнтські заголовки;
  • Підтримка гнучко настроюваних віртуальних хостів;
  • Підтримка CRC-цілісності даних під час запису/читання;
  • Напівдинамічні буфери для мінімального споживання пам'яті та оптимального налаштування мережної продуктивності;
  • Відкладена упаковка даних;
  • На додаток пропонується багатопотоковий архіватор wZA для переміщення файлів до Bolt-архівів без зупинки сервісу.

Деякі обмеження поточного випуску: немає підтримки Multipart, методу POST, протоколу HTTPS, біндингу для мов програмування, рекурсивного видалення директорій, відсутня підтримка монтування структури файлової системи через WebDAV або FUSE, файли зберігаються під одним системним користувачем. Формат зберігання прив'язаний до архітектури та не переносимо між системами Little Endian та Big Endian. Незважаючи на те, що сервер wZD реалізує підтримку протоколу HTTP, запускати його потрібно тільки під прикриттям проксі-реверсів, таких як nginx і haproxy.

Джерело: opennet.ru

Додати коментар або відгук