есть ли известная причина, по которой жесткий диск SATA3.0, поддерживающий NCQ, не имеет настроенной глубины очереди NCQ при установке из корпуса USB 3.0?
вывод для hdparm -iI / dev / sda показывает, что NCQ поддерживается вывод для
кошка / системный / блок / sda / устройство / queue_depth
31 годкошка / система / блок / SDB / устройство / queue_depth
1
Я не могу изменить queue_depth на 1, так как это запрещено
Да, это задокументировано в Википедии.
Некоторые расширенные команды для работы с дисками, такие как Native Command Queuing (что может повысить производительность), Secure Erase (которая позволяет безопасно стереть все данные на диске) и S.M.A.R.T. (доступ к индикаторам надежности диска) существуют как расширения к низкоуровневым наборам команд жесткого диска, таким как SCSI, SATA или PATA. Эти функции могут не работать, если жесткие диски находятся в корпусе для дисков, поддерживающем интерфейс USB-накопителя. Некоторые интерфейсы USB-накопителя являются универсальными и предоставляют базовые команды чтения-записи. Хотя это хорошо работает для базовой передачи данных с жесткими дисками, не существует простого способа отправки расширенных команд, специфичных для конкретного устройства, на запоминающие USB-устройства (хотя устройства могут создавать свои собственные протоколы связи через стандартный USB-элемент управления. интерфейс). Протокол USB Attached SCSI (UAS), представленный в USB 3.0, устраняет некоторые из этих проблем, включая очередь команд, каналы команд для оборудования, требующего их, и управление питанием.
Для определенных наборов микросхем USB 2.0 были запатентованные методы обеспечения сквозного подключения SCSI, которые можно было использовать для чтения S.M.A.R.T. данные с дисков с помощью таких инструментов, как smartctl (с использованием параметра -d, за которым следует «набор микросхем»). [6] Более поздние наборы микросхем USB-накопителей поддерживают преобразование SCSI / ATA (SAT) в качестве общего протокола для взаимодействия с устройствами ATA (и SATA) [7].
Кажется очевидным, что исходная UMS не может поддерживать очередь команд (даже если у вас есть SAT); вам нужен UAS.
Самым простым предложением, вероятно, будет просто посмотреть журнал ядра (dmesg
) после подключения привода. Посмотри, говорит ли он uas
, в отличие от оригинала usb-storage
драйвер. [1]
Глядя на uas
драйвер, у него есть ряд условий, при которых он должен работать, иначе он выйдет из строя (возможно, тихо) и usb-storage
возьмет на себя. Очевидно, контроллеру USB требуется поддержка scater-gather, также некоторые устройства UAS могут игнорироваться как неподдерживаемые ...
Я думаю, вы можете проверить возможности, рекламируемые устройством USB, используя lsusb -v
. Найдите свое устройство (а) - найдите Mass Storage
- и ищите bInterfaceProtocol
ценности. 80 Bulk-Only
- значение исходной UMS. 62
это новое значение для UAS. (Это шестнадцатеричные значения). Так что, если он умеет работать с UAS, вы должны увидеть оба.
[1] Если у вас есть один из конкретных ums-
драйверы загружены, это тоже интересно. Краткое описание конкретных драйверов USB-накопителей можно найти в Параметры сборки ядра Linux.
SAT (см. Выше), будет просто подпадать под общий usb-storage
. Я предполагаю usb-storage
поддерживает SAT, потому что это было бы тривиально.
Настоящий ответ заключается в том, что корпус жесткого диска НЕ совместим с UASP. Таким образом, у меня есть жесткий диск с поддержкой NCQ в корпусе без UASP, который блокирует всю силу USB3 в этой настройке.