10Gbit сетевое хранилище при умеренных затратах

Задача стояла следующая — выполнить upgrade системы хранения для фотографа. Вернее, фотографов.
Имелось сетевое хранилище на основе Windows Server 2008 (так сложилось исторически), RAID контроллера Adaptec 3405 и 4х подключенных к нему дисков по 1.5Тб. Для связи с внешним миром использовалась 2х портовая гигабитная серверная сетевая карта HP NC360T.

Проблемы имеющейся системы:
— скорость доступа к сетевым ресурсам «упиралась» в производительность гигабитных Ethernet интерфейсов,
— место на RAID массиве кончалось.

Пожелания:
— быстрый доступ по сети к расположенным на дисковом массиве файлам фото и видео материалов,
— увеличение доступного объема дискового массива в 2-3 раза.


Идея объединения гигабитных интерфейсов в транк была попробована и отброшена как неработоспособная. Позднее общение со службой поддержки HP и чтение стандартов лишний раз подтвердило — даже наличие многопортовых серверных сетевых карт и управляемого коммутатора с поддержкой LACP не позволяют для имеющейся системы балансировать нагрузку по нескольким линкам в соединении 1 сервер — 1 клиент.

Идея сделать хранилище на основе недорогих карточек Infiniband тоже мало вдохновила — требовался именно сетевое хранилище с доступом к файлам с нескольких компьютеров. Пусть не со всех с особо высокой скоростью (для каких-то подойдет и гигабитный интерфейс, для каких-то многопоточный WiFi типа n, а там, глядишь, и ac в ноутбуки начнут ставить).

Остался, по сути, один вариант — 10G Ethernet. У которого есть одна неприятность — цена.
Берем, например, HP NC523SFP (в девичестве — Qlogic) и получаем цену примерно в $1000 за 1 карточку.
Добавляем еще примерно столько же на трансивер и получаем… Экономически абсурдную для этой задачи цену получаем.

Вопрос цены играл не последнюю роль. Задача не была «сделать круто за 3 копейки», но брендовые корпоративные решения, с которыми мне приходится иметь дело последние… цать лет, тоже не проходили по бюджету.
И пришлось обратить свои взоры на ebay.
Там были подобраны
— две 10G карточки от Myricom 10G-PCIE2-8B2-2S по цене $200 за штуку,
— два 10G SFP трансивера неведомого китайского производителя по $60 за штуку,
— RAID контроллер Adaptec 7805 с SATA/SAS кабелями за $400.

Наверное, сетевые карточки и контроллер можно было взять попроще — подешевле, если подождать — повыбирать. Но была оказия из Штатов…
Все, кроме трансиверов, приехало быстро, а трансиверы ехали из Китая. Неторопливо ехали. Но все-таки русская почта их довезла :-)

Учитывая, что рабочих станций с быстрым каналом подключения больше двух не планируется даже в будущем, обошлись без 10G коммутатора. Пока ехали трансиверы, была предпринята попытка соединить машины с Myricom картами direct attach twinax кабелем от Cisco длиной 7 метров. Система не завелась. Карточки «поднимали» интерфейс и тут же его «опускали». Служба поддержки от Myricom запросила кучу диагностики с карт (благо, у карт есть такая возможность), дала множество советов типа «попробуйте так, а потом сяк», но под конец резюмировала «меняйте кабель».
Еще одного twinax кабеля под рукой не оказалось, поэтому пришлось дождаться трансиверов.
Они были успешно получены, поставлены в карточки, и соединены 10 метровым LC-LC патч кордом (куплен в ближайшем магазинчике за 700р). Линк «поднялся» мгновенно.

На тестах через микрософтовский NTttcp получилось 9.5 — 9.6 гигибита. При включенном на картах AIM (Adaptive Interrupt Moderation) с задержкой на прерывания по умолчанию 25 микросекунд. Это, по словам тех поддержки, в некоторых случаях излишне нагружает CPU, но дает меньше latency.
С выключенным AIM производительность в тесте падала на 30%. Возможно, этот тест не показатель для реальной загрузки, но пока оставлено с AIM. Благо, процессорной мощности там для этой задачи сколько угодно (Intel i7 3770).
Этот тест показал, что хотя бы явных глупостей не сделано, карты работают на полной скорости.

Дисковый массив был собран на 5 дисках WD Red 3TB. В RAID5. Предложенный RAID6 принят не был на основании «у нас все равно все в облако копируется». И действительно, на сервере настроена програмка от CrashPlan, и через 20 мегабитный канал все бодро уходит в дата центр где-то в Атланте. Восстанавливать данные пробовали (как-то потрбовалась старая версия файла). Восстанавливается вполне бодро.

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

