[CentOS] iSCSI 알아보기 [Wireshark / ChatGPT]
Nowhere 와 Now here 의 차이

IT/ㄴ Linux

[CentOS] iSCSI 알아보기 [Wireshark / ChatGPT]

TIENE 2023. 8. 14. 14:54
반응형

iSCSI(Internet Small Computer System Interface)

- Ethernet과 같은 IP Network를 통해 SCSI(Small Computer System Interface) 명령 및 데이터를 전송할 수 있다.

- iSCSI를 사용하면 일반적으로 iSCSI initiator라고 하는 서버 및 컴퓨터가 iSCSI target이라고 하는 저장 장치에 원격으로 접근할 수 있다.

- 즉, 네트워크를 통해 iSCSI Initiator(클라이언트)와 iSCSI Target(저장 장치) 간의 통신을 가능하도록 한다.

- initiator가 iSCSI PDU에 캡슐화된 SCSI Command을 전송하면 대상이 데이터 또는 상태 정보로 응답한다.
- 프로세스 전반에 걸쳐 인증, 오류 처리 및 세션 관리를 통해 장치 간의 안전하고 안정적인 데이터 전송을 보장한다.

 

[기본 구성요소]

iSCSI Initiator

- iSCSI 대상과의 통신을 시작하는 클라이언트

- Initiator가 iSCSI PDU(Protocol Data Units)에 캡슐화된 SCSI 명령을 대상으로 전송한다.

 

iSCSI Command

- Initiator는 원격 스토리지 리소스에 대한 스토리지 작업을 수행하기 위해 다양한 SCSI 명령(예: 읽기, 쓰기, 조회)을 Target으로 보낸다.


iSCSI Target

- Initiator가 보낸 SCSI 명령에 응답하는 스토리지 장치 또는 시스템이다.

- 네트워크를 통해 이니시에이터에 해당 LUN(스토리지 리소스)을 제공한다.

 

iSCSI InitiatorTarget 관계

- Initiator는 TCP/IP 또는 다른 적절한 네트워크 프로토콜을 사용하여 Target과 연결을 설정한다.

- 연결이 설정되면 Initiator Target의 스토리지 리소스를 읽거나 쓰기 위한 SCSI 명령을 보낼 수 있다.

 

 

[요약]

iSCSI는 SAN(Storage Area Networks) 및 NAS(Network-Attached Storage) 시스템을 비롯한 원격 스토리지 리소스에 접근하는 데 널리 사용되며, IP 네트워크를 통해 스토리지 기능을 확장하는 비용 효율적인 방법을 제공하므로 데이터 스토리지 및 관리에 효율적인 프로토콜(기술)이다.


- 시간 순서로 알아보기

1. Initialization and Discovery:
- iSCSI Initiator가 iSCSI Target과의 네트워크 연결을 초기화하고 설정한다.
- Initiator는 SendTargets 또는 iSNS(Internet Storage Name Service)와 같은 메커니즘을 사용하여 네트워크에서 사용 가능한 iSCSI 대상을 검색한다.

2. Login Phase:
- InitiatorTarget으로 iSCSI 로그인 요청을 전송하여 로그인 단계를 시작한다.

- Target은 매개 변수, 인증 방법 및 세션 설정의 협상을 나타내는 로그인 응답으로 응답한다.

Login 과정 

 

3. Session Establishment
- Initiator Target은 MaxBurstLength, FirstBurstLength 및 기타 설정을 포함한 세션 매개 변수에 동의한다.
- 세션이 설정되고 각 세션은 중복 및 로드 밸런싱을 위해 여러 개의 연결로 구성될 수 있다.

4. Authentication and Authorization
- 인증이 필요한 경우 Initiator와 Target은 CHAP(Challenge Handshake Authentication Protocol)과 같은 방법으로 인증을 수행하여 안전한 통신을 보장한다.

5. Command Execution
- Initiator는 설정된 세션을 통해 iSCSI PDU(Protocol Data Units)에 캡슐화된 SCSI 명령(예: 읽기, 쓰기, 조회)을 전송한다.
- 이러한 SCSI 명령은 스토리지 블록에 대해 수행할 작업을 지정합니다.

