본문 바로가기
[OS] Linux/장치 관리

[Linux] lsscsi

by Eng.yu 2025. 1. 21.

lsscsi

목차



1) 서론

lsscsi 명령 은 Linux의 SCSI 장치에 대한 정보를 나열합니다. SCSI 용어를 사용하여 lsscsi는 SCSI 논리 단위 (또는 '--transport' 옵션이 제공된 경우 SCSI 대상 )를 나열합니다. 기본 동작은 현재 시스템에 연결된 각 SCSI 장치에 대해 한 줄의 출력을 생성하는 것입니다. 이 유틸리티의 버전 0.30에서는 NVMe 네임스페이스(SCSI 장치(LU) 아래) 및 NVMe 컨트롤러(SCSI 호스트 아래)를 나열하는 지원이 추가되었습니다.

'--hosts' 옵션이 제공된 경우 lsscsi 명령은 시스템에 연결된 SCSI 호스트에 대한 정보를 나열합니다. 호스트는 실제 하드웨어(때로는 호스트 버스 어댑터(HBA)라고도 함)이거나 가상일 수 있습니다. 가상 호스트의 예로는 USB와 SCSI 하위 시스템을 연결하는 USB 대용량 저장소가 있습니다. SCSI 용어로 호스트는 SCSI 개시 자라고 합니다 . lsscsi

명령 은 2.6 Linux 커널 시리즈에 도입된 sysfs 가상 파일 시스템을 스캔합니다 . 대부분 사용자는 sysfs(일반적으로 /sys 에 마운트됨 )를 읽을 수 있는 권한이 있으므로 사용자가 특수 파일(예: /dev/sda )에 액세스하기 위해 높은 권한이 필요하지 않고도 일부 또는 모든 SCSI 장치에서 메타 정보를 찾을 수 있습니다. lsscsi 명령은 장치의 기본 노드 이름, SCSI 일반(sg) 노드 이름 및 커널 이름 간의 관계도 표시할 수 있습니다. lsscsi 명령  2.6, 3, 4 및 5 Linux 커널 시리즈에서 작동합니다. 이 글을 쓸 당시 lsscsi 0.32가 출시되고 있었습니다.

2) 개요

옵션 없이 실행하면 lsscsi는 시스템에 연결된 각 SCSI 장치에 대해 한 줄씩 출력합니다.

$lsscsi 

[0:0:8:0] 디스크 FUJITSU MAM3184MP 0105 /dev/sda 
[2:0:0:0] cd CREATIVE CD5233E 1.00 /dev/scd0 
[3:0:5:0] 테이프 HP C5713A H910 /dev/st0 
[3:0:5:1] mediumx HP C5713A H910 - 
[4:0:0:0] 디스크 Linux scsi_debug 0004 /dev/sdb

각 줄의 첫 번째 항목은 scsi_host, channel, target_number, LUN 튜플입니다. 괄호로 묶고 각 요소는 콜론으로 구분합니다. SCSI 장치가 여러 개 있는 경우 해당 항목은 오름차순 튜플 순서로 정렬됩니다. 다음 열은 SCSI 주변 장치 유형입니다. 정식 이름(예: "직접 액세스 장치")을 사용하는 대신 짧은 이름을 사용합니다. 그 다음에 공급업체 이름, 모델 이름 및 개정 문자열이 나옵니다. 마지막 항목은 기본 장치 노드 이름입니다. "기본" 장치 노드 이름은 장치를 "소유한" 상위 SCSI 드라이버와 연관됩니다. 상위 SCSI 드라이버의 예로는 sd(디스크의 경우), sr(장치 이름이 종종 /dev/scd<n>인 광 드라이브의 경우 ) 및 st(테이프의 경우)가 있습니다. 일부 SCSI 장치에는 이를 제어할 상위 드라이버가 없거나 연관된 드라이버 모듈이 로드되지 않은 주변 장치 유형이 있습니다. 이러한 장치의 장치 노드 이름에는 '-'가 지정됩니다. 모든 SCSI 장치는 해당 scsi 일반(sg) 장치 노드 이름(예: /dev/sg<n> )을 통해 액세스할 수 있으며, 위의 lsscsi 호출에 '--generic' 옵션을 추가하여 볼 수 있습니다.

'--size' 옵션(약식은 '-s')을 추가하면 각 줄의 오른쪽에 디스크 크기가 표시됩니다.

# lsscsi -s 
[0:0:0:0] cd/dvd PIONEER DVD-RW DVR-212D 1.22 /dev/sr0 - 
[1:0:0:0] 디스크 ATA ST3320620AS 3.AA /dev/sda 320GB 
[6:0:0:0] 디스크 SEAGATE ST32000444SS 0006 /dev/sdb 2.00TB

장치가 디스크가 아니거나 크기를 사용할 수 없는 경우 크기 대신 '-'가 출력됩니다.

다음은 이 명령의 "긴" 변형입니다. '-l'(또는 '--long') 옵션은 더 많은 출력을 위해 여러 번 사용할 수 있습니다.


$ lscssi -l [0:0:1:0] disk FUJITSU MAM3184MP 0105 /dev/sda   state=running queue_depth=16 scsi_level=4 type=0 device_blocked=0 timeout=30 장치 노드 주요 번호와 부 번호는 '-d' 옵션으로 출력할 수도 있습니다.



$ lsscsi -d 
[0:0:1:0] 디스크 FUJITSU MAM3184MP 0105 /dev/sda[8:0]

'-g'(또는 '--generic') 옵션을 사용하면 해당 scsi 일반 장치 이름을 표시할 수 있습니다.


$ lsscsi -g
[0:0:1:0] disk FUJITSU MAM3184MP 0105 /dev/sda /dev/sg0

대부분의 최신 스토리지 장치에는 전 세계적으로 고유한 식별자가 있습니다. ATA 또는 SATA 디스크의 경우 이를 WWN이라고 합니다. SCSI 장치의 경우 공식 용어는 NAA 및 EUI-64 번호와 iSCSI에서 사용하는 SCSI 이름 문자열을 포함하여 여러 형태로 제공되는 논리 장치(LU) 이름입니다. '-u(또는 '--unit') 옵션은 제조업체, 제품 및 개정 문자열 대신 LU_name/WWN을 표시합니다.

$ lsscsi 
[5:0:0:0] disk FreeBSD iSCSI Disk 0123 /dev/sdb 

$ lsscsi -u 
[5:0:0:0] disk iqn.2011-03.org.example.istgt:12_ /dev/sdb

 
iSCSI에서 사용하는 URL 유형 이름(IQN이라고 함)이 제조업체, 제품 및 개정 문자열이 있던 곳에 너무 커서 잘렸으므로 잘림을 나타내는 밑줄과 함께 오른쪽으로 잘립니다. 전체 IQN을 보려면(오른쪽의 장치 이름은 삭제됨) 다음을 사용합니다. $ lsscsi -uuu [5:0:0:0] disk iqn.2011-03.org.example.istgt:1200ssd-tgt,lun,0


"클래식" 모드에서 lsscsi는 Linux 2.4 시리즈에서 자주 사용되는 'cat /proc/scsi/scsi'와 매우 유사한 목록을 출력합니다. 이러한 형태의 출력은 Linux의 장기 사용자에게 익숙할 것입니다.

$ lsscsi -c 
연결된 장치: 
호스트: scsi0 채널: 00 ID: 08 Lun: 00 
공급업체: FUJITSU 모델: MAM3184MP Rev: 0105 유형: 직접 액세스 ANSI SCSI 개정판: 03 호스트: scsi2 채널: 00 ID: 00 Lun: 00 공급업체: CREATIVE 모델: CD5233E Rev: 1.00 유형: CD-ROM ANSI SCSI 개정판: 02 호스트: scsi3 채널: 00 ID: 06 Lun: 00 공급업체: SONY 모델: SDT-7000 Rev: 0192 유형: 순차 액세스 ANSI SCSI 개정판: 02 호스트: scsi4 채널: 00 ID: 00 Lun: 00 공급업체: Linux 모델: scsi_debug Rev: 0004 유형: 직접 액세스 ANSI SCSI 개정판: 03 
 

 
 

 
 

 
 

SCSI 호스트 정보는 '-H' 옵션으로 나열할 수 있습니다.