image

После сборки и копирования данных началось тестирование. Для начала синтетическими тестами.
ATTO benchmark что при прямом запуске на сервере, что при работе с клиента показывала что-то странное.

image
Тест с сервера.

image
Тест с клиентской машины

Скорее, она меряет скорость доступа к кэшу контроллера с случае локального подключения. А в случае подключения по сети — вообще непонятно что.
При этом сетевой интерфейс загружается на все 100%.

image

HD Tune Pro показал тоже что-то странное. Помня, что от одиночных дисков этой серии в лучшем случае можно получить в районе 150 мегабайт в секунду на чтении-записи больших файлов, похоже, мы опять меряем кэш контроллера.

image

Более интересной была реальная работа с изображениями.
По ощущениям скорость просмотра фотографий из Lightroom повысилась раза в 4.
При открывании и сохранении больших панорам в Photoshop (tiff без сжатия c «несклеенной» послойной панорамой размером 3.5Гб) система «уперлась» в производительность Photoshop на клиентской машине. Открывался файл секунды 4, записывался секунд 10. Большую часть из этих 10 секунд Photoshop «думал о своем», не выдавая никакой сетевой активности.

image
Первая группа пиков — считывание картинки, последняя группа с загрузкой интерфейса почти до 100% — запись картинки.

По ощущениям работать все стало быстрее в разы. Да и 12Тб дискового пространства на некоторое время хватит :-)

Я не считаю себя специалистом в области high performance computing, и буду рад замечаниям — пожеланиям по поводу этой системы.
Продолжение истории.

