linux – SATA磁盘被识别为SCSI

我有两个相同的服务器具有相同的硬件和克隆的 Linux操作系统.他们都有Supermicro HBA AOC-S3008L.然而,一台服务器将SATA磁盘识别为SCSI,而另一台服务器将SATA磁盘正确识别为SATA.我的问题是我需要使用libatasmart或udisks(而不是smartmontools)来监视磁盘的运行状况,但是当其中一个服务器中的磁盘被识别为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(SATA as 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个托架连接到PCI-E SAS3 HBA.我之前已经将一些磁盘从SystemB(将SATA暴露为SCSI的磁盘)转移到SystemA(将它们暴露为SATA),并且它们被识别为SATA.所以我想我们可以排除导致这种情况的磁盘.请注意,我的目标是两个服务器都将磁盘识别为ATA,以便skdump(或udisks)能够检查磁盘.

#lsscsi -g< - OUTPUT

#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

解决方法

UPDATE

哇,开车很旧,而且很大.
http://products.wdc.com/library/SpecSheet/ENG/2879-800026.pdf

最大传输速率为175 MB / s,因此如果链接在gen1协商
你的上限将低于150 MB / s

并且……如果您在2014年购买它们,看起来保修期已过期

ENDUPDATE

首先,所有磁盘在Linux上都显示为SCSI(除非它是一些提供原始块设备的顽固raid控制器).自从libsas被引入并且libata被集成以来(2008年?),这是真的.不同的是您的驱动器获得的支持级别.

是的,您的驱动器由所述控制器驱动,并且这些物理根据sysfs被送入看似SAS扩展器的状态.我不知道你有多少个托架,但无论哪种方式,在发现过程中看起来都存在协商问题,扩展器认为驱动器不能通过.

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

3Gb SAS / SATA链路传输大约300 MBps,依此类推.这反映在hdparm -t中,它尽可能快地从媒体上读取.以253 MB / s的速度执行意味着此驱动器正在按预期运行,或者它正在执行.这意味着如果您将6G SSD放入该链路,那么吞吐量不会超过253 MB / s.

我说这是因为好的驱动器说它在第2代谈判,第二个没有说.如果你在两个驱动器上运行hdparm测试并且数字差别很大,那么坏驱动器可能会出现问题,导致它以较低的链接速度进行协商.

SAS和SATA使用相同的电气/物理电线格式.唯一不同的是,SAS驱动器在开机或复位时啁啾COMINIT然后COMSAS,而不是仅仅啁啾(OOB)COMINIT的SATA驱动器.根据该协商,激活适当的发现状态机,依此类推.

我不记得哪个状态机决定ATA passthrough的可行性.草案规格在那里……它很厚.

希望这可以帮助.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异常的情况。程序崩溃时最常见的就是程序运行终止,报告 Segmentation fault (core dumped) 错误。而程序卡死一般来源于代码逻辑的缺陷,导致了死循环、死锁等问题。总的来看,常见的程序异常问题一般可以分为 非法内存访
git使用小结很多人可能和我一样,起初对git是一无所知的。我也是因为一次偶然的机会接触到git,并被它强大的功能所蛰伏。git其实就是一种版本控制工具,就像svn一样,但是git是分布式的。我不想给git打广告,我们直入正题——git能帮我们做什么?1)源码版本控制。平常写一写demo程序可能和g
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟机:Parallel Desktop 10.1.1 虚拟机操作系统:CentOS 7 x86_64 DVD 1511.iso Oracle:linux.x64_11gR2_database_1of2.zip linux.x6
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试过程中,简单总结了一下常见的nginx代理配置。 1. 最简反向代理配置 在http节点下,使用upstream配置服务地址,使用server的location配置代理映射。 upstream my_server { server 10
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核的目的。一直以来,对linux的模块机制都不够清晰,因此本文对内核模块的加载机制进行简单地分析。 模块的Hello World! 我们通过创建一个简单的模块进行测试。首先是源文件main.c和Makefile。 f...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个Master组件提供服务,其中正在使用的组件称为Active,另一个作为备份称为Standby,例如HDFS的NameNode、YARN 的ResourceManager。HDFS的web页面只有通过Active的Name
一个简单的通用Makefile实现Makefile是Linux下程序开发的自动化编译工具,一个好的Makefile应该准确的识别编译目标与源文件的依赖关系,并且有着高效的编译效率,即每次重新make时只需要处理那些修改过的文件即可。Makefile拥有很多复杂的功能,这里不可能也没必要一一介绍,为了
Linux内核源码分析方法一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但是往往
题记:自从接触到“跳板机”的概念后,一直就被烦不胜烦的机器名,ip地址,用户名,密码折腾的死去活来,心说能有个小精灵随时帮我输入那些重复的登录信息就好了。我见过最挫的方式就是用记事本把一堆机器的ip、登录用户、密码记录下来,每次登录机器就像是一场战斗:打开笔记本 勾选复制 写ssh命令 登录 再打开
统计一下你写过多少代码最近整理了一下自己从开始学习编程以来写过的程序和代码,林林总总,花了不少的时间,最后把一些自认为还算不错的代码提交到github上做一个简单的分类和备份。当然我并不奢求它们能成为多好的开源代码,只是希望通过这种方式分享自己的劳动成果罢了。如果大家有兴趣可以访问我的github,
一直以来被Linux的hostname和fqdn(Fully Qualified Domain Name)困惑了好久,今天专门抽时间把它们的使用细节弄清了。 一、设置hostname/fqdn&#xD;在Linux系统内设置hostname很简单,如: $ hostname florian 如果...
Linux的原子操作与同步机制 并发问题 现代操作系统支持多任务的并发,并发在提高计算资源利用率的同时也带来了资源竞争的问题。例如C语言语句“count++”在未经编译器优化时生成的汇编代码为。 当操作系统内存在多个进程同时执行这段代码时,就可能带来并发问题。 假设count变量初始值为0。进程1
最简git Server配置如何保持多台计算机的项目代码的同步更新呢?通过在一个公用计算机上开启git服务,任何能与该计算机互联的终端都可以同步最新的项目代码。每个终端所负责的就是下载代码更新,修改代码,提交代码更新,这些工作产生的变化能全部反应到git服务器上。同时,这么做也能避免使用github
建议收藏!!!Linux 服务器必备的安全设置~
QQ 用 Electron 重构后,终实现 Linux、macOS、Windows 三端架构统一!
Shell 分析日志文件高效命令,超级好用!
Linux下的Docker容器网络:如何设置容器间的网络连接和通信?
Linux 服务器必备的安全设置,建议收藏!!!
以为很熟悉 Linux,万万没想到在生产环境翻车了.....
Linux 或 Windows 上实现端口映射