Осень. Пора переходить на Ultra320 SCSI?

Автор: niknik
Дата: 25.09.2002
Все фото статьи

Введение


Четыре года интерфейс Ultra160 верой и правдой служил на пользу общества, но ничто не вечно под луной. Резкое увеличение плотности записи на пластинах жёстких дисков привело к росту линейной скорости чтения с винчестеров. На текущий момент с уже не самого нового SCSI-диска Seagate Cheetah X15 36LP можно считывать поток данных в 60 МБ/сек., и, при использовании трёх таких винчестеров на одном канале SCSI, пропускной способности Ultra160 (160МБ/сек.) уже не хватает для утилизации скорости трёх таких винчестеров (3*60=180). А ведь интерфейс позволяет использовать 15 таких винчестеров на одном шлейфе.
Если учесть, что следующее поколение SCSI-дисков, которое уже на подходе, ещё выше поднимет планку в плотности записи (а, следовательно, вырастет и скорость линейного чтения), то становится ясно, что интерфейс Ultra160 становится узким местом дисковой подсистемы.

Одним из решений проблемы нехватки пропускной способности SCSI-контроллера может быть простое увеличение количества каналов на нём. Кстати, для создания дисковых подсистем с высокими требованиями к быстродействию такой подход применяется уже давно. Однако, метод этот не является панацеей, так как у контроллера с большим количеством каналов в геометрической прогрессии растёт цена и уменьшается надёжность.
Ещё одним, и значительно более элегантным, методом увеличения пропускной способности контроллера является увеличение пропускной способности интерфейса. Действительно, зачем строить рядом с одной дорогой ещё одну, когда можно расширить существующую. И цель будет достигнута (пропускная способность вырастет), и обойдётся подобный апгрейд значительно дешевле.
Вероятно, из таких (или подобных) соображений и выкристаллизовалась спецификация Ultra320 SCSI.
Итак, Ultra320 - что же это такое? Попробуем разобраться.

Новый интерфейс - новые возможности


Интерфейс Ultra320 SCSI - седьмое поколение интерфейса SCSI за двадцать лет его истории. Все эти годы интерфейс SCSI, кроме быстродействия, славился ещё и обратной совместимостью (backward compatibility). То есть у пользователя всегда была чёткая уверенность в том, что устройства различных поколений будут совместимы друг с другом. Новый интерфейс - Ultra320 SCSI полностью обратно совместим со всеми предыдущими версиями протокола SCSI. В частности, это означает, что верны следующие посылки:

Максимальное количество устройств на шине равно 16-ти.
Максимальная длина соединения точка-точка (т.е. если на шине всего два устройства) составляет 25 метров.
Максимальная длина кабеля, если на шине присутствуют более двух устройств, составляет 12 метров.
Максимальная пропускная способность интерфейса - 320МБ/сек.
Для обеспечения пропускной способности в 320МБ/сек. используются обычные 68-pin и 80-pin SCA разъёмы.

Следует помнить, что для обеспечения пропускной способности в 320МБ/сек. необходимо, чтобы все компоненты дисковой подсистемы - контроллер, кабель, корзина и диск поддерживали работу на такой скорости (особенное внимание следует уделить корзинам).

В дополнение к тем технологиям, которые привнёс в интерфейс SCSI протокол Ultra160 - Dual Edge Clocking, Domain Validation и Cyclic Redundancy Check, протокол Ultra320 SCSI включает следующие:

Double Transfer Speed: За счёт вдвое большей частоты передачи интерфейс способен прокачать 320МБ/сек.

Packetized SCSI:

В протоколе Ultra320 введена поддержка пакетизации пакетов, т.е. объединение нескольких блоков данных, которые нужно передать от одного устройства другому в пакет.
Посмотрим, как происходит передача данных по протоколу Ultra160:

Перед тем, как передать блок данных от одного устройства к другому требуется установить между ними связь. Для этого по шине передаётся специальный сигнал синхронизации - Ack (Acknowledge).


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

В протоколе Ultra320 при использовании пакетизации отпадает необходимость сопровождать каждый блок данных сигналом Ack:


Соответственно, пропускная способность шины Ultra320 используется более эффективно.

All Bus Phases Transfer at 320MB/sec.

При передаче пакета данных по SCSI-шине различают три фазы: Command, Data и Status. По протоколу Ultra160 на максимальной скорости (160МБ/сек.) информация передаётся только в фазе Data (данные), а в фазах Command и Status передача данных идёт на меньших скоростях:


А на протоколе Ultra320 во всех фазах данные передаются на максимальной скорости:


