Назад | Перейти на главную страницу

Диски SATA идентифицируются как SCSI

У меня есть два идентичных сервера с таким же оборудованием и клонированной ОС Linux. У них обоих есть Supermicro HBA AOC-S3008L. Однако один сервер идентифицирует диски SATA как SCSI, а другой правильно определяет их как SATA. Моя проблема в том, что мне нужно использовать libatasmart или udisks (вместо того smartmontools) для отслеживания состояния дисков, но поскольку диски идентифицируются как SCSI на одном из серверов, я не могу этого сделать. Как я могу заставить SystemB идентифицировать диски как подключенные через шину SATA? Есть ли какая-то конкретная опция в BIOS, вызывающая это?

SystemA (SATA как SATA):

SystemA:~$ sudo udevadm info --query=property --name /dev/sda
DEVLINKS=/dev/disk/by-id/ata-WDC_WD60EZRX-00MVLB1_WD-WX21D947N3HR /dev/disk/by-id/wwn-0x50014ee2b5d6e7b0 /dev/disk/by-path/pci-0000:01:00.0-sas-0x500304801eac0aa1-lun-0
DEVNAME=/dev/sda
DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0/host0/port-0:0/expander-0:0/port-0:0:1/end_device-0:0:1/target0:0:0/0:0:0:0/block/sda
DEVTYPE=disk
ID_ATA=1
ID_ATA_DOWNLOAD_MICROCODE=1
ID_ATA_FEATURE_SET_HPA=1
ID_ATA_FEATURE_SET_HPA_ENABLED=1
ID_ATA_FEATURE_SET_PM=1
ID_ATA_FEATURE_SET_PM_ENABLED=1
ID_ATA_FEATURE_SET_PUIS=1
ID_ATA_FEATURE_SET_PUIS_ENABLED=0
ID_ATA_FEATURE_SET_SECURITY=1
ID_ATA_FEATURE_SET_SECURITY_ENABLED=0
ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN=66306
ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN=66306
ID_ATA_FEATURE_SET_SMART=1
ID_ATA_FEATURE_SET_SMART_ENABLED=1
ID_ATA_ROTATION_RATE_RPM=5700
ID_ATA_SATA=1
ID_ATA_SATA_SIGNAL_RATE_GEN1=1
ID_ATA_SATA_SIGNAL_RATE_GEN2=1
ID_ATA_WRITE_CACHE=1
ID_ATA_WRITE_CACHE_ENABLED=1
ID_BUS=ata
ID_MODEL=WDC_WD60EZRX-00MVLB1
ID_MODEL_ENC=WDC\x20WD60EZRX-00MVLB1\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
ID_PART_TABLE_TYPE=gpt
ID_PATH=pci-0000:01:00.0-sas-0x500304801eac0aa1-lun-0
ID_PATH_TAG=pci-0000_01_00_0-sas-0x500304801eac0aa1-lun-0
ID_REVISION=80.00A80
ID_SERIAL=WDC_WD60EZRX-00MVLB1_WD-WX21D947N3HR
ID_SERIAL_SHORT=WD-WX21D947N3HR
ID_TYPE=disk
ID_WWN=0x50014ee2b5d6e7b0
ID_WWN_WITH_EXTENSION=0x50014ee2b5d6e7b0
MAJOR=8
MINOR=0
SUBSYSTEM=block
UDISKS_ATA_SMART_IS_AVAILABLE=1
UDISKS_PARTITION_TABLE=1
UDISKS_PARTITION_TABLE_COUNT=1
UDISKS_PARTITION_TABLE_SCHEME=gpt
UDISKS_PRESENTATION_NOPOLICY=0
USEC_INITIALIZED=72490

SystemB (SATA как SCSI):

SystemB:~$ sudo udevadm info --query=property --name /dev/sda
DEVLINKS=/dev/disk/by-id/scsi-350014ee261a4fe1f /dev/disk/by-id/wwn-0x50014ee261a4fe1f /dev/disk/by-path/pci-0000:03:00.0-sas-0x500304801eabe304-lun-0
DEVNAME=/dev/sda
DEVPATH=/devices/pci0000:00/0000:00:03.0/0000:03:00.0/host0/port-0:0/expander-0:0/port-0:0:1/end_device-0:0:1/target0:0:0/0:0:0:0/block/sda
DEVTYPE=disk
ID_BUS=scsi
ID_MODEL=WDC_WD60EZRX-00M
ID_MODEL_ENC=WDC\x20WD60EZRX-00M
ID_PART_TABLE_TYPE=gpt
ID_PATH=pci-0000:03:00.0-sas-0x500304801eabe304-lun-0
ID_PATH_TAG=pci-0000_03_00_0-sas-0x500304801eabe304-lun-0
ID_REVISION=0A80
ID_SCSI=1
ID_SCSI_SERIAL=WD-WX31D55DF9X0
ID_SERIAL=350014ee261a4fe1f
ID_SERIAL_SHORT=50014ee261a4fe1f
ID_TYPE=disk
ID_VENDOR=ATA
ID_VENDOR_ENC=ATA\x20\x20\x20\x20\x20
ID_WWN=0x50014ee261a4fe1f
ID_WWN_WITH_EXTENSION=0x50014ee261a4fe1f
MAJOR=8
MINOR=0
SUBSYSTEM=block
UDISKS_PARTITION_TABLE=1
UDISKS_PARTITION_TABLE_COUNT=1
UDISKS_PARTITION_TABLE_SCHEME=gpt
UDISKS_PRESENTATION_NOPOLICY=0
USEC_INITIALIZED=80270

$ sudo skdump /dev/sda
Device: sat16:/dev/sda
Type: 16 Byte SCSI ATA SAT Passthru
Size: 5723166 MiB
Awake: Operation not supported
ATA SMART not supported.

ОБНОВИТЬ: Серверы имеют 32 отсека, подключенных к HBA-адаптеру PCI-E SAS3. Я ранее переместил некоторые диски из SystemB (тот, который предоставляет SATA как SCSI) в SystemA (тот, который предоставляет их как SATA), и, что ж, они идентифицированы как SATA. Так что, я думаю, мы можем исключить диски, вызывающие это. Обратите внимание, что моя цель состоит в том, чтобы оба сервера идентифицировали диски как ATA, чтобы skdump (или udisks) уметь осматривать диски.

# lsscsi -g <- ВЫВОД

# lshw <- SystemA SystemB

$ udevadm info -a -p $(udevadm info -q path -n /dev/sdb) SystemA SystemB

$ dmesg SystemA SystemB

РЕШЕНО: Проблема оказалась в том, что прошивка контроллера SAS слишком старая. Обновление прошивки помогло:

$ sudo sas3flash -o -f 3008IT14.ROM -b mptsas3.rom

ОБНОВИТЬ

Вау, этот драйв старый и огромный. http://products.wdc.com/library/SpecSheet/ENG/2879-800026.pdf

максимальная скорость передачи составляет 175 МБ / с, поэтому, если связь согласована на Gen1, вы будете ограничены до 150 МБ / с.

и .. похоже, что гарантия только что истекла, если вы купили их в 2014 году

ENDUPDATE

Во-первых, в Linux все диски представлены как SCSI (если только это не какой-нибудь упорный RAID-контроллер, представляющий необработанное блочное устройство). Это было правдой с тех пор, как была представлена ​​libsas и была интегрирована libata (2008?). Что варьируется, так это уровень поддержки, которую получает ваш диск.

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

http://www.sasexpanders.com/faq/

Я бы посоветовал получить утилиты SMP и отправить сброс ссылки на привод и посмотреть, улучшит ли это положение. Возможно, вы сможете сделать это через sysfs, посмотрите, предоставляет ли он сброс или аналогичный файл, и выведите для него 1.

http://sg.danny.cz/sg/smp_utils.html

Версии прошивки накопителя совпадают ...

# GOOD ID_MODEL=WDC_WD60EZRX-00MVLB1
# GOOD ID_REVISION=80.00A80

# BAD ID_MODEL=WDC_WD60EZRX-00M
# BAD ID_REVISION=0A80

Проблема с предоставлением только 4-х символов заключается в том, что на плохом диске не должно быть "80 ..". Если вы поместите их в одну и ту же рабочую систему, будет намного проще сравнивать. Если все в порядке, значит, это не диск. То же самое и с номером модели ...

Спецификация SATA считает, что сообщать только четыре символа - хорошая идея. Это подсказка. Несмотря на то, что оба они представлены как устройства SD, одно из них получает больше поддержки от libata, чем другое. Привод, который работает, получает полную версию прошивки, что означает, что он соответствует требованиям SAT, scsi и ata. Так выглядят диски SCSI. Другой - нет.

  • Та же операционная система и версия ядра?
  • Такая же прошивка контроллера?
  • Тот же физический расширитель?
  • Такая же прошивка расширителя?
  • Проблема связана с приводом, если он подключен к другому порту?
  • Какой-либо диск, подключенный к этому порту, не может получить сквозную передачу ATA?

Он не говорит о том, на какой скорости был достигнут плохой канал. Вот чит.

ppetraki@:scaleout_demo$ dmesg | grep -i link | grep SATA
[    1.759912] ata6: SATA link down (SStatus 0 SControl 300)
[    1.763905] ata5: SATA link down (SStatus 0 SControl 300)
[    1.927906] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.935870] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)

и это.

ppetraki@:scaleout_demo$ sudo hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads: 762 MB in  3.00 seconds = 253.77 MB/sec

Канал SAS / SATA 3 Гб передает около 300 Мбит / с и так далее. Это отражается в hdparm -t, который читает с носителя максимально быстро. Скорость 253 МБ / с означает, что этот диск работает должным образом или не работает. Это означает, что если вы подключите к этой ссылке твердотельный накопитель 6G, вы не получите намного больше, чем пропускная способность, чем 253 МБ / с.

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

SAS и SATA используют один и тот же формат электрических / физических проводов. Единственное отличие состоит в том, что диск SAS издает звуковой сигнал COMINIT, а затем COMSAS при включении или сбросе, в отличие от диска SATA, который издает только сигнал (OOB) COMINIT. В зависимости от этого согласования активируется соответствующий конечный автомат обнаружения и так далее.

Я не помню, какой конечный автомат решает, в каких случаях возможна пересылка ATA. Черновик спецификации там ... и он толстый.

Надеюсь это поможет.

Второй диск SATA, вероятно, подключен к порту SAS, который обеспечивает туннелирование SATA-on-SAS.

Обязательно подключите диск SATA к истинному порту SATA.