The OpenNET Project / Index page

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

Представлен полностью переработанный вариант распределённой файловой системы POHMELFS

27.12.2011 10:53

Спустя три года с момента первого релиза сетевой распределённой файловой системы POHMELFS в списке рассылки разработчиков ядра Linux представлен полностью переработанный вариант данной ФС, в котором реализовано большинство из всех запланированных ранее возможностей. Код проекта распространяется под лицензией GPLv2.

Новая реализация POHMELFS базируется на распределённом хранилище Elliptics, представляющем собой распределённую хэш таблицу. Изначально Elliptics развивался как часть POHMELFS, но два года назад был выделен в отдельный проект, который успешно используется в промышленной эксплуатации. Например, Elliptics используется для организации хранения около петабайта контента в сервисах компании Yandex (карты, фотографии, музыка). Хранилище рассчитано на организацию надёжного хранения большого объёма данных в формате ключ/значение с резервированием информации за счёт дублирования данных на разных узлах сети (ситуация выхода узла из строя обрабатывается автоматически). Хранилище обеспечивает горизонтальное масштабирование - можно на лету удалять и добавлять новые узлы, при этом данные будут перераспределены автоматически.

Среди возможностей Elliptics: отсутствие единой точки отказа (отсутствует сервер мета-данных), поддержка репликации, автоматическое восстановление после сбоев, поддержка поколоночного хранения, проверка целостности, хранение данных в сжатом виде (используется метод Snappy), атомарные транзакции, выборка группы ключей, поддержка привязки генерации уведомлений к операциям над заданными объектами и модульная архитектура, допускающая подключение различных бэкендов для хранения данных.

Отдельно можно отметить поддержку выполнения скриптов обработки данных на стороне сервера, что позволяет выполнять любые манипуляции с данными без их загрузки по сети. Например, функции работы с директориями в POHMELFS базируются на использовании данной возможности. Целью развития Elliptics является поддержка развёртывания хранилищ, работающих на базе нескольких территориально разделённых дата-центров. Кроме оптимизации на обеспечение высокой пропускной способности (Мб в секунду), основной упор делается на обеспечении высокой интенсивности выполнения операций (число операций ввода/вывода в секунду).

Если раньше дизайн POHMELFS напоминал параллельный NFS, то теперь POHMELFS выступает в роли фронтэнда с реализацией POSIX ФС, работающего поверх независимого хранилища Elliptics. Для оптимизации производительности POHMELFS поддерживает специальный режим синхронизации данных с подсоединёнными узлами, при котором данные вначале читаются/записываются в кэш локальной системы и не синхронизируются с внешним хранилищем до момента наступления таймаута. Таким образом, запись данных видна сразу только текущему пользователю и становится доступной для разделов, смонтированных на других машинах, только после сброса кэша. В случае экстренного отключения питания и если не используется режим writeback данные, которые не успели покинуть кэш, будут потеряны (как и для любых других ФС), при этом общая целостность не будет нарушена. Для увеличения скорости чтения директорий их содержимое целиком напрямую записывается в dentry/inode кэш, а не читается последовательно элемент за элементом.

Структура проекта стала заметно проще, что положительно сказалось на надёжности. Кроме того, удалось избавиться от ранее наблюдаемых узких мест, связанных с масштабированием и быстродействием (например, реализована возможность параллельного чтения/записи данных одновременно на несколько узлов). В настоящее время POHMELFS обеспечивает производительность, достаточную для полной утилизации пропускной способности сетевых устройств. Например, при выполнении на гигабитном сетевом интерфейсе синхронизации нескольких терабайт данных с локального RAID на сетевое хранилище POHMELFS с использованием утилиты rsync узким местом стала пропускная способность сетевого интерфейса.

