Linux命令lsscsi详解
内容提要
SCSI是主机和存储设备之间使用的数据传输协议。IDE、SCSI和SATA是常见的硬盘接口。lsscsi是一个用于列出SCSI/SATA设备信息的命令。它可以通过各种软件包管理器进行安装。命令选项包括显示设备名称、内核名称、设备节点号等。该命令还可以列出详细属性和可读的磁盘容量。文章还提到了Linux中的SCSI相关文件和调试选项。
延伸解读
lsscsi 与 /proc/scsi/scsi 的对比
文章提到 lsscsi 的 -c 选项可模拟 cat /proc/scsi/scsi 的输出。实际使用中,/proc/scsi/scsi 只显示基本设备列表,而 lsscsi 默认输出更结构化,包含 H:C:T:L 地址和设备节点。若需脚本兼容旧格式,可用 -c;日常查看则直接运行 lsscsi 更直观。
理解 H:C:T:L 地址格式
lsscsi 输出中的 [3:0:0:0] 对应 host:bus:id:lun。文章在 /sys/bus/scsi/devices 下也展示了 target3:0:0 等目录。掌握该格式有助于定位设备:host 是主机适配器编号,bus 和 id 通常为 0,lun 表示逻辑单元号。排查多路径或虚拟化环境时,可据此在 sysfs 中找到对应设备。
SCSI 日志调试的启用方式
文章指出,需在内核编译时开启 CONFIG_SCSI_LOGGING,之后可通过 /proc/sys/dev/scsi/logging_level 控制日志。写入 -1 开启所有 SCSI 日志,写入 0 关闭。该值按位划分不同日志类型和级别,具体定义在 drivers/scsi/scsi_logging.h。调试存储问题时,可临时开启,但长期开启可能增加日志量。
安装 lsscsi 的包管理器差异
文章列出多种安装命令,如 apt-get install lsscsi、yum install lsscsi、dnf install lsscsi、apk add lsscsi、pacman -S lsscsi。不同发行版需选用对应包管理器。若命令未找到,可先检查系统类型,再执行相应安装。容器环境中也可通过 docker run cmd.cat/lsscsi 临时使用。
Q&A
lsscsi命令的主要功能是什么?
lsscsi命令用于列出SCSI/SATA设备的信息,包括硬盘和光盘驱动器。
如何安装lsscsi命令?
可以通过多种软件包管理器安装lsscsi,例如使用命令apt-get install lsscsi。
SCSI和SATA接口有什么区别?
SCSI接口适用于中高端服务器,具有高传输速率和多任务处理能力,而SATA接口采用串行连接方式,支持热插拔,数据传输可靠性高。
lsscsi命令有哪些常用选项?
lsscsi命令的常用选项包括-g(显示SCSI通用设备文件名称)、-k(显示内核名称)、-l(显示附加信息)等。
如何查看SCSI设备的详细属性?
可以使用lsscsi -L命令来列出所有具有详细属性的SCSI设备。
在Linux中如何开启SCSI日志调试功能?
需要在编译选项中开启CONFIG_SCSI_LOGGING,并通过/proc文件系统设置日志级别。