Чем меньше времени тратится на передачу команд и статусной информации, тем больше его остаётся для передачи полезных данных!

Ultra320 SCSI has implemented CRC characters for all bus phases.

В то время как в протоколе Ultra160 контроль целостности данных за счет использования циклического кода с избыточностью (CRC) используется только в фазе Data:


В протоколе Ultra320 SCSI передаваемая по шине информация сопровождается циклическим кодом во всех фазах передачи данных.



Quick Arbitration and Select (QAS).

Эта технология уменьшает время необходимое для передачи управления шиной от одного устройства - другому.

Flow Control.

Эта технология позволяет контроллеру более эффективно осуществлять обмен данными с диском. Суть технологии в том, что диск заранее сообщает контроллеру, когда ему будет послан последний пакет с данными. "Имея на руках" эту информацию контроллер оптимизирует процессы упреждающего чтения и отложенной записи.

Training Pattern

Как известно, SCSI - параллельный интерфейс, а это означает , что данные передаются по нескольким проводам. К сожалению, длина этих проводников не одинакова (насколько я понимаю, имеется в виду "плетёный" кабель), и одновременно посылаемый по ним сигнал от источника приходит к приёмнику не одновременно. Эта разница во времени прихода сигналов в приёмник называется рассогласованием сигналов - signal skew. На малых частотах эти рассогласования не вызывали больших проблем, но теперь, когда интерфейс работает на высоких частотах, эти рассогласования могут привести к потере или искажению данных.
Тестовая процедура (выполняемая при старте контроллера?) при помощи Training Pattern как раз и призвана измерить рассогласование сигналов в SCSI-кабеле. Происходит это примерно так. Контроллер начинает слать диску поток специфических данных. Диск, принимая данные, измеряет рассогласование во времени прихода сигналов по разным проводам и запоминает его. В дальнейшем, принимая данные с шины, диск будет вносить в получаемый сигнал коррекционную добавляющую.
Процедура Training Pattern также позволяет определить "неприятности" на шине на этапе старта контроллера/дисков и, тем самым, предотвратить возможную потерю данных.

Pre-compensation

Частота сигналов в интерфейсе Ultra320 SCSI выросла в два раза по сравнению с Ultra160 SCSI, а требования к кабелю остались прежними. Этого удалось достичь за счёт новых технологий передачи сигналов на высоких частотах, которые обеспечивают высочайшую степень надёжности.
Удвоение частоты работы SCSI-шины перевело её в тот частотный диапазон, в котором происходит сильное ослабление сигнала, и также потребовало увеличения уровня signal slew (более крутого падения сигнала). Опять же, удвоение частоты сигналов привело к уменьшению амплитуды сигналов и увеличению уровня отражений сигналов в шине (высокочастотных шумов).
Вдобавок к проблеме ослабления сигналов добавилась проблема ISI (Inter-symbol Interference) - искажение кромок цифрового сигнала. Если по проводнику некоторое время передавать сигнал одного и того же уровня, то длинный проводник становится своего рода конденсатором. При попытке передать по этому проводнику сигнал другого уровня передатчик может не успеть изменить уровень сигнала в кабеле до уровня, необходимого приёмнику для уверенного распознавания сигнала за то время, которое ему отведено.
Предкомпенсация решает и проблемы ослабления сигналов и проблему ISI. Для того чтобы понять, как это у неё получается, рассмотрим принцип работы шины без предкомпенсации и с ней.
Без использования предкомпенсации:


Как видим, уровень сигналов без использования предкомпенсации одинаков и при передаче цепочки сигналов "0101", и при передаче сигналов одного знака. При этом, на высоких частотах мы можем иметь вышеописанные проблемы.
При использовании предкомпенсации передатчик понижает уровень сигнала при долговременной передаче одинаковых сигналов, тем самым, упрощая себе задачу по "перезарядке" проводника, если ему вдруг прикажут передать сигнал другой полярности.


Существует и другой метод борьбы с ISI, называемый AAF (Adjustable Active Filter), но о нём мы поговорим в следующий раз, когда будем рассматривать диски Maxtor - разработчика этого метода.

Как мы имели возможность убедиться, очередное эволюционное изменение интерфейса SCSI должным образом сочетает как технологии, призванные увеличить быстродействие, так и технологии, повышающие надёжность дисковой подсистемы, использующей Ultra320 SCSI.
Посмотрим теперь на овеществлённое воплощение интерфейса Ultra320 SCSI - диск Seagate Cheetah X15 36LP U320.

Seagate Cheetah X15 36LP U320


