一文搞清Linux的lsscsi命令

想要弄明白lsscsi命令,首先我们必须搞清楚什么是scsi,以及常见的硬盘接口,常用的硬盘参数。
一、什么是scsi? scsi(small computer system interface)是一套完整的数据传输协议,其主要功能是在主机和存储设备之间传送命令、状态和块数据。在各类存储技术中,scsi技术可谓是最重要的脊梁。
scsi协议位于操作系统和外部资源之间,它具有一系列的功能组件,操作系统对外部设备(如磁盘、磁带、光盘、打印机等)的i/o操作均可以通过scsi协议来实现,一般情况下,scsi协议都嵌入到设备驱动器或者主机适配器的板载逻辑中。
二、常见硬盘接口 1. ide接口的硬盘 其英文名称:integrated drive electronics,常见的2.5英寸ide硬盘接口它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。
ide代表着硬盘的一种类型,但在实际的应用中,人们也习惯用ide来称呼最早出现ide类型硬盘ata-1,这种类型的接口随着接口技术的发展已经被淘汰了,而其后发展分支出更多类型的硬盘接口,比如ata、ultra ata、dma、ultra dma等接口都属于ide硬盘。
其特点为:价格低廉,兼容性强,性价比高,数据传输慢,不支持热插拔等等。
  2. scsi接口硬盘 scsi并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。
scsi接口具有应用范围广、多任务、带宽大、cpu占用率低,以及热插拔等优点,但较高的价格使得它很难如ide硬盘般普及,因此scsi硬盘主要应用于中、高端服务器和高档工作站中。
其特点为:传输速率高、读写性能好、可连接多个设备、可支持热插拔,但是价格相对来说比较贵。
  3. sata接口类型 其英文名称为:serial advanced technology attachment。使用sata(serial ata)口的硬盘又叫串口硬盘,是未来pc机硬盘的趋势。
