Linux命令lsscsi详解

💡 原文中文,约6200字,阅读约需15分钟。
📝

内容提要

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文件系统设置日志级别。

🏷️

标签

➡️

继续阅读