Первоначально диск Cheetah X15 36LP был выпущен с интерфейсом Ultra160 - мы тестировали его год назад. А теперь мы наблюдаем второе рождение диска Cheetah X15 36LP но уже на интерфейсе Ultra320 SCSI.
Зачем же Seagate понадобилось выпускать старый диск на новом интерфейсе, ведь у неё уже готов диск Cheetah следующего поколения - Cheetah 15K.3?

Во-первых, как уже говорилось в самом начале этого обзора, при использовании уже трёх винчестеров Cheetah X15 36LP на Ultra160-канале в определённых задачах мы не сможем получить в этой связке максимальной отдачи от всех винчестеров - просто не хватит пропускной способности канала.
Во-вторых, диск Cheetah X15 36LP до сих пор пользуется устойчивым спросом, а интерфейс Ultra320 продлит интерес к этому диску ещё на некоторое время.
В-третьих, диск Cheetah 15K.3, как показало недавнее тестирование на сайте StorageReview, самом авторитетном ресурсе по дискам и контроллерам, оказался значительно быстрее, чем Cheetah X15 36LP, так что теперь в линейке жёстких дисков Seagate со скоростью вращения шпинделя 15000 об./мин. есть два гепарда - быстрый и самый быстрый. :)

Внешний вид диска не изменился:

Да и в электронике отличия минимальны. Судя по всему заменён только один чип - шинный интерфейс.
Единственное, что сразу бросается в глаза - новый логотип на этикетке:


Между прочим, этот логотипчик недёшево обошёлся Seagate. :)
Ещё одним отличием, которое я чуть было не упустил при сравнении спецификаций винчестеров, является меньшее время seek time у Cheetah X15 36LP U320 - 3.6 мс против 3.8 у Cheetah X15 36LP.

Тестовая система и методика тестирования


Как Вы уже догадались, тестировать мы будем диск Seagate Cheetah X15 36LP U320. Конечно, такой винчестер очень хотелось протестировать на родном для него интерфейсе Ultra320 SCSI, но вот незадача - контроллеры U320 ну никак не появлялись в продаже. Как всегда, в трудную минуту выручила компания Альянс, официальный дистрибьютор компании Adaptec, которая выделила мне на тесты едва не первый контроллер Adaptec 39320D, привезённый ею в Россию.

Сравнивать быстродействие Cheetah X15 36LP U320 мы будем... правильно, с Cheetah X15 36LP! А, чтобы нам было совсем интересно это делать - добавим контроллер Adaptec 29160N!

В результате перекрёстного опыления получились четыре комбинации (прямо по Менделю)...

Seagate Cheetah X15 36LP U320 на контроллере Adaptec 39320D
Seagate Cheetah X15 36LP U320 на контроллере Adaptec 29160N
Seagate Cheetah X15 36LP на контроллере Adaptec 39320D
Seagate Cheetah X15 36LP на контроллере Adaptec 29160N

Для тестов в WinBench массивы размечались в FAT32 и NTFS одним разделом с размером кластера по умолчанию. Тесты Winbench проводились по пять раз, результаты усреднялись. Винчестеры между тестами не охлаждались.
Использовались следующие тесты:

WinBench 99 1.2
HDTach 2.61
IOMeter 1999.10.20

Для сравнения скорости работы винчестеров при помощи теста IOMeter использовались новые паттерны StorageReview, анонсированные в третьей редакции их методики тестирования жёстких дисков.

Паттерны StorageReview
  File Server Web Server
  80% Read, 100% Random 100% Read, 100% Random
 512b 10% 22%
 1KB 5% 15%
 2KB 5% 8%
 4KB 60% 23%
 8KB 2% 15%
 16KB 4% 2%
 32KB 4% 6%
 64KB 10% 7%
 128KB 0% 1%
 512KB 0% 1%

Эти паттерны призваны измерить производительность дисковой подсистемы при нагрузке, типичной для file&web-серверов.

На основании проведённого Storagereview исследования о характере нагрузки на дисковую подсистему при работе с обычными Windows-приложениями наш автор, Романов Сергей aka GReY, создал паттерн для теста IOMeter (паттерн создавался по усреднённой статистике IPEAK, приведённой на StorageReview для режимов работы Office, Hi-End и Bootup):

Паттерн Workstation
 Transfer Size Request % of Access Specification % Reads % Random
 Workstation   
 512B 1 0 100
 1KB 2 0 100
 2KB 1 0 100
 4KB 50 60 80
 8KB 4 50 100
 16KB 6 50 100
 20KB 2 50 100
 24KB 2 50 100
 28KB 1 50 100
 32KB 13 70 70
 48KB 1 50 100
 52KB 1 50 100
 64KB 14 80 60
 64KB+512B 2 50 100

