@

  • 一、什么是scsi
  • 二、常见硬盘接口
    • 1. IDE接口的硬盘
    • 2. SCSI接口硬盘
    • 3. SATA接口类型
  • 三、 lsscsi命令
    • 1. lsscsi 命令安装
    • 2. lsscsi命令英文手册
    • 2. 命令格式
    • 3. 结果含义
  • 四、命令举例
  • 五、其他
    • 1. Linux下scsi相关文件节点
    • 2. Linux 开启 SCSI 日志调试功能

想要弄明白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#Debian
apt-get install lsscsi#Ubuntu
apt-get install lsscsi#Alpine
apk add lsscsi#Arch Linux
pacman -S lsscsi#Kali Linux
apt-get install lsscsi#CentOS
yum install lsscsi#Fedora
dnf install lsscsi#Raspbian
apt-get install lsscsi#Docker
docker run cmd.cat/lsscsi lsscsi

2. lsscsi命令英文手册

详细命令说明地址

https://sg.danny.cz/scsi/lsscsi.html

2. 命令格式

lsscsi 命令语法:

lsscsi [选项] [H:C:T: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
[3:0:0:0]    cd/dvd  NECVMWar VMware SATA CD01 1.00  /dev/sr0
[32:0:0:0]   disk    VMware,  VMware Virtual S 1.0   /dev/sda

lsscsi -L列出所有具有详细属性的 SCSI 设备:

peng@ubuntu:~$ lsscsi -L
[3:0:0:0]    cd/dvd  NECVMWar VMware SATA CD01 1.00  /dev/sr0 device_blocked=0iocounterbits=32iodone_cnt=0x229ioerr_cnt=0x4iorequest_cnt=0x23aqueue_depth=1queue_type=nonescsi_level=6state=runningtimeout=30type=5
[32:0:0:0]   disk    VMware,  VMware Virtual S 1.0   /dev/sda device_blocked=0iocounterbits=32iodone_cnt=0x37370ioerr_cnt=0x3iorequest_cnt=0x37370queue_depth=32queue_type=simplescsi_level=3state=runningtimeout=180type=0

lsscsi -s列出所有具有人类可读磁盘容量的 SCSI 设备:

peng@ubuntu:~$ lsscsi -s
[3:0:0:0]    cd/dvd  NECVMWar VMware SATA CD01 1.00  /dev/sr0        -
[32:0:0: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$ ls
device_info  mptspi  scsi  sgpeng@ubuntu:/proc/scsi$ cat scsi
Attached devices:
Host: scsi32 Channel: 00 Id: 00 Lun: 00Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi3 Channel: 00 Id: 00 Lun: 00Vendor: NECVMWar Model: VMware SATA CD01 Rev: 1.00Type:   CD-ROM                           ANSI  SCSI revision: 05

/sys/class/scsi_host

peng@ubuntu:/sys/class/scsi_host$ ls
host0   host12  host16  host2   host23  host27  host30  host5  host9
host1   host13  host17  host20  host24  host28  host31  host6
host10  host14  host18  host21  host25  host29  host32  host7
host11  host15  host19  host22  host26  host3   host4   host8

/sys/class/scsi_device

peng@ubuntu:/sys/class/scsi_device$ ls
3:0:0:0  32:0:0:0

/sys/class/scsi_disk

peng@ubuntu:/sys/class/scsi_disk$ ls
32:0:0:0

/sys/class/scsi_generic

peng@ubuntu:/sys/class/scsi_generic$ ls
sg0  sg1

/sys/bus/scsi

peng@ubuntu:/sys/bus/scsi$ ls
devices  drivers  drivers_autoprobe  drivers_probe  uevent
peng@ubuntu:/sys/bus/scsi/devices$ ls
3:0:0:0   host11  host16  host20  host25  host3   host5  target3:0:0
32:0:0:0  host12  host17  host21  host26  host30  host6  target32:0:0
host0     host13  host18  host22  host27  host31  host7
host1     host14  host19  host23  host28  host32  host8
host10    host15  host2   host24  host29  host4   host9

其中target3:0:0

对应

host:bus:id:lun

2. Linux 开启 SCSI 日志调试功能

  • 1.编译选项中需开启 CONFIG_SCSI_LOGGING

  • 2.该编译选项说明

drivers/scsi/Kconfig:213
config SCSI_LOGGINGbool "SCSI logging facility"depends on SCSI---help---This turns on a logging facility that can be used to debug a numberof SCSI related problems.If you say Y here, no logging output will appear by default, but youcan enable logging by saying Y to "/proc file system support" and"Sysctl support" below and executing the commandecho <bitmask> > /proc/sys/dev/scsi/logging_levelwhere <bitmask> is a four byte value representing the logging typeand logging level for each type of logging selected.There are a number of logging types and you can find them in thesource at <file:drivers/scsi/scsi_logging.h>. The logging levelsare also described in that file and they determine the verbosity ofthe logging for each logging type.If you say N here, it may be harder to track down some types of SCSIproblems. If you say Y here your kernel will be somewhat larger, butthere should be no noticeable performance impact as long as you havelogging turned off.
  • 3.logging 类型源码文件位置(有说明)

-> drivers\scsi\scsi_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 log
0    - Disable scsi events to syslog.        // 关闭所有scsi log

命令:

echo 0/-1 > /proc/sys/dev/scsi/logging_level

Linux命令lsscsi详解相关推荐

  1. Linux命令-ls详解

    Linux命令-ls详解(适合小白用户参考) 1.ls        不加任何参数,表示查询当前目录下的文件/文件夹 小提示:上面的白色文字表示普通文件,蓝色文字表示目录 2.ls        后面 ...

  2. 面试官都在问 | Linux命令mpstat详解

    面试官都在问 | Linux命令mpstat详解 1. mpstat的基本用法 mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询 ...

  3. linux 命令 curl 详解

    一.curl 介绍 curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出stdout上面; 可以用它来构造http request报文,curl(C ...

  4. linux命令 正则表达式,详解Linux命令中的正则表达式

    详解Linux命令中的正则表达式 Mark Do 2017年9月19日 暂无评论 阅读 981 次 命令中的正则表达式 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式.正则表达式 ...

  5. LINUX命令大全详解备忘录

    文件目录操作命令 ls命令 cd命令 pwd命令 mkdir命令 rm 命令 rmdir 命令 mv命令 cp 命令 touch 命令 cat 命令 nl命令 more命令 less 命令 head ...

  6. Linux命令大全详解,让我们轻松入门学习Linux!

    1.最基本常用命令 序号 命令 对应英文 作用 01 ls list 查看当前文件夹下的内容 02 pwd print wrok directory 查看当前所在文件夹 03 cd [目录名] cha ...

  7. linux命令历史详解

    概念:顾名思义,我们在linux终端输过的命令,系统都会将他们加载到内存中,以便我们快速调用命令.另外,Bash拥有自动记录命令历史的功能,用户所执行的命令会在注销时自动记录到自己的家目录下的.bas ...

  8. linux命令——ll详解

    一.ll命令 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名. Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便. 如果要使用此命令,可以作如下修改: ...

  9. linux命令ps详解

    原文地址:http://apps.hi.baidu.com/share/detail/32573968 名称:ps 使用权限:所有使用者 使用方式:ps [options] [--help] 说明:显 ...

最新文章

  1. 图片提取文字功能很神奇?Java几行代码搞定它!
  2. uptime命令分析负载
  3. JVM技术周报第2期
  4. mysql80连接不上本地服务器_Windows Server 2016 远程桌面本地连接不上
  5. metadata in OData and png
  6. 你手上的PCB怎么制作的?几张动图揭晓工厂生产流程
  7. IntentService用法
  8. java get与post区别_HTTP请求(GET与POST区别)和响应
  9. Android -- WebView进度条
  10. 当我谈Flask的时候我在谈些什么
  11. Linux下yum命令详解
  12. SecureCRT登录本地cygwin。
  13. android sdk 文档导读之一:android 如何绘制 Views
  14. 教你怎么学JAVA+Java入门项目(可以收藏)
  15. CTF—古典密码(凯撒密码、维吉尼亚密码、培根密码等)
  16. 多智时代,大数据发展趋势预测
  17. C++实现与电脑进行石头剪刀布的游戏
  18. 信息收集(四)之旁站和C段
  19. 机票价格按照淡季、旺季,头等舱和经济舱收费,输入机票原价、月份和头等舱或者经济舱 旺季(5-10月) 头等舱9折,经济舱8.5折 淡季(11-4月) 头等舱7折,经济舱6.5折
  20. python画图代码大全-纯干货:手把手教你用Python做数据可视化(附代码)

热门文章

  1. 图中奇点数量不可能有奇数个的证明
  2. 扫雷游戏的实现C++
  3. java实现虹膜识别_江西HID虹膜识别报价
  4. 会议室分配时间最长_面试真题 | 3个会议室,现在有6个会议,你会如何安排?vvvv...
  5. 干法读书心得:第一章 乍看的不幸,实际上是幸事
  6. 北京Java培训出来,Java程序员工资一般能拿多少?
  7. 数据库中的四大join 笛卡尔乘积(以MySQL为例)
  8. 浏览器的四大内核:Trident,Gecko,Webkit,Blink
  9. 国内yum源的安装(163,阿里云,epel)
  10. 前端工程师是做什么的?