본문 바로가기

Linux is..../My Skills

SCSI Addressing에 대한 이해

그간 바쁘다고 포스팅을 게을리했더니....정말이지 머릿속이 백지장이 된듯하네요...;;쩝
아무튼 오늘은 간만이지 필받은(?)하루여서 이렇게 늦은시간에 포스팅을 하게되었습니다.

그럼 오늘도 역시나 반말(ㅜㅜ)로 포스팅을 이어나가도록 하겠습니다.(__)

SCSI Address란 무엇인가?
정말이지 어렵다. 왜 어렵냐하면, 미들웨어급에서 하이엔드급으로 오게되면 많은 스토리지벤더사의 스토리지를 만지게 되며, 그와 동시에 XB,TB 등과 같은 대용량의 파일시스템을 만지게 되는일이 빈번하게 생기기 떄문이다.
이럴때 정확한 개념이 잡혀 있어야 나에게 주어진(?) 볼륨들을 컨트롤 할수 있고 Formatting을 통해 사용자가 사용할수 있게 만들수 있다. 물론 트러블슈팅이 생겼을 경우, 어느 정도의 정보를 통해 디버깅을 할수 있을 것이다. 
그만큼 SCSI Address개념이 중요하다고 말할수 있다는 거다

일반적으로 SCSI 프로토콜은 시스템과 상관없이 획일화되고 공통적인 4개의 시퀸스ID를 가지게 된다.

예를 들어보면 아래와 같이 것을 본적이 있을 것이다.
Host, Bus, Target, Lun (HBTL) or Host, Channel, Id, Lun (HCIL ) <-- SCSI addresses

HBTL is the most commonly used acronym in the SCSI literature however some commands and log files label this HCIL instead (the numeric address values are identical in either case). HBTL is also sometimes known as a SCSI address quad.

추가적으로,
<Host:Bus:Target:Lun> or <H:B:T:L> 이와 같은 포맷형태를 띄게 되며, 사용자는 sg_map명령어를 통해 SCSI 레이어의  각각 다른 모듈을 매핑할수 있으며 아래와 같은 정보를 얻을수 있다.

# sg_map -x
/dev/sg0  0 0 0 0  8
/dev/sg1  0 0 1 0  1  /dev/nst0
/dev/sg2  1 0 0 0  0  /dev/sda
/dev/sg3  1 0 1 0  0  /dev/sdb

sg_map에 의해 출력되어지는, SCSI generic device number(sg device)정보는 SCSI HBTL값임을 알수 있다.
상세한 내용은 다음을 참고하도록 하자.

/dev/sg0 has HBTL <0:0:0:0>, device type 0x8 which is a TYPE_MEDIUM_CHANGER and no extra /deventry because it is only accessed as a SCSI generic device.
/dev/sg1 has HBTL <0:0:1:0>, device type 0x1 which is a TYPE_TAPE and /dev/nst0 because it is accessed as a SCSI tape device via st_mod.ko linked in the kernel.
/dev/sg2 has HBTL <1:0:0:0>, device type 0x0 which is a TYPE_DISK and /dev/sda because it is accessed as a SCSI disk device via sd_mod.ko linked in the kernel.
/dev/sg3 has HBTL <1:0:1:0>, device type 0x0 which is a TYPE_DISK and /dev/sdb because it is accessed as a SCSI disk device via sd_mod.ko linked in the kernel.

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ADIC     Model: FastStor DLT     Rev: D116
  Type:   Medium Changer                   ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: Quantum  Model: DLT4000          Rev: D782
  Type:   Sequential-Access                ANSI SCSI revision: 02
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: FUJITSU  Model: MAJ3091MC        Rev: 5508
  Type:   Direct-Access                    ANSI SCSI revision: 04
Host: scsi1 Channel: 00 Id: 01 Lun: 00
  Vendor: FUJITSU  Model: MAJ3091MC        Rev: 5508
  Type:   Direct-Access                    ANSI SCSI revision: 04
Host: scsi1 Channel: 00 Id: 02 Lun: 00
  Vendor: IBM      Model: DDYS-T36950M     Rev: S96H
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi1 Channel: 00 Id: 06 Lun: 00
  Vendor: DELL     Model: 1x5 U2W SCSI BP  Rev: 1.16
  Type:   Processor                        ANSI SCSI revision: 02

참고로 RHEL5에 대한 scsi deivce정보는 /sys 밑에 대부분의 파일시스템을 확인할수 있으며 systool명령어를 제공하여, 정확한 정보또한 획득할수 있을 것이다.

# cat /sys/class/scsi_host/host#/state

where host# is the H-value in the HBTL SCSI addressing format, which references the appropriate Fibre Channel HBA. For emulex adapters (lpfc driver) for example, this command would yield:

# cat /sys/class/scsi_host/host1/stateLink Up - Ready:Fabric

For qlogic devices (qla2xxx driver) the output would instead be as follows:

# cat /sys/class/scsi_host/host1/stateLink Up - F_Port

너무나도 많은 정보가 있으나, 오늘은 졸려서 이만 작성해야 겠다.
역시 슐한잔한후의 포스팅이란....쩝;;