Engineering/None

[SCSI] SCSI 와 SCSI Addressing

5=0 2021. 6. 4. 11:43

Content

1. SCSI 란? 

2. SCSI Addressing (Host:Bus:Target:LUN)

 

 

1. SCSI 란?

SCSI란 Small Computer System Interface 의 줄임말 입니다. 

이름에서 알 수 있 듯 'Interface' 입니다. 즉 기기간의 연결 점을 말하죠.

컴퓨터 주변 기기들을 연결하기 위한 직렬 표준 통신 규격 입니다. 

 

SCSI가 통신 규격이라고 말씀 드렸죠.

통신 규격이란 어떤 데이터를 주고 받을 때 정해진 명령어 형태를 사용하란 약속입니다. 

SCSI가 따라서 눈에 보이는 하드웨어 자체를 말하는 것은 아니죠.

다만 이 규격을 따라 통신하기 위한 SCSI 연결 선들이나 SCSI 컨트롤러 들이 존재할 뿐입니다. 

 

 

 

SCSI 컨트롤러가 있다고 말씀 드렸는데요.

 

SCSI는 기기들을 체인형식으로 줄줄이 사탕 처럼 연결합니다. 

아래 그림 처럼 말이죠.

From Youtube: Understanding SCSI - CompTIA A+ 220-801: 1.5

 

 

그럼 이 줄줄이 이어진 기기들이 어쨌든 메인 프로세서가 있는 메인 컴퓨터에 연결되어야 겠죠? 

이렇게 SCSI 체인과 메인 컴퓨터 사이에서 연결을 돕는 것이 SCSI 컨트롤러 입니다. 

위 사진에서도 맨 앞단에 SCSI Adaptor (=Host Controller) 라는 것이 보일 겁니다. 

이게 바로 SCSI 컨트롤러 입니다. 

 

 

SCSI 컨트롤러가 있다는 것이 SCSI의 장점이기도 합니다. 

연결된 SCSI 장치들을 CPU에게 관리하게 하는 것이 아니라 SCSI 컨트롤러가 처리 하기 때문에,

CPU 부하를 주지 않아 빠른 처리가 가능합니다. 

 

 

 

 

그럼 SCSI 기기들은 어떤 선들로 연결 될까요? 

SCSI 연결 포트 및 연결 선 들은 다양하게 발전해 왔습니다. 

아래 사진이 다양한 종류의 SCSI 연결 선이 꽂히는 포트들을 보여 줍니다. 

언젠가 서버나 PC 뒷몇에서 본 적 있으신 것 같지 않으신가요? 

From Youtube: Understanding SCSI - CompTIA A+ 220-801: 1.5

 

 

2. SCSI Addressing 

자 그럼 SCSI로 연결된 다양한 주변 장치들을 컴퓨터가 구분해 낼 필요가 있겠죠? 

그래서 컴퓨터는 각 SCSI 기기들에게 ID를 부여 합니다. 

 

근데 1장에서 말씀 드린 것처럼, SCSI 기기들은 체인 형식으로 조금 복잡하게 연결되어 있죠?

그래서 ID를 Hierarchical 하게 부여하는 addressing 체계를 갖고 있습니다. 

 

SCSI Addressing를 이해하기 위해서는 Host, Bus, Target, LUN(Logical Unit Number)를 이해해야 합니다. 

왜냐하면 SCSI Addressing은 Host, Bus, Target, LUN 순서로 [H:B:T:L] 형식으로 주소를 지정하기 때문입니다. 

 

그럼 각각의 요소들을 아래 그림으로 바로 설명 드리겠습니다. 

1장에서 설명한 SCSI 체인 그림을 조금 수정해 보았습니다. 

 

 

 

a. Host: 

1장에서 설명드린 SCSI 컨트롤러를 말합니다.

큰 컴퓨팅 시스템의 경우 하나의 컴퓨터에 여러개의 Host가 있을 수 있고, 각 host마다 0부터 오름차순으로 ID를 부여 합니다. 

 

b. Bus:

Bus는 SCSI 컨트롤러에 SCSI 체인 (줄줄이 사탕)을 연결하는 곳입니다. 

SCSI 컨트롤러 하나에 여러개의 Bus가 있을 수 있고, 각 Bus마다 0부터 오름차순으로 ID를 부여 합니다. 

하나의 SCSI 컨트롤러(Host) 안에서 구분 되는 ID 이기 때문에 다른 SCSI 컨트롤러에 있는 Bus와 같은 ID를 가질 수 있습니다. 

(i.g. Host#0의 Bus#1, Host#1의 Bus#1)

 

c. Target:

하나의 Bus에 SCSI 체인으로 여러 기기들이 줄줄이 연결되어 있죠? 

그럼 이 줄줄이 사탕으로 연결된 각각의 SCSI 기기들에도 ID를 0부터 오름차순으로 ID를 부여 합니다. 

마찬가지로 하나의 Bus 안에서 구분되는 ID로 다른 bus에 있는 target과 같은 ID를 가질 수 있습니다. 

 

d. LUN (Logical Unit Number):

스토리지 디바이스의 경우 그 안에 논리적인 디바이스를 구성할 수 있습니다. 

그런 경우 하나의 SCSI 디바이스 (=target)안의 논리 디바이스들에게 LUN ID를 0부터 오름차순으로 부여합니다. 

 

 

조금 이해가 되셨나요? 

그럼 아래 예시까지 이해가 된다면 SCSI Addressing에 대해 완벽히 이해한 것 입니다. 

 

https://access.redhat.com/articles/17628

위 그림을 보면 하나의 Host가 있죠.

 └━ 그리고 이 Host 안에 2개의 Bus가 있습니다. 

       └━그리고 Bus ID 0번에 SCSI 체인 하나

            └━ 이 체인 에는 Target 디바이스 하나 

                  └━ Target 디바이스 안에는 0~n까지 LUN 이 있습니다. 

       └━ Bus ID 1번에 SCSI 체인 하나

            └━ 이 체인 에는 Target 디바이스 하나 

                  └━ Target 디바이스 안에는 0~n까지 LUN 이 있습니다. 

 

 

자 SCSI Addressing은 [Host:Bus:Target:LUN] 형식으로 주소를 지정한다고 했죠.

그럼 [0:1:0:2] 는 어떤 디바이스의 주소인지 찾아볼까요? 

  • Host는 0번. 이 시스템에서는 host가 하나 밖에 없지만 첫번 째 Host 겠죠?
  • Bus는 1번. 따라서 위 그림의 2개 Bus중 아래 Bus 겠죠? 
  • Target은 0번. 1번 버스에 연결된 SCSI 체인 중 첫번 째 디바이스 겠죠? 위 그림의 오른쪽 하단 target 입니다. 
  • 마지막 LUN 2번. 방금 찾은 target에서의 LUN 2번을 의미하겠죠. 즉 위 그림의 빨간 글씨로 표시된 LUN 입니다. 

 

A. Reference

 

SCSI addressing 이란?

[H:B:T:L] H = Host ID ID of the SCSI card usually refered as Host Bus Adapter (HB...

blog.naver.com