web-dev-qa-db-ja.com

SCSIとして識別されているSATAディスク

同じハードウェアとクローンLinuxOSを備えた2つの同一のサーバーがあります。どちらもSupermicroHBAAOC-S3008Lを搭載しています。ただし、一方のサーバーはSATAディスクをSCSIとして識別し、もう一方のサーバーはそれらをSATAとして正しく識別します。私の問題は、ディスクの状態を監視するために(libatasmartの代わりに)udisksまたはsmartmontoolsを使用する必要があることですが、ディスクの1つでSCSIとして識別されているためです。サーバー、私はそうすることができません。 SystemBにSATAバス経由で接続されているディスクを識別するにはどうすればよいですか?これを引き起こすBIOSの特定のオプションはありますか?

SystemA(SATA as 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(SCSIとしてのSATA):

_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.
_

UPDATE:サーバーには、PCI-E SAS3HBAに接続された32個のベイがあります。以前、一部のディスクをSystemB(SATAをSCSIとして公開するディスク)からSystemA(SATAとして公開するディスク)に移動しましたが、それらはSATAとして識別されます。したがって、これを引き起こしているディスクを除外できると思います。私の目的は、両方のサーバーがディスクをATAとして識別し、skdump(またはudisks)がディスクを検査できるようにすることです。

_# lsscsi -g_ <- [〜#〜] output [〜#〜]

_# lshw_ <- SystemASystemB

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

_$ dmesg_ SystemASystemB

解決済み:問題は、SASコントローラーが古すぎることです。ファームウェアを更新すると、うまくいきました。 :

_$ Sudo sas3flash -o -f 3008IT14.ROM -b mptsas3.rom_

3
Nima Mohammadi

更新

そのドライブは古くて巨大です。 http://products.wdc.com/library/SpecSheet/ENG/2879-800026.pdf

最大転送速度は175MB/sであるため、リンクがgen1でネゴシエートされた場合、150 MB/s未満に制限されます。

そして.. 2014年に購入した場合、保証期間が終了したようです

ENDUPDATE

まず、LinuxではすべてのディスクがSCSIとして表示されます(rawブロックデバイスを表示する頑固なレイドコントローラーでない限り)。これは、libsasが導入され、libataが統合されてから(2008年?)真実でした。変化するのは、ドライブが受けるサポートのレベルです。

はい、あなたのドライブは上記のコントローラーによって駆動され、それらのphyはSAS sysfsによるとエキスパンダーのように見えるものに供給されます。ベイの数はわかりませんが、どちらの方法でも表示されます。発見中に交渉の問題があり、エキスパンダーがこのphyからのドライブは通過できないと判断したように。

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

SMP utilsを取得し、リンクリセットをドライブに送信して、問題が改善されるかどうかを確認することをお勧めします。 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仕様では、4文字のみを報告することをお勧めします。これが手がかりです。どちらもSDデバイスとして提供されていますが、一方はもう一方よりもlibataからより多くのサポートを受けています。動作するドライブは、完全なファームウェアバージョンを取得しています。これは、SAT、scsiからataへの変換仕様に準拠していることを意味します。それがSCSIドライブの外観です。もう1つはそうではありません。

  • 同じオペレーティングシステムとカーネルバージョン?
  • 同じコントローラーファームウェア?
  • 同じ物理的なエキスパンダー?
  • 同じエキスパンダーファームウェア?
  • ドライブが別のポートに接続されている場合、問題はドライブに続きますか?
  • そのポートに接続されているドライブで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

3Gb SAS/SATAリンクは約300MBpsなどを転送します。これは、メディアからできるだけ速く読み取っているhdparm-tに反映されています。 253 MB/sで実行しているということは、このドライブが期待どおりに実行されているか、実行が不十分であることを意味します。つまり、6G SSDをそのリンクにドロップすると、253 MB/sをはるかに超えるスループットは得られません。

これは、良いドライブが第2世代で交渉したと言っているので、2番目のドライブは言っていないからです。両方のドライブでhdparmテストを実行し、数値が大きく異なる場合は、不良ドライブに問題があり、より低いリンク速度でネゴシエートする必要がある可能性があります。

SASとSATAは、同じ電気/物理ワイヤフォーマットを使用します。唯一の違いは、COMINITをチャープする(OOB)SATAドライブとは対照的に、a SASはCOMINITをチャープし、次に電源投入時またはリセット時にCOMSASをドライブすることです。そのネゴシエーションに応じて適切な検出ステートマシンがアクティブ化されるなど。

どのステートマシンがATAパススルーを実行できる場所を決定するかを思い出せません。ドラフトスペックはそこにあります...そしてそれは厚いです。

お役に立てれば。

2
ppetraki

2番目のSATAディスクはおそらくSASポートに接続されており、これによりSATA-on-SASトンネリングが有効になります。

必ずSATAディスクを真のSATAポートに接続してください。

1
shodanshok