Этим паттерном мы будем руководствоваться для оценки привлекательности винчестеров для обычного Windows-пользователя.

Дополнительно проведено сравнение скорости работы винчестеров при изменяемом соотношении операций чтения/записи. Был создан паттерн, в котором использовались 100% случайные 8КБ-блоки данных, а соотношение числа чтений/записей менялось от 100/0 до 0/100 c шагом -10/+10.

Ну и, наконец, была проверена способность винчестеров работать с Sequential-запросами переменного размера на чтение и запись.

Тестовая система

материнская плата - Asustek P3B-F
процессор - Intel P3 600E;
память - 2*128Mb SDRAM Hyundai PC100 ECC;
винчестер - IBM DPTA 372050;
видеокарта - Matrox Millennium 4Mb;
операционная система - Windows 2000 Pro SP2;

Контроллеры тестировались со следующими версиями драйверов:

Adaptec 29160N - 4.10.4002
Adaptec 39320В - 1.0.000.000 (наверное, Adaptec потратила 10.000.000 денег на этот драйвер :) )

HDTach 2.61


Для того чтобы не писать много раз фразы типа: "винчестер Seagate Cheetah X15 36LP U320 на контроллере Adaptec 39320D на 3 процента быстрее, чем винчестер Seagate Cheetah X15 36LP на контроллере Adaptec 29160N" предлагаю ввести сокращения:

160on160 - Seagate Cheetah X15 36LP на контроллере Adaptec 29160N
160on320 - Seagate Cheetah X15 36LP на контроллере Adaptec 39320D
320on160 - Seagate Cheetah X15 36LP U320 на контроллере Adaptec 29160N
320on320 - Seagate Cheetah X15 36LP U320 на контроллере Adaptec 39320D

Если никто не возражает, давайте продолжим. :)
Итак, результаты тестов в HDTach сведены в таблицу:


Из этой таблицы мы видим, что:
Average access time у нового Cheetah X15 36LP действительно поменьше, чем у старого.
Burst Rate обоих дисков на контроллере U320 меньше, чем на контроллере U160.
Разный Burst Rate никак не повлиял на среднюю скорость чтения и записи.
Средние скорости чтения/записи винчестеров на всех контроллерах примерно одинаковы.

WinBench 99 1.2 FAT32


Посмотрим, будут ли различия между винчестерами/контроллерами в Winbench.


Судя по полученным данным, особой разницы между старым и новым Cheetah X15 36LP не наблюдается. Разница в результатах находится в пределах погрешности измерений Winbench99. Ну, быть может, можно говорить о том, что на контроллере U160 винчестеры чуть быстрее.


И под NTFS результаты всех наших комбинационных пар примерно одинаковы, за исключением результата винчестера U320 на контроллере U160.

Intel IOMeter: Database


Один из самых любимых моих тестов - в нём всегда получаются очень живописные графики...
Итак, эмуляция работы винчестера при обработке запросов базы данных.


При линейной нагрузке все наши варианты контроллер-винчестер показывают примерно одинаковую скорость.


При глубине очереди команд, равной 16-ти запросам, среди наших конкурсантов наметилась некоторая дифференциация. Самые лучшие результаты показывает 320-й винчестер на 160-м контроллере, а самые низкие - 160-й винчестер на 160-м контроллере. Оставшиеся две комбинации контроллер-винчестер показывают промежуточные результаты.


Ещё более показательна разница и между винчестерами и между контроллерами (их драйверами!) при глубине очереди команд в 256 запросов. Очевидно, что разница между винчестерами на контроллере U160 образовалась за счёт меньшего access time у винчестера U320. Отлично видно и отличие в драйверах контроллеров U320 и U160 - в режиме RandomRead оба винчестера на контроллере U320 не показывают своей максимальной скорости. Это явный огрех драйвера.
Посмотрим, как наши пациенты справятся с последовательным чтением/записью.

Intel IOMeter: Sequential Read & Write


Всё как обычно - на винчестер посылается поток запросов на чтение/запись блоков данных, размер которых постепенно увеличивается. Глубина очереди команд при этом устанавливается в четыре исходящих запроса.


Полученная картина заставляет крепко задуматься. :)
Лучшие результаты, если не считать провала при работе с 8КБ-блоками, показал 320-й винчестер на 160-м контроллере, а самые худшие - 320-й винчестер на 320-м контроллере! Я-то, наивный, полагал, что преимущества "широкой шины" скажутся как раз при работе с мелкими блоками...