$ lsscsi -H 
[0] scsi_debug 
[1] aha152x 


$ lsscsi -Hl 
[0] scsi_debug 
 cmd_per_lun=3 호스트_busy=0 sg_tablesize=64 확인되지 않은_isa_dma=0 

[1] aha152x 
 cmd_per_lun=1 호스트_busy=0 sg_tablesize=255 확인되지 않은_isa_dma=0 


$ lsscsi -Hlv 
[0] scsi_debug 
 cmd_per_lun=3 호스트_busy=0 sg_tablesize=64 확인되지 않은_isa_dma=0 
 디렉토리: /sys/class/scsi_host/host0 
 장치 디렉토리: /sys/devices/pseudo_0/adapter0/host0 

[1] aha152x 
 cmd_per_lun=1 호스트_busy=0 sg_tablesize=255 unchecked_isa_dma=0 
 디렉토리: /sys/class/scsi_host/host1 
 장치 디렉토리: /sys/devices/platform/host1

전송 정보는 아래 해당 이름의 섹션을 참조하세요. 온라인에는 "man" 페이지('man lsscsi'로 호출)가 있는데, 여기에는 머신에 설치된 lsscsi 버전에 대한 구체적인 정보가 들어 있습니다. 이 명령에는 "lsscsi -h" 또는 "lsscsi --help"를 사용하여 출력할 수 있는 사용 정보도 들어 있습니다. 현재 bsg 장치 노드 이름은 lsscsi

에서 표시되지 않지만 제공된 정보에서 구성하는 것은 매우 간단합니다. bsg 노드 이름은 '/dev/bsg/'로 시작하고 그 뒤에 scsi_host, channel, target_number, LUN 튜플이 옵니다. 예를 들어 이 장치의 경우:

[4:0:0:0] 디스크 Linux scsi_debug 0004 /dev/sdb

bsg 노드 이름은 '/dev/bsg/4:0:0:0'입니다. 쉘이 특정 컨텍스트에서 ":"를 특수 문자로 해석할 수 있으므로 이스케이프하거나 따옴표로 묶어야 할 수 있습니다.

3) 명령줄 인터페이스

lsscsi 명령에는 다음과 같은 명령줄 인터페이스가 있습니다.

 lsscsi [옵션] [필터]

명령줄 옵션은 표 1에 나와 있습니다.

필터 인수는 사용 가능한 장치(또는 '--hosts' 옵션이 제공된 경우 호스트[0.19에서 추가된 버전])의 하위 집합을 선택하도록 설계되었습니다. 필터는 ":" 또는 공백으로 구분된 최대 4개의 숫자로 구성될 수 있습니다. 또는 "host<n>" 형식일 수 있습니다. 여기서 <n>은 호스트 번호입니다. 4개의 숫자는 각각 호스트 번호, 채널(또는 버스) 번호, 대상 번호 및 논리 단위 번호(즉, LUN)를 나타냅니다. "-", "*" 또는 "?" 기호는 와일드카드를 나타내는 데 사용됩니다. "-"를 와일드카드로 사용하는 경우 옵션 리드인 문자와 구별하기 위해 필터 인수 앞에 "-- "를 붙여야 합니다. "*" 또는 "?"를 와일드카드로 사용하는 경우 셸 파일 이름 확장을 중지하려면 필터를 작은따옴표나 큰따옴표로 묶어야 합니다. 장치 목록의 경우 어떤 필터 인수도 "-:-:-:-"와 동일하지 않습니다. 필터에서 누락된 숫자는 와일드카드로 처리됩니다. 따라서 "5:0:1"과 "5:0:1:-"는 동일합니다.

lsscsi의 버전 0.30은 NVMe 장치(네임스페이스) 및 컨트롤러를 나열하는 기능을 추가했습니다. NVMe의 경우 lsscsi 출력에 표시되는 네 개의 튜플(필터 인수에서 사용됨)은 첫 번째 위치의 문자 'N'이고 그 뒤에 NVMe 컨트롤러의 Linux char 장치의 마이너 번호가 옵니다. 이는 일반적으로 NVMe 컨트롤러 장치 이름에서 볼 수 있습니다(예: /dev/nvme2   (즉, '2')). 세 번째 위치는 NVMe의 Admin 명령의 Identify(컨트롤러) 응답에서 CNTLID 필드와 연관된 값입니다. NVMe의 네 개의 튜플에 있는 마지막 항목은 네임스페이스 식별자(nsid)로, 1과 2**32 - 2(포함) 사이의 값입니다.

$ lsscsi
[0:0:0:0] disk Linux scsi_debug 0187 /dev/sda
[0:0:0:3] disk Linux scsi_debug 0187 /dev/sdd
[1:0:0:0] disk INTEL SS DSA2M080G2GC 2CV1 /dev/sde
[N:0:1:1] disk INTEL SSDPEKKF256G7L__1 /dev/nvme0n1

위에 나열된 마지막 두 장치는 SSD입니다. 첫 번째 장치는 SATA SSD(UAS 프로토콜을 사용하여 USB를 통해 연결)이고 두 번째 장치(마지막 장치)는 NVMe SSD입니다. NVMe 장치(NVMe 네임스페이스)를 포함하는 NVMe 컨트롤러의 모델 '번호' 필드(MN)가 출력됩니다(예: " INTEL SSDPEKKF256G7L " 위에 있음). 그 뒤에 두 개의 밑줄과 nsid가 옵니다. SCSI 호스트와 NVMe 컨트롤러를 보려면 ' --hosts ' 옵션을 사용합니다.

$ lsscsi -H
[0] scsi_debug   
[1] uas          
[N:0] /dev/nvme0 INTEL SSDPEKKF256G7L BTPY72320AU0000D 123P

SCSI 호스트의 경우 HBA를 제어하는 ​​드라이버의 이름이 제공됩니다. NVMe 컨트롤러의 경우 Linux "char" 장치 이름(예:/dev/nvme0 )가 표시됩니다. 이 장치 이름은 NVMe 명령 주입(Admin, IO(NVM) 및 MI(관리 인터페이스) 명령)에 사용됩니다. 위 목록에서 NVMe 장치(네임스페이스) 및 컨트롤러를 제외하려면 '-N' 옵션을 사용할 수 있습니다. 반대로 SCSI 장치(LU) 및 호스트를 제외하려면 'N' 필터를 지정할 수 있습니다. 예:

$ lsscsi --hosts N
[N:0] /dev/nvme0 INTEL SSDPEKKF256G7L BTPY72320AU0000D 123P

명령의 마지막 'N'은 모든 NVMe 컨트롤러와 일치하는 'N:*'로 확장되는 필터입니다. Linux 장치 이름 뒤에 오는 NVMe 컨트롤러의 경우 모델 번호(MN), 일련 번호(SN) 및 펌웨어 개정(FR) 필드가 표시됩니다. 이것들은 NVMe 관리자 Identify(컨트롤러) 명령 응답에서 얻습니다(실제로 이것들은 이전 장치 검색의 사본을 보관하는 sysfs에서 얻었으므로 lsscsi가 루트 권한이 필요하지 않습니다). NVMe를 나타내는 'N'은 내부적으로 32,767로 변환되며 이는 SCSI 컨트롤러 번호에 영향을 미치지 않습니다. 또한 모든 NVMe 장치와 컨트롤러가 출력에서 ​​SCSI 장치와 호스트 뒤에 정렬됨을 의미합니다.


표 1. lsscsi 명령줄 옵션

