+88 голосов |
При массовом распространении SATA SSD серверного класса (пример - интеловская серия S3700 многие задаются вопросом: а нужны ли в сервере SAS? Если речь о 2-4 SSD, скорее всего, протокол SAS действительно лишний.
Кому нужны низкие задержки доступа к данным, выберут NVMe SSD (снижение латентности почти в три раза). Правда, их не объединить в аппаратный RAID.
Но когда нужны минимальные задержки и объединение в аппаратный RAID нескольких устройств – альтернативы протоколу SAS просто нет.
Давайте посчитаем.
SATA – это всегда 6Gb. SAS бывает 6Gb и 12Gb. Грубо, предельная теоретическая пропускная способность интерфейса SATA 6Gb на коротком блоке в 4К равна 150 KIOPS (600 MB/s поделить на 4KB). Это без учета накладных расходов самого протокола. Интерфейс SATA полудуплексный (half-duplex), в отличие от полнодуплексного (full-duplex) SAS. Для SATA эти 150 KIOPS – полная скорость в обоих направлениях, в то время как для SAS 6Gb потенциально возможны 300 KIOPS для операций чтения и записи одновременно (что было не важно для HDD, но может стать актуальным для SSD). Для SAS 12Gb на тех же блоках 4KB мы получим удвоение потенциала пропускной способности - до 300 KIOPS в одном направлении или до 600 KIOPS в смешанном режиме чтения/записи.
Дадим шанс SATA – останемся в рамках стандарта 6Gb. Если разделить 6Gb/s на 150 KIOPS, то получим теоретические 6,67 микросекунды на одну транзакцию по передаче блока 4KB. На самом деле это совпадает с реальной длительностью такой транзакции, которая близка к 6,83 микросекунды.
Сам протокол SATA при передаче каждого пакета тратит порядка 760 наносекунд на установку регистров (12*8bits*10/8) и обработку прерываний на стороне хоста. В результате получаем теоретическую пропускную способность на уровне 572 MB/s. Лучшие из SATA устройств вытягивают скорость передачи до 550 MB/s. Это примерно соответствует пределу в 132 KIOPS.
На практике, интерфейс SAS 6Gb обеспечивает в среднем на 52% выше эффективность относительно SATA 6Gb даже в условиях использования всего одного своего двунаправленного порта (У SAS их два, но это востребовано в двухконтроллерных системах хранения с двойными экспандерами – где достигается удвоение пропускной способности).
SATA работает в режиме «устройство-хост», обособлено с каждым устройством. SAS по своей логической структуре – это сеть. Т.е. SAS умеет мультиплицированно работать с множеством устройств, имея расширенное адресное пространство и не тратя времени каждой раз на формирование канала заново.
Как известно всем, кто хоть раз запускал тесты – максимальной производительности дисковое устройство достигает только тогда, когда идут не одиночные запросы, а выстояна очередь. На длине очереди 1 и 32 – будут кардинально различные результаты даже у SATA SSD. Длина очереди команд, поддерживаемых устройством SATA – 32 команды. А SAS – 256 и более команд. Важность этого параметра подчеркивает новейший стандарт NVMe, который устанавливает стартовую планку в 32000 команд.
Итого:
- Потолок производительности SAS 6Gb при интенсивной нагрузке вполовину выше потолка SATA 6Gb - только за счет полнодуплексной передачи и особенностей протокола. Накладные расходы у SAS всегда ниже;
- Переход к SAS 12Gb увеличивает отрыв;
- SAS работает с множеством устройств как единой сетью;
- Длина очереди SATA всего 32 команды, а SAS – от 256;
- В отказоустойчивых SASJBOD работа с каждым устройством SAS может вестись по двум полнодуплексным каналам (еще одно удвоение пропускной способности).
Практические рекомендации можно свести к простому правилу:
- Если у вас 2-4 диска, то вполне можно ограничиться SATA;
- Для четырех и более дисков (с учетом перспективы расширения) предпочтительнее SAS.
Про DCIM у забезпеченні успішної роботи ІТ-директора
+88 голосов |