Pull to refresh

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

Reading time 2 min
Views 8.7K
#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
Tags:
Hubs:
+32
Comments 29
Comments Comments 29

Articles