10G дома: Infiniband, Linux, Samba, iSCSI, SRP
Для начала картинка. Это SRP (SCSI RDMA Protocol), поднятый на Linux, клиент - Windows 7.

Но по порядку.
Гружу линукс, запускаю Samba, меряю. Хреново как-то, сильно хуже (на мелких файлах) чем было на Myricom, кардинально хуже. На iSCSI то же самое, причем видно что при копировании большого файла он уезжает в кэш (на гигабайт где-то), после чего все встает колом и скорости плохие.
Единственная настройка, которую менял относительно defaults - это включал connected mode (т.е. IP-пакеты по 65k). Отключаю, становится кардинально лучше. Даже Win7 ("сервер") загрузил, увидел что скорость копирования файлов Qt вернулась, стали те же примерно 1:15 (у IB - чуть медленнее), что были с Myricom.
Новая бенчмарка
Большие файлы проблемы не представляют, во всех тестах скорость работы с ними разумная и в реальной жизни упрешься в производительность дисков скорее всего. Даже если упрусь в интерфейс, те 800Mb/sec которые я вижу - меня устраивают полностью.
С мелкими файлами хуже, упор явно идет в RTT. При этом бенчмарка с копированием 65k файлов мне не нравится, хотя я продолжаю ея мерять. Но гораздо интереснее - чтение большого количества мелких файлов, типичный паттерн - компиляция или рассмотрение каталога с превьюшками.
Вторая бенчмарка, которую я стал пускать - это подсчет md5-сумм того же каталога с Qt (65k файлов, 3.1Gb) с помощью md5deep. Так как клиентская машина может кэшировать часть данных, бенчмарка пускается два раза, на свежескопированный каталог с Qt и еще раз без перерыва и запуска других программ.
Результаты новой бенчмарки
Время выполнения md5deep -r . на каталоге с 65k файлов общим объемом 3.1Gb (mm:ss) | ||
---|---|---|
Описание окружения | 1-й запуск | 2-й запуск |
Локальный RAM-drive | 0:20 | 0:20 |
Локальный SSD (OCZ Vertex 2) | 0:51 | 0:38 |
Локальный RAID6 (6x1Tb 7200 rpm, Adaptec 5805) | 2:14 | 1:20 |
Win7 SMB-сервер (RAM storage) | 2:30 | 2:35 |
Linux, Samba (RAM storage) | 5:04 | 5:00 |
Linux, iSCSI (RAM storage) | 1:40 | 1:00 |
Linux, SRP (RAM storage) | 0:59 | 0:40 |
Как видим:
- SRP работает почти так же хорошо, как локальный SSD (а это - очень хорошо)
- iSCSI работает похуже, но (имея стораджем RAM-диск) - серьезно быстрее, чем локальный 6-дисковый массив, а это тоже хорошо
- SMB работает нехорошо (Samba - особенно нехорошо), для работы с мелкими файлами лучше не использовать.
Бенчмарка копирования
Все то же копирование Qt, но в качестве источника Ramdrive:Сервер | Время, mm:ss |
---|---|
Win7 | 1:25 |
Linux, Samba | 3:13 |
Linux, iSCSI | 1:00 |
Linux, SRP | 0:32 |
Итого
Новая бенчмарка не применялась к Myricom, кроме того у бенчмарки копированием поменялся источник, что должно быть видно на самом быстром варианте (Myricom+iSCSI), следовательно Myricom-тесты надо переделывать.Но и без переделывания почти очевидно, что скорости SRP и, скорее всего, скорости iSCSI будет хватать т.к. узким местом станет дисковый массив с физическими дисками (пачка SSD - другой разговор).
Про настройку SRP
Настройку SRP я делал по этой инструкции, благо у меня тоже Ubuntu 11.10.
Оно не вполне получилось. Вот эта вот команда:
Более того, подготовленный конфиг не завелся и я его упростил примерно до такого вот (взяв за основу пример отсюда):
DEVICE disk01 {
filename /dev/ram0
nv_cache 1
}
}
TARGET_DRIVER ib_srpt {
enabled 1
TARGET iqn.2006-10.net.vlnb:tgt {
LUN 0 disk01
enabled 1
}
}
К сожалению, SRP есть только для Linux (точно) и Солярки (кажется, т.е. народ что-то настраивает, но не факт что это работает везде и всегда). С FreeBSD - облом. Но см. выше про производительность реальных дисков, скорее всего просто iSCSI по 10G не будет совсем уж узким местом.
Comments
Я правильно понимаю, что SRP
Я правильно понимаю, что SRP работает поверх iSCSI?
Нет, поверх infiniband. IP в
Нет, поверх infiniband. IP в деле вовсе не участвует.
Спасибо.
Спасибо.
на nfs бенчмарки не прогняли?
на nfs бенчмарки не прогняли?
Прогонял на Myricom-е, получил ужасное какое-то говно. Не по
Прогонял на Myricom-е, получил ужасное какое-то говно. Не помню результат, в разы медленнее самбы.
Но у меня виндовый клиент (Win7) и никакие другие клиенты на практике не интересуют т.е. Linux-Linux не стал тестировать.
SRP + Windows
Подскажите пожалуйста , реально ли поднять аналогичный сервак на 2008R2 ?
Просто в связи с доступностью Infiniband оборудования , хочу поднять что то подобное,
Но вынужден юзать 200R2 как iSCSI хост для Hyper-v R2 .
В данный момент на нем стоят OCZ Vertex 2, а 2х1Gbit/s катастрофически мало .
Но вот не могу найти инфу можно ли поверх SRP пускать iSCSI ?
И есть ли вообще драйвер SRP под винду ....
про SRP target на винде
про SRP target на винде ничего не знаю совсем. То есть вовсе.
Гугление находит только солярку и Linux.
SRP initiator (клиент) входит в поставку драйверов (OFED).
А если нужно не iSCSI, а
А если нужно не iSCSI, а быстрый доступ по сети?
Только вариант с 10G Ethernet, IP, и всяческими связанными с этим задержками?
Быстрый доступ по сети к
Быстрый доступ по сети к чему?
Если это какое-то ваше собственное приложение - можно к нему и по RDMA ходить (поверх IB), будет быстро.
Имеем, скажем, 10ТБ дисковую
Имеем, скажем, 10ТБ дисковую стойку.
В сети есть 2-3 клиента, которым надо к этой стойке ходить.
На сторадже лежат достаточно большие файлы фотографий (десятки и сотни тысяч штук) и маленькие xml файлы.
На этом же сторадже лежат файлы с видео под последующий монтаж.
Задача - организовать быстрый доступ этих 2-3х клиентов к всем этим файлам.
На клиентах - Mac OSX и Windows 7.
На сторадже - что нам лучше подойдет. Может быть Linux, может быть Windows 2012 Server.
Это можно только с IP сетью сделать?
Если это разделяемый доступ
Если это разделяемый доступ (т.е. клиенты ходят к одному и тому же набору файлов), то у вас выбор между какими-то "сетевыми файловыми протоколами": SMB, Apple FS, NFS.
SMB в Win2012-сервер вроде умеет работать поверх чистого Infiniband (RDMA), но что должно быть для этого на клиенте - я не знаю.
NFS умеет работать поверх RDMA, как я быстро нагуглил. Но что должно быть на клиенте - опять не знаю.
IP - совместимый вариант, но оверхед будет больше.
Короче, пробовать надо
Короче, пробовать надо :-)
Спасибо!