serial ata采用串行连接方式,串行ata总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。
串行接口还具有结构简单、支持热插拔的优点。
三、 lsscsi命令 lsscsi列出scsi/sata设备信息,比如硬盘驱动器,光盘驱动器。
1. lsscsi 命令安装 -bash: lsscsi command not found #debianapt-get install lsscsi #ubuntuapt-get install lsscsi #alpineapk add lsscsi #arch linuxpacman -s lsscsi #kali linuxapt-get install lsscsi #centosyum install lsscsi #fedoradnf install lsscsi #raspbianapt-get install lsscsi #dockerdocker run cmd.cat/lsscsi lsscsi 2. lsscsi命令英文手册 详细命令说明地址
https://sg.danny.cz/scsi/lsscsi.html 2. 命令格式 lsscsi 命令语法:
lsscsi [选项] [ht:l] lsscsi 命令选项:
选项 含义
-g 显示scsi通用设备文件名称
-k 显示内核名称而不是设备节点名
-d 显示设备节点的主要号码和次要号码
-h 列出当前连接到系统的scsi主机而不是scsi设备
-l 显示每一个scsi设备(主机)的附加信息
-c 相对于执行 cat /proc/scsi/scsi 命令的输出
-p 显示额外的数据完整性(保护)的信息
-t 显示传输信息
-l 以“属性名=值”的方式显示附加信息
-v 当信息找到时输出目录名
-y 假设sysfs挂载在指定路径而不是默认的 “/sys”
-s 显示容量大小。
-c 用全称显示默认的信息。
-d 显示设备主,次设备号。
-g 显示对应的sg设备名。
-h 显示主机控制器列表,-hl,-hlv。
-l 显示相关属性,-ll,-lll=-l。
-v 显示设备属性所在目录。
-x 以16进制显示lun号。
-p 输出dif,dix 保护类型。
-p 输出有效的保护模式信息。
-i 显示udev相关的属性
-w 显示wwn
-t 显示相应传输信息(ata,fc,sbp,iscsi,spi,sas,sata,usb),-ht,-tl.(包括sas地址)
3. 结果含义 四、命令举例 lsscsi 列出所有 scsi 设备:
peng@ubuntu:~$ lsscsi[30:0]    cd/dvd  necvmwar vmware sata cd01 1.00  /dev/sr0 [320:0]   disk    vmware,  vmware virtual s 1.0   /dev/sda  lsscsi  -l列出所有具有详细属性的 scsi 设备:
peng@ubuntu:~$ lsscsi -l[30:0]    cd/dvd  necvmwar vmware sata cd01 1.00  /dev/sr0   device_blocked=0  iocounterbits=32  iodone_cnt=0x229  ioerr_cnt=0x4  iorequest_cnt=0x23a  queue_depth=1  queue_type=none  scsi_level=6  state=running  timeout=30  type=5[320:0]   disk    vmware,  vmware virtual s 1.0   /dev/sda   device_blocked=0  iocounterbits=32  iodone_cnt=0x37370  ioerr_cnt=0x3  iorequest_cnt=0x37370  queue_depth=32  queue_type=simple  scsi_level=3  state=running  timeout=180  type=0 lsscsi -s列出所有具有人类可读磁盘容量的 scsi 设备:
peng@ubuntu:~$ lsscsi -s[30:0]    cd/dvd  necvmwar vmware sata cd01 1.00  /dev/sr0        -[320:0]   disk    vmware,  vmware virtual s 1.0   /dev/sda    536gb 五、其他 1. linux下scsi相关文件节点 /proc/scsi/
peng@ubuntu:~$ cd /proc/scsi/peng@ubuntu:/proc/scsi$ lsdevice_info  mptspi  scsi  sgpeng@ubuntu:/proc/scsi$ cat scsiattached devices:host: scsi32 channel: 00 id: 00 lun: 00  vendor: vmware,  model: vmware virtual s rev: 1.0   type:   direct-access                    ansi  scsi revision: 02host: scsi3 channel: 00 id: 00 lun: 00  vendor: necvmwar model: vmware sata cd01 rev: 1.00  type:   cd-rom                           ansi  scsi revision: 05 /sys/class/scsi_host
peng@ubuntu:/sys/class/scsi_host$ lshost0   host12  host16  host2   host23  host27  host30  host5  host9host1   host13  host17  host20  host24  host28  host31  host6host10  host14  host18  host21  host25  host29  host32  host7host11  host15  host19  host22  host26  host3   host4   host8 /sys/class/scsi_device
peng@ubuntu:/sys/class/scsi_device$ ls30:0  320:0 /sys/class/scsi_disk
peng@ubuntu:/sys/class/scsi_disk$ ls320:0 /sys/class/scsi_generic
peng@ubuntu:/sys/class/scsi_generic$ lssg0  sg1 /sys/bus/scsi
peng@ubuntu:/sys/bus/scsi$ lsdevices  drivers  drivers_autoprobe  drivers_probe  ueventpeng@ubuntu:/sys/bus/scsi/devices$ ls30:0   host11  host16  host20  host25  host3   host5  target30320:0  host12  host17  host21  host26  host30  host6  target320host0     host13  host18  host22  host27  host31  host7host1     host14  host19  host23  host28  host32  host8host10    host15  host2   host24  host29  host4   host9 其中target30
对应
hostid:lun 2. linux 开启 scsi 日志调试功能 1.编译选项中需开启 config_scsi_logging 2.该编译选项说明 drivers/scsi/kconfig:213 config scsi_logging    bool scsi logging facility    depends on scsi    ---help---      this turns on a logging facility that can be used to debug a number      of scsi related problems.      if you say y here, no logging output will appear by default, but you      can enable logging by saying y to /proc file system support and      sysctl support below and executing the command      echo  > /proc/sys/dev/scsi/logging_level      where  is a four byte value representing the logging type      and logging level for each type of logging selected.      there are a number of logging types and you can find them in the      source at . the logging levels      are also described in that file and they determine the verbosity of      the logging for each logging type.      if you say n here, it may be harder to track down some types of scsi      problems. if you say y here your kernel will be somewhat larger, but      there should be no noticeable performance impact as long as you have      logging turned off. 3.logging 类型源码文件位置(有说明) -> driversscsiscsi_logging.h 4.使用说明 /* * note - the initial logging level can be set here to log events at boot time. * after the system is up, you may enable logging via the /proc interface. */unsigned int scsi_logging_level;#if defined(config_scsi_logging)export_symbol(scsi_logging_level);#endif scsi_logging_level 被定义成int类型(32bit),该机制使用了30个bit,从低位到高位每3bit为一个logging level从scsi_log_error_shift到scsi_log_ioctl_shift(scsi_log_xxx_shift为不同level的移位数),每个level使用的bit数都是3,所以 scsi_log_xxx_bits 均为3
5.scsi_logging_level 值可以在 boot 命令行设置也可以开启设备后在 /proc 文件系统中设置: -1   - enable scsi events to syslog.         // 开启所有scsi log0    - disable scsi events to syslog.        // 关闭所有scsi log 命令:
echo 0/-1 > /proc/sys/dev/scsi/logging_level  


315晚会曝光:你的电话号码的泄漏,全是因为它!
长电科技是国企吗?长电科技股票分析
苹果芯片被判侵犯专利 或需支付8.6亿美元赔金
FPGA在OLED上显示DHT11数据
三极管采购如何正确避免买到有质量问题的产品
一文搞清Linux的lsscsi命令
电力巡检机器人现在的行业标准是怎样的
LM4050, LM4051 50ppm/°C、精密的微功耗
谷歌推出新功能 Google Play可实现家庭成员共享
中央空调行业发展回归理性 增幅趋于平稳
国内全球最大水路两栖飞机鲲龙AG600首飞成功,成为国内大飞机“三剑客”之一
宝马高层指出电动车的成本将永远不可能与内燃机车持平
华为IdeaHub与华为云会议:软硬结合,天生一对
ControlLogix产品在汽车总装车间的输送线电控系统中应用优势分析
京东配送机器人编队亮相长沙
应对高通专利费 苹果自研调制解调器
nvidia与ati的十年沧桑_ati和nvidia哪个好
小米6被骁龙835“坑害”,华为P10成大赢家
随着中美贸易摩擦的缓和 我国医疗器械出口稳步增长的趋势将会延续
硅胶泡棉是否有隔热作用