LINUX.ORG.RU
ФорумAdmin

Распределенное хранилище с кешированием.

 , , , ,


0

2

Тема для размышления. Есть 4 машины с 256Гб оперативки на каждой и HDD накопители на них же. Есть программа которая выполняя расчеты периодически выплевывает результаты в виде многогиговых файлов.

Собственно есть желание сделать так, чтобы файл с нескольких расчетных машин записывался максимально быстро в оперативку, сообщал расчетным машинам «файл записан, всё ок, продолжайте считать», а потом уже происходила запись на HDD.

В общем, задача уменьшить время ожидания между расчетами, которое тратится на сохранение результатов.

Если это возможно выполнить, то при помощи каких инструментов? Или распределенной ФС типа Lustre будет достаточно? Тогда какие ФС сейчас в ходу и почему?

чтобы файл с нескольких расчетных машин записывался максимально быстро

писать на аппаратный ramdisk

vxzvxz ★★★ ()

Есть 4 машины

Или распределенной ФС типа Lustre будет достаточно?

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

Есть программа которая выполняя расчеты периодически выплевывает результаты в виде многогиговых файлов.

Это плохо, если программа самописная, то думай как уменьшить.

Собственно есть желание сделать так, чтобы файл с нескольких расчетных машин записывался максимально быстро в оперативку, сообщал расчетным машинам «файл записан, всё ок, продолжайте считать», а потом уже происходила запись на HDD.

Ну дык, тебе нужен быстрый кэш, перед дисковым хранилищем, это и гугли [1] [2]

Т.е. заведи один узел как файл-помойку.

З.Ы.: Не пытайся усложнять там, где нужно простое решение.

AlexVR ★★★★★ ()
Ответ на: комментарий от AlexVR

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

Десяток расчетных нод пишущих на ФС расположенную на 4х машинах. Вроде теже яйца только в профиль.

Это плохо, если программа самописная, то думай как уменьшить.

Нет. Это коммерческое ПО. Автосейвы иначе работать и не могут.

Т.е. заведи один узел как файл-помойку.

Так сейчас и пишется на файлопомойку. В итоге каждый автосейв занимает порядка 5 минут. Эти 5 минут программа ждет окончания сохранения и только потом продолжает расчет. Задача - писать гигабайты за секунды имея 4 железки. Железки с infiniband и 10Gig.

shad0w ()
Ответ на: комментарий от shad0w

А банальный кеш записи в линукс у вас не работает?

goingUp ★★★★★ ()
Ответ на: комментарий от shad0w

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

Как часто? Если раз в час, то это уже даже и не существенно.

Десяток расчетных нод пишущих на ФС расположенную на 4х машинах. Вроде теже яйца только в профиль.

У тебя есть десять вычислительных узлов и четыре для файл-помойки? Если так, то дерзай, но учитывай, что для Люстры и подобных надо: минимум один выделенный физический сервак для мето-данных, парочка (в твоём случае 3) выделенных серваков для хранения объектов с большими дисковыми корзинами. Ни о каких вычислениях на этих узлах речи уже не идёт. Тогда получаем. что ради экономии нескольких минут ты используешь под хранение треть узлов, которые могли бы в это время вычислять и сэкономить часы?

AlexVR ★★★★★ ()
Ответ на: комментарий от AlexVR

что для Люстры и подобных надо: минимум один выделенный физический сервак для мето-данных, парочка (в твоём случае 3) выделенных серваков для хранения объектов с большими дисковыми корзинами.

Собственно часть вопроса как раз и звучит «А Lustre ли? Или нет?» Ну и какие скорости ожидать от распределенных ФС, которые можно получить из 4х машин с infiniband/10Gig

Как часто? Если раз в час, то это уже даже и не существенно.

На сколько я помню периодичность настраиваемая(за софтом не я работаю), но даже 5 минут в час, да на 24 часа = 2 часа в сутки ожидания.

Про 10 нод я сказал от балды, так их более 150.

shad0w ()

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

dronozavr ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.