긴 옵션 형식 숏 옵션 형식 버전
추가됨
설명
--짧은 -비 0.30 단일 라인 출력을 튜플과 기본 장치 이름으로 줄입니다. --pdt 옵션을 사용하면 튜플과 기본 장치 이름 사이에 16진수 PDT(장치 유형)를 삽입합니다.
--권위 있는 -기음
'cat /proc/scsi/scsi'와 유사한 출력을 생성합니다.
--컨트롤러 -기음 0.30 NVMe 컨트롤러와 SCSI 호스트를 나열합니다. 이것은 --hosts의 동의어입니다.
--장치 -디
장치 노드의 주요 번호와 부차 번호를 표시합니다.
--일반적인 -g
scsi 일반 장치 노드 이름 표시
--돕다 -시간
사용법 메시지를 인쇄한 다음 종료합니다.
--호스트 -시간
SCSI 장치(논리 장치)를 나열하는 대신 SCSI 호스트를 나열합니다.
--이름 -케이 0.15 장치 노드 이름(/dev 디렉토리에서 찾을 수 있는 이름) 대신 커널 이름(sysfs에서 찾을 수 있는 이름)을 표시합니다.
--목록 -엘 0.19 <속성>=<값> 쌍을 줄당 하나씩 표시하고 두 개 이상의 공백으로 들여쓰기합니다. -lll 옵션과 동일합니다.
--긴 -엘
<속성>=<값> 쌍을 여러 개 한 줄에 표시합니다. 더 많은 출력과 다른 형식을 위해 여러 번 사용할 수 있습니다. --list 옵션을 사용하여 한 줄에 하나의 <속성>=<값> 쌍을 출력합니다.
--긴 단위 -유 0.29 잘리지 않은 논리 단위 이름을 표시합니다. 이로 인해 "줄당 단일 장치" 형식의 출력이 UUID 및 EUI-128 논리 단위 이름이 있는 80개 열을 초과할 수 있습니다.
--룬헥스 -엑스 0.27 T10(SAM-5) 규칙에 따라 튜플의 LUN 부분을 16진수로 표시합니다.
--nvme없음 -N 0.30 NVMe 장치(또는 --hosts가 지정된 경우 컨트롤러)를 나열하지 마십시오.
--태평양 표준시 -디 0.30 주변 장치 유형(PDT)을 표시하는 것은 16진수이며 접두사는 "0x"입니다.
--보호 -피 0.22 보호 정보(T10-DIF)를 표시합니다.
--프로토타입모드 -피 0.25 협상된 보호 정보 모드 표시
--scsi_아이디 -나 0.27 /dev/disk/by-id/ 디렉토리에 udev 파생 정보 표시
--크기 -에스 0.25 사람이 읽을 수 있는 형태로 디스크 크기를 표시합니다. 한 번 사용하면 'B'에 대한 일반 SI 접두사(바이트 또는 옥텟)가 사용되고 소수점 3자리까지 반올림됩니다. 두 번 사용하면 'B'에 대한 IEC 80000-3 접두사가 사용됩니다. 예를 들어 MiB, GiB 및 TiB는 각각 2^20, 2^30 및 2^40바이트를 나타냅니다. 논리적 블록 수가 주어진 크기의 세 배로 사용하면 이는 소수점 3자리로 정확한 수치입니다.
--sysfsroot=PATH -y 경로 0.23 sysfs 마운트 지점으로 PATH를 사용합니다(기본 sysfs 마운트 지점은 '/sys'입니다)
--sz-파운드 -에스 0.30 디스크 크기를 논리 블록 수로 표시합니다. 두 번 지정하면 쉼표가 추가되고 논리 블록 크기가 바이트로 표시됩니다(일반적으로 512 또는 4096).
--수송 -티 0.19 전송 정보를 표시합니다. '--hosts'가 지정되지 않으면 대상을 위한 것입니다. '--hosts'가 지정되면 개시자(즉, 호스트)를 위한 것입니다. '--list'와 함께 사용하면 더 많은 정보가 표시됩니다.
--단위 -유 0.28 제조업체, 모델 및 개정판 대신 LU 이름을 표시합니다. lk >= 3.15가 필요합니다.
--말 수가 많은 -다섯
출력의 장황함을 증가시킵니다. 장황함을 더 증가시키기 위해 여러 번 사용될 수 있습니다.
--버전 -다섯
버전과 마지막 코드 변경 날짜를 인쇄한 다음 종료합니다.
--wwn -w 0.26 제조업체, 모델 및 개정판 대신 디스크의 WWN을 표시합니다.


lsscsi 매뉴얼 페이지   와 실행 파일의 사용법 메시지도 명령줄 구문을 보여줍니다.

4) 운송

'--transport'(또는 '-t') 옵션이 주어지면 lsscsi는 사용 중인 전송을 확인하고 해당 전송에 대한 특정 정보를 출력합니다. 최신 전송의 경우 전 세계적으로 고유한 이름이나 식별자가 포함될 수 있습니다. 추가 정보가 제공되는 전송은 다음과 같습니다.

  • 아타(ATA)
  • 파이버 채널(FC): 대상과 호스트 모두에 상당한 양
  • IEEE 1394(SBP): 대상 및 호스트
  • iSCSI: 대상만
  • NVMe에서 사용하는 PCIe
  • SAS(Serial Attached SCSI): 대상과 호스트 모두에 상당한 양
  • SATA
  • SCSI 병렬 인터페이스(SPI): 사소한
  • SCSI RDMA(원격 직접 메모리 액세스) 프로토콜(SRP)
  • USB

lsscsi 가 '--hosts' 옵션이 없을 때 논리 단위 정보를 표시 하더라도 '--transport' 옵션이 지정되면 출력은  논리 단위를 포함하는 대상 과 관련됩니다 .이는 컴퓨터(및 sysfs)가 가까운 쪽이 호스트(즉, SCSI 이니시에이터)이고 먼 쪽이 대상인 "전송"(또는 상호 연결)을 보기 때문에 발생합니다 .대상에는 하나 이상의 논리 단위가 포함될 수 있으며(특수한 경우 대상에는 논리 단위가 전혀 없을 수 있음) SCSI 이니시에이터와 대상 에는 하나 이상의 포트가 있을 수도 있습니다.Linux는 대상(논리 단위 하나 포함)의 각 포트를 두 개의 장치로 표시하는 경향이 있습니다.더 정확히 말해서 Linux는 논리 단위로 가는 각 경로에 대해 다른 장치를 표시합니다.'--

transport' 옵션이 지정되면 lsscsi 가 일반적으로 출력하는 SCSI INQUIRY 문자열(공급업체, 제품 및 개정판) 이 대상 이름 또는 식별자로 바뀝니다. SAM-4 문서 의 부록 A는 표시할 적절한 개시자(즉, 호스트) 및 대상 이름과 식별자에 대한 가이드로 사용되었습니다.

lsscsi 버전 0.28부터 '--unit' 옵션은 lk 3.15에서 sysfs에서 처음 사용 가능해진 장치 식별 VPD 페이지에서 파생된 논리 장치(LU) 이름을 표시합니다. 대부분의 최신 SCSI 장치의 경우 LU 이름은 전 세계 고유 번호(또는 iSCSI의 경우 문자열)여야 합니다.

lsscsi 버전 0.30에서 NVMe에 대한 지원이 추가되었습니다.

4.1) ATA(국제공동개발회의)

병렬 ATA 장치의 감지는 다소 조잡하며 보다 전통적인 SCSI 전송에 대한 검사가 수행된 후에 수행됩니다. ATA 전송의 식별은 장치 또는 호스트가 사용하는 저수준 드라이버 이름을 기준으로 이루어집니다. 유사한 메커니즘이 SATA 장치를 감지하는 데 사용되며 일부 드라이버가 SATA 및 PATA 장치를 모두 지원하기 때문에 약간의 중복이 있습니다. 다른 속성은 제공되지 않습니다. 예를 들어:

$ lsscsi [0:0:0:0] 디스크 ATA FUJITSU MHY2160B 0000 /dev/sda [3:0:0:0] cd/dvd MATSHITA DVD/CDRW UJDA775 CB03 /dev/scd0 [5:0:0:0] 디스크 USB 2.0 SD/MMC 리더 /dev/sdb [6:0:0:0] 디스크 JetFlash TS2GJFVxx 8.01 /dev/sdc $ lsscsi -t [0:0:0:0] 디스크 sata: /dev/sda [3:0:0:0] cd/dvd ata: /dev/scd0 [5:0:0:0] 디스크 usb: 7-1:1.0 /dev/sdb [6:0:0:0] 디스크 usb: 7-2.4:1.0 /dev/sdc $ lsscsi -Ht [0] ahci sata: [1] ahci sata: [2] ahci sata: [3 ] ata_piix ata: [4] ata_piix ata: [5] usb-storage usb: 7-1:1.0 [6] usb-storage usb: 7-2.4:1.0 이 경우 3:0:0:0(및 장치 노드 /dev/scd0)의 장치는 전송이 (병렬) ATA인 DVD/CD 드라이브입니다. 해당 장치는 ata_piix 드라이버와 연관된 host3에 연결됩니다.


















