Maison  >  Article  >  Tutoriel système  >  Explication détaillée de la commande Linux lsscsi

Explication détaillée de la commande Linux lsscsi

王林
王林avant
2024-02-11 14:12:03994parcourir

Pour comprendre la commande lsscsi, nous devons d'abord comprendre ce qu'est SCSI, les interfaces de disque dur courantes et les paramètres courants du disque dur.

1. Qu'est-ce que SCSI ?

SCSI (Small Computer System Interface) est un protocole complet de transfert de données, principalement utilisé pour transférer des commandes, des états et des données de bloc entre l'hôte et les périphériques de stockage. Parmi les différentes technologies de stockage, la technologie SCSI constitue le pilier le plus important.

Le protocole SCSI se situe entre le système d'exploitation et les ressources externes et comporte une série de composants fonctionnels. Les opérations d'E/S du système d'exploitation sur des périphériques externes (tels que des disques, des bandes, des disques optiques, des imprimantes, etc.) peuvent être implémentées via le protocole SCSI. En général, le protocole SCSI est intégré au pilote de périphérique ou à la logique intégrée de l'adaptateur hôte.

Explication détaillée de la commande Linux lsscsi

2. Interfaces de disque dur communes

1. Disque dur avec interface IDE

Son nom anglais : Integrated Drive Electronics, l'interface courante de disque dur IDE de 2,5 pouces, sa signification originelle est un disque dur qui intègre le « contrôleur de disque dur » et le « corps de disque ».

IDE représente un type de disque dur, mais dans les applications réelles, les gens sont également habitués à utiliser IDE pour faire référence au premier disque dur de type IDE, ATA-1. Ce type d'interface a été éliminé avec le développement de la technologie d'interface, et. Plus tard, le développement s'est étendu à davantage de types d'interfaces de disque dur, telles que ATA, Ultra ATA, DMA, Ultra DMA et d'autres interfaces, qui sont toutes des disques durs IDE.

Ses caractéristiques sont : un prix bas, une forte compatibilité, des performances élevées, une transmission de données lente, ne prend pas en charge le remplacement à chaud, etc.

Explication détaillée de la commande Linux lsscsi2. Disque dur d'interface SCSI

SCSI n'est pas une interface spécifiquement conçue pour les disques durs. Il s'agit d'une technologie de transmission de données à haut débit largement utilisée sur les mini-ordinateurs.

L'interface SCSI présente les avantages d'une large gamme d'applications, d'un multitâche, d'une large bande passante, d'une faible utilisation du processeur et d'une échangeabilité à chaud. Cependant, le prix plus élevé rend difficile d'être aussi populaire que les disques durs IDE, c'est pourquoi les disques durs SCSI le sont. principalement utilisé en milieu de gamme et haut de gamme dans les serveurs et les postes de travail haut de gamme.

Ses caractéristiques sont : un taux de transmission élevé, de bonnes performances de lecture et d'écriture, peut se connecter à plusieurs appareils et prendre en charge l'échange à chaud, mais le prix est relativement cher.

Explication détaillée de la commande Linux lsscsi3. Type d'interface SATA

Le nom anglais est : Serial Advanced Technology Attachment. Les disques durs utilisant le port SATA (Serial ATA) sont également appelés disques durs série et constituent la future tendance des disques durs pour PC.

Serial ATA utilise une méthode de connexion série. Le bus Serial ATA utilise un signal d'horloge intégré et possède des capacités de correction d'erreur plus fortes que le passé, sa plus grande différence est qu'il peut vérifier les instructions de transmission (pas seulement les données en cas d'erreur). est trouvé, il sera automatiquement corrigé, ce qui améliore considérablement la fiabilité de la transmission des données.

L'interface série présente également les avantages d'une structure simple et d'une prise en charge du remplacement à chaud.

Explication détaillée de la commande Linux lsscsi

3. commande lsscsi lsscsi répertorie les informations sur les périphériques scsi/sata, telles que le disque dur, le lecteur optique.

1.Installation de la commande 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. Manuel en anglais de la commande lsscsi

Adresse de description détaillée de la commande

https://sg.danny.cz/scsi/lsscsi.html
Explication détaillée de la commande Linux lsscsi

2.Format de commande

Syntaxe de la commande lsscsi :

lsscsi [选项] [H:C:T:L]

Options de la commande lsscsi :

See More .
Options Signification
-g Afficher le nom du fichier de périphérique commun SCSI
-k Afficher le nom du noyau au lieu du nom du nœud du périphérique
-d Affiche les numéros principal et secondaire des nœuds de périphérique
-H Liste des hôtes SCSI actuellement connectés au système au lieu des périphériques SCSI
-l Afficher des informations supplémentaires pour chaque périphérique SCSI (hôte)
-c Par rapport au résultat de l'exécution de la commande cat /proc/scsi/scsi
-p Afficher des informations supplémentaires sur l'intégrité (protection) des données
-t Afficher les informations de transfert
-LAfficher des informations supplémentaires sous la forme de "nom de l'attribut = valeur"
-v Nom du répertoire de sortie lorsque des informations sont trouvées
-y Supposons que sysfs soit monté sur le chemin spécifié au lieu du "/sys" par défaut
-s Afficher la taille de la capacité.
-c Afficher les informations par défaut avec le nom complet.
-d Affichez les numéros d'appareil principal et secondaire de l'appareil.
-g Affichez le nom de l'appareil SG correspondant.
-H Affichez la liste des contrôleurs hôtes, -Hl, -Hlv.
-l Afficher les attributs associés, -ll,-llll=-L.
-v Affichez le répertoire où se trouvent les propriétés de l'appareil.
-x Affichez le numéro LUN en hexadécimal.
-p Sortie DIF, type de protection DIX.
-P Émettre des informations de mode de protection valides.
-i Afficher les attributs liés à udev
-w Afficher WWN
-t Affichez les informations de transmission correspondantes (ATA, FC, SBP, ISCSI, SPI, SAS, SATA, USB), -Ht, -tl (y compris l'adresse SAS)

3. 结果含义

Explication détaillée de la commande Linux lsscsi

四、命令举例

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
Explication détaillée de la commande Linux lsscsi
  • 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 类型源码文件位置(有说明)
-> 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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer