SCSIvsSATA

SCSI vs SATA

крис касперски ака мыщъх noemail

часть рынка жестких дисков и оптических накопителей принадлежит интерфейсу ATA/ATAPI (он же IDE), часть – SCSI. изменит ли появление SATA расстановку сил или нет? мы не можем предсказывать будущее, но все же попытаемся ответить на этот вопрос, беспристрастно сравнив функциональные возможности обоих интерфейсов

Священные войны вокруг SCSI и ATA-интерфейсов ведутся уже давно. Последние ревизии ATA-стандарта по своим функциональным возможностям вплотную приближаются к SCSI, однако, до полной победы еще далеко. SCSI, изначально проектируемый по правилу правой руки (закрываем цены и смотрим на товары), прочно обосновался на серверном рынке и уходить с него не собирается. ATA, напротив, задумывался как максимальное дешевое решение для однопользовательских маломощных машин и несмотря на все усовершенствования и нововведения последних лет, остается идеологически ущербленным интерфейсом. Это все равно, что пытаться переделать Запорожец в Мерседес!

С другой стороны, если возможности ATA покрывают ваши потребности с головой, зачем платить больше?

SCSI, ATA, ATAPI, IDE, EIDE… в этом ворохе аббревиатур даже матерому специалисту не так-то просто разобраться. Но мы все же попробуем!

SCSI расшифровывается как SmallComputerSystemInterface(Системный Интерфейс Малых Компьютеров) и конструктивно представляет собой интеллектуальный контроллер, интегрированный непосредственно в само периферийное устройство и поддерживающий унифицированный набор управляющих команд, общий для всех устройств данного типа. Фактически SCSI-контроллер это миникомпьютер, по мощности сопоставимый с Intel 80486. Во времена становления SCSI это было отчаянно смелым решением и огромным шагом вперед. До этого, всякое устройство имело свою собственную систему команд, ориентированную на выполнение элементарных операций (как-то: включить/выключить двигатель, прочитать индексную метку, переместить головку на следующую дорожку и т. д.). Это не только затрудняло программирование, но и требовало переделки контроллера даже при незначительных конструктивных изменениях периферийного устройства.

SCSI-устройства имеют единую схему логической адресации, независящую от физической геометрии устройства, и высокоуровневую систему команд (так-то: прочитать сектор или группу секторов, начать воспроизведение аудио диска). Получив команду, устройство ставит ее в очередь и освобождает шину, а инициатор запроса (которым может быть как центральный компьютер, так и другое SCSI-устройство) переключается на решение другой задачи. Обработав запрос, устройство вновь повторяет захват шины и пересылает данные инициатору, уведомляя его об этом через механизм прерываний. Таким образом, шина эффективно используется несколькими устройствами и время простоя центрального процессора сводится к минимуму.

Электрически SCSI-интерфейс представляет собой либо обыкновенный многожильный кабель, либо оптоволокно. На этот счет существует множество конкурирующих стандартов, подробно рассматривать которые не имеет смысла. Достаточно сказать, что физическая скорость передачи в последних версиях SCSI-стандарта полностью удовлетворяет потребности реально существующих устройств, оставляя солидный задел на будущее. Некоторые из электрических интерфейсов поддерживают длину кабеля до 25 метров и горячую замену устройств без выключения питания, однако, утверждение, что все SCSI-диски можно перетыкать на лету неверно и чревато смертельными (для диска) последствиями. Максимальное количество устройств на шине так же различно и варьируется от одного электрического интерфейса к другому. В среднем на шину можно повестить 7 или 15 устройств, не сильно проигрывая в скорости передачи данных.

Для подключения SCSI-контроллера к центральному процессору необходимо установить достаточно сложный (и поэтому весьма дорогостоящий) SCSI-контроллер, что несколько ограничивает сферу его применения.