4.2) FC(축구)

FC 장치(논리적 장치)의 경우 '--transport' 옵션은 SCSI INQUIRY "문자열" 대신 포트 이름과 포트 식별자를 표시합니다. 예를 들어:

$ lsscsi -g [3:0:0:0] 인클로저 HP A6255A HP04 - /dev/sg3 [3:0:1:0] 디스크 HP 36.4G ST336753FC HP00 /dev/sdd /dev/sg4 [3:0:2:0] 디스크 HP 36.4G ST336753FC HP00 /dev/sde /dev/sg5 $ lsscsi -g --transport [3:0:0:0] 인클로저 fc:0x50060b00002e48a3,0x0b109b - /dev/sg3 [3:0:1:0] 디스크 fc:0x21000004cf97de68,0x0b109f /dev/sdd /dev/sg4 [3:0:2:0] 디스크 fc:0x21000004cf97e385,0x0b10a3 /dev/sde /dev/sg5 인클로저의 포트 이름은 NAA-5이고 디스크의 포트 이름은 NAA-2입니다. SAS도 NAA-5를 사용하므로 앞에 "fc:"가 있으면 전송이 FC로 식별되었음을 나타냅니다. '--list'를 추가하면 두 개 이상의 공백으로 들여쓰기된 "name=value" 쌍으로 더 많은 전송 정보가 제공됩니다. 출력은 3:0:2:0 필터를 추가하여 하나의 디스크로 제한됩니다.









$ lsscsi -t --list [3:0:2:0] 

[3:0:2:0] disk fc:0x21000004cf97e385,0x0b10a3 /dev/sde 
 transport=fc 
 node_name=0x20000004cf97e385 
 port_name=0x21000004cf97e385 
 port_id=0x0b10a3 
 port_state=Online 
 roles=FCP Target 
 scsi_target_id=2 
 supported_classes=Class 3 
 dev_loss_tmo=35

 
'--hosts' 옵션이 '--transport'와 함께 사용되면 개시자(포트)에 대한 전송 정보가 출력됩니다.


$ lsscsi --hosts --transport 3 [3] qla2xxx fc:0x50060b00741cc28e,0x0b1900 이는 호스트 3의 드라이버가 qla2xxx이고, 전송이 FC이며, 개시자의 포트 이름이 NAA-5 형식이고 마지막(16진수) 숫자가 개시자의 포트 식별자임을 보여줍니다. '--list'를 추가하면 다시 "name=value" 쌍이 추가됩니다.


$ lsscsi -H -t --list 3 
[3] qla2xxx fc:0x50060b00741cc28e,0x0b1900 
 transport=fc 
 node_name=0x50060b00741cc28f 
 port_name=0x50060b00741cc28e 
 port_id=0x0b1900 
 port_type=NPort(포인트 투 포인트를 통한 패브릭) 
 speed=2 Gbit 
 supported_classes=Class 3 
 tgtid_bind_type=wwpn(World Wide Port Name)

"name=value" 쌍은 sysfs 디렉토리에서 가져오므로(transport=fc 제외) 의미는 전송에 의해 정의되어야 합니다. 어떤 디렉토리(들)가 이 정보를 제공하는지 보려면 '-vvv'를 추가하세요.

4.3) 1394

IEEE 1394 전송을 통해 SCSI 명령 세트를 전달하기 위한 SBP SCSI 표준에는 SBP-2와 SBP-3이라는 두 가지 버전이 있습니다. SCSI 명령 세트는 일반적으로 스토리지 장치에 액세스하기 위한 것입니다. 따라서 약어 "SBP"는 종종 스토리지 컨텍스트에서 IEEE 1394 전송과 연관됩니다.

SBP는 EUI-64 형식을 사용하여 대상 및 개시자(호스트)에 대한 전 세계 고유 이름을 정의합니다. 이러한 이름은 '-t' 옵션이 주어졌을 때 lsscsi 명령이 가져오는 것입니다.

$ lsscsi [6:0:1:0] sim dsk 양자 파이어볼 SE3.2A /dev/sdk $ lsscsi -t [6:0:1:0] sim dsk sbp:00043b000000071d:1:0 /dev/sdk $ lsscsi -t -L [6:0:1:0] sim dsk sbp:00043b000000071d:1:0 /dev/sdk 전송=sbp ieee1394_id=00043b000000071d:1:0 $ lsscsi -t -H [6] sbp2 sbp:005042b500004a48 $ lsscsi -t -H -L [6] sbp2 sbp:005042b500004a48 transport=sbp SBP 표준은 디스크(일반적으로 외부 인클로저의 ATA 디스크)가 SCSI 주변 장치 유형인 "단순화된 직접 액세스 장치"를 사용해야 함을 요구합니다. lsscsi 명령으로 "sim dsk"로 축약됩니다.







 
 






 

4.4) iSCSI는

lsscsi 명령 은 iSCSI 대상이 실행 중인 머신(커널 드라이버 또는 사용자 공간 데몬)에서 iSCSI 관련 항목을 표시하지 않습니다. 다음 출력은 세션이 설정된 iSCSI 이니시에이터를 실행하는 머신에서 나온 것입니다.

$ lsscsi 
[2:0:0:0] 디스크 IET 가상 디스크 0 /dev/sda 


$ lsscsi -t 
[2:0:0:0] 디스크 iqn.2001-04.com.example:sda.sdb.sdc,t,0x1 /dev/sda 


$ lsscsi -t -L 
[2:0:0:0] 디스크 iqn.2001-04.com.example:sda.sdb.sdc,t,0x1 /dev/sda 
 전송=iSCSI 
 대상 이름=iqn.2001-04.com.example:sda.sdb.sdc 
 tpgt=1 
 데이터_pdu_순서=1 
 데이터_seq_순서=1 
 erl=0 
 첫 번째_버스트_길이=65536 초기 
 _r2t=1 
 최대_버스트_길이=262144 
 max_outstanding_r2t=1 
 recovery_tmo=120 


$ lsscsi -t -H 
[2] iscsi_tcp iscsi: 


$ lsscsi -t -H -L 
[2] iscsi_tcp iscsi: 
 transport=iSCSI

 
보시다시피, '-H' 옵션(또는 '--hosts' 옵션)이 주어지면 유용한 호스트 정보(예: iSCSI 개시자 이름)가 없습니다. 대상에 대해 제공된 정보는 세션과 관련이 있습니다. iSCSI 세션은 sysfs에서 사용 가능한 정보가 있는 1개 이상의 연결로 구성되지만 lsscsi 명령은 현재 이를 출력하지 않습니다.

4.5) PCIe(NVMe)

SCSI SOP/PQI 장치가 있을 수 있지만 PCIe 스토리지 전송이 있는 것은 하나 이상의 NVMe 장치를 사용할 수 있음을 나타낼 가능성이 더 큽니다. lsscsi의 버전 0.30에서 NVMe에 대한 지원이 추가되었습니다. 다음은 머신의 SCSI 호스트와 NVMe 컨트롤러에서 전송 정보를 요청하는 예입니다.

$ lsscsi -H --transport 
[0] ahci sata: 
[1] ahci sata: 
[2] ahci sata: 
[3] ahci sata: 
[4] ahci sata: 
[5] ahci sata: 
[6] mpt3sas sas:0x500605b006d3b510 
[7] scsi_debug     
[N:0] /dev/nvme0 pcie 0x1b4b:0x1093