6. Data Transfer
- 읽기 및 쓰기 명령의 경우 Target 이 데이터 또는 상태 정보로 응답한다.
- Data-In PDU는Target에서 Initiator로 데이터를 전송하는 데 사용된다.

7. Error Handling and Recovery
- InitiatorTarget 모두 오류를 모니터링하고 수신된 데이터를 확인한다.
- 오류의 경우, 오류 복구 절차가 시작되며, 여기에는 데이터의 재전송이 포함될 수 있다.

8. Logout Phase
- Initiator 가 Target으로 로그아웃 요청을 보내 로그아웃 단계를 시작한다.
- Target이 세션과 관련된 리소스를 해제하고 로그아웃 요청을 승인합니다.

Logout 과정


9. Termination and Cleanup
- iSCSI 세션이 종료되고 Initiator 및 Target 릴리스 리소스가 종료된다.
- Initiator 와 Target은 향후 통신을 위해 지속적인 연결을 유지할 수 있다.

 


 

SCSI (Small Computer System Interface) commands 

- 스토리지 장치에서 수행해야 할 작업을 지시하기 때문에 iSCSI 프로토콜의 중요한 요소
- 이러한 명령은 스토리지 장치에서 데이터를 읽고 쓰고 관리하는 방법을 정의한다.


1. Test Unit Ready
- 목적: 저장 장치가 명령을 수락할 준비가 되었는지 확인한다.
- 대상의 가용성 및 준비 상태를 확인하기 위해 Initiator가 전송한다.


2. Inquiry
- 목적: 대상의 기능 및 특성에 대한 정보를 검색한다.
- Initiator가 대상을 쿼리하여 장치, 벤더, 지원되는 기능 등에 대한 정보를 수집한다.


3. Read (6)  / Read (10)  / Read (16) 
- 목적: 저장 장치에서 데이터를 읽는다.
- Initiator가 특정 LUN(논리 장치 번호) 주소에서 데이터를 읽도록 이 명령을 대상으로 전송한다.


4. Write (6)  / Write (10)  / Write (16)
- 목적: 스토리지 장치에 데이터를 기록한다.
- Initiator는 특정 LUN 주소에 데이터를 쓰기 위해 이 명령을 대상으로 전송한다.

 

 


5. Request Sense 
- 목적: 이전 명령의 실패에 대한 추가 감지 데이터를 검색한다.
- 명령이 실패할 때 자세한 오류 정보를 요청하기 위해 Initiator가 전송한다.

 

6. Mode Sense (6)  / Mode Sense (10) 
- 목적: 장치 설정 및 작동 모드에 대한 정보를 검색한다.
- Initiator는 다양한 작동 및 구성 모드를 이해하기 위해 Target을 쿼리한다.


7. Test Unit Ready 
- 목적: 저장 장치가 명령을 수락할 준비가 되었는지 확인한다.
- 대상이 작업을 수행할 준비가 되었는지 확인하기 위해 Initiator가 전송한다.


8. Report LUNs 
- 목적: 대상에서 사용할 수 있는 LUN(논리 장치 번호) 목록을 검색한다.
- Initiator가 스토리지 토폴로지를 이해하기 위해 사용 가능한 LUN 목록을 요청한다.

 

9. Start/Stop Unit
- 목적: 저장 장치를 시작하거나 중지한다.

- Initiator는 이 명령을 전송하여 스토리지 디바이스를 시작하거나 중지할 수 있다.(지원되는 경우에만 해당한다.)

 

10. Read Capacity
- 목적: 저장 장치의 용량 및 블록 크기를 검색합니다.
- Initiator가 대상을 쿼리하여 스토리지 용량 및 블록 크기를 결정한다.

 

11. Synchronize Cache
- 목적: 장치의 캐시와 실제 저장 매체 간의 데이터 일관성을 보장하는 것이다.

- 이는 일반적으로 데이터 수정이 물리적으로 비휘발성 스토리지에 기록되는 것을 보장할 필요가 있을 때 사용된다.

 


참고 : https://chat.openai.com

 

ChatGPT

A conversational AI system that listens, learns, and challenges

chat.openai.com

 

반응형