Similar posts

Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 34

    0
    даже наличие многопортовых серверных сетевых карт и управляемого коммутатора с поддержкой LACP не позволяют для имеющейся системы балансировать нагрузку по нескольким линкам в соединении 1 сервер — 1 клиент.

    Win8/2012 обещал multipath (если правильно помню) как раз под это. Данные качаются в несколько TCP потоков, и теоретически эти потоки должны размазаться по нескольким линкам.
    можно было взять попроще — подешевле, если подождать — повыбирать.

    Ну да, подождать. Скоро на рынок должна вывалиться куча 100/1000/10000 медных карт. «Брендовость» и «корпоративность» там нужны настолько же, насколько топовая интеловская 1G карта нужна в домашнем компьютере. Оптика идет туда же. 10G медь уже вполне матерая.
    Хотя я в таких ситуациях тоже обычно не жду и покупаю что есть :)

    Вопрос. Не проще было купить просторный корпус и сразу в него насовать контроллер и винты? Если вы беспокоитесь о шуме, то и корпуса бывают разные, и ничто не мешает отодвинуть корпус в соседнюю комнату или на балкон. Если бы два-три компьютера должны были быстро общаться с NAS, то вопросов нет, но тут решение выглядит странно.
      +1
      Задача в том, что 3-4 компьютера должны иметь доступ к базе фотографий и видео.
        +2
        Но куплено всего две карты, без свитча. Соответственно, 10G — только между двумя компьютерами. Планируете расширяться в будущем, или скорость требуется только между двумя компьютерами? Или там отдельная 1G сеть?
        Расширение потребует резкого скачка в затратах, даже L2 10G свитчи не самые дешевые.
          0
          Есть отдельная 1G сеть для низкоскоростного доступа.
          Карту HP NC360T из сервера не вынимали.
          Если будет нужно подключить еще один компьютер по 10G, нужна будет только еще одна 10G карта. Возможно, трансиверы (если не подойдет twinax кабель).
          Что же касается коммутаторов c 10G портами, то их цена для моделей нижнего уровня в районе $1k. Например, Cisco SG500X.
            0
            Например, Cisco SG500X.

            Минимальное, что я вижу там — SG500X-24, цена на ебее около $1k. 5G там вроде только под интерконнект для стека.
      0
      Win8/2012 обещал multipath (если правильно помню) как раз под это. Данные качаются в несколько TCP потоков, и теоретически эти потоки должны размазаться по нескольким линкам.

      Далеко не все коммутаторы умеют балансить по L4
        0
        А разве в данном случае это задача коммутатора?
        Это функция SMB 3.0, и коммутатор на L2, или даже L3 про то, что поверх него работает многосессионный SMB даже не знает.
          0
          При агрегации каждая L4 сессия обязана всегда бегать через один и тот же линк, чтобы не было проблем с переупорядочиванием пакетов, не требовалась лишняя инкапсуляция для контроля этого дела и т.д.

          Хороший коммутатор при выборе этого линка для пакета считает 5-tuple — адреса, порты и протокол. Даже приличные L2 свитчи, которым вроде не положено знать про существование L3 и тем более про L4, так могут.

          Плохой коммутатор не знает про L4, т.е. рассматривает только IP адреса при выборе линка, и хоть тыщу сессий между двумя адресами насоздавай, все они улетят в одну трубу, другая будет простаивать.

          В особо запущенных случаях свитч смотрит лишь на L2, т.е. маки. На таких свитчах агрегация в большинстве случаев весьма бесполезна, годится лишь как средство резервирования, или когда через агрегированные линки будет ходить очень много трафика между соседними L3 узлами.
            0
            Все это может быть и верно — в теории. Но на практике мы говорим о SMB 3.0 и его возможностях поддержки многосессионного SMB, и никакой особой поддержки для его работы на уровне свитча не требуется, также как не требуется от домашнего L2-свитча какой-то отдельной и специальной поддержки TCP/IP для раздачи через него домашнего интернета.
              0
              никакой особой поддержки для его работы на уровне свитча не требуется

              Ну если многосессионный SMB работает, но через один линк, то пользы от него мало, верно?
                0
                Не вполне так. Многосессионность полезна и ведет к некоторому улучшению даже и по одному физическому интерфейсу (это хорошо видно, например, в случае использвания многосессионности в iSCSI, появившейся недавно).

                Но смысл в том, что никакой поддержки на стороне свитчей для использования многолинкового и многосессионного SMB 3.0 не нужно. Да ее и нет на сегодня, и сомнительно, что она появится _в свитчах_ в обозримом будущем.
                А вот использовать — уже можно.
      0
      Для 10G в данной ситуации дешевле использовать Infiniband, на ebay есть много дешевых карт на 10G на два порта. Хотя в настройке конечно гораздо сложнее и есть определенные проблемы с длиной кабеля! Зато если надо будет потом подключить еще 3 рабочих места достаточно докупить в сервер одну карту и обойтись без коммутаторов!
        0
        В данном случае максимум, который может понадобиться — это добавить еще один компьютер по 10G.
        Это можте быть, например, MacBook Pro c конвертором ThunderBolt — 10G Ethernet.
        Остальным машинкам достаточно будет 1G.
        А вот как такое с Infiniband строить — я не знаю. Драйверы под Mac существуют?
          0
          c MacBook Pro наверное будут проблемы. Но цена 10G Infiniband для вашего текущего варианта очень дешевая получается.
            0
            А что надо сказать Windows Serverу, чтобы он по Infiniband отдавал разделяемое дисковое пространство?
              0
              Думаю тут будут проблемы!
                0
                Ну есть IP over IB, при его использовании ничего особого говорить не надо.
                  0
                  Надо будет про это почитать повнимательнее.
                  Этот проект уже сделан, но на будущее будет не вредно разобраться.
                    0
                    Представим, что у нас есть 2 карты InfiniBand. Скажем, от Mellanox.
                    И есть у нас сервер под Windows 2008. И пара рабочих станций под Windows 7 64bit. И пара MacBook Pro.
                    Всем им нужен по возможности быстрый доступ к этому серверу.
                    Сейчас все уходит в 10G Ethernet и мы получаем стандартный сетевой разделяемый ресурс.
                    Что нам надо сделать, чтобы реализовать то же на IB?

                    Можно даже упросить задачу, забыть про скоростной доступ ноутбуков (не так уж им и пользуются), оставить только сервер и 2 рабочие станции под Windows.
                    Не забываем, что рабочим станциям и обычный доступ в сеть нужен. Для интернета, для печати фотографий на сетевом фото принтере, который рядом стоит, для выгрузки результатов в online фотохостинги.

                    Какое ПО устанавливать на сервер и на рабочие станции?..
                      0
                      У меня дома реализована
                      а) быстрая сеть (сторадж-бокс + 2 рабочие станции) — на трех картах Mellanox (по одной в компьютере), они двухпортовые. Карты покупал по $23 на ebay, кабели — по ~$25 у китайцев (трехметровые).

                      б) медленная сеть для всех остальных: обычный гигабит c дешевым свитчом, обычный WiFi.

                      Понятно, если есть бюджет на свитч с несколькими 10G-портами, 10G карты, трансиверы и прочая — оно лучше. Но у меня бюджет всей сетевой части (и IB и гигабита) уложился баксов в 300.
                        0
                        Идея понятна.
                        Но на сколько я понимаю, в вашем случае на сторадже стоит Linux.

                        Есть ли возможность получить разделяемый по сети сторадж, если на нем стоит Windows Server, а соединение с ним происходит как через Infiniband, так и через 1G Ethernet?
                        Что для этого на сервер и на клиенты ставится из софта?
                          0
                          Я не специалист в Windows storage.
                          Тем не менее, банальный SMB поверх IPoIB (ну и 1G Ether) — обязан работать.

                          В 2012-м сервере вроде бы появилось что-то для работы SMB просто поверх Infiniband, но я, повторяю, не специалист, только слышал звон.
            +1
            Модели, которые с Х (SG500Х) — они 10G поддерживают на SFP портах.
            Опять же Netgear сделал 10G коммутатор XS708E по похожей цене.
            Но для данной системы это не очень актуально :-)
              0
              Занятная вещица, если судить по обзору.
              0
              Хочу собрать на работе кластер из 2-4 нод.
              с двумя более-менее все понятно.

              На 3-4 Может имеет смысл втыкать больше карт?

              Кластеры на Hyper-V +Starwind. Памяти по 128Гб на ноду. и 2-4Тб HDD 1-2ТБ SSD.
              Пробывал по 16Гб оперативной памяти такую конфигурацию, на ненагруженной системе показалось, что для синхронизаций хранилищ хватит и 1Гбит сети. А вот живая миграция была менее радостной.

              Т.е. в сценарии с starwind. Не нужны малые задержки и большая скорость. Ибо хранилище УЖЕ на сервере.
              Кто пробывал продукты starwind? Хотелось бы отзывов в рабочей среде.

                0
                Пробовали HA от Starwind. После того как без видимых причин несколько раз падала синхронизация между хранилищами отказались. Пока дело не касается HA, Starwind можно использовать.
                0
                Чем FC 8Gbps и переделка под SAN не подошли?
                Просто сам планирую что-то подобное сделать, и между 10G Ethernet / FC / InfiniBand остановился на FC.
                  0
                  Это не подходит для совместного использования файлов с нескольких клиентов.
                    0
                    MetaSAN?
                    А если ситуация «один писатель, много читателей», то AFAIK можно и вообще обойтись без особых плясок.
                    Хотя наверно действительно NAS здесь будет более адекватным решением в отличии от моего случая.
                      0
                      Я бы сказал, что SAN — это все таки решение для распределения дискового пространства между серверами. Сервера видят эти ресурсы как свои локальные диски, пользователи обращаются к этим ресурсам через сервера и виртуальные машины. Как реализовать связь сторадж — сервер, это уже другой вопрос. Можно через FC, можно через iSCSI, можно еще как-то.
                      В любом случае SAN и задача доступа пользователей к разделяемому ресурсу — это разные задачи.
                  0
                  Ох и скушаете же вы пряников с RAID5.
                  Рекомендую к прочтению — www.zdnet.com/blog/storage/why-raid-6-stops-working-in-2019/805
                  RAID5 на дисках более 2TB дисках использовать нельзя. Ребилд будет идти вечность с 85-95% потерей производительности. И очень значительной вероятностью потерять и второй диск, с ним и все данные. Считали сколько будет времени восстанавливаться хотя бы 30% занятого стореджа на вашем канале? Чуть менее года :)
                    0
                    Чтобы полностью выкачать 12 Тб в идеальных условиях в вакууме на скорости 20 Мбит\сек нужен 61 день 2 часа 0 минут и 55, 5 сек

                    Соответствено 30% это чуть менее чем 1.5 месяца;)
                      0
                      Реальная ситуация не столь печальна :-)
                      У обычного фотографа активная работа идет с последней, на крайней случай — предпоследней съемкой. Все остальные нужны очень не часто. И реально нужных фотографий из этих прошлых съемок — единицы %. Те, которые попали в протфолио или близко к нему. Все остальные фотографии нужны очень редко. Но их не стирают на всякий случай.
                      Таким образом, достаточно будет выкачать последнюю съемку, с которой идет работа. Это 10-30Гбайт. То есть в среднем 15Гб.
                      За пару часов есть шанс управиться :-)

                      А за ссылку на статью спасибо.

                  Only users with full accounts can post comments. Log in, please.