위에서 SCSI 호스트 0~5는 실제로 SATA 호스트이고, 호스트 6은 LSI SAS HBA이며, 호스트 7은 전송이 없는 scsi_debug입니다(실제로는 sysfs에서 볼 수 있는 'pseudo'라는 "버스"가 있습니다). 마지막 항목은 PCIe 버스를 통해 연결된 NVMe 컨트롤러입니다. "pcie" 문자열 뒤에는 콜론 앞에 하위 시스템 공급업체 ID(SSVID)가 있고, 콜론 뒤에 하위 시스템 장치 식별자가 있습니다. 이제 해당 장치(SATA 장치, SCSI LU(논리적 단위(LU) 및 NVMe 네임스페이스)를 살펴보겠습니다.

$ lsscsi 
[3:0:0:0] 디스크 ATA ST9500420AS SDM1 /dev/sda 
[6:0:0:0] 디스크 SEAGATE ST10000NM0096 E002 /dev/sdb 
[6:0:1:0] 디스크 SmrtStor SDLKOCDR800G5CA1 F820 /dev/sdc 
[6:0:2:0] 디스크 SEAGATE ST200FM0073 0007 /dev/sdd 
[6:0:3:0] 인클로저 Areca ARC-802801.33.63 0133 -         
[6:0:4:0] 인클로저 Intel RES2SV240 0d00 -         
[7:0:0:0] 디스크 Linux scsi_debug 0186 /dev/sde 
[N:0:0:1] 디스크 WDC WDS256G1X0C-00ENX0__1 /dev/nvme0n1

SATA 디스크는 [3:0:0:0]에서 볼 수 있습니다. SAS 디스크와 SAS SSD가 뒤따르고, 그 다음에 두 개의 SES 인클로저(SAS 확장기와 연결됨), 그 다음에 scsi_debug 장치(LU)가 있고 마지막으로 [N:0:0:1]에 NVMe SSD가 있습니다. 네임스페이스 ID는 1이고 두 가지 방법으로 표시됩니다. 튜플의 마지막 요소와 이름의 "__1" 접미사입니다. 이제 --generic 및 --size 옵션으로 다시 목록을 표시합니다.

$ lsscsi -gs 
[3:0:0:0] 디스크 ATA ST9500420AS SDM1 /dev/sda /dev/sg0 500GB 
[6:0:0:0] 디스크 SEAGATE ST10000NM0096 E002 /dev/sdb /dev/sg1 10.0TB 
[6:0:1:0] 디스크 SmrtStor SDLKOCDR800G5CA1 F820 /dev/sdc /dev/sg2 800GB 
[6:0:2:0] 디스크 SEAGATE ST200FM0073 0007 /dev/sdd /dev/sg3 200GB 
[6:0:3:0] 인클로저 Areca ARC-802801.33.63 0133 - /dev/sg4 - 
[6:0:4:0] 인클로저 Intel RES2SV240 0d00 - /dev/sg5 - 
[7:0:0:0] 디스크 Linux scsi_debug 0186 /dev/sde /dev/sg6 8.38MB 
[N:0:0:1] 디스크 WDC WDS256G1X0C-00ENX0__1 /dev/nvme0n1 256GB

NVMe 네임스페이스에 대한 일반 장치 이름이 없다는 점에 유의하세요. NVMe Admin 및 NVM(I/O) 명령에 대한 패스스루는 실제로 연관된 컨트롤러의 장치(예: /dev/nvme0)를 통해 이루어집니다. NVMe 네임스페이스(또는 컨트롤러)만 보려면 'N' 필터를 사용하세요.

$ lsscsi -s N 
[N:0:0:1] 디스크 WDC WDS256G1X0C-00ENX0__1 /dev/nvme0n1 256GB

NVMe 네임스페이스(또는 컨트롤러) 출력을 억제하려면 '-N' 옵션을 사용합니다.

4.6) SAS(SAS)

SAS 장치(논리적 단위)의 경우 '--transport' 옵션은 SCSI INQUIRY "문자열" 대신 대상의 SAS(포트) 주소를 표시합니다. 예를 들어:

$ lsscsi -t 
[4:0:3:0] 디스크 sas:0x5000d50001b02139 /dev/sdd 
[4:0:4:0] 디스크 sas:0x5000d500005208ed /dev/sde 
[5:0:0:0] 디스크 sas:5000d50001b02139 /dev/sdf 
[5:0:1:0] 디스크 sas:5000d500005208ed /dev/sdg

SAS 주소는 전송을 식별하기 위해 "sas:"라는 접두사가 붙습니다. 현재 두 가지 다른 표현이 있으며 lsscsi는 관련 sysfs 속성에 있는 모든 것을 출력합니다. '--list'(또는 '-L) 옵션을 추가하면 더 많은 정보가 출력됩니다.

$ lsscsi -t -L [4:0:4:0] [4:0:4:0] 디스크 sas:0x5000d500005208ed /dev/sde 전송=sas 개시자_포트_프로토콜=없음 개시자_응답_시간 초과=10000 I_T_nexus_손실_시간 초과 =1744 phy_identifier=11 ready_led_meaning=1 sas_주소=0x5000d500005208ed 대상_포트_프로토콜=ssp # lsscsi -t -L [5:0:1:0] [5:0:1:0] 디스크 sas:5000d500005208ed /dev/sdg   전송=sas   하위_전송=sas_클래스   장치_이름=00000000000000000   dev_type=end device   iproto=   iresp_timeout=0x2710   itnl_timeout=0x07d0   linkrate=3,0 Gbps   max_linkrate =3,0 Gbps   max_pathways=1   min_linkrate=3,0 Gbps   pathways=1   ready_led_meaning=1   rl_wlun=0   sas_addr=5000d500005208ed   tproto=SSP   transport_layer_retries=0 4:0:4:0과 5:0:1:0은 모두 동일한 대상 포트를 통해 액세스되지만 다른 호스트에서 액세스되는 동일한 논리적 단위입니다. 두 드라이버(각 호스트에 하나씩)는 동일한(대상 포트) 정보를 다른 방식으로 표현하도록 선택합니다. '--hosts' 옵션이 추가되면 개시자의 SAS 주소가 출력됩니다. SAS의 경우 Linux 호스트는 개시자 디바이스(포트 중 하나가 아님)에 해당합니다.

 
 
 
 
 
 
 
 























$ ./lsscsi -t -H 
[0] SATA_NV 
[1] SATA_NV 
[2] SATA_NV 
[3] SATA_NV 
[4] MPTSAS SAS:0x500605b000f6f260 
[5] AIC94XX SAS:50000D100F2DC000

'--list' 옵션을 추가하면 두 개 이상의 공백으로 들여쓰기 된 여러 개의 '이름=값' 쌍 줄이 인쇄됩니다.

4.7) SATA

직렬 ATA(SATA) 장치의 감지는 다소 조잡하며 보다 전통적인 SCSI 전송에 대한 검사가 수행된 후에 수행됩니다. SATA 전송의 식별은 장치 또는 호스트가 사용하는 저수준 드라이버 이름을 기준으로 이루어집니다. 유사한 메커니즘이 병렬 ATA 장치를 감지하는 데 사용되며 일부 드라이버가 SATA 및 PATA 장치를 모두 지원하기 때문에 일부 중복이 있습니다. 다른 속성은 제공되지 않습니다. ATA 섹션의 예를 참조하십시오. 특히 장치 0:0:0:0 및 연관된 호스트0입니다.

4.8) 스피(SPI)

SCSI 병렬 인터페이스(SPI)를 감지할 수 있으며 "spi:" 접두사로 표시됩니다. Sysfs는 전 세계적으로 고유한 이름을 제공하지 않습니다(장치 식별 VPD 페이지를 제공하는 lk 3.15까지). 사용 가능한 유일한 것은 대상 식별자로, 일반적으로 0에서 15 사이의 숫자입니다. 개시자(호스트) 식별자는 관례에 따라 제공되지 않으며 일반적으로 7입니다. 다음은 SPI에 대한 대상 및 호스트 전송 정보의 몇 가지 예입니다.

$ lsscsi [0:0:1:0] 
[0:0:1:0] 디스크 HP 36.4G ST336753LC HPC7 /dev/sdb 


$ lsscsi -t [0:0:1:0] 
[0:0:1:0] 디스크 spi:1 /dev/sdb 


$ lsscsi -t -L [0:0:1:0] 
[0:0:1:0] 디스크 spi:1 /dev/sdb 
 전송=spi 
 대상_id=1 
 dt=1 
 최대_오프셋=127 최대_너비 
 =1 
 최소_기간=6.25 
 오프셋=63 
 기간=6.25 
 너비=1 


$ lsscsi -t -H [0:0:1:0] 
[0] mptspi spi: 


$ lsscsi -t -H -L [0:0:1:0] 
[0] mptspi spi: 
 전송=spi 
 신호=알 수 없음

4.9) 서비스 리플(SRP)

