В каком смысле SATA «разговаривает» с SCSI? Сколько разделяется между SCSI и ATA?

По крайней мере, для меня это совершенно не ново, что SATA фактически «говорит» SCSI, поэтому почему эти устройства SATA отображаются как устройства SCSI в Linux.

Ранее задавался связанный с этим вопрос, например, почему мои устройства SATA появляются в / proc / scsi / scsi?

Однако то, что не упоминается, где я видел это, обсуждалось ранее, в каком смысле SATA относится к SCSI и как они отличаются.

Я предполагаю, что само собой разумеется, что они различаются по физическому уровню, поскольку они не имеют совместимых кабелей.

Однако как насчет выше в стеке? Я знаю, как Linux представляет диски SATA и даже IDE на современных ядрах, как только SCSI для подсистемы SCSI. Но как насчет фактического протокола, который используется на шине?

Я также знаю, что ATAPI является инкапсуляцией для SCSI, но как насчет регулярного ATA? Я заметил, что функции SCSI, такие как NCQ, FUA, DPO и т. Д. (Если я не помню неправильно), были приняты из SCSI. Но неясно, как «много» набора команд SCSI на самом деле является общим или похожим.

Современные устройства SATA со спецификацией ATA реализуют подмножество набора команд SCSI, но инкапсулированы (как в ATAPI)? Идентичный набор? Надмножество? Или, возможно, только выбранные функции реализованы как варианты, которые не являются напрямую идентичными?

