Кластерная LustreFS или с Миру по нитке

    #include

    Зачастую, краеугольным камнем производительности работы сервера является скорость работы файловой системы. Её можно увеличить с помощью создания дисковых массивов RAID0 — запись/чтение побитово производится на оба диска, однако рано или поздно слоты под диски заканчиваются, надёжность RAID0 оставляет желать лучшего — при выходе одного из дисков, рушится вся система. RAID10 опять же упираемся в количество дисков.

    Как альтернатива, использование сетевых фс. Наибольшее распространение получила NFS, но для боевых задач с её скоростью и неочевидностью настройки прав доступа практически непригодна.
    «Сравнивать GPFS и LustreFS — это как сравнивать IBM и SUN.»
    Анонимус из интернетов.

    В ТОП-300 суперкомпьютеров Мира половина из первых 50 используют LustreFS, которая очень проста в первоначальной настройке. Простое решение — правильное решение. Настройка производилась на трёх идентичных серверах s1 s2 s3, операционная система — CentOS 5.4.

    Структура такова, что таблица фс хранится в MGS/MDT разделе, он же пофайлово отвечает за балансировку. Структура чем-то напоминает RAID0, при выходе из строя одного(не MGS/MDT) из устройств система продолжает функционировать и возвращается в полностью рабочее состояние при возвращении потерявшегося бойца.
    Разделы объединяются в ноды, в качестве узлов можно использовать серверы, файловые хранилища,….
    Освободите на s1 два раздела: sda4 ~50MB под структуру и sda3 оставшееся место. На остальных серверах достаточно только sda3.
    int main()

    1. Создаем репозиторий.
    bash# cd /etc/yum.repos.d/
    bash# cat lustre
    [lustre]
    name=RHEL/CentOS-$releasever lustre
    baseurl=http://quattorsrv.lal.in2p3.fr/packages/lustre/
    gpgcheck=0
    enabled=1


    2. Устанавливаем ядро и пакеты
    bash# yum install kernel-lustre.x86_64 lustre.x86_64

    3. Перегружаемся в новое ядро
    bash# reboot

    4. Ставим lustre-modules и lustre-ldiskfs
    bash# yum install lustre-modules.x86_64 lustre-ldiskfs.x86_64

    5. Утилиты для работы с фс нужно выкачать по ссылке www.sun.com/software/products/lustre/get.jsp, стандартные у меня так и не заработали. Нам нужен всего один файл
    bash# rpm -Uhv e2fsprogs-1.41.6.sun1-0redhat.rhel5.x86_64.rpm

    6. Делаем MGS и MDT диск (под структуру), монтируем и записываем в fstab
    root@s1# mkfs.lustre --fsname=spfs --reformat --mdt --mgs /dev/sda4;
    root@s1# mdkir /mgs-mds; mount -t lustre /dev/sda4 /mgs-mds;
    root@s1# echo "/dev/sda4 /mgs-mds lustre defaults,_netdev 0 0" >> /etc/fstab;


    7. Создаем OST раздел с данными, монтируем, пишем в /etc/fstab
    root@s1# mkfs.lustre --fsname=spfs --reformat --ost --mgsnode=192.168.0.1@tcp0 /dev/sda3
    root@s1# mkdir /ost; mount -t lustre /dev/sda3/ost
    root@s1# echo "/dev/sda3 /ost lustre defaults,_netdev 0 0" >> /etc/fstab


    8. Логинимся на s2 и повторяем пункты 1-5

    9. Создаем OST раздел с данными, монтируем, пишем в /etc/fstab
    root@s2# mkfs.lustre --fsname=spfs --reformat --ost --mgsnode=192.168.0.1@tcp0 /dev/sda3
    root@s2# mkdir -p /ost; mount -t lustre /dev/sda3 /ost
    root@s2# echo "/dev/sda3 /ost lustre defaults,_netdev 0 0" >> /etc/fstab


    10. Пункты 8-9 повторяем для s3,s4,… sn

    11. Монтируем рабочую систему
    root@s2# mkdir -p /work
    root@s2# echo "192.168.0.1@tcp0:/spfs /work lustre defaults 0 0" >> /etc/fstab
    root@s2# mount /work

    return 0
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 29

      +1
      Спасибо, пригодится в хозяйстве.
        +3
        Структура чем-то напоминает RAID0, при выходе из строя одного(не MGS/MDT) из устройств система продолжает функционировать и возвращается в полностью рабочее состояние при возвращении потерявшегося бойца.

        Может таки RAID1? А то как-то в случае потери одного из дисков в RAID0 все ломается :)
          +1
          Нет нет, я не ошибся. Именно RAID0 — скорость чтения/записи повышена. Если в Lustre потеряем бойца, глюки будут. Возврат бойца в строй производится в штатном режиме.
            0
            Скорость чтения повышена и на RAID0 и на RAID1.
              0
              да ну?
                +1
                Ну да.
                en.wikipedia.org/wiki/RAID#RAID_1

                «RAID 1 Mirrored set without parity or striping. Provides fault tolerance from disk errors and failure of all but one of the drives. Increased read performance occurs when using a multi-threaded operating system that supports split seeks, as well as a very small performance reduction when writing»
                  0
                  Ощутимый прирост скорости чтения/записи даёт RAID0, fakedream прав. 1 наверно тоже даёт, но не так явно.
                    0
                    Вопрос был в том, дает ли RAID1 вообще какой-либо прирост, а не в степени этого прироста. Однако www.google.ru/search?q=RAID1+read+performance+increase&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox
                      0
                      возможно в спецификации RAID1 «по бумажкам» и есть прирост. На практике же я ни разу не видел заметного прироста при использовании RAID1.
            +1
            у люстры нет raid1
            +2
            Не устаю напоминать, что монтировать папки с данными в корень — дурной тон. Нужно или в /var, или в /srv, ну или хотя бы в /usr/local
            А за проделанную работу спасибо.
              +2
              Чем плохо монтировать папки с данными в корень?
                +2
                Это не плохо, это просто некрасиво, что ли. Желательно стараться придерживаться стандарта на иерархию ФС, вместо того, чтобы создавать свою уникальную иерархию.
              +9
              Новый смысл приобретает фраза «повесить люстру» :-)
              • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  К сожалению, ничего не могу сказать.
                  +1
                  Люстра на каких условиях распространяется?
                  Пока довелось поработать только с gpfs у нас на кластере, она вроде как платная, но нам в свое время на шару дали как университету.
                  Надо будет попробовать ее потестить на небольшом экспериментальном кластере…
                  Еще вопрос — Люстра позволяет MGS/MDT зеркалить? Т.е. чтобы при падении одного из серверов, на которых лежат метаданные, файловая система не рассыпалась? Под gpfs у нас два сервера используются, и при падении одного, файловая система продолжает работать, пусть медленнее, но работать.
                  +1
                  я вот так и не понял — это распределенная сетевая система? где общий раздел состоит из кусочков, разбросанных по узлам. или же есть некий общий раздел, доступный одновременно для всех нод на чтение-запись?
                    +1
                    Распределенная система, в которой расположение «кусочков» знает «сервер метаданных». Этот «сервер метаданных» и является тем «общим разделом» к которому обращаются клиенты чтобы получить и собрать нужные данные из «кусочков».
                    +5
                    сейчас как раз занимаюсь люстрой.
                    Во-первых Вы не указали важный факт — у люстры НЕТ фейловера и репликации. Т.е. если Вы хотите у себя отказоустойчивость, то потребуется либо шаред сторадж + heartbeat, либо drbd + heartbeat. Это раз.
                    Два — Ваша статья претендует на хауту, но в ней нет важных моментов. Например в продакшене требуется отключить дебаг на серверах и клиенах: echo 0 > /proc/sys/lnet/debug. С дебагом работает значительно медленнее.
                    Так же не сказано, что по дефолту файлы страйпятся из принципа — один файл->одна нода. Это можно и нужно изменять. Но на массивах с большими (> 1M) файлами. Почитать об этом можно вот тут: blogs.sun.com/atulvid/entry/improving_performance_of_small_files

                    Три, это вопрос уже тем, кто использует люстру в продакшене. Как быть с мелкими файлами? У меня просто чудовищно низкая скорость записи/чтения мелких файлов.
                      +1
                      Отказоустойчивость — отдельная большая тема, поэтому в текущем варианте Lustre сравнима с RAID0, если напишете Ваш опыт будет очень полезен.
                      Ctrl+f пофайлово =)
                        +2
                        Насчет этого я даже и не знаю, что писать. Настройка Heartbeat стандартная, drbd тоже стандартное. По ним есть куча хаутушек в интернете. Так же можете поискать в сети выпуск журнала системный администратор за февраль 2007. Там в общих чертах описана настройка heartbeat и drbd как раз для люстры. Есть некоторые недочеты, но при чтении документации они нивелируются.
                          +1
                          Единственное вспомнил. По установке дрбд на центос. DRBD в центосе, как оказалось сейчас сломано. Т.е. у меня не получилось запустить его с последним ядром, которое идет в составе центоса. Модуль из src.rpm тоже собрать не получилось. Качал вот отсюда oss.linbit.com/drbd/ тарбол с 8.3.7. Там внутри есть .spec файл, из которого замечательным образом собираются в rpm-ки все пакеты и модули.
                      +3
                      > Наибольшее распространение получила NFS, но для боевых задач с её скоростью и неочевидностью настройки прав доступа практически непригодна.

                      С появлением pNFS (parallel NFS) в NFS v4.1, которая прошла стандатизацию в яваре того года, это уже не так.
                        +2
                        >>дисковых массивов RAID0 — запись/чтение побитово производится на оба диска

                        oO
                        может поблочно. иначе зачем когда создаеш raid 0 указываеш размер блока
                          +1
                          да, конечно поблочно. Косяк.
                          0
                          У вас в коде mdkir вместо mkdir :)
                            0
                            Статья категорически неполна без демонстрации результатов. Раз говорите о скорости — приведите замеры. Говорите о распределенности — покажите что происходит при отключении и возврате в строй узла.

                            В идеале — в сравнении с другими ФС в одинаковых условиях.

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое