discos SATA sendo identificados como SCSI

3

Eu tenho dois servidores idênticos com o mesmo hardware e sistema operacional Linux clonado. Ambos têm Supermicro HBA AOC-S3008L. No entanto, um servidor identifica discos SATA como SCSI, enquanto o outro identifica-os corretamente como SATA. Meu problema é que preciso usar libatasmart ou udisks (em vez de smartmontools ) para monitorar a integridade dos discos, mas como os discos estão sendo identificados como SCSI em um dos servidores, não consigo fazer isso . Como posso fazer o SystemB identificar discos como conectados via barramento SATA? Existe alguma opção específica no BIOS causando isso?

SystemA (SATA como 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 como 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.

ATUALIZAÇÃO: Os servidores têm 32 compartimentos conectados a um HBA PCI-E SAS3. Eu já havia movido alguns dos discos do SystemB (aquele que expõe o SATA como SCSI) para o SystemA (aquele que os expõe como SATA) e, bem, eles são identificados como SATA. Então, acho que podemos descartar discos causando isso. Observe que meu objetivo é que ambos os servidores identifiquem os discos como ATA para que skdump (ou udisks ) consiga inspecionar os discos.

# lsscsi -g < - SAÍDA

# lshw < - SystemA SystemB

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

$ dmesg SystemA SystemB

RESOLVIDO: O problema acabou sendo com o firmware do controlador SAS sendo muito antigo. A atualização do firmware fez o truque:

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

    
por Nima Mohammadi 13.08.2017 / 10:58

2 respostas

2

UPDATE

Wow essa unidade é antiga e enorme. link

A taxa de transferência máxima é de 175 MB / s, por isso, se o link for negociado em gen1 você seria limitado a menos de 150 MB / s

e ... parece que a garantia expirou apenas se você os comprou em 2014

ENDUPDATE

Primeiro, todos os discos são apresentados como SCSI no Linux (a menos que seja um controlador raid obstinado que apresente um dispositivo de bloco bruto). Isto tem sido verdade desde que a libsas foi introduzida e a libata foi integrada (2008?). O que varia é o nível de suporte que sua unidade recebe.

Sim, suas unidades são acionadas pelo controlador mencionado e essas físicas são alimentadas no que parece ser um expansor SAS de acordo com sysfs. Eu não sei quantas baias você tem, mas de qualquer forma, parece que houve um problema de negociação durante a descoberta, onde o expansor decidiu que a saída desse phy não pode passar.

link

Eu sugiro pegar os utilitários do SMP e enviar um link para a unidade e ver se isso melhora a situação. Você talvez consiga fazer isso via sysfs, veja se ele expõe um reset ou arquivo similar e faz um eco para ele.

link

As versões do firmware da unidade parecem ser as mesmas ...

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

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

O problema de apenas fornecer 4 caracteres é que o meu não seja "80 .." na unidade defeituosa. Se você colocar os dois no mesmo sistema de trabalho, seria muito mais fácil comparar. Se tudo correr bem, então você sabe que não é o disco. Mesma coisa com o número do modelo ...

A especificação SATA acha que é uma boa ideia relatar apenas quatro caracteres. O que é uma pista Mesmo que ambos sejam apresentados como dispositivos SD, um deles está recebendo mais suporte da libata do que o outro. A unidade que funciona é obter a versão completa do firmware, o que significa que ela está aderindo à especificação de tradução SAT, scsi to ata. É assim que as unidades SCSI se parecem. O outro não é.

  • O mesmo sistema operacional e versão do kernel?
  • O mesmo firmware do controlador?
  • O mesmo expansor físico?
  • Firmware do mesmo expansor?
  • O problema segue a unidade se estiver conectado a uma porta diferente?
  • Alguma unidade conectada a essa porta não obtém passagem ATA?

Ele não diz em qual velocidade de link o ruim foi negociado. Aqui está uma fraude.

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)

e isso.

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

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

Um link 3Gb SAS / SATA transfere cerca de 300 MBps e assim por diante. Isso é refletido no hdparm -t, que está lendo o mais rápido possível da mídia. Realizar a 253 MB / s significa que esta unidade está funcionando como esperado ou está em desempenho. Ou seja, se você inserir um SSD de 6G nesse link, não obterá muito mais do que 253 MB / s.

Eu digo isso porque o bom drive diz que ele negociou na segunda geração, a segunda não diz. Se você executar o teste hdparm em ambas as unidades e os números forem muito diferentes, pode haver algo errado com a unidade defeituosa que a forçou a negociar em uma velocidade de link mais baixa.

SAS e SATA usam o mesmo formato de fio elétrico / físico. A única coisa que é diferente é que as unidades SAS emitem um chiado COMINIT e COMSAS quando ligam ou reinicializam, ao contrário de uma unidade SATA que apenas chia (OOB) COMINIT. Dependendo dessa negociação, a máquina de estado de descoberta apropriada é ativada e assim por diante.

Não me lembro de qual máquina de estados decide onde o repasse ATA é viável. As especificações de rascunho estão disponíveis ... e são espessas.

Espero que isso ajude.

    
por 14.08.2017 / 19:44
1

O segundo disco SATA provavelmente está conectado a uma porta SAS, que permite o tunelamento SATA-no-SAS.

Certifique-se de conectar o disco SATA a uma porta SATA verdadeira.

    
por 13.08.2017 / 11:07