Speaker Rabbit

abbra


CIFS: curious information funneled sometimes


Previous Entry Share Next Entry
SambaXP 2007
Speaker Rabbit
abbra
Немного о том, что было представлено на конференции по поводу кластерной самбы, над которой мы работаем последний год: http://samba.org/~tridge/sambaxp-07/ctdb.pdf

Для ленивых, результаты предварительного тестирования с помощью NetBench (16 клиентов, от 1 до 4 узлов в кластере):
NodesOLD (pre-CTDB) approachNEW (CTDB) approach
1 node30.0 Mbytes/sec42 MBytes/sec
2 nodes2.1 MBytes/sec168 MBytes/sec
3 nodes1.8 MBytes/sec211 MBytes/sec
4 nodes1.8 MBytes/sec243 MBytes/sec


Вторая колонка -- это текущая Samba 3.0.25, в случае, если служебные базы разделять между узлами с использованием кластерной файловой системы (GPFS, GFS, Lustre, ...), третья -- кластерная самба на основе 3.0.25 и ctdb, когда служебные базы доступны через CTDB, а не через кластерную файловую систему. Оба испытания -- IP поверх Infiniband.

  • 1
А чем объясняется такая разница на одном узле? Оверхед собственно файловой системы? Какая использовалась для тестов, и отличаются ли результаты для GPFS, GFS, Lustre?

На одном узле -- тем что общение сообщениями идет не посредством tdb, на который 16 процессов (у нас же 16 клиентов) накладывают свои блокировки per-chain и ждут, а через ctdbd, который в одиночку владеет этими блокировками. Соответственно, блокировок просто меньше.

В варианте одного узла это может быть любая файловая система, тут же все через localhost.

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

Что касается результатов для разных кластерных систем, то предлагаю просто попробовать с другими (наши результаты -- с GPFS) и опубликовать их. Настроить все можно по документации тут: http://wiki.samba.org/index.php/CTDB_Setup

А что будет уметь эта кластерная самба?

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

том на узлах представляет собой зеркало? Или можно увеличивать размер тома добавляя машинки? Два узла по 300gb дадут в сумме 600 или 300 но быстрее?

Ты путаешь кластерную файловую систему и Самбу. Кластерная файловая система "под нами" может быть любой, из внятных на сегодня в Линуксе -- GPFS, GFS, Lustre (коммерческая версия), PVFS2, CXFS. OCFS будет скорее всего большим тормозом.

Каждая из этих систем имеет свое понимание томов и того, как они объединяются. Для нас важно, что данные просто доступны в рамках какого-то тома всем узлам одновременно и мы их ре-экспортируем далее для CIFS-клиентов.

А посоветуй что нибудь вменяемое из кластерных FS?
(Меня интересует скорее кластеризуемый сторадж --- как библиотека в юзерспейсе + сервер)

Я аккуратно посматриваю в сторону GlusterFS -- оно мне нравится, но выглядит студенческой поделкой все же.
Или на какой нибудь клон MogileFS из потрохов LJ.

Может ты как человек более "в теме" посоветуешь что нибудь?

Выбор, на самом деле, небольшой. GPFS (коммерческое), GFS (GPL), Lustre (коммерческое и свободное, свободное плохо), PVFS2 (свободное), CxFS (коммерческое). Все. OCFS от Оракла на самом деле кластерной файловой системой не является -- это кластерный блочный уровень для хранения баз Оракла, не более того.

Все остальное -- помойка.

а что скажете по поводу glusterfs ?


Я с ней не сталкивался. Вы можете сами взять и настроить -- весь код доступен на http://ctdb.samba.org.

У меня есть несколько открытых вопросов по поводу работы их трансляторов, в частности, posix и posix-locks. Для простоты, если есть работающая инсталяция glusterfs, то можно с двух клиентов запустить http://samba.org/~tridge/junkcode/ping_pong.c и сообщить числа для одного, двух и более клиентов, а также производительность этого теста, когда он запущен на сервере glusterfs относительно нижележащей файловой системы (доступной через posix translator) для одной и двух копий программы.

Вообшем, вопрос к сохранности семантики (ACL-и, кластерные блокировки). Чистые тесты dd очень мало показывают из реальной нагрузки, особенно для CIFS-клиентов.

  • 1
?

Log in

No account? Create an account