При записи, увы, мы наблюдаем ту же картину - винчестер U320 на 320-м же контроллере показывает отвратительную скорость. Обратите внимание, что при работе с 8КБ-блоками и здесь наблюдается некоторое снижение производительности. Может быть, драйвера контроллеров пытаются каким-то способом оптимизировать работу с блоками этого размера, и это плохо сказывается на скорости обработки последовательных запросов?

Intel IOMeter: SR2002


К чёрту синтетику, от неё одни огорчения... Проверим, как наши подопечные одолеют серверные паттерны.
В таблице приведены значения Total I/O - скорость обработки контроллером и винчестером запросов при пяти значениях глубины очереди команд.


В полученных результатах хочется отметить две "флуктуации". Во-первых, комбинация 320on160 дала неожиданный всплеск быстродействия в паттерне Fileserver при queue=64. И эта же связка оказалась медленнее остальных в паттерне Webserver при той же глубине очереди команд. По всей видимости, "удачно" совпали алгоритмы firmware винчестера и драйверов контроллера. :)
Для того чтобы сравнить "среднее" быстродействие наших конкурсантов усредним значения Total I/O при всех значениях нагрузок. Полученные таким образом баллы представлены на следующей диаграмме:


Оказалось, что комбинация 320on160 значительно опередила соперников в паттерне Fileserver (за счёт того самого "всплеска" при queue=64), а комбинация 160on320 оказалась чуть быстрее в паттерне Webserver.

Intel IOMeter: Workstation


Последний наш паттерн в этом обзоре - Workstation. Предлагаемая Вашему вниманию таблица содержит значения Total I/O, т.е. скорость обработки контроллером и винчестером запросов. Обратите внимание, что диапазон глубин очереди команд в этом тесте намного меньше, чем в предыдущем. Так как мы тестируем скорость дисковой подсистемы рабочей станции, где нагрузка на диски намного меньше, чем на серверах, то и диапазон нагрузки мы выбираем соответствующий.


Судя по результатам, в этом паттерне большую скорость опять продемонстрировала связка 320on160. Но подождём делать какие-либо выводы до тех пор, пока не увидим "итоговый" результат. А его мы, в отличие от паттернов Fileserver и Webserver будем считать по более сложной формуле. Исходя из того, что на рабочей станции более вероятны невысокие нагрузки, значения Total I/O, полученные на малых нагрузках, получают в итоговом результате больший вес. Предлагаемая формула вычисления итогового результата выглядит следующим образом:

Производительность = Total I/O (queue=1)/1 + Total I/O (queue=2)/2 + Total I/O (queue=4)/4 + Total I/O (queue=8)/8 + Total I/O (queue=16)/16 + Total I/O (queue=32)/32

Подставив в эту формулу полученные значения Total I/O, мы построили следующую диаграмму:


Да, победа в этом паттерне досталась связке 320on160, но, вопреки нашим ожиданиям, на второе место вышла связка 320on320! Никогда бы не сказал, что Ultra320 SCSI может быть полезна в рабочей машине, но, судя по результатам... :)

Выводы


Хотел было привычно начать выводы с ритуального "заламывания рук", но передумал...
Да, полученные результаты плохо соответствуют нашим знаниям о винчестерах и интерфейсах. Да, интерфейс Ultra320 в этом раунде показал себя не так хорошо, как ему хотелось бы.
Но, позвольте, что Вы хотите от драйверов 1.0.000.000? И кто додумался доказывать преимущества интерфейса Ultra320 при работе с одиночным диском? Нет, нет - только не я.

Обзор этот был, прежде всего, о диске Seagate Cheetah X15 36LP U320, а на каком интерфейсе его будут использовать - дело второстепенное. В конце концов, интерфейс SCSI обратно совместим. :)
Диск Cheetah X15 36LP U320 имеет меньшее время access time, чем его предшественник с интерфейсом Ultra160 SCSI. За счёт этого он опережает его во всех тестах (естественно, имеются в виду тесты, проведённые на контроллере Ultra160).

Переход на драйвера 4.10.4002 для контроллера Adaptec 29160N привёл к резкому увеличению результатов во многих тестах, а это автоматически означает, что понадобится перетестировать все те винчестеры, о которых мы писали раньше.

Ну, а что касается интерфейса Ultra320 - эксперименты продолжаются. Только что закончились тесты диска Seagate Cheetah 10K.6, и скоро мы ещё раз сравним скорость этого диска на интерфейсах Ultra160 и Ultra320.
Оставайтесь с нами! :)