ATA расшифровывается как AdvancedTechnologyAttachment (соединение для AT машин) и история его возникновения тесно связна с фирмой IBM и компьютерами типа AT. Для преодоления ограничений, свойственных интерфейсу с MFM-накопителями, использовавшимися в IBM XT, компания поручила комитету X3T10 (www.t10.org) разработку нового индустриального стандарта и комитет с ней справился на славу, отголоски которой дошли до наших дней, пускай и в сильно измененном виде. Впрочем, никаких революционных идей комитет не предложил, оградившись интеграцией стандартного контроллера жесткого диска непосредственно с самим устройством, соединенным параллельным шлейфом с не менее стандартной ISA шиной. Так вот почему ATA-контроллеры такие дешевые и простые! Фактически они включают в себя микросхему буферной памяти и дешифратор адреса. Разумеется, современные ATA-контролеры существенно усложнились, но не настолько существенно, чтобы подорожать.

Тем не менее, даже первая версия стандарта обнаруживает много общих черт со SCSI. Это и интегрированный контроллер, и унифицированный набор команд (пускай и не такой богатый как в SCSI), и возможность совместной работы нескольких устройств на шине. Но здесь нет ни «прозрачной» схемы адресации, ни механизма отложенного выполнения команд, ни тем более очереди запросов, да и максимальное количество устройств на шине равняется всего двум, причем в каждый момент времени может работать только одно устройство, а другое вынуждено ожидает освобождения шины, которая освобождалась только после завершения цикла обмена. Передав команду на чтение сектора, процессор непрерывно опрашивает специальный порт, в котором устройство выставляет флаг готовности данных, пословно (!) считываемые процессором через порт ввода/вывода. Впрочем, в однозадачных системах тех дней это не казалось дикостью, ведь переключиться на выполнение другой задачи процессор все равно не мог, поскольку задача была всего одна.

Между тем, аппаратные мощности процессоров непрерывно росли и на IBM PC начали возникать первые многозадачные системы. Как следствие, во второй ревизии стандарта, получившей кодовое наименование ATA-2, появилась поддержка режима DMA. Теперь, передав команду на чтение сектора, процессор мог спокойно переключатся на другую задачу, перекладывая заботу о дисковой подсистеме на ATA-контроллер. В последующих ревизиях, скорость передачи по физическому интерфейсу увеличилась аж до 100 Мб/с, появилась прозрачная логическая адресация (а вместе с ней и поддержка жестких дисков большого объема) и наконец – расширение ATA, прозванное ATAPI (ATAPackedInterface – пакетный интерфейс ATA), реализующий туже самую схему обмена командными пакетами, что и SCSI.

Кстати говоря, операционные системы семейства Windows, абстрагируются от особенностей конкретного интерфейса, всегда работая с ATA-устройствами как со SCSI. Специальный компонент системы, называемый SCSIlizer, автоматически транслирует SCSI-запросы в команды ATA-накопителя, что значительно упрощает его программирование. К сожалению, всеми вкусностями истинного SCSI воспользоваться так и не удается, в частности отсутствует возможность прямого обмена данными между ATA-накопителями и приходится гонять их через центральный процессор.

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

SATA(SerialATA – последовательный ATA) представляет собой новый электрический интерфейс вокруг старого ATA. Теперь вместо широкого шлейфа используется тонкий шнурок, соединяющий одно-единственное устройство со своим портом. Максимальна длина шнурка и скорость передачи существенно увеличены, однако, на жизни большинства пользователей это никак не отражается – нам и прежней длины за глаза хватало. Что же до скорости передачи… винчестеры еще предыдущую ATA-ревизию не до конца использовали. Количество подключаемых устройств по прежнему невелико (один SATA-порт – оно SATA-устройство, а таких портов на материнских платах раз-два и обчелся). В общем, со SCSI ему не тягаться. Правда, появилась возможность горячей замены дисков, но для домашних компьютеров она некритична (ну разве вы повыпендриваться перед девушкой хотите). Если же оставить технические подробности в стороне и взглянуть на SATA с этической точки зрения, то худшего интерфейса, наверно, не существует. Сознанный внутри секретного общества, SATA является закрытым стандартом и нормальная техническая документация доступа только его членам. В открытом доступе находится только устаревшая информация, представляющая интерес разве что для студентов и еще журналистов, щеголяющих умными словами, но не объясняющими: что они обозначают. Тем не менее, никто не сомневается, что будущее принадлежит SATA. Ходятнепроверенныеслухи, что «…the SATA «secret society» is working with the Serial Attached SCSI (SAS) committee(s) to also replace SCSI» (с) Hale Landis. (секретное общество SATA сотрудничает с SAS комитетами по замене SCSI на SATA). Сплошной мрак в общем…

