>  기사  >  시스템 튜토리얼  >  Linux 명령 lsscsi에 대한 자세한 설명

Linux 명령 lsscsi에 대한 자세한 설명

王林
王林앞으로
2024-02-11 14:12:031126검색

lsscsi 명령을 이해하려면 먼저 SCSI가 무엇인지, 일반적인 하드 디스크 인터페이스와 일반적인 하드 디스크 매개변수를 이해해야 합니다.

1. SCSI란 무엇입니까?

SCSI(소형 컴퓨터 시스템 인터페이스)는 호스트와 저장 장치 간에 명령, 상태 및 블록 데이터를 전송하는 데 주로 사용되는 완전한 데이터 전송 프로토콜입니다. 다양한 스토리지 기술 중에서 SCSI 기술은 가장 중요한 축입니다.

SCSI 프로토콜은 운영 체제와 외부 리소스 사이에 있으며 일련의 기능 구성 요소를 가지고 있습니다. 외부 장치(예: 디스크, 테이프, 광 디스크, 프린터 등)에서 운영 체제의 I/O 작업은 SCSI 프로토콜을 통해 구현될 수 있습니다. 일반적으로 SCSI 프로토콜은 장치 드라이버나 호스트 어댑터의 온보드 로직에 내장되어 있습니다.

Linux 명령 lsscsi에 대한 자세한 설명

2. 일반적인 하드 드라이브 인터페이스

1. IDE 인터페이스를 갖춘 하드 드라이브

영어 이름: Integrated Drive Electronics, 일반적인 2.5인치 IDE 하드 디스크 인터페이스, 원래 의미는 "하드 디스크 컨트롤러"와 "디스크 본체"를 통합한 하드 드라이브입니다.

IDE는 하드 드라이브의 한 종류를 의미하지만 실제 응용 분야에서는 초기 IDE 유형의 하드 드라이브인 ATA-1을 지칭하는 데 익숙합니다. 이러한 유형의 인터페이스는 인터페이스 기술의 발전으로 사라졌으며, 나중에 개발은 ATA, Ultra ATA, DMA, Ultra DMA 및 모두 IDE 하드 디스크인 기타 인터페이스와 같은 더 많은 유형의 하드 디스크 인터페이스로 확장되었습니다.

특징은 다음과 같습니다: 저렴한 가격, 강력한 호환성, 높은 비용 성능, 느린 데이터 전송, 핫 스와핑을 지원하지 않음 등

Linux 명령 lsscsi에 대한 자세한 설명2. SCSI 인터페이스 하드 드라이브

SCSI는 하드 드라이브용으로 특별히 설계된 인터페이스가 아닙니다. 미니컴퓨터에서 널리 사용되는 고속 데이터 전송 기술입니다.

SCSI 인터페이스는 넓은 적용 범위, 멀티태스킹, 넓은 대역폭, 낮은 CPU 사용량, 핫스왑 가능성 등의 장점을 가지고 있지만, 가격이 비싸면 IDE 하드 드라이브만큼 대중화되기 어렵습니다. 주로 중급~고급형 서버 및 고급 워크스테이션에 사용됩니다.

특징은 높은 전송률, 우수한 읽기 및 쓰기 성능, 여러 장치 연결 가능, 핫스왑 지원이 가능하지만 가격이 상대적으로 비쌉니다.

Linux 명령 lsscsi에 대한 자세한 설명3. SATA 인터페이스 유형

영문명은 Serial Advanced Technology Attachment 입니다. SATA(Serial ATA) 포트를 사용하는 하드 드라이브는 시리얼 하드 드라이브라고도 불리며 PC 하드 드라이브의 미래 트렌드입니다.

Serial ATA는 직렬 연결 방식을 사용합니다. Serial ATA 버스는 내장된 클럭 신호를 사용하며 이전과 비교하여 오류 수정 기능이 더욱 강화되었습니다. 가장 큰 차이점은 오류가 발생한 경우 전송 명령을 확인할 수 있다는 것입니다. 발견되면 자동으로 수정되어 데이터 전송의 신뢰성이 크게 향상됩니다.

직렬 인터페이스는 구조가 간단하고 핫 스와핑을 지원한다는 장점도 있습니다.

Linux 명령 lsscsi에 대한 자세한 설명

3.lsscsi 명령 lsscsi는 하드 드라이브, 광학 드라이브와 같은 scsi/sata 장치 정보를 나열합니다.

1.lsscsi 명령 설치

으아아아

2.lsscsi 명령 영어 매뉴얼

자세한 명령어 설명 주소

으아아아 Linux 명령 lsscsi에 대한 자세한 설명

2. 명령 형식

lsscsi 명령 구문:

으아아아

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,-llll=-L.
-v 장치 속성이 위치한 디렉터리를 표시합니다.
-x lun 번호를 16진수로 표시합니다.
-p 출력 DIF, DIX 보호 유형.
-P 유효한 보호 모드 정보를 출력합니다.
-i udev 관련 속성 표시
-w WWN 표시
-t 해당 전송 정보 표시(ATA, FC, SBP, ISCSI, SPI, SAS, SATA, USB), -Ht, -tl(sas 주소 포함)

3. 结果含义

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
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

위 내용은 Linux 명령 lsscsi에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lxlinux.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제