The OpenNET Project / Index page

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

Компания Versity открыла исходные тексты файловой системы ScoutFS

18.09.2018 10:03

Компания Versity объявила об открытии исходных текстов специализированной файловой системы ScoutFS, оптимизированной для хранения архивных данных. Утверждается, что ScoutFS стала первой открытой файловой системой для архивирования, нацеленной на предоставление промышленного уровня надёжности и масштабирования при хранении огромного числа файлов. Код опубликован под свободной лицензией GPLv2, что позволяет в будущем включить его в основной состав ядра Linux. В настоящее время ScoutFS распространяется в виде внешнего модуля для ядра Linux из состава RHEL/CentOS 7.x.

ScoutFS относится к категории кластерных систем, организующих доступ группы серверов к совместному хранилищу данных. В ScoutFS встроены сервисы для хранения метаданных, механизм индексации и средства для контроля целостности хранимой информации. Важная особенность ScoutFS в отсутствии отдельного централизованного сервера обработки метаданных, так как вся функциональность реализуется на конечных узлах и метаданные обрабатываются на всех узлах или отдельной группе узлов в кластере. Непосредственно данные хранятся на внешнем общем хранилище, а не распределены по узлам. На узлах лишь поддерживается общий синхронизированный индекс метаданных.

ScoutFS существенно расширяет возможности традиционных ФС по числу хранимых файлов в одном пространстве имён, позволяя хранить в одной ФС до триллиона файлов. ФС также рассчитана на высокую интенсивность поступления данных и может обрабатывать большое число одновременных запросов на создание файлов. Работа с ScoutFS напоминает традиционные ФС - семантика соответствует требованиям POSIX, а хранилище разворачивается поверх общего для всех узлов блочного устройства, на котором создаётся ФС и монтируется на всех узлах кластера.