SCSI RDMA 프로토콜(SRP) 전송은 감지될 수 있으며 "srp:" 접두사로 표시됩니다. 지원은 lsscsi 버전 0.28에서 추가되었습니다. 기여자 Bart Van Assche의 몇 가지 예는 다음과 같습니다.

$ 이브스탯 | grep '포트 GUID' 
                포트 GUID: 0x0002c90300a05281 
                포트 GUID: 0x0002c90300a05282 
                포트 GUID: 0x0002c90300a02d71 
                포트 GUID: 0x0002c90300a02d72 
$ lsscsi -t 
[0:0:0:0] 디스크 /dev/sda 
[0:3:0:0] 저장소 - 
[1:0:0:0] 디스크 srp:0002:c903:00a0:5281 /dev/sdb 
[1:0:0:1] 디스크 srp:0002:c903:00a0:5281 /dev/sdc 
[1:0:0:2] 디스크 srp:0002:c903:00a0:5281 /dev/sdd 
[1:0:0:3] 디스크 srp:0002:c903:00a0:5281 /dev/sde 
[1:0:0:4] 디스크 srp:0002:c903:00a0:5281 /dev/sdf 
[1:0:0:5] 디스크 srp:0002:c903:00a0:5281 /dev/sdg 
[1:0:0:6] 디스크 srp:0002:c903:00a0:5281 /dev/sdh 
[1:0:0:7] 디스크 srp:0002:c903:00a0:5281 /dev/sdi 
$ lsscsi --list -t | 헤드 
[0:0:0:0] 디스크 /dev/sda 
[0:3:0:0] 저장소 - 
[1:0:0:0] 디스크 srp:0002:c903:00a0:5281 /dev/sdb 
  전송=srp 
  orig_dgid=f452:1403:0015:6021 
  dgid=f452:1403:0015:6021 
[1:0:0:1] 디스크 srp:0002:c903:00a0:5281 /dev/sdc 
  전송=srp 
  orig_dgid=f452:1403:0015:6021 
  dgid=f452:1403:0015:6021

4.10) USB

USB 전송이 감지되면 장치 또는 호스트 요약 줄에 "usb:" 뒤에 USB 장치 이름이 포함됩니다. USB 장치 이름은 "<b>-<p1>[.<p2>]+:<c>.<i>" 형식이며, 여기서 <b>는 USB 버스 번호이고, <p1>은 호스트의 포트입니다. <p2>는 호스트에 연결된 허브의 포트입니다(있는 경우). 필요한 경우 <p3>은 USB 저장 장치에 더 가까운 다른 USB 허브 포트입니다. <c>는 구성 번호를 나타내고 <i>는 인터페이스 번호입니다. 각 USB(SCSI) 대상에 대해 별도의 USB SCSI 호스트가 있습니다. USB SCSI 대상에는 여러 논리 장치가 포함될 수 있습니다. 따라서 동일한 "usb: <device_name>" 문자열이 USB SCSI 호스트와 해당 USB SCSI 호스트와 연관된 USB SCSI 대상에 속하는 모든 논리 장치에 대해 나타납니다. ATA 섹션의 예를 참조하세요. 특히 장치 5:0:0:0 및 6:0:0:0 입니다. 5:0:0:0은 노트북에 직접 연결되고, 6:0:0:0은 외부 허브를 통해 연결됩니다.

5) 예

다음은 일반적이지 않은 기계의 출력입니다. 직접 연결된 SATA DVD 드라이브와 하나의 SATA 디스크(/dev/sda)가 있습니다. 나머지 장치는 자체 SES 관리 장치 [6:0:2:0]가 있는 외부 SAS 확장기를 통해 연결됩니다.



# lsscsi [0:0:0:0] cd/dvd PIONEER DVD-RW DVR-212D 1.22 /dev/sr0 [1:0:0:0] 디스크 ATA ST3320620AS 3.AA /dev/sda [6:0:0:0] 디스크 SEAGATE ST32000444SS 0006 /dev/sdb [6:0:1:0] 디스크 ATA ST3500418AS CC34 /dev/sdc [6:0:2:0] 인클로저 Intel RES2SV240 0600 -        [6:0:3:0] 디스크 SEAGATE ST373455SS 2189 /dev/sdd 아래 는 필터의 몇 가지 예입니다. # lsscsi -- 1:-:-:- [1:0:0:0] 디스크 ATA ST3320620AS 3.AA /dev/sda # lsscsi "*:*:2" [6:0:2:0] enclosu Intel RES2SV240 0600 - # lsscsi 0 [0:0:0:0] cd/dvd PIONEER DVD-RW DVR-212D 1.22 /dev/sr0 # lsscsi 2 # # lsscsi 6 [6:0:0:0] disk SEAGATE ST32000444SS 0006 /dev/sdb [6:0:1:0] disk ATA ST3500418AS CC34 /dev/sdc [6:0: 2:0] enclosu Intel RES2SV240 0600 -        [6:0:3:0] disk SEAGATE ST373455SS 2189 /dev/sd d NVMe 네임스페이스에는 첫 번째 항목 대신 'N'이 있습니다. h:c:t:l 튜플. NVMe 컨트롤러의 경우 [N, <controller_device_minor_number>]가 출력됩니다.



























# lsscsi 
[3:0:0:0] 디스크 SEAGATE ST10000NM0096 E002 /dev/sdb 
[3:0:1:0] 디스크 SmrtStor SDLKOCDR800G5CA1 F820 /dev/sdc 
[3:0:2:0] 디스크 SEAGATE ST200FM0073 0007 /dev/sdd 
[3:0:3:0] 케이스 Areca ARC-802801.33.63 0133 - [3:0: 
4:0] 케이스 Intel RES2SV240 0d00 - 
[4:0:0:0] 디스크 ATA ST9500420AS SDM1 /dev/sda 
[N:0:0:1] 디스크 WDC WDS256G1X0C-00ENX0__1 /dev/nvme0n1 


# lsscsi -H 
[0] ahci 
[1] ahci 
[2] ahci 
[3] mpt3sas 
[4] ahci 
[5] ahci 
[6] ahci 
[N:0] /dev/nvme0 WDC WDS256G1X0C-00ENX0 172322800697 B35500WD 


# lsscsi -Ht 
[0] ahci sata: 
[1] ahci sata: 
[2] ahci sata: 
[3] mpt3sas sas:0x500605b006d3b510 
[4] ahci sata: 
[5] ahci sata: 
[6] ahci sata: 
[N:0] /dev/nvme0 pcie 0x1b4b:0x1093

다음은 --long 옵션과 트리플 롱(-L) 옵션을 보여주는 호스트/컨트롤러 출력의 또 다른 시퀀스입니다.

# lsscsi -H 
[0] scsi_debug     
[N:0] /dev/nvme0 인텔 SSDPEKKF256G7L BTPY72320AU6256D 131P     

# lsscsi -Hl 
[0] scsi_debug     
  cmd_per_lun=255 호스트_비지=0 sg_tablesize=2048 검사되지 않은_isa_dma=0   
[N:0] /dev/nvme0 
  cntlid=1 상태=라이브 현재_링크_너비=2 펌웨어_rev=131P     

# lsscsi -HL 
[0] scsi_debug     
  대기열 가능=32 
  cmd_per_lun=255 
  호스트_비지=0 
  nr_hw_queues=4 
  sg_tablesize=2048 
  상태=실행 중 
  검사되지 않은_isa_dma=0 
  고유_id=0 
[N:0] /dev/nvme0 
  cntlid=1 
  상태=live 
  현재 링크 너비=2 
  펌웨어 갱신=131P     
  현재 링크 속도=8.0 GT/s PCIe 
  모델=INTEL SSDPEKKF256G7L 
  일련 번호=BTPY72320AU6256D



이제 '--size' 또는 '-s' 옵션을 사용하여 디스크 의 크기를 살펴보겠습니다 . 드라이브에 디스크가 있고 마운트되어 있더라도 DVD 디스크의 크기는 표시되지 않습니다. 그리고 인클로저(SES) 장치와 연관된 크기는 없습니다.

