вторник, 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 экспандеров не только не противопоказано, а вполне оправдано в подавляющем большинстве случаев!

13 комментариев:

  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 вызывает скорее улыбку, нежели оптимизм.

    ОтветитьУдалить
  11. Здравствуйте. скажите а для если на сервере стоит Raid контроллер, число дисков имеет значение?и может ли оно быть, допустим один диск на 450 GB?

    ОтветитьУдалить
  12. Контроллеру количество дисков без разницы, оно важно для задачи...

    ОтветитьУдалить
  13. Этот комментарий был удален автором.

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