Где я могу найти ясную информацию об этом, и особенно о том, как он относится к ядру Linux? Какой-то учебник для разработки драйверов был бы приятным, но даже просто обзор, который не полностью пропускает все детали, будет достаточным. Я знаю, что могу просто прочитать настоящую спецификацию, но это снова слишком подробно, трудно найти то, что вы действительно ищете, и просто не реалистично для меня и, вероятно, для большинства других пользователей во временном смысле.

  • Как отображать только некоторые части жесткого диска
  • Можно ли создать диск для идентификации определенных ожидающих секторов?
  • Доступ или восстановление файлов с Apple hdd с плохим SMART и 05-перераспределением сектора
  • Копирование файлов NFS Linux на стандартный внешний жесткий диск пользователя
  • Ошибки жесткого диска
  • Проблемы с правилами udev для запуска сценария bash при отключении жесткого диска
  • Как я могу отлаживать / разрешать серьезные проблемы с ZFS?
  • badblocks и «end_request: ошибка ввода-вывода» на выходе
  • One Solution collect form web for “В каком смысле SATA «разговаривает» с SCSI? Сколько разделяется между SCSI и ATA?”

    SCSI и ATA – совершенно разные стандарты. В настоящее время они разрабатываются под эгидой организации стандартов INCITS, но разными группами. SCSI находится в техническом комитете T10 , а ATA – под T13 . 1

    Только ATA была разработана с жесткими дисками. SCSI – это более широкий стандарт, способный управлять устройствами массовой памяти, ленточными накопителями, съемными оптическими носителями (CD, DVD, Blu-Ray …), сканерами и многими другими типами устройств .

    Это было не очевидно в середине 1980-х годов – когда IDE была представлена ​​миру ПК – что SCSI будет продвигаться на периферию вычислительного мира. SCSI был устоявшимся и более способным. Рабочие станции Unix и компьютеры Macintosh поставляются с жесткими дисками SCSI на протяжении десятилетий. Высокопроизводительные ПК часто имели карту SCSI для периферийных устройств, по крайней мере, и часто для системного жесткого диска. Ранние CD-ROM и ленточные накопители для персональных компьютеров впервые появились в форме SCSI.

    Тем не менее, индустрия ПК – это то, что она есть, – это толчок к использованию менее дорогостоящего стандарта ATA вместо SCSI. Первоначальный компромисс был назван ATAPI , расширение ATA, которое позволяет устройству, которое понимает SCSI внутри, получать эти команды SCSI через интерфейс ATA. Подробнее об этом ниже.

    Несколько лет спустя SCSI получил сквозную функцию команды ATA, в основном обратную ATAPI, позволяющую командам ATA через шину SCSI. Для этого объекта можно использовать туннелирование команд ATA SMART через SCSI. smartmontools делает это .

    Позже комитет INCITS T10 разработал стандарт, называемый SCSI / ATA Translation (SAT), который переводит команды SCSI командам ATA и наоборот. 2 Библиотека libata для Linux предоставляет, среди прочего, реализацию SAT для Linux.

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

    SATA фактически «говорит» SCSI

    Это примерно так же верно, как и утверждение, что «Автомобили розовые». Некоторые автомобили розовые.

    ATAPI, ATA pass-through и SAT являются лишь частью истории. Читай дальше.

    Я предполагаю, что само собой разумеется, что они различаются по физическому уровню, поскольку они не имеют совместимых кабелей.

    Это было верно в старом параллельном мире SCSI , но так же, как SATA заменил PATA, SAS заменил параллельный SCSI.

    SAS и SATA имеют одни и те же разъемы, и они электрически совместимы. Контроллер SAS может разговаривать с устройствами SAS и SATA, но диск SAS не может работать с контроллером SATA. Разница заключается в переговорах и в командах, которые вы можете использовать после того, как устройства на каждом конце кабеля выясняют, о чем они разговаривают.

    На самом деле, многие контроллеры SATA RAID являются на самом деле RAID-контроллерами SAS. Такие контроллеры часто имеют на плате один или несколько соединительных разъемов SFF-8087 SAS, но вы можете подключать их к SATA-накопителям с помощью кабеля SFF-8087 на 4 × SATA. Таким образом, SAS / SATA RAID-карта с двумя разъемами SFF-8087 управляет до 8 приводов. 3

    Другой распространенной ситуацией является корпус с горячей заменой или компьютерный корпус с объединительной панелью SAS. Объединительная плата обычно имеет на ней разъем SFF-8087, позволяя использовать простой кабель 8087-8087 от объединительной платы к контроллеру диска. Если диски в лотках с горячей заменой являются SATA, это не важно. Контроллер SAS может разговаривать с ними по кабелю SAS, поскольку они сидят в садиках, которые подключают диски к объединительной панели SAS. Приводы все еще являются SATA-дисками, хотя, говорящий протокол ATA, а не SCSI.

    Я также знаю, что ATAPI является инкапсуляцией для SCSI

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

    Этот факт становится менее актуальным, поскольку устройства, не связанные с HDD, которые использовали SCSI для ATAPI, исчезают или переходят на другие интерфейсы. Локальные ленточные накопители больше не существуют, поэтому ленточные накопители теперь все SAS. 4 Сканеры в значительной степени USB-только в эти дни. Приводы оптических носителей двигаются за пределы корпуса компьютера, которые могут быть подключены через USB, или полностью исчезают, оставляя только все более редкие внутренние оптические диски, говорящие на ATAPI.

    Несмотря на это, устройство SATA, которое понимает SCSI через ATAPI, является «устройством SCSI» только ограниченным образом. Такие устройства не будут пользоваться большинством преимуществ SAS через SCSI . Эти возможности делают SAS совершенно ценным по сравнению с SATA, несмотря на ATAPI.

    Если вы хотите другую аналогию с автомобилем, то факт, что я могу управлять своей машиной на овальном гоночном треке, не делает ее гоночной машиной.

    Я заметил, что функции SCSI, такие как NCQ, FUA, DPO и т. Д. (Если я не помню неправильно), были приняты из SCSI. Но неясно, как «много» набора команд SCSI на самом деле является общим или похожим.

    В основном это означает низкую мимику. Например, NCQ – это не то же самое, что TCQ . Вы получите только жесткий диск с TCQ, если это устройство SAS. Подключите NCA-совместимый SATA-накопитель к контроллеру SAS, и он не сможет получить TCQ.

    Тем не менее, современное устройство SATA может быть гораздо более способным, чем устройство SCSI, которое было десять лет назад. Это, безусловно, будет способно значительно повысить уровень ввода-вывода.

    Все это запутывает и перекрывается, потому что это характер аппаратного мира ПК. Там нет четких линий, потому что производители оптических дисков – только для того, чтобы выбрать одну под-отрасль – действительно не хотят строить два совершенно разных диска, один из которых говорит SAS с его высшим выражением, и другой говорящий SATA. Таким образом, они компрометируют. Они лоббируют в комитетах, определяющих такие стандарты, для создания единого стандарта, который позволяет им отбрасывать свой SATA-диск на шину SAS, и все в основном счастливы.

    Где я могу найти ясную информацию об этом, и особенно о том, как он относится к ядру Linux?

    В конечном счете, вы хотите прочитать источники Linux . Также должно быть полезно руководство разработчика libATA .

    Я не знаю ни о чем легком изложении того, как все это работает. Это было нелегко. Он был разработан для размещения трех десятилетий эволюции оборудования, конкурирующих стандартов и разрозненных целей. Кроме того, он был разработан без магических уровней предвидения. Короче говоря, это беспорядок. Единственные люди, которым действительно нужно знать, как работает беспорядок, – это создание ядер ОС, тех, кто проектирует аппаратное обеспечение, и, в меньшей степени, тех, кто пишет драйверы для ядер ОС. Для таких маленьких кадров высокопрофессиональных людей достаточно стандартов и рабочего кода.

    Сегодня Linux вызывает большинство перезаписываемых устройств массового хранения /dev/sd? , «SD» когда-то стоял за «SCSI-диск» и существовал просто для отличия от /dev/hd? в общем смысле «Жесткий диск», но подразумевающий PATA в большинстве случаев. Это различие – еще одна практическая нерелевантность сегодня. Теперь у нас есть SSD, USB флеш-накопители, виртуальные жесткие диски , устройства iSCSI и еще все называемые /dev/sd? , Я предлагаю вам подумать о «SD» как кратком для «устройства хранения», а не беспокоиться о том, говорит ли устройство ATA через SATA, ATA через Ethernet , SCSI через USB , SCSI через ATAPI, SCSI через SAS, SCSI через IP (iSCSI ), или что у вас есть.

    Основная проблема заключается в том, что схемы именования часто выходят за рамки схемы. Вы видите это в /dev/scd0 . Устройство, подключенное к этому узлу /dev скорее всего, будет диском DVD или Blu-Ray, чем дисковый накопитель в эти дни.

    Альтернатива – где вы называете каждый узел /dev после точного типа устройства, который связан с ним, имеет свои проблемы. Было бы действительно лучше, если бы мы назвали узел /dev после используемого протокола низкого уровня? /dev/atapi0 , /dev/sas0 и т. д.? Или, может быть, вы предпочтете /dev/atapibluray0 и тому подобное? Как насчет мульти-мультимедийных дисков? /dev/atapicd0 ли тот же драйвер также выставлять /dev/atapicd0 если вы /dev/atapicd0 компакт-диск в Blu-Ray-диск? Это просто заменяет одну запутанную схему на другую.

    Linux /dev/sd? абстракция не идеальна, но она полезна. Например, вы можете узнать, что /dev/sda скорее всего является загрузочным диском, не беспокоясь о том, что за этим именем связаны кабели, протокол интерфейса и носители. Если я скажу вам, что в данном Linux-боксе есть один системный диск, оптический привод, а иногда и USB-накопитель USB, подключенный к нему, вы можете с уверенностью предположить, что они называются /dev/sda , /dev/sdb и /dev/sdc , соответственно.


    Сноски :

    1. SCSI и ATA не начали делиться родительской организацией стандартов. Оба они начали работать как проприетарные контроллеры жестких дисков. SCSI эволюционировала от SASI от Shugart Associates , а ATA / IDE вышла из гораздо более позднего дизайнерского сотрудничества между Western Digital, Compaq и CDC.

      ANSI позже стандартизировал оба варианта, с ATA-1 после SCSI-1 около 8 лет спустя.

      INCITS – своего рода дочерняя организация ANSI . INCITS публикует окончательные стандарты через ANSI в США и ISO / IEC JTC 1 во всем мире.

    2. Нынешним стандартом является SAT-2 , как я пишу это в середине июля 2014 года, но ожидается, что его заменит SAT-3 позднее в 2014 году.

      Проект SAT-3 доступен здесь для тех, кто заполнил форму уведомления гостя T10.

    3. Я игнорирую мультипликаторы портов SATA , расширители SAS и т. Д.

    4. За исключением моделей, сделанных для совместимости со старыми параллельными системами SCSI.

    Interesting Posts

    logrotate не работает для munin после последнего обновления на OpenSUSE 11.4

    Изменение масштаба экрана в LXDE

    Диагностика потерянного сетевого подключения на Ubuntu

    Unix способ извлечь векторное изображение и его график из файла PDF?

    Сервер заданий с веб-интерфейсом / электронной почтой для запуска удаленных команд

    Создание шаблонов ввода-вывода для приложения

    где или как посмотреть, переносятся ли данные по USB на массовое хранение

    netstat, правильно указывая соединения

    Как эффективно использовать find и grep

    Как запустить Linux в 256 цветов

    Сильное время загрузки ядра Linux; как исследовать на нем?

    XFS через общий ресурс iSCSI с кластером; будет ли ограждение причиной коррупции / потери данных?

    Импортировать SQL-файлы с помощью xargs

    Замена IP-адреса на результат sed: sed: -e выражение # 1, char 57: Непревзойденный (или \ (

    Является ли `ln` атомным и надежным на NFS? Может ли NFS заменить GFS в этом случае?

    Linux и Unix - лучшая ОС в мире.