10G дома: Myricom, Windows-SMB, iSCSI
Продолжаю развлечения с 10G между двумя рабочими станциями.
Windows - Windows
Запускаю на обеих машинах Win7, на одной делаю Ramdrive на 8G, расшариваю его прямо windows-средствами, запускаю Atto disk benchmark, получаю вот такую картинку:
Каких-то настроек на серверной стороне я не делал, я их и не знаю.
Картинки с Самбы на той же машине (для сравнения) запрятаны в этом посте.
Как видим, на мелких блоках стало побыстрее в 1.5-2 раза (2 раза - для блока 8к), на больших блоках - незначительно медленнее.
Копирование крупных файлов идет с примерно той же скоростью, в районе 500-600MB/sec, то есть быстрее, чем можно надеяться имея в массиве разумное для дома количество HDD под этой сетью. Про копирование мелких файлов будет ниже и отдельно.
Понастраивал всякие параметры у сетевой карты (Adaptive Interrupt Moderation, Interrupt Coalescing Delay), но каких-то больших отличий не увидел.
Заодно, раз на двух концах провода винды, попускал NT Testing TCP Tool, списав настройки с Myricom-овской странички Myri-10G 10-Gigabit Ethernet Performance. В результатах увидел странное:
- В один поток имею единицы гигабит, типа 3-4, меньше чем iperf давал.
- В три (и более) потока - имею один поток в 9+ гигабит и 2 (и более) потоков порядка 200Mbit, общая сумма в районе 9.9Gbit/s
iSCSI
Загружаю Linux, настраиваю там iSCSI, следующим образом (только отличия от defaults):Lun 0 Path=/dev/ram0,Type=blockio
MaxConnections 10 # Number of connections/session
MaxSessions 10 # Number of sessions/target
ImmediateData Yes # Data can accompany command
MaxRecvDataSegmentLength 262144 # Max data per PDU to receive
MaxXmitDataSegmentLength 262144 # Max data per PDU to transmit
MaxBurstLength 262144 # Max data per sequence (R2T)
FirstBurstLength 65536 # Max unsolicited data sequence
MaxOutstandingR2T 16 # Max outstanding R2Ts per cmnd
Wthreads 16 # Number of IO threads
QueuedCommands 32 # Number of queued commands
Монтирую в винде, форматирую NTFS, запускаю ATTO:
В любом случае, скорость с большими файлами более чем удовлетворительная и на iSCSI и на Самбе и на Win7 в позе сервера. Интереснее маленькие.
Мелкие файлы
Берем каталок с Qt 4.8, там кроме Qt у меня еще валяются исходники OpenSSL, QCA и немножко другого мусора, всего 65k файлов и 3.1Gb. И вот прямо Windows Explorer-ом копируем на сетевой диск, время меряем секундомером. Гонял по несколько раз, брал лучшее время. Получается такое вот:Копирование 65к файлов (3.1G всего) по 10G-сети | |
Вариант | Время, mm:ss |
SSD - Linux,Samba (настройки см. в предыдущем посте) | 2:43 |
SSD - Win7 SMB(без настроек) | 1:14 |
SSD - iSCSI, настройки см. выше | 0:42 |
SSD-Локальный массив, 6xHDD 7200, RAID6, Adaptec 5805, NTFS | 1:20 |
SSD-второй SSD | 0:42 |
Довольно неожиданный результат: remote iSCSI оказался не медленнее локального SSD.
Более того, одинаковое время наводит на мысль, что бутылочное горло - в источнике. Или где-то еще, но не в диске-приемнике.
Возможно, если бы в наборе файлов средний размер был бы поменьше, то было бы иначе, но и то не факт, SSD пишет быстро (почти упираясь в свое SATA2) только большими блоками, а на мелких всяко есть деградация.
К сожалению, тест SSD-SSD я проделал, когда стенд уже размонтировал, вытащив Myrinet и вставив Infiniband. Понятно, что нужен еще и тест с чем-то вроде поиска файла в относительно большом каталоге (компиляция или что-то вроде этого). На IB я это сделаю, если получу интересные результаты, то к Myrinet опять вернусь.
Comments
супер. Но всетаки не ясно.
супер. Но всетаки не ясно. почему скорость падает ниже 32к блоком? И будет ли такое же падение на IB.
У меня в наличии IB две карты и кабелек. Хранилка выдает локально 700Мбайт. Сейчас по 3xMPIO работает. Нужно это всунуть по iSCSI в ESXi чтоб выжать максимум из хранилки.
Хранилка под Solaris'ом работает. И собрать OpenSM не получается под Solaris. Вот подскажи, ты OpenSM под чем поднял для тестов? Взял из пакетов/портов или компилировал? Если компилировал, то какие зависимости тянет с собой?
Скорость падает понятно
Скорость падает понятно почему - потому что чем меньше блок, тем больше заметен RTT. Что будет на IB - увидим, это все требует времени, которого мало, а спешки у меня тоже нет т.к. вся перестройка запланирована одновременно с апгрейдом workstation на Ivy Bridge, т.е. это не раньше мая скорее всего.
Ну а сейчас - ну кину я 10G то текущего NAS, ну упрусь там в диски на уровне ~200Mb/s, это то все тривиально.
Про OpenSM на солярке вот чего пишут: http://syoyo.wordpress.com/2011/12/13/opensm-on-solaris11-works/
У себя я его поднимал и под виндой и под Linux. Сам собирал - только под Linux (ну и на FreeBSD9 он входит в систему и как-то собирается).
Под Linux тянул за собой какой-то infiniband-devel или что-то такое, что у Убунты было в репозитории и приехало как-то само (я не помню что именно, но помню что никакой проблемы не было с написанием apt-get install).
А OFED линуксовый на солярке - не собирается никак, даже частями?
ofed какраз стоит
ofed какраз стоит "изкаробки". Если это дрова. Видны оба порта.
Почему IB привлекательнее? потому что имеет меньше RTT, и соответственно быстрее на мелких блоках?
Кабель CX4 подходит от Myricom к IB?
OFED - это и дрова и тестовые
OFED - это и дрова и тестовые утиля и библиотеки. И OpenSM тоже, во всяком случае оный у меня всегда приезжал с OFED.
Кабели - да, одни и те же. У IB требования, похоже, чуть ниже (или чуть другие) - у меня из 4-х кабелей один работает только с IB, а с Myrinet там carrier дрожит, несколько раз в минуту реконнект. Остальные три - работают и там и сям.
Я не умею правильно померять RTT на Myrinet (не понимаю чем), по пингу - там микросекунд 100-120. У IB моего - 6 микросекунд на коротких пакетах.
Ну вообще-то если чистую сеть мерять, то не хватает случая R
Ну вообще-то если чистую сеть мерять, то не хватает случая RAMdisk-RAMdisk. Толку-то заодно стораджи мерять.
На практике меня интересует ситуация, "как бы оно было, если
На практике меня интересует ситуация, "как бы оно было, если бы на той стороне был бы быстрый массив".
Но быстрого массива нет, вот и эмулирую рамдиском.
Для мелких файлов, чую уже, придется свой софтварий написать.
ковыряю аналогичные карточки
ковыряю аналогичные карточки и IB и ethernet:
3 метровые кабеля (dlink) работают только с IB
из 7-ми одно-метровых два вообще не работают, 5 и IB и только 2 с ethernet
Да, с кабелями - геморой. У
Да, с кабелями - геморой. У меня так:
- китайские кабели (3м) - работают и с Myri и с IB
- D-Link (фирменный, купленный здесь за безумные $180) - только IB
- два метровых совсем дешевых (по $16) - на IB дали 1x, с ether - не работают.
Китайские кабели где
Китайские кабели где покупали?
На eBay, вестимо. Сейчас у
На eBay, вестимо.
Сейчас у этого продавца их нет, не могу ссылку дать.
Я так понимаю, основные
Я так понимаю, основные проблемы именно с кабелями?
По каким критериям выбирать их на eBay?
Я выбирал по цене. В
Я выбирал по цене. В результате два самых дешевых (метровые по $16) - нерабочие, самый дорогой (родной D-Link, покупал в Москве) работает с IB, но не работает с 10GbE (менять не стал, его работа на IB меня вполне устраивает), остальные - рабочие.
Каких-то устойчивых критериев - не уловил. Нерабочие китайские - выглядят на вид прилично, распаяны хорошо, какого хрена не работают - не знаю.
SRP target + OpenSM на
SRP target + OpenSM на solaris не пробовали ?
нету солярки в хозяйстве.
нету солярки в хозяйстве.
Подключение 3-4 машин
Если необходимо подключить 3-4 машины по IB их надо по кольцу подключать?
И будет ли подобный образом работать Remote Direct Memory Access или при таком количестве уже надо про свич думать? Если занимать расчетами с использованием MPI?
Я боюсь, что MPI хочет взять
Я боюсь, что MPI хочет взять нормальную топологию из IB, а не догадываться что три машины соединены в кольцо. Не уверен, но подозреваю. Т.е. больше двух машин не будет работать нормально скорее всего.
Но свитчи 10Gb совсем же дешевые. 8 портов стоят вот прямо сейчас на eBay $450. И видел 24-портовые за $999 или около того.
Понятно что еще доставка, встанет баксов в 200 запросто, но цены в любом случае приемлемые.
У вас сейчас три карты
У вас сейчас три карты двухпорторые, чтобы попарно соединить одну машину с каждой другой?
Да. Хотя реально две рабочие
Да. Хотя реально две рабочие машины между собой не соединены, не надо.
Но мне не нужен MPI и прочие броадкасты, кроме как для экспериментов (а эксперименты можно и на двух машинах), а нужен IP (SRP) с рабочих станций на сервер.
ссылку можно на 8 портов
ссылку можно на 8 портов
Так вот прямо на eBay набираю
Так вот прямо на eBay набираю "infiniband switch", сортировка по Price+Shipping, lowest first.
Вылезает вот это: http://www.ebay.com/itm/Flextronics-8-Port-4X-SDR-InfiniBand-Switch-F-X4...
Шиппинг написано $49, но это обман.
Ну и там дальше всякое, в том числе 288 портов за $2k (но перевозка этой телушки обойдется прилично, плюс ее точно не растаможить нормально).
Понятно что первый (или там есть еще 24 порта в 1U за 800-999) - надо доставлять в место вроде Shipito и платить им еще немножко денег за перепаковку. Но это - если слать на частное лицо - пролезает под таможенный бесплатный лимит и финальная цена (с пересылками и т.п.) будет в районе 600-650 за 8-портовик и 1200 за 24-портовик.
Если на eBay порыбачить (и, имея адрес в Shipito - не игнорировать то, что USA Only) - я и за $250 за 8 портов видел варианты.
за 250 я никак не могу
за 250 я никак не могу поймать :) 250 это мой моральный предел :(
Надо рыбачить. Я видел близко
Надо рыбачить. Я видел близко к этой цене.
Но для 1U цена пересылки будет изрядная, большой разницы 250 или 350 нет.
Я поискал в completed -
Я поискал в completed - 8-портовый 18-го марта продали за $300 :)
хотя я бы с удовольствием
хотя я бы с удовольствием нашел 10G ethernet портов cx4 на 4-8, но нет таких за разумные деньги.