Создание высоконагруженных кластерных систем – занятие само по себе не из легких; еще более его осложняет тот факт, что в подобных решениях требуется максимальная сбалансированность. Здесь нет места «костылям» и «заплатам», каждый компонент в работе должен выжимать из себя максимальное количество флопсов и иопсов. Это, конечно, касается и одного из критически важных компонентов любого аппаратного решения — файловой системы. В процессе развития суперкомпьютеров было создано несколько вариантов специализированных файловых систем, самой популярной из них стала Lustre, начало разработки которой пришлось еще на прошлый век и которая в настоящее время поддерживается компанией Intel. За 3 года, прошедших с момента покупки Intel компании Whamcloud — разработчика Lustre — продукт был дополнен новым функционалом и инструментарием. В этом посте вы узнаете, каким именно.

Как уже говорилось, Lustre – достаточно распространенная система с долгой историей развития; в настоящее время более 60 процентов суперкомпьютеров из Top500 используют ее в качестве файловой системы. Поэтому, наверное, не стоит уделять много времени ее описанию; весьма подробную вводную часть можно найти, например, в Wiki. Тем не менее, несколько слов о схеме построения Lustre сказать необходимо, поскольку это потребуется для дальнейшего.



Итак, Lustre — это распределенная параллельная файловая система, то есть набор серверов, которые хранят свои данные и работают независимо друг от друга. Ее основой является сервер управления и сервер метаданных (MGS/MDS). MDS – это хранилище метаданных (имена файлов и их атрибуты), MGS – место, где хранится информация, на каких серверах располагается файловая система. Данные сервера могут находиться на разных компьютерах, могут на одном. Сами объекты (фрагменты данных из содержимого файла) находятся на различных устройствах (OST), находящихся под управлением серверов хранения (OSS). В отличие от традиционных файловых систем, в Lustre inode используется как ключ для поиска структуры с информацией о реальном разбиении и расположении данных. Таким образом, создается дополнительный слой абстракции.

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

Текущее ограничение на общий размер хранимых данных равняется 512 Петабайтам.



Intel, как и ряд других производителей ПО, предлагает свое решение на базе Lustre. В его основе, конечно же, сама Lustre FS, свободно распространяемое по лицензии GNU GPL ПО – на сегодняшний день версии 2.7. А вот дальше начинаются надстройки и примочки, созданные специальным подразделением Intel High Performance Data Division (HPDD) и входящие в пакет Intel Enterprise Edition for Lustre Software.

Для разработчиков в первую очередь будет полезен Hadoop адаптер, позволяющий запускать MapReduce приложения непосредственно на Lustre. Таким образом убивается сразу два зайца. Во-первых, пользователи Hadoop имеют доступ к файлам, расположенным на Lustre без необходимости использовать штатную распределенную файловую систему Hadoop и дополнительных операций копирования.

Во-вторых, система в целом становится проще и миловидней: Hadoop сосуществует вместе с Lustre и пользуется ее преимуществами, не потребляя отдельное место под себя. Другой полезный инструмент разработки и внедрения – набор API (в том числе и REST), позволяющий просто и быстро интегрировать с Lustre сторонние программные продукты и системы хранения данных.



Для администраторов серверов и систем хранения есть еще более приятная новость. Пакет Intel Enterprise Edition for Lustre Software содержит графическое приложение Intel Manager for Lustre Software, предназначенное для запуска, настройки, мониторинга и администрирования Lustre-системы, а также демонстрации неисправностей в ней. Менеджер предоставляет графический интерфейс для любого действия, связанного с управлением файловой системой, а также визуализирует статистические показатели Lustre по многочисленным критериям, показывая таким образом ее состояние. Еще один нужный для для администратора инструмент — интерфейс командной строки с возможностью написания скриптов для автоматизации рутинных процессов обслуживания и управления.



Итак, на основе хорошего продукта, оставшегося по-прежнему свободно распространяемым, Intel создала целую экосистему ПО — в первую очередь, для удобства его использования и внедрения в комплексные решения. Ну а специалисты вправе сами решать, использовать ли просто Lustre или Lustre с «абажуром» в виде Intel Enterprise Edition for Lustre Software.

Выражаем благодарность ведущему разработчику подразделения HPDD Дмитрию Еремину за помощь в написании поста.

Комментарии (2)


  1. a5b
    17.05.2015 06:47

    > продукта, оставшегося по-прежнему свободно распространяемым

    Какие верcии ядра Linux поддерживаются оригинальной Lustre, а какие дополнительно появляются в Enterprise Edition?
    Нашел страницу wiki.hpdd.intel.com/display/PUB/Lustre+Support+Matrix но не понял, возможно ли развернуть Lustre или EE на иных дистрибутивах (Debian/Ubuntu, Gentoo, ...).
    Есть ли набор патчей ядра (или единственный вариант — ручная сборка diff между lustre srpm и оригинальным srpm из rhel/centos?), планируется ли перенос патчей в ядро kernel.org?


    1. saul Автор
      19.05.2015 11:09

      Ответ Дмитрия Еремина
      Официально поддерживаются те версии, что перечислены на WiKi. Однако самые последние изменения в ядре тоже стараемся поддержать. Для клиентской части это проще и она должна собираться со всеми версиями ядер старше 2.6. С серверной частью сложнее. Только недавно она была портирована на RHEL 7.x с 3.10 версией ядра. Однако эта конфигурация еще тестируется. Мы не можем тестировать со всеми возможными дистрибутивами и версиями. Поэтому мы фокусируемся на тех конфигурациях, что стоят у наших платных подписчиков. Так что установка на другие дистрибутивы возможна, но она делается на страх и риск добровольцев.
      Набор патчей конечно присутствует. И он есть именно в виде набора патчей на стоковое ядро. Можно посмотреть здесь. Процесс сборки немного сложный, но про него можно прочитать на WiKi.
      С мейнтейнерами ядра на kernel.org ведется постоянная робота по интеграции клиента Lustre в ядро. Пока мы находимся в staging. Процесс этот очень не простой, и пока сложно сказать когда lustre client будет вынесен из staging. Планов на серверную часть пока даже нет. Хотя те патчи, которые необходимы для серверной части, мы планируем интегрировать в само ядро или отказаться от них. Так что в ближайшем будущем Lustre будет собираться без необходимости патчить ядро.