вторник, 24 ноября 2009 г.

Сколько должно быть разъемов на контроллере?

Наболело! Чуть ли не каждый день вижу вопросы такого плана: “В сервер можно поставить 16 (24) жестких диска, а SAS RAID контроллер у меня только 8-ми (или того хуже 4х) портовый! Что мне делать? Это наверное ошибка в конфигурации?!”. Ну что на это можно сказать? Может быть это конечно и ошибка, но скорее всего нет. Как же так? А все очень просто: SAS это протокол последовательной передачи данных и поддерживающий коммутацию. Если Вам нужно к серверу подключить 7 рабочих станций, Вы же не ставите в сервер 7 сетевых карт, а используете коммутатор на 8 портов, который позволяет всем машинам получить доступ к серверу. Точно также и в данной ситуации: либо в самом корпусе (прямо на бэкплейне), либо в виде отдельной карты присутствует аналог этого самого коммутатора. Только в данном случае он называется SAS-экспандером и позволяет подключить к RAID контроллеру гораздо больше дисков, чем есть SAS линий на самом контроллере. Наиболее распространены экспандеры на базе чипов LSI: LSISASx28, LSISASx36 или LSISAS2x36 (для 6Gbps SAS). В частности, на бэкплейнах в корпусах Supermicro используются экспандеры именно LSI. Отдельные карты с экспандерами также существуют, например в России проще всего найти их среди продукции компании Chenbro.

imageНа рисунке – возможная схема подключения с двумя RAID контроллерами для отказоустойчивости к дискам через экспандер. Правда, надо сказать что это довольно специфичная конфигурация, которую мы обычно наблюдаем во внешних дисковых системах, в серверах же используется более простая схема, в которой нет ни второго контроллера, ни второго экспандера.

Вот вроде бы и разобрались – для подключения 24х дисков вовсе не нужно 24 порта на контроллере, достаточно и 4х (так как обычно именно 4 SAS линии используется для соединения контроллера с экспандером). А используя контроллер с 4мя внутренними портами и 4мя внешними можно не только задействовать (при использовании экспандера все диски в сервере, но и обеспечить возможность дальнейшего увеличения дисковой подсистемы за счет добавления внешней дисковой полки (JBOD).

Но сразу возникает несколько новых вопросов: “А нужно ли использовать экспандер? Может быть он так замедляет работу, что от него надо отказаться? У меня целых 24 (а то и еще больше) диска подключено только по 4м линиям SAS – наверное это будет очень медленно?”.

Попробуем найти ответы. Начнем с конца: 4 SAS линии по 3Gbps дают в сумме 12Gbps, а это целых 1.5 Гига-байта в секунду. Можно ли реально достичь такой пропускной способности? В принципе можно, но (а) нужно помнить, что наверное с этим потоком нужно еще что-то делать, а не просто читать или писать и (б) дисков для этого потребуется (даже при благоприятном стечении обстоятельств) заметно больше десятка. А если учесть, что при типичной работе сервера запросы к дисковой подсистеме идут в значительной степени случайные, то полосы пропускания в 12Gbps оказывается вполне достаточно – можете проверить сами на любом своем сервере, запустив perfmon (под Windows) и посмотрев на трансфер с дисков во время работы. А что до возникновения дополнительных задержек при использовании экспандеров, то они конечно есть, но “поймать” (измерить) их Вам не удастся – настолько они малы по сравнению с задержками при обращении к жесткому диску. Есть и еще один аргумент, чтобы не бояться экспандеров – в RAID-контроллерах, где количество портов больше 8, зачастую это объясняется именно наличием интегрированного на плате экспандера – например Adaptec 51245, 51645, 52445. Так что по сути, делая выбор в пользу многопортового контроллера, Вы просто приобретаете SAS экспандер на одной плате с контроллером.

Итак, использование SAS экспандеров не только не противопоказано, а вполне оправдано в подавляющем большинстве случаев!

10 коммент.:

  1. Большое спасибо за эту и другие статьи (про RAID, например)! Изложение на высоком уровне, и в то же время доступно. Для меня это чтение было очень полезно.

    ОтветитьУдалить
  2. мне кажется что использование 1 контроллера, например 5805, с экспандером на 24 диска хуже чем использование 3-х таких контроллеров с прямым подключением (8*3=24, т.е. диски те же) за счет увеличения кэш памяти контроллеров

    ОтветитьУдалить
  3. 2dexter:
    Если стоит задача увеличить кэш, то имеет смысл не 24 контроллера ставить, а воспользоваться технологией Adaptec MaxIQ: http://www.adaptec.com/ru-RU/products/CloudComputing/MAXIQ/SSD-Cache-Performance/index.htm
    Эффект будет в подавляющем большинстве случае лучше, а цена ниже.

    ОтветитьУдалить
  4. Спасибо, прояснило некоторые моменты несведущему.
    Плохо знаком с технологией и не могу найти ответ на вопрос - можно ли active midplane при помощи SFF-8087 подключать к двум HBA (два проводка в один, два в другой) ? Заранее спасибо.

    ОтветитьУдалить
  5. Зависит от того, что именно вкладывается в понятие "active midplane". Если это то, о чем я думаю, то нельзя. Если это что-то другое :) то может быть и можно.

    ОтветитьУдалить
  6. Под "active midplane" я понимаю экстендер, который по четырем каналам подключает к HBA много винтов. Видимо нельзя всё-таки. Спасибо.

    ОтветитьУдалить
  7. Если бы на бэкплейне было бы два экспандера (такие корпуса есть), то можно. Если экспандер только один - нельзя.

    ОтветитьУдалить
  8. Ага. Спасибо огромное.

    ОтветитьУдалить
  9. подскажите, каким образом можно сделать доступ с двух серверов к дисковой полке с использованием протокола SAS(какое оборудование необходимо)?
    Т.е. задача примерно такая:
    есть 2 сервера в которых установлены рейд контролеры. Нужно что бы при выходе из строя одного доступ к дискам получал другой(своего рода multipath).
    Заранее благодарен.

    ОтветитьУдалить
  10. 2opt1k:
    Единственный хотя бы в какой-то степени работоспособный вариант - использовать вместо RAID-контроллеров обычные SAS HBA и что-то типа Nexenta. Краеугольным камнем будет именно ПО на серверах, которое позволит достичь желаемых целей. Вы пытаетесь на коленке сделать то, что ведущие производители дисковых систем делают годами и "вылизывают" прошивки день за днем. Честно скажу, что попытка в одиночку "уделать" EMC или IBM вызывает скорее улыбку, нежели оптимизм.

    ОтветитьУдалить