Среди планов по развитию POHMELFS:

  • Поддержка кворума для обеспечения непротиворечивости чтения реплицированных на несколько узлов данных. Для гарантии, что часть распределённых по разным узлам данных не будет переписана в процессе чтения, как минимум две копии данных должны совпадать. Запись осуществляется параллельно с созданием трёх резервных блоков на разных узлах, для успешного завершения операции должно быть записано как минимум два блока с продублированными данными;
  • Режим совместимости с HTTP-приложениями. Для чтения и записи данных в POHMELFS станет возможно дополнительно использовать специальный HTTP API, работающий напрямую с хранилищем Elliptics по идентификатору объекта. Можно создавать такие схемы, при которых данные читаются из web-приложения через HTTP API, а записываются через штатный интерфейс файловой системы, и наоборот;
  • Поддержка случайного чтения разных реплик с целью балансировки нагрузки;
  • Возможность чтения/записи целиком столбцов или в представлении "файл как директория" (чтение/запись директории за один раз);
  • Дополнительное тестирование;
  • Замена старой реализации POHMELFS, входящей в состав ядра Linux (drivers/staging/pohmelfs), на новый код.


  1. Главная ссылка к новости (http://www.ioremap.net/node/52...)
  2. OpenNews: Анонсирован выход распределенного хранилища Elliptics 1.0.0
  3. OpenNews: Вышел релиз сетевой файловой системы POHMELFS
  4. OpenNews: Обновлённый релиз распределённого устройства хранения данных DST
  5. OpenNews: Файловая система POHMELFS включена в "-staging" ветку Linux ядра
  6. OpenNews: В состав netfilter включен модуль для пассивного определения типа ОС
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/32667-pohmelfs
Ключевые слова: pohmelfs, elliptics
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, deadless (ok), 11:49, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    о, восставший из пепла..
     
  • 1.6, Tigro (??), 12:27, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Автор уже четвертый день как Россию покинул, а тут такая новость:):)
     
     
  • 2.21, anonymous (??), 15:54, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Насовсем?
     
     
  • 3.39, Tigro (??), 22:45, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не, так на лыжах покататься.
     

  • 1.8, б.б. (?), 12:53, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Решили под новогоднюю релевантность попасть?

    Вспоминается история с libsexy.rpm и dcpp.

     
  • 1.9, Аноним (-), 13:14, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Чем оно отличается от Tahoe-LAFS
     
     
  • 2.36, Аноним (-), 20:12, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Чё минусуете то, объяснить не в состоянии? Я по существу спросил, ибо интересно и действительно не знаю.
     
     
  • 3.57, wS (?), 11:45, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    минусуют за то что сам не хочешь разбираться.
    зайди прочти про POHMELFS в чём плюсы и минусы и сравни Tahoe-LAFS
     
     
  • 4.64, анонимм (?), 18:57, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а тебя за что минусуют
     
     
  • 5.65, wS (?), 22:22, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    троллей не любят:)
     

  • 1.10, evgeny_t (ok), 13:21, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    во человек работает )
     
  • 1.11, Просто прохожий (?), 13:22, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Мои поздравления. Как только она появилась в ядре в первый раз она меня сразу заинтересовала. Удачи проекту!
     
  • 1.12, Онаним (?), 13:57, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    >"автоматическое восстановление сбоев"

    Сильная вещь! Т.е. если один раз сбойнет, то ремонтировать бесполезно...

     
     
  • 2.50, Аноним (-), 04:49, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да не, просто многократное резервирование. Помер один из узлов? Да и хрен с ним!
     
     
  • 3.66, Аноним (-), 02:03, 29/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно, соль шутки вы не уловили.
     
  • 3.74, Аноним (-), 16:01, 31/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    помер один из узлов - и кластер 3е суток синкает данные на востановленную ноду
     

  • 1.13, Аноним (13), 14:10, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Afs?
     
  • 1.14, alrond (ok), 14:13, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Я так понимаю прямой конкурент GlusterFS
     
     
  • 2.17, ceph (?), 14:46, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Или ceph
     
  • 2.29, k_bx (?), 18:51, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я думал GlusterFS -- это поверх существующих ФС. Я ошибкался?
     
     
  • 3.37, alrond (ok), 20:25, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Так и есть, но я смотрю по задаче - обеспечение отказоустойчивого хранилища(типа сетевого raid1), способного к клиентам цепляться как posix-фс
    Конечно поверх ФС удобнее - можно, например, сканировать для анализа на контентных серверах локально, что будет быстрее чем через шластер, даже локально примонтированного
     

  • 1.16, Аноним (-), 14:34, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Этот Elliptics в юзерспейсе работает?
    Вообще, что именно из всего этого комплекса реализовано на уровне ядра?
     
  • 1.18, Аноним (-), 15:13, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Как потестировать/посмотреть на это в убунте?
     
  • 1.22, bircoph (ok), 16:01, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Оно уже перестало давать kernel panic при записи?
     
     
  • 2.69, Аноним (-), 02:09, 29/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Оно уже перестало давать kernel panic при записи?

    Спросите у админов Яндекса.

     

  • 1.24, emfs (ok), 17:27, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    кто-нибудь применяет у себя в продакшн?
     
     
  • 2.25, Иван (??), 17:58, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    кроме Яндекса возможно никто.
     
     
  • 3.27, deadless (ok), 18:24, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • –6 +/
    откуда дровишки? на тестовых окружениях еще может быть но в продакшене не поверю.
     
     
  • 4.40, Аноним (-), 23:05, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > откуда дровишки? на тестовых окружениях еще может быть но в продакшене не поверю.

    Очевидно, новости вы не читали, сразу обсуждать бросились :D

     
     
  • 5.63, Аноним (-), 16:59, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> откуда дровишки? на тестовых окружениях еще может быть но в продакшене не поверю.
    > Очевидно, новости вы не читали, сразу обсуждать бросились :D

    в блоге коментарий - "что-то никто не пишет сюда, и в lkml нету движухи"

    Видимо оно так всем надо.

     
     
  • 6.68, Аноним (-), 02:08, 29/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > в блоге коментарий - "что-то никто не пишет сюда, и в lkml нету движухи"
    > Видимо оно так всем надо.

    Не, они просто еще читают и осмысливают. Не то что здешние - прочитали только заголовок (и то наискосок), и уже бегом обсуждать.

     
     
  • 7.70, Аноним (-), 10:18, 29/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    некоторые "местные" указывали автору на узкие места - а автор отмахивался - "мне так удобно и идите вон".

    Кстати - он до сих пор не дает читать и писать в конец файла одновременно?

     

  • 1.26, Аноним (-), 18:21, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    frontend - внешний интерфейс. Зачем плодить лишние сущности?
     
  • 1.35, Аноним (-), 19:59, 27/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    какой смешной метод повышения отказо устойчивости.
    надо будет послушать как у них будет ложиться сеть когда одна из нод умрет и все начнет синхронизироваться по сети.. ;-)
    Видимо пока живет - пока ноды не умирали - или нагрузка в сети меньше 20% от пропускной :)

    а вообще попытка сделать новый map-reduce ;-)

     
     
  • 2.41, Аноним (-), 23:08, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > какой смешной метод повышения отказо устойчивости.

    Вас послушать - так они все смешные, а отказоустойчивость - это миф.

     
  • 2.49, Аноним (-), 03:06, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >какой смешной метод повышения отказо устойчивости.

    надо будет послушать как у них будет ложиться сеть когда одна из нод умрет и все начнет синхронизироваться по сети.. ;-)

    Оптимизируют и это...

     
     
  • 3.53, Аноним (-), 04:58, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > надо будет послушать как у них будет ложиться сеть когда одна из
    > нод умрет и все начнет синхронизироваться по сети.. ;-)

    Обычно в таких системах репликация данных делается заранее. Поэтому вылет узла тупо не заметен как класс. Или вы думаете что в ынтырпрайзе типа гугла или хотя-бы яндекса сервера никогда не ломаются? Агащаз, для большого ынтырпрайза вылет сервера - почти штатное событие. Если у вас есть миллион дисков - вы только и будете делать что заменять полетевшие. А если у вас их только 10, то может и за 5 лет ни 1 не замените. Чисто теория вероятности работает.

     
     
  • 4.61, Аноним (-), 16:53, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    аха. было 3 реплики - вылетела 1 нода, стало 2, потом еще одна, осталась последная..
    и что вы хотите сказать что эта система в отличии от Gluster (или ceph я их путаю) - не востанавливает количество реплик до заданного?
    То есть не запускает режим востановления содержимого ноды аналогичного raid rebuild ?

    учитывая что сейчас 120T на ноду это нормально - я хотел бы послушать оценки - как долго 120T будут синхронизироваться с других нод по сети ;-) А значит - как долго кластер будет тормозить.

     
  • 3.59, k_bx (?), 12:58, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>какой смешной метод повышения отказо устойчивости.
    > надо будет послушать как у них будет ложиться сеть когда одна из
    > нод умрет и все начнет синхронизироваться по сети.. ;-)
    > Оптимизируют и это...

    А, собственно, в чем проблема? Во-первых, если точность / согласованность данных не сильно важна (как в случае с я.картами), то можно держать 3 реплики, при этом на чтение требовать только одну. Таким образом вылет 2 из 3х дисков для нас останется безболезненным. Ну и синхронизироваться никто никуда не будет при вылете, просто новый диск надо будет вставить.

    А синхронизация нужна именно при удалении ноды из кластера (когда кластер уменьшать собираемся), или же при росте кластера (что тоже не так уж часто нужно).

     
     
  • 4.62, Аноним (-), 16:56, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да да raid запускает в этот момент rebuild - вы не знали об этом так и тут - н... большой текст свёрнут, показать
     
     
  • 5.72, psv (??), 11:51, 31/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    скорость синхронизации дозируется (добавление ноды производят в период наименьшей нагрузки) и никакого конца света не будет
     
     
  • 6.75, Аноним (-), 16:07, 31/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > скорость синхронизации дозируется (добавление ноды производят в период наименьшей нагрузки)
    > и никакого конца света не будет

    ну да. осталось узнать когда это наименьшая нагрузка - и прикинуть что 120T будет писаться дня 3-4 на full time -  а если "дозированно" то это будут недели, а за это время еще одна нода может сдохнуть - или не давать требуемой скорости.

    Так что конец света или не конец - но дизаин кривой.

     
  • 2.73, psv (??), 11:55, 31/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > надо будет послушать как у них будет ложиться сеть когда одна из
    > нод умрет и все начнет синхронизироваться по сети.. ;-)

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

    свичи куда включены ноды обычно пропускают по своей шине полный суммарный трафик своих портов без проблем.


     
     
  • 3.76, Аноним (-), 16:09, 31/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    потому что - эти ноды они того тоже бывают загружены - и с них забирают данны... большой текст свёрнут, показать
     

  • 1.46, FSA (??), 00:42, 28/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не первый раз слышу об этой файловой системе. Но за название зачёт. Не что, что XEP от Apache :)
     
     
  • 2.47, pavlinux (ok), 01:07, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да ты что, наш делает, Поляков, Евгений вроде...
    Придумал с бадуна, потом придумал культурную расшифровку.  
     
  • 2.48, progserega (ok), 02:31, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Скорее наоборот. Алкогольно-наркоманский "юмор". Вообще, алкогольная тематика в интеллектуальной среде - это оксюморон.
     
     
  • 3.67, Аноним (-), 02:06, 29/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Скорее наоборот. Алкогольно-наркоманский "юмор". Вообще, алкогольная тематика в интеллектуальной
    > среде - это оксюморон.

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

     

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



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

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