#  lsscsi -s 
[0:0:0:0] cd/dvd PIONEER DVD-RW DVR-212D 1.22 /dev/sr0 - 
[1:0:0:0] 디스크 ATA ST3320620AS 3.AA /dev/sda 320GB 
[6:0:0:0] 디스크 SEAGATE ST32000444SS 0006 /dev/sdb 2.00TB 
[6:0:1:0] 디스크 ATA ST3500418AS CC34 /dev/sdc 500GB 
[6:0:2:0] enclosu Intel RES2SV240 0600 - - 
[6:0:3:0] 디스크 SEAGATE ST373455SS 2189 /dev/sdd 73.4GB


 
그러면 해당 인클로저(SES) 장치에 어떻게 액세스할까요? '--generic' 또는 '-g' 옵션을 사용하여 해당 SCSI 일반 장치 이름을 확인하세요. # lsscsi -g [0:0:0:0] cd/dvd PIONEER DVD-RW DVR-212D 1.22 /dev/sr0 /dev/sg0 [1:0:0:0] disk ATA ST3320620AS 3.AA /dev/sda /dev/sg1 [6:0:0:0] disk SEAGATE ST32000444SS 0006 /dev/sdb /dev/sg2 [6:0:1:0] disk ATA ST3500418AS CC34 /dev/sdc /dev/sg3 [6:0:2:0] enclosu Intel RES2SV240 0600 - /dev/sg4 [6:0:3:0] disk SEAGATE ST373455SS 2189 /dev/sdd /dev/sg5









따라서 인클로저 장치는 /dev/sg4를 통해 액세스할 수 있습니다(예: 'sg_ses /dev/sg4'와 같은 명령 사용). lsscsi 유틸리티는 bsg 장치 이름을 표시하지 않지만 위의 정보에서 쉽게 구성할 수 있습니다. 이 경우 '/dev/bsg/6:0:2:0'이 됩니다. 상황에 따라 이러한 ":" 문자는 쉘이 특수 문자로 해석하지 않도록 이스케이프해야 할 수도 있습니다.

버전 0.26에서는 일반적으로 NAA-5 형식으로 디스크의 World Wide Number(예: SCSI 용어로 논리 장치 이름)를 표시하는 '--wwn' 옵션이 추가되었습니다. 다음은 옵션 없이 호출된 lsscsi입니다. '--wwn' 옵션 다음에 '--transport' 옵션이 있습니다.

# lsscsi
[1:0:0:0] disk ATA ST3160812AS 3.AA /dev/sda
[6:0:0:0] disk ATA ST3500418AS CC34 /dev/sdb
[6:0:1:0] disk SEAGATE ST32000444SS 0006 /dev/sdc
[6:0:2:0] enclosu Intel RES2SV240 0600 -

# lsscsi --wwn
[1:0:0:0] disk ATA ST3160812AS 3.AA /dev/sda
[6:0:0:0] disk ATA ST3500418AS CC34 0x5000c500120bfe84 /dev/sdb
[6:0:1:0] disk SEAGATE ST32000444SS 0006 0x5000c500215725bf /dev/sdc
[6:0:2:0] enclosu Intel RES2SV240 0600 -      

# lsscsi --transport
[1:0:0:0] disk sata: /dev/sda
[6:0:0:0] disk sas:0x5001517e85c3efe5 /dev/sdb
[6:0:1:0] disk sas:0x5000c500215725bd /dev/sdc
[6:0:2:0] enclosu sas:0x5001517e85c3effd -    

'--wwn' 및 '--transport' 옵션 모두 제조업체, 모델 및 개정 정보를 대체한다는 점에 유의하세요. /dev/sda 의 디스크는 WWN이 없는 구형 SATA 모델이며 컴퓨터 마더보드의 SATA 컨트롤러를 통해 연결됩니다. 다른 두 개의 디스크는 SAS 익스팬더를 통해 연결됩니다. /dev/sdb 는 WWN이 있는 최신 SATA 디스크이고 /dev/sdc 는 모두 WWN(일명 "논리적 단위 이름")이 있는 SAS 디스크입니다. 'lsscsi --transport' 출력은 전송 유형(Linux에서 보는 방식(따라서 /dev/sdb 의 경우 "sas" ))과 대상 포트 식별자(SAS에서는 SAS 주소)를 보여줍니다. /dev/sdc 의 WWN과 대상 포트 식별자가 비슷하지만 동일하지는 않다는 점에 유의하세요. SAS 익스팬더 뒤에 있는 SATA 디스크의 상황은 대상 포트 식별자와 약간 다릅니다( /dev/sdb 의 '--wwn' 및 '--transport' 출력을 살펴보세요).), SAS 익스팬더가 대상 포트 식별자를 "구성"하기 때문입니다. 6:0:2:0의 인클로저는 SAS 익스팬더와 밀접하게 연관되어 있으며 인클로저에는 실제로 WWN이 있지만 udev(lsscsi가 /dev 디렉토리를 데이터 마이닝하는 데 사용)는 이를 사용할 수 없게 하므로 표시되지 않습니다. sg_vpd 유틸리티('-i' 옵션 사용)를 사용하여 인클로저의 WWN을 찾을 수 있습니다.

버전 0.27에는 '--lunhex' 옵션(약어: '-x')이 추가되었습니다. 아래는 몇 가지 예입니다. 첫 번째 예는 '--lunhex' 옵션이 주어지지 않았을 때 튜플의 마지막 요소를 보여줍니다.

# lsscsi -g
[0:0:0:0] disk ATA INTEL SSDSC2CW12 400i /dev/sda /dev/sg0
[7:0:0:1] disk Linux scsi_debug 0004 /dev/sdb /dev/sg1
[7:0:0:49409]wlun Linux scsi_debug 0004 - /dev/sg2

# lsscsi -g --lunhex
[0:0:0:0x0000] disk ATA INTEL SSDSC2CW12 400i /dev/sda /dev/sg0
[7:0:0:0x0001] disk Linux scsi_debug 0004 /dev/sdb /dev/sg1
[7:0:0:0xc101] wlun Linux scsi_debug 0004 - /dev/sg2

# lsscsi -xx
[0:0:0:0x0000000000000000] 디스크 ATA INTEL SSDSC2CW12 400i /dev/sda
[7:0:0:0x0001000000000000] 디스크 Linux scsi_debug 0004 /dev/sdb
[7:0:0:0xc101000000000000] wlun Linux scsi_debug 0004 -

버전 0.27에 '--scsi_id' 옵션(약어: '-i')이 추가되었습니다.

# lsscsi -i
[0:0:0:0] 디스크 ATA INTEL SSDSC2CW12 400i /dev/sda SATA_INTEL_SSDSC2CW1CVCV
[6:0:0:1] 디스크 Linux scsi_debug 0004 /dev/sdb 353333330000036b1
[6:0:0:49409]wlun Linux scsi_debug 0004 - -

버전 0.28에서 '--unit' 옵션(약어: '-u')이 추가되었습니다. 이 옵션은 장치 식별 VPD 페이지에서 제공하는 LU 이름이나 SATA 디스크의 WWN을 출력합니다. 해당 VPD 페이지는 lk 3.15에서 사용할 수 있게 되었으므로 이 옵션은 이전 커널에서는 작동하지 않습니다(즉, 공백을 출력합니다). 이러한 제조업체, 제품, 개정 문자열이 있는 혼합 SAS(확장기 포함) 및 SATA 환경의 경우:


# lsscsi
[3:0:0:0] 디스크 ATA ST3160812AS D /dev/sda
[6:0:0:0] 디스크 SEAGATE ST32000444SS 0008 /dev/sdf
[6:0:1:0] enclosu Areca ARC-802801.13.1D 0113 -       
[6:0:2:0] 디스크 ATA ST500LM000-1EJ16 DEM6 /dev/sdg [6:0:3
:0] enclosu Intel RES2SV240 0d00 - [6:0       
:4:0] 디스크 ATA ST3500418AS CC34 /dev/sdh LU 이름은 다음과 같을 수 있습니다.


# lsscsi -u
[3:0:0:0] disk /dev/sda
[6:0:0:0] disk 5000c500215925bf /dev/sdf [ 6:0:1:0
] enclosu 5001b4d516e9c03d - [6:0:2        :0] disk 5000c50072e9d0c4 /dev/sdg [6:0:3:0] enclosu 5001517e85c9effd -        [6:0:4:0] disk 5000c5001209fe84 /dev/sdh




