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、-llll=-L を表示します。 |
-v |
デバイスのプロパティが存在するディレクトリを表示します。 |
#########-バツ###
LUN 番号を 16 進数で表示します。
|
-p |
出力 DIF、DIX 保護タイプ。
|
-P |
有効な保護モード情報を出力します。
#########-私###
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=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
[32:0:0: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
[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 sg
peng@ubuntu:/proc/scsi$ cat scsi
Attached devices:
Host: scsi32 Channel: 00 Id: 00 Lun: 00
Vendor: VMware, Model: VMware Virtual S Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Host: 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$ 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
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.
-> drivers\scsi\scsi_logging.h
/*
* 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