Ключевые особенности ScoutFS:

  • Интегрированный движок индексации данных, ускоряющий операции обслуживания архива. Индексация позволяет сразу отслеживать все изменения данных и атрибутов файлов. Для обращения к индексу предоставляется специальный интерфейс для формирования запросов AQI (Accelerated Query Interface);

  • Применение совместно используемого на разных узлах индекса. Индекс построен на базе LSM-дерева (Log-structured merge-tree), обеспечивающего высокую производительность в условиях интенсивного добавления новых данных;
  • Благодаря индексации время поиска файлов практически не зависит от числа файлов в ФС. Сравнение ScoutFS и XFS:
  • Сокращение конкурирующих операций, благодаря отделению логических блокировок от операций сериализированной записи на устройство;
  • Поддержка различных ресурсов для конечного хранения данных, включая ленточные накопители, диски, хранилища объектов и облачные системы;
  • Обеспечение отказоустойчивости: узлы могут на лету отключаться и подключаться без нарушения работы ФС и потери сохраняемых данных;
  • Полное соответствие единой семантике POSIX на разных узлах;
  • Контроль целостности метаданных и ссылок на данные;
  • Автоматические транзакции для поддержания согласованности постоянных структур;
  • Реализация в виде оптимизированного модуля ядра, обеспечивающего минимальные задержки и высокую производительность.


  1. Главная ссылка к новости (http://www.versity.com/blog/ve...)
  2. OpenNews: Facebook открыл код распределённой системы хранения LogDevice
  3. OpenNews: Первый выпуск файловой системы Zbox
  4. OpenNews: Представлена LittleFS, компактная файловая система для встраиваемых устройств
  5. OpenNews: Компания Alibaba открыла код P2P-системы доставки файлов Dragonfly
  6. OpenNews: Для Linux представлена файловая система TxFS с поддержкой ACID-транзакций
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49290-scoutfs
Ключевые слова: scoutfs, archive, fs, cluster
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (50) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:17, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    хм... а уже появились какие-то вменяемые методы сделать верифицируемый бекап со всех распространённых ФС и с БД внутри, который можно в случае смерти быстро поднять прям как снапшот?
     
     
  • 2.3, Annoynymous (ok), 10:53, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Снапшот ФС с любой ФС?

    LVM.

    > и с БД внутри

    Никак.

     
     
  • 3.5, blblbl (?), 10:56, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Flush tables with read lock; внутри ВМ. Потом LVM  снапшот.  
     
     
  • 4.13, Annoynymous (ok), 13:05, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну ему же хочется просто снапшот, без смыва, я так понял.
     
  • 3.33, Аноним (33), 20:37, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему никак? Зависит от рук и БД.
     
  • 2.19, Аноним (19), 14:00, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Написано что можно тут https www postgresql org docs 9 0 static backup-file h... большой текст свёрнут, показать
     

  • 1.2, Аноним (2), 10:27, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    теперь в качестве движка хранения для этой штуки нужно прикрутить другую распределенную фс

    и будет "мы сделали вам распределенную фс, хранящую данные на распределенной фс, чтобы вы могли пользоваться распределенной фс, пока пользуетесь распределенной фс"

     
  • 1.4, Аноним (4), 10:56, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Утверждается, что ScoutFS стала первой открытой файловой системой для архивирования, нацеленной на предоставление промышленного уровня надёжности и масштабирования при хранении огромного числа файлов.

    Сетевые FS не в счет?.. а то вот есть под боком одна файловая система - 15P.. и что-то там в районе 150G файлов..

     
  • 1.6, Аноним (4), 11:18, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Компания Versity объявила об открытии исходных текстов специализированной файловой системы ScoutFS, оптимизированной для хранения архивных данных.

    Не умеет OFED - совсем. LOCKING сделал per inode, паралельные чтения еще возможны - запись - нет.
    Судя по всему - операции синхронны, - быстрый пробег не показал какого-то кода похожего на recovery after fail.  


    Промышленной говорите?
    > *XXX Need to figure out how to resolve multiple items created by
    > concurrent writers.

     
  • 1.7, Moomintroll (ok), 11:31, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > ScoutFS относится к категории кластерных систем, организующих доступ группы серверов к совместному хранилищу данных.
    > Важная особенность ScoutFS в отсутствии отдельного централизованного сервера обработки метаданных, так как вся функциональность реализуется на конечных узлах и метаданные обрабатываются на всех узлах или отдельной группе узлов в кластере. Непосредственно данные хранятся на внешнем общем хранилище, а не распределены по узлам. На узлах лишь поддерживается общий синхронизированный индекс метаданных.

    Что не так с ocfs2 и gfs2?

    > ScoutFS существенно расширяет возможности традиционных ФС по числу хранимых файлов в одном пространстве имён, позволяя хранить в одной ФС до триллиона файлов.

    А, вот что. Ну допустим... А сколько будет стоить хранилище под такую задачу? Думаю, потому и выбросили проект на мороз, что для хранения "триллиона файлов" теперь дешевле и эффективнее использовать распределённые ФС, вроде ceph или lustre.

     
     
  • 2.10, Аноним (4), 11:58, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Что не так с ocfs2 и gfs2?

    OCFS2 научилось маштабироваться выше 256 узлов ? правда уже при этом были дикие тормоза из-за локинга на каждый блок.

     
     
  • 3.34, Аноним (33), 20:39, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В OCFS2 угрёбищно сделано квотирование, пишет один длиннющий псевдофайл, верификация которого занимает херову тучу времени + квотирование лочится на каждый чих. Без квотирования нормально, но не на 256 узлов конечно, оно для этого уже не предназначено.
     
     
  • 4.40, Аноним (40), 07:40, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А для чего? я грешным думал что что бы раздавать большие объемы.

    PS. в OCFS2 - лимит на 256 нод - прошит в протокол.

    /* this limits us to 256 nodes
    #define OCFS2_NODE_MAP_MAX_NODES    256

    и насколько я знаю - далеко не просто так. Даже без проблем с квотой.

     
     
  • 5.41, Аноним (33), 09:00, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы раздавать большие объёмы - лучше что-то с шардингом посмотреть. OCFS2 - более-менее shared FS общего назначения. Применимо для HA, для compute cluster, и для раздачи тоже, но не silver bullet.
     
     
  • 6.44, Аноним (40), 11:19, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а что в compute cluster еще делают? раздают большие объемы. Если посмотреть на физику/биологию/метеорологию - там объемы 1 файла даже не мегабайты - а гигабайт и выше.

    Опять же - при ограничении в протоколе - 256 нод - это будет - очень маленький кластер.

     
     
  • 7.49, Аноним (33), 20:07, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Шардинг отменили?
     
  • 7.50, Аноним (33), 20:07, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В compute cluster - считают, объёмы при этом могут быть разными.
     
  • 2.31, Аноним (33), 20:35, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    С GFS2 не так кластерный стек, увы, только для сферического кластера в вакууме, где всё остальное (сеть, железо) надёжнее самого кластера.

    С OCFS2 для именно кластерных применений (а не горизонтального масштабирования в небеса на сотни узлов) - всё в порядке, да )

     
     
  • 3.32, Аноним (33), 20:35, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя, для compute cluster без HA GFS2 тоже заруливает, да.
     

  • 1.8, Аноним (8), 11:31, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    https://en.wikipedia.org/wiki/OpenAFS
     
     
  • 2.9, Moomintroll (ok), 11:43, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Тёплое vs мягкое

    > ScoutFS относится к категории кластерных систем, организующих доступ группы серверов к совместному хранилищу данных.

     
     
  • 3.11, Аноним (4), 12:01, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Реализация в виде оптимизированного модуля ядра, обеспечивающего минимальные задержки и высокую производительность.

    А OFED не знает.. или хотя бы AF_RDS

     

  • 1.12, ddgrg (?), 12:42, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это конкурент ceph?
     
     
  • 2.14, пох (?), 13:13, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нет, это перпендикулярный проект - ceph когда надо быстро и данные под рукой, но ограниченное количество и с разумным количеством узлов.

    а тут идея что оно будет расти пока не заполнит весь глобус, и при этом, по крайней мере в теории, до файлов все еще можно будет добраться - может не мгновенно, но и не навечно увязнуть в индексах и локах. Но, как обычно, толком не доделанное, и непонятно, доделает ли кто-то хоть когда-то.

     
     
  • 3.22, Moomintroll (ok), 14:38, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > оно будет расти пока не заполнит весь глобус

    Куда, нафиг, оно будет расти?

    > Непосредственно данные хранятся на внешнем общем хранилище, а не распределены по узлам.

    Это про FC/iSCSI

     
  • 3.28, Аноним (33), 20:27, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Пейсмакер с коросинком не дадут заполнить глобус уже при 3-5 мс latency.
     
     
  • 4.43, пох (?), 11:15, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    уп-с...

    да ну, нафиг, 5ms, не может быть? Может все же 50?

     
     
  • 5.48, Аноним (33), 20:06, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Увы, может. 5 нод с latency около ms благополучно флапали коросинк, а в случаях развала кольца - убивали кластер. Пришлось тюнить, потом, когда наполучался удовольствия - выкинуть.
     
  • 2.15, Аноним (15), 13:13, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Current Status

    Initial Alpha Open Source Release

    scoutfs is under heavy active development. We're releasing before it's completely polished to give the community an opportunity to affect the design and implementation. Nothing is cast in stone.

     

  • 1.16, Аноним (16), 13:35, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    сетевая фс в ядре = бекдор

    ведь в любой достаточно сложной программе есть уязвимости

     
     
  • 2.17, anonymous (??), 13:41, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    сетевой <placeholder> в ядре = бекдор

    не показатель.

     
  • 2.47, Аноним (33), 20:05, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Сеть - вообще бэкдор. Выдерните кабели, выломайте антенны и прочие приёмники/передатчики.
     

  • 1.20, Аноним (20), 14:10, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    "Семантика соответствует требованиям POSIX" - обычно звездёжь. Как у неё с POSIX locking?
     
     
  • 2.26, KonstantinB (ok), 20:13, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот код, разбирайтесь: https://github.com/versity/scoutfs-kmod-dev/blob/7d1ea197c295380ec729693d2301c

    А вообще, конечно, семантика posix locks крайне неудачная для сетевых ФС.

     
     
  • 3.27, Аноним (33), 20:26, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    DLM, то есть пейсмакер с коросинком. Всё веселье в одном флаконе.
     
     
  • 4.29, Аноним (33), 20:29, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    // встроенный DLM с выносным кластерным стеком, которых на деле 1 штука.

    В той же OCFS2 оракл сделала собственный кластерный стек с кворумом на сторейдже, чтобы уйти от угрёбища под названием pcs+corosync с необходимостью жёсткого и быстрого STONITH, вотчдогов, от кривых кворумных демонов и иже с ними. Надо сказать, по сравнению с GFS2 на pcs+corosync, работает замечательно.

     
  • 4.35, Аноним (40), 20:39, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    вы путаете. это поделие использует тот же DLM что и OCFS2.
     
     
  • 5.42, Аноним (33), 09:02, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это вы путаете. DLM да, кластерный стек - нет. У OCFS2 есть свой кластерный стек, O2CB, у которого кворум на сторейдже, который mesh, который не требует железного STONITH, и который менее чувствителен к пертурбациям.

    Да, оно может работать с угрёбищной парой pcs+corosync, но только в идеальных для таковой условиях - желательно вообще в одной стойке (кольцевая топология corosync очень чувствительна к задержкам, увы), с железным отрубанием нод и т.п. Как и всё остальное.

     
     
  • 6.45, Аноним (40), 11:26, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    DLM и кластерный стек это вещи разные - от слова совсем.
    так же как и STONITH - никак не связан с DLM.

    задача DLM (как ее понимает wikipedia и большинство FS - https://en.wikipedia.org/wiki/Distributed_lock_manager) - обеспечить не противоречивость кэшей на клиенте. Вопрос STONITH это вопрос HA стека - который обеспечивает работу отдельных нод кластера, и к кэшу клиентов отношения не имеет.

    Теперь понятно ?

     
     
  • 7.46, Аноним (33), 20:03, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Хосспаде, ну запусти мне "родной" DLM в Linux без кластерного стека или его подобия.
     
     
  • 8.51, Аноним (40), 09:21, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Легко Для монтирования руками различных нод кластера - ума много не надо При э... большой текст свёрнут, показать
     
  • 3.37, Аноним (40), 20:47, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    еще один.. не путайте требования POSIX и POSIX LOCKs.
    первое включает очень большой перечень требований - в частности когенетность кешей клиентов.
    Второе.. второе не включает в себя ничего.

    Код этого поделия мягко скажем странный - самопальный interval tree (есть в ядре готовый), на какой-то черт точность лока 1 байт, хотя ядро не выделит меньше страницы и тп.

     
  • 2.36, Аноним (40), 20:41, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    формально есть DLM, есть какие-то события. быть святее папы римского и оптимизироваться по паралельный доступ - не собираются. По сему примерно так же как в pohmelFS. один глобально-фиртуальный i_mutex на файл и в перед.
     

  • 1.21, Аноним (21), 14:13, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Непосредственно данные хранятся на внешнем общем хранилище, а не распределены по узлам.

    Ну тогда ничего для себя интересного не вижу.

     
  • 1.23, yet another anonymous (?), 17:21, 18/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зачем ядру иметь в себе структуры, существенно зависящие от внешних обстоятельств? Чем userspace здесь не угодил?
     
     
  • 2.24, Crazy Alex (ok), 18:42, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Модули в помощь. Не надо - не грузишь. А кому-то эти "внешние обстоятельства" приемлемы.
     
     
  • 3.25, yet another anonymous (?), 19:29, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Причем тут модули?

    Речь о том, что для ядра взаимодействие с внешними системами (через подсистемы ядра же)
    происходит за неизвестно-какое-время с неизвестно-каким-результатом. И, собственно, почему эта логика (обеспечение гарантий целостности, непротиворечивости, ...) должна быть в ядре, а не в userspace?

     
     
  • 4.30, Аноним (33), 20:31, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Потому что делать десяток контекст свитчей на каждую блочную операцию могут только фанаты фс на питоне.
     
     
  • 5.38, Аноним (38), 23:56, 18/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Т е по вашей логике разница между ядром и юзерспейсом в том что в ядре должен быть сложный код, а в юзерспейсе простой?
     
     
  • 6.39, Аноним (39), 07:04, 19/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Простой должен быть в обоих, но вам как сложному не понять.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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