첫 번째 디스크는 WWN이 없는 비교적 오래된 SATA 디스크이므로 공백이 있습니다. iSCSI 장치에서 '-u'를 사용하는 예는 개요 섹션에 나와 있습니다. '--unit'을 '--wwn'과 비교하면 전자가 더 일반적이며 이제는 선호된다는 것을 알 수 있습니다. 예를 들어 '--unit'은 인클로저와 핸들 iSCSI 장치와 같은 비디스크 장치의 LU 이름을 표시합니다(하지만 '--wwn' 옵션은 표시하지 않음).

NVMe 장치에 대한 지원은 lsscsi 버전 0.30에 추가되었습니다. 사용 예는 위의 PCIe 전송 섹션을 참조하세요.

6) 다운로드 및 빌드 정보

다음은 lk 2.6 및 3 시리즈에 사용 가능한 lsscsi 버전 표입니다.
 

타르볼             바이너리 rpm + deb 소스 rpm 노트
lsscsi-0.11.tgz lsscsi-0.11-1.i386.rpm lsscsi-0.11-1.src.rpm lk 2.6.1에 적합
lsscsi-0.12.tgz lsscsi-0.12-1.i386.rpm lsscsi-0.12-1.src.rpm lk 2.6.6, 장치 주요+부차에 대해 '-d' 추가
lsscsi-0.13.tgz

lk 2.6.7 --long 옵션에 타임아웃 값 추가
lsscsi-0.14.tgz lsscsi-0.14-1.i386.rpm lsscsi-0.14-1.src.rpm sysfsutils-1.2.0 이상을 사용하기 위한 포트
lsscsi-0.15.tgz lsscsi-0.15-1.i386.rpm lsscsi-0.15-1.src.rpm lk 2.6.12는 선택 인수와 /dev 스캐닝을 선택적으로 사용합니다. libsysfs를 사용하지 않습니다.
lsscsi-0.16.tgz lsscsi-0.16-1.i386.rpm lsscsi-0.16-1.src.rpm lk 2.6.14, osst 및 ch 장치 수정, Debian 빌드. libsysfs를 사용하지 않습니다.
lsscsi-0.17.tgz lsscsi-0.17-1.i386.rpm lsscsi-0.17-1.src.rpm lk 2.6.16, lk 2.6.16-rc1에 처음 나타난 커널(sysfs) 변경 사항은 이 버전에서 블록 장치를 확인하는 데 필요합니다.
lsscsi-0.18.tgz lsscsi-0.18-1.i386.rpm lsscsi-0.18-1.src.rpm sysfs에서 "일반" 및 "테이프" 심볼릭 링크를 삭제할 수 있도록 허용합니다.
lsscsi-0.19.tgz
20070125
lsscsi-0.19-1.i386.rpm
lsscsi_0.19-0.1_i386.deb
lsscsi-0.19-1.src.rpm 전송 정보 추가, '--list' 옵션, lk 2.6.20에 대한 수정
lsscsi-0.20.tgz
20080709
lsscsi-0.20-1.i386.rpm
lsscsi_0.20-0.1_i386.deb
lsscsi-0.20-1.src.rpm lk 2.6.26의 경우 CONFIG_SYSFS_DEPRECATED_V2가
정의되지 않음
lsscsi-0.21.tgz
20080910
lsscsi-0.21-1.i386.rpm
lsscsi_0.21-0.1_i386.deb
lsscsi-0.21-1.src.rpm lk 2.6.26에 대한 추가 변경 사항
lsscsi-0.22.tgz
20081226
lsscsi-0.22-1.i386.rpm
lsscsi_0.22-0.1_i386.deb
lsscsi-0.22-1.src.rpm '--protection' 옵션으로 보호 정보, ATA, SATA 및 USB 전송 정보 표시
lsscsi-0.23.tgz
20091203
lsscsi-0.23-1.i386.rpm
lsscsi_0.23-0.1_i386.deb
lsscsi-0.23-1.src.rpm /proc/mounts 스캔 중지; '--sysfsroot=PATH' 옵션으로 재정의되지 않는 한 /sys를 가정합니다.
lsscsi-0.24.tgz
20101224
lsscsi-0.24-1.i386.rpm
lsscsi_0.24-0.1_i386.deb
lsscsi-0.24-1.src.rpm 현재 허용되는 "<NULL>"에 "(null)"을 NULL의 문자열 표현으로 추가합니다. FC 전송 구문이 변경됩니다(콜론에서 슬래시로). lk 2.6.32 이상에서 필요합니다.
lsscsi-0.25.tgz
20110509
lsscsi-0.25-1.i386.rpm
lsscsi_0.25-0.1_i386.deb
lsscsi-0.25-1.src.rpm --size 및 --protmode 옵션 추가
lsscsi-0.26.tgz
20120219
lsscsi-0.26-1.i386.rpm
lsscsi_0.26-0.1_i386.deb
lsscsi-0.26-1.src.rpm --wwn 옵션과 FCoE 지원 추가
lsscsi-0.27.tgz
20130508
lsscsi-0.27-1.i386.rpm
lsscsi-0.27-1.x86_64.rpm
lsscsi_0.27-0.1_i386.deb
lsscsi_0.27-0.1_amd64.deb
lsscsi-0.27-1.src.rpm --lunhex (-x) 옵션 추가: 64비트만큼 큰 sysfs에서 Linux LUN 번호를 허용합니다. scsi_id (-i) 옵션 추가: /dev/disk/by-id/에서 udev가 정보를 파생합니다. 많은 수의 디스크 처리를 개선합니다.
lsscsi-0.28.tgz
20141127
lsscsi-0.28-1.i386.rpm
lsscsi-0.28-1.x86_64.rpm
lsscsi_0.28-0.1_i386.deb
lsscsi_0.28-0.1_amd64.deb
lsscsi-0.28-1.src.rpm --unit (-u) 옵션 추가: ATA 디스크의 LU 이름이나 WWN을 표시합니다. lk >= 3.15가 필요합니다.
lsscsi-0.29.tgz
20160514
늦음



lsscsi-0.30.tgz
20180612
lsscsi_0.30-0.1_amd64.deb
lsscsi-0.30-1.x86_64.rpm
lsscsi-0.30-1.src.rpm [N:*:*:*] 또는 [N:*] 튜플로 표시되는 NVMe 지원을 추가합니다. 구문 분석을 돕기 위해 --brief 및 --pdt 옵션과 --sz-lbs 옵션을 추가합니다.
lsscsi-0.31.tgz
20200220


주로 버그 수정 버전입니다
lsscsi-0.32.tgz
20210505
lsscsi_0.32-0.1_amd64.deb
lsscsi-0.32-1.x86_64.rpm
lsscsi-0.32-1.src.rpm SCSI 호스트에 사용 가능한 경우 nr_hw_queues를 인쇄합니다. NVMe 장치 구문 분석을 개선합니다. 출력할 최상의 SCSI ID(--scsi_id)를 선택하는 논리입니다.

최신 변경 로그는 다음과 같습니다 .

tarball에서 빌드하려면, 그 내용을 추출하고, 추출된 하위 트리의 최상위 디렉토리로 이동한 다음 ' ./configure;make;make install '을 실행합니다. 일반적인 autotools 규칙이 적용됩니다. 일부 구성 파일이 변경되면 ./autogen.sh 스크립트를 호출해야 할 수 있습니다. ./build_debian.sh 스크립트는 Debian 패키지를 생성하기 위해 제공됩니다. lsscsi.spec 파일은 "rpm" 스타일 패키지를 빌드하기 위해 제공됩니다.

6.1 ) Github 미러

lsscsi 패키지는 subversion을 사용하여 작성자가 개발했습니다. 오름차순 정수인 Subversion 개정은 ChangeLog 파일과 버전 문자열(예: ' lsscsi -V ')에서 볼 수 있습니다. 일부 사용자는 git 접근 권한을 요청했고 기여자는 github에 git 미러를 설정했습니다.

베타가 메인 페이지에 게시될 때마다 해당 미러에 업데이트가 전송되며, 그보다 더 자주 전송될 수도 있습니다. 문제가 있으면 작성자에게 보고해 주세요.

메인 페이지 로 돌아가기 .

더글러스 길버트(dgilbert@interlog.com)


마지막 업데이트: 2021년 5월 5일

 

출처: https://sg.danny.cz/scsi/lsscsi.html