IDE расшифровывается как IntegratedDeviceElectronic(Интегрированное Электронное Устройство) и де-факто является синонимом ATA, хотя в девичестве обозначало не более чем интеграцию устройства с контролером, а ныне переродилось в торговую марку, практически полностью вытеснившую аббревиатуру ATA из употребления. Насайте www.ata-atapi.com обэтомпрямотакиговорят: «ATA and ATAPI are the real names for the mass storage device interface that is frequently called IDE and EIDE. IDE and EIDE are mostly used by marketing people who do not know what they are selling and by writers for magazines who do not know what they are writing about» (ATA и ATAPI этодействительныеименаинтерфейсовмассовыхдисковыхнакопителей, частоназываемыекак IDE и EIDE. IDE и EIDE главным образом используются продавцами, которые не ведают, чем торгуют и журналистами, которые пишут сами не знают о чем).

Самый главный недостаток ATA/SATA-интерфейсов, который до сих пор не преодолен – это ограниченное количество подключаемых устройств. До тех пор пока вы довольствуетесь одним жестким дисков и одним приводом CD/DVD-ROM, никаких проблем не возникает, но если вы захотите воткнуть два винчестера, один CD-ROM, один CD-RW и один DVD-ROM, вам остается лишь посочувствовать.

Дисковые массивы, состоящие из нескольких винчестеров, на ATA-контроллерах нереализуемы в принципе, т. к. каждое устройство требует своего контроллера, а каждый контроллер своего канала DMA и IRQ. К тому же, отсутствие нормального планировщика отрицательно сказывается на производительности дисковой подсистемы (особенно на беспорядочных запросах) и усложняет ее программирование (при возникновении какой бы то ни было ошибки, вся очередь сбрасывается, а это значит, что инициатору запросов требуется хранить ее копию, тщательно отслеживания все изменения). Короче говоря, нормальных RAID-контроллеров ни под ATA, ни под SATA-накопители нет и по-видимому никогда не будет. Модели, представленные на рынке, сильно смахивают на пионерские разработки, сделанные в попыках и содержат большое количество фатальных ошибок, часто приводящих к необратимой порче данных. Пользоваться им даже в домашних целях категорически не рекомендуется. Разумеется, никакие физические законы не препятствуют созданию правильного RAID-контроллера с поддержкой ATA/SATA, но… фирмы-производители просто не хотят вкладывать в это деньги и до тех пор, пока в ATA/SATA не появится полноценный планировщик очереди запросов – и не вложат.

С другой стороны, для подключения SCSI-устройств требуется приобрести весьма дорогостоящий контроллер (нормальные контроллеры стоят от 100$, те же, что интегрированы в материнские платы в большинстве своем оставляют довольно мрачные впечатления). Причем, различных электрических интерфейсов у SCSI намного больше, чем у ATA и они намного хуже совместимы. Процедура подключения устройства тоже не из легких и перемычек на плате контроллера намного больше одной. Неправильно же выставленные перемычки могут стоит и устройству, и контроллеру жизни. Установка SCSI-драйверов практически никогда не обходится без танцев с бубном и многие из этих драйверов содержат ошибки, приводящие к порче всех хранящихся данных… Словом, пытаться настроить SCSI-устройство без надлежащей подготовки могут только самоубийцы.

Для домашнего использования (если только количество подключенных устройств не очень велико) лучше всего использовать ATA/SATA-накопители. Тоже самое относится и к серверам, обслуживающих локальные сети небольших организаций. Высокопроизводительные рабочие станции и сервера с внушительными дисковыми массивами однозначно выбирают SCSI.