벡서 iscsi 소개 개요 이백서에서는 iscsi(internet Small Computer Systems Interface) 프로토콜에대한기본적인작업지식을설명합니다. iscsi 는 TCP/IP 네트워크를통해블록중심형스토리지데이터를맵핑하기위한 SCSI 전송프로토콜입니다. 이문서에서는주로 iscsi 에대해설명하므로 SCSI 와 SAN(Storage-Area Network) 프로토콜및아키텍처에대한배경지식이필요합니다. 이러한영역을다루는백서목록은이문서의끝부분을참조하십시오. 이문서에서제공하는 iscsi 프로토콜에대한설명은인터넷엔지니어링태스크포스 (IETF) 의 IP Storage(IPS) iscsi 초안 10 을기초로합니다. 자세한내용을보려면이문서의끝부분에있는참조 URL 을이용하십시오. 이문서에는 iscsi 프로토콜및프로세스에대한분류와 iscsi 보안및관리상의고려사항및기본적인구현정보가포함되어있습니다. 또한 iscsi 프로토콜과관련된용어와약어에대한정의도포함되어있습니다. iscsi 전망 iscsi에대한기본개념개념적으로 iscsi+tcp+ip는병렬 SCSI 케이블이나 FCP(Fibre Channel Protocol; 파이버채널을통한 SCSI) 의대체방법이아니라 Layer3/4 네트워크전송과동일한방법입니다. iscsi의기본개념은기존 IP 네트워크에의투자를활용하여 SAN 을촉진하고확장하는것입니다. 이를위해호스트와 SAN 노드사이에서 TCP/IP 프로토콜을사용하여 SCSI 명령과데이터를전송합니다. 일반적으로 SAN 에서는호스트와스토리지시스템을상호연결하는별도의전용인프라가필요했습니다. 이러한상호연결을위한기본수단은 SCSI 전송을제공하는파이버채널네트워크이기때문에결과적으로 IP 애플리케이션과관련스토리지를지원하기위해별도의병렬네트워크를구축해야합니다. 또한파이버채널은원시형태로낮은대역폭의 WAN 네트워크를통해전송될수없으므로특수한하드웨어와처리가필요합니다. 하지만 IP 네트워크에서 iscsi 를사용하면파이버채널네트워크를교체하지않아도 IP 로연결된호스트가파이버채널기반 SAN 에도달할수있습니다.
IP 네트워크인프라는서버와블록지향형스토리지장치를효율적으로상호연결할수있다는장점이있습니다. IP 네트워크는비용면에서효율적이며보안과확장성, 호환성, 네트워크관리및스토리지관리기능을제공합니다. IP 네트워크는다음과같은장점이있습니다. IP 네트워크는관리, 보안및서비스품질 (QoS) 을위한미들웨어및네트워크프로토콜에대한가용성이높습니다. IP 네트워크의설계및관리에서개발된기술을 IP SAN 에적용할수있습니다. 경험많고숙련된 IP 네트워킹직원을활용하여이네트워크를설치하고운영할수있습니다. IP 네트워크에서는전체조직이표준 IP 인프라, 제품및서비스를사용함으로써경제적인이득을얻을수있습니다. iscsi 는기존의 IP LAN 및 WAN 인프라와호환됩니다. 거리를제한하는것은 IP 네트워크가아니라애플리케이션시간종료때문입니다. iscsi 의가치 기존의 IP 네트워크에구축하기때문에호스트를스토리지장치에연결하기위해호스트어댑터를추가할필요가없고스토리지리소스를보다잘이용할수있으며별도의 WAN 인프라가필요하지않습니다. iscsi 에서는 SCSI 에대한전송수단으로 TCP/IP 를사용하므로주로이더넷으로연결되는기존의 IP 기반호스트연결을통해정보를전달할수있습니다. 이외에도기존의스토리지리소스를보다잘활용할수있다는장점이있습니다. 호스트에서기존의 IP/ 이더넷네트워크연결을사용하여스토리지요소에액세스할수있으므로스토리지를통합하고활용도를높이기가쉬워졌습니다. 앞에서설명한대로과거의 SAN 에서는 WAN 연결을별도로제공해야했습니다. 이제기존의 WAN 연결을사용하여호스트가 IP 를통해스토리지에액세스함으로써비용을상당히절약할수있습니다. 다른 IP SAN 프로토콜 IP 네트워크를통한스토리지트래픽전송에관해제안된다른초안들도있습니다. 여기에는 FCIP(Fibre Channel over IP), ifcp(internet Fibre Channel) 및 isns(internet Storage Name Service) 등이있습니다. 이러한프로토콜은이문서의범위를벗어나지만참고자료에서자세한내용을확인할수있습니다. iscsi 표준트랙 iscsi 초안은 IETF 의작업그룹인 IPS(IP Storage) 에서개발중인여러프로토콜중하나입니다. 시스코, IBM, HP 와같은업계선두업체들은초안을표준화하기위해노력하고있습니다. 현재릴리즈는 2002 년 6 월 1 일에발표된 draft-ietf-ips-iscsi-14 입니다. iscsi 초안은금년후반기에인터넷엔지니어링스티어링그룹 (IESG) 에제출되어제안된표준으로서검토될예정입니다. 수많은공급업체들이현재의초안표준에따라제품을개발하고있습니다. 사전표준 iscsi 솔루션을설치할경우에는상호운용성을이루기위해공급업체제품이기반으로하는초안을확인해야합니다.
iscsi 의기초 이단원에서는전체적인기능을이해하기위해 iscsi 의다양한레이어와프로세스에대해설명합니다. 따라서자세한패킷의포맷과구조는의도적으로생략되었습니다. 여기서는주로 iscsi 와 IP 를통한 SCSI 전송에만중점을둡니다. 그러나이내용을보다쉽게이해할수있도록 SCSI 아키텍처에대해간단히설명합니다. SCSI 아키텍처 SCSI 는 Small Computer Systems Interface 를나타냅니다. 이용어는디스크드라이브및컨트롤러제조업체인 SASI(Shugart Associates System Interface) 에서처음사용되었습니다. IBM 입 / 출력 (I/O) 채널을기반으로한 SASI 인터페이스는널리수용되었습니다. 처음소개된 1979 년당시는 8 비트병렬인터페이스만사용할수있었습니다. SASI 는기본적으로독립적인병렬장치를중소형컴퓨터에연결하는데사용되었습니다. 1982 년에 SASI 를기반으로한공식적인 SCSI 초안이개발되었으며, 여기에기능이추가되어 1 세대 SCSI 표준이되었습니다. 새기능에는피어 - 투 - 피어통신, 논리장치, 중재등이있습니다. 미국국립표준기구 (ANSI) 는 1994 년에 SCSI-2 를승인했습니다. SCSI-2 는모든디스크드라이버외에도많은주변장치에소프트웨어인터페이스를제공하는 CCS(Common Command Set) 의확장된정의를포함하는완전한독립형문서입니다. SCSI-2 는기본적으로데이터처리성능을배가하는차등인터페이스와 16 비트및 32 비트데이터버스를정의하며 SCSI-1 과도호환됩니다. SCSI-3 표준은현재개발중입니다. SCSI-3 은 SCSI-2 를 SCSI 아키텍처모듈 (SAM) 이라는일반적인프레임워크에맞춰보다작은계층모듈로분해한표준모음입니다 ( 그림 1 참조 ). 그림 1 SCSI 아키텍처모델및 SCSI-3 표준 Common Access Method CAM ASPI Generic Architecture Model SCSI Device-Type Specific Command Sets SBC SSC SES More Shared Command Set (for all SCSI Device Types) SPC-2/SPC-3 Transport Protocols FCP SBP ATAPI SPI-x iscsi Physical Interconnects FC-xx 1394 SAM 은 SCSI 레이어의개념, entity 및상호작용을정의하며클라이언트 / 서버모델의 initiator and target entity 에대해규정합니다. initiator and target entity 간의상호작용을통해 initiator and target entity 에대한정보를교환할수있습니다 ( 그림 2 참조 ). 이러한정보의예로논리장치번호 (LUN) 가있습니다.
그림 2 SCSI initiator and target entity 간의상호작용 Application Client Device Service Request Device Service Response Task Management Request Task Management Response Logical Unit Device Server Task Manager Initiator Target SAM 은일반적인요건과구현요건에대해정의합니다. 서비스요청에는 SCSI 정보교환을위한기본빌딩블록인 CDB(Command Descriptor Block) 가포함되어있어야합니다. CDB 포맷은그림 3 과같습니다. 그림 3 SCSI CDB(Command Descriptor Block) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 Operation Code 1 2 Logical Block Address 3 4 5 Transfer Length Control Byte iscsi 용어 iscsi 초안에서는 IP 네트워크에연결된장치또는게이트웨이를나타내는 네트워크 entity 라는개념을사용합니다. 이네트워크 entity 는하나이상의네트워크포털을포함해야합니다. 네트워크 entity 에포함된 iscsi 노드는네트워크포털을사용하여 IP 네트워크에액세스할수있습니다. iscsi 노드는네트워크 entity 내에서해당 iscsi 이름으로식별되는 iscsi initiator and target entity 입니다. SAM 의정의에따르면 SCSI 장치란노드의 iscsi 이름입니다. 하나의 iscsi 노드에는한개의 SCSI 장치가있습니다. 네트워크포털은기본적으로 TCP/IP 프로토콜스택을구현하는네트워크 entity 내의컴포넌트입니다. initiator entity 에관한네트워크포털은해당 IP 주소로만식별됩니다. iscsi 대상 entity 의경우에는해당 IP 주소와 TCP 수신포트로네트워크포털을식별합니다. iscsi 클라이언트및서버의컴포넌트는그림 4 를참조하십시오. iscsi 통신을위해 initiator 네트워크포털과대상네트워크포털간의연결이설정됩니다. initiator iscsi 노드와대상 iscsi 노드간의 TCP 연결그룹이 iscsi 세션을구성합니다. SCSI I_T Nexus 와비슷하지만똑같지는않습니다.
그림 4 iscsi 클라이언트및 iscsi 서버의컴포넌트 Network Entity (iscsi Client) iscsi Node (iscsi Initiator) Network Portal 10.1.1.1 Network Portal 10.1.2.1 IP Network Network Portal 10.1.1.2 and tcp port 3260 Network Portal 10.1.2.2 and tcp port 3260 iscsi Node (iscsi Target) iscsi Node (iscsi Target) Network Entity (iscsi Server) 표준초안에서는포털그룹에대해서도정의합니다. iscsi 는한세션내에서다중 TCP 연결을지원하므로여러네트워크포털간을연결할수있습니다. 따라서포털그룹은다른네트워크포털간의다중연결로구성되는 iscsi 세션을지원하는네트워크포털집합입니다. 이름및주소지정 iscsi 프로토콜에서는 iscsi initiator entity 와대상 entity 의이름및주소를지정하기위해한가지방법을사용합니다. 즉, 모든 iscsi 노드와 initiator entity 및대상 entity 는해당 iscsi 이름으로식별됩니다. iscsi 이름은 IP 주소로분석되는호스트유형이름이나세계적으로통용되는노드이름이아닙니다. 따라서이이름은노드위치와상관이없습니다. iscsi 이름포맷에는 iqn(iscsi 한정자이름 ) 포맷과 IEEE EUI 포맷등두가지가있습니다. iqn 포맷의 iscsi 이름은 iqn.1987-05.com.cisco.00.9f9ccf185aa2508c7a168967ccf96e0c.target1 과같습니다. iscsi 이름은다음과같은기능을제공한다는점에서유용합니다. 여러 initiator and target entity 가공통 IP 네트워크주소를공유할수있는방법 다중 IP 주소를통해여러 initiator 또는대상 entity 를액세스할수있는방법 노드의 IP 주소와방화벽에서의 IP 주소및포트맵핑의여부에관계없이노드를인식할수있는방법 iscsi 프로토콜은 iscsi 이름에대해대소문자일치작업이외의어떤처리작업도수행하지않습니다. iscsi initiator entity 이름은전세계적으로이 initiator entity 를식별하는고유이름입니다. 마찬가지로 iscsi 대상 entity 이름은전세계적으로이대상 entity 를식별하는고유이름을지정합니다. 이러한이름은 SAM 에서정의한 SCSI I_T Nexus 를식별하는데에도도움이됩니다.
iscsi 노드에대한주소지정은 <domain-name>[:port] 라는표준기반 IP 주소지정체계를따릅니다. <domainname> 은도트십진수표기법인 IPv4 주소, 콜론으로구분된 16 진수표기법인 IPv6 주소또는완벽한도메인이름중하나의포맷을사용합니다. iscsi 대상 entity 의경우주소와함께포트번호도지정할수있습니다. 포트를지정하지않으면 IANA(Internet Assigned Numbers Authority) 에서할당한기본포트 3260 이사용됩니다. iscsi 프로토콜 iscsi 프로토콜은 SCSI 원격프로시저호출 ( 기준 SAM) 모델을 TCP/IP 프로토콜로맵핑합니다. iscsi 프로토콜은전송하는 SCSI CDB 정보와상관없이자체개념레이어를제공합니다. 이러한방식으로 SCSI 명령은 iscsi 요청에의해전송되고 SCSI 응답및상태는 iscsi 응답에의해처리됩니다. iscsi 프로토콜작업도이와같은 iscsi 요청및응답메커니즘에의해수행됩니다 ( 그림 5 참조 ). 그림 5 iscsi 프로토콜스택 SCSI Applications (File Systems, Databases) SCSI Block SCSI Command Other SCSI SCSI Commands, Data, and Status iscs SCSI over TCP/IP TCP IP Ethernet, etc. SCSI 프로토콜에서와같이 iscsi 는 initiator entity, 대상 entity 및프로토콜데이터단위 (PDU) 라는통신메시지의개념을사용합니다. 마찬가지로 iscsi 전송방향은 initiator entity 를기준으로정의됩니다. 성능을개선하기위해 iscsi 는 단계축소 를사용하여명령또는응답과관련데이터를단일 iscsi PDU 로보낼수있습니다. iscsi 세션 iscsi 통신경로에서가장높은수준은 iscsi initiator entity 와 iscsi 대상 entity 사이에형성되는세션입니다. iscsi 에서는두종류의세션이정의됩니다. 하나는정상작동세션이고다른하나는 initiator entity 가사용할수있는대상 entity 를검색하기위해사용하는검색세션입니다. 세션은 initiator entity(isid) 및대상 entity(tsid) 컴포넌트로구성된세션 ID(SSID) 로식별됩니다. 세션내에 TCP 연결을추가하고제거할수있지만모든연결은동일한 initiator entity 및대상 entity iscsi 노드간에설정됩니다. 세션내의각연결은고유한연결 ID(CID) 를가집니다. SSID, ISID, TSID 및 CID 의구성에대해서는이문서의뒤에서보다자세하게설명합니다 ( 그림 6 참조 ).
그림 6 연결이한개이상설정된 iscsi 세션 iscsi Host iscsi Initiator iscsi Session TCP Connection TCP Connection TCP Connection iscsi Session iscsi Device iscsi Target iscsi Target iscsi 세션은 iscsi 로그인프로세스를통해설정됩니다. 이세션을사용하여특정 SCSI I_T Nexus 와연관된모든 TCP 연결을식별합니다. 한세션내에한개이상의 TCP 연결이있을수있습니다. initiator entity 가알려진포트나지정된대상포트를통해원하는대상에대한 TCP 연결을설정하면로그인프로세스가 initiator 됩니다. initiator and target entity 는서로에대한인증을수행하고프로토콜에대해협상할수있습니다. 로그인단계중에 iscsi initiator and target entity 는많은속성에대해협상합니다. 로그인단계를성공적으로마치면세션은 완전기능단계 에들어갑니다. 로그인과보안에대해서는뒤에서추가로설명합니다. iscsi 시퀀싱 iscsi 프로토콜은명령, 상태및데이터의순서및시퀀싱을유지관리하기위해여러가지레지스터를설치합니다. 각각의레지스터는부호없는 32 비트정수카운터입니다. 명령, 상태및데이터를교환하는동안이숫자들은 initiator entity 와대상 entity 간에적절한 iscsi PDU 필드로통신됩니다. 또한 initiator entity 나대상 entity 는 NOP-OUT/IN PDU 를이용하여시퀀싱및번호지정레지스터를동기화할수있습니다. 명령번호지정 iscsi 세션내에서모든명령 (initiator entity- 투 - 대상 entity PDU) 에는명령시퀀스번호 (CmdSN) 로번호가지정됩니다. CmdSN 을사용하면한세션에서해당명령을전달하는 TCP 연결이무엇이든관계없이모든명령이전송된순서대로전달됩니다. 명령시퀀싱은첫번째로그인명령에서시작하여이후의각명령에대해 1 씩증가합니다. 명령을해당 CmdSN 순서에따라 SCSI 레이어에전달하는작업은 iscsi target 레이어에서담당합니다. 단, 즉시전달하도록표시된명령은제외됩니다. 이런경우에는 CmdSN 이증가되지않으며 iscsi target entity 가명령을탐지하는즉시바로 SCSI 레이어로전달합니다. initiator and target entity 는 CmdSN 외에도예상명령레지스터 (ExpCmdSN) 와최대명령레지스터 (MaxCmdSN) 를유지관리합니다. target entity 는 SCSI 레이어에전달할수있는가장높은번호이며즉시실행되지않는명령인 CmdSN 에 1 을더한값을 ExpCmdSN 으로설정합니다. initiator entity 는이번호를통해대상이수신한마지막시퀀스명령을확인합니다. 여러 TCP 연결을통해명령을보낼수있기때문에 target entity 의대기열에 CmdSN 이 ExpCmdSN 보다높은명령이있을수있습니다. 시퀀스에맞지않는명령이 SCSI 레이어에전달되지않도록이러한명령은순서대로보관됩니다. MaxCmdSN 은 initiator entity 가 target entity 에추가명령을보낼대기열공간이있는지확인하는데사용됩니다. 대기열용량은 MaxCmdSN - ExpCmdSN + 1 로구할수있습니다.
상태번호지정명령번호지정과비슷하게상태응답에도상태시퀀스번호 (StatSN) 가순서대로지정됩니다. 마찬가지로 initiator entity 는예상상태시퀀스번호 (ExpStatSN) 레지스터를사용하여 target entity 에서수신한상태 PDU 를확인합니다. StatSN 과 ExpStatSN 의차이가미리설정된값을초과하면 initiator entity 는복구작업을시작합니다. 데이터시퀀싱데이터및요청 - 투 - 전송 (R2T) PDU 는각각 DataSN 과 R2TSN 을사용하여순서가지정됩니다. 데이터시퀀싱은같은명령내에서데이터를순서대로전달하기위해사용됩니다. 읽기작업의경우 DataSN 은 0 부터시작하고해당명령시퀀스에서이후의각데이터 PDU 에대해 1 씩증가합니다. 쓰기작업인경우 R2T 에대한응답인첫번째임의데이터 PDU 또는첫번째데이터 PDU 는 DataSN 0 부터시작하고이후의각데이터 PDU 에대해 1 씩증가합니다. R2TSN 은명령을시작할때 0 으로설정되고, target entity 가해당명령에대해보낸이후의각 R2T 에대해 1 씩증가합니다. iscsi PDU iscsi 패킷의 TCP 페이로드는 iscsi PDU 를포함합니다. 모든 iscsi PDU 는하나이상의헤더세그먼트로시작하며다음에 0 개또는한개의데이터세그먼트가옵니다. 첫번째세그먼트는고정길이 48 바이트의기본헤더세그먼트 (BHS) 입니다. BHS 다음에추가헤더세그먼트 (AHS) 가올수있습니다. 그림 7 에서는 iscsi PDU 의포맷과내용을보여줍니다. BHS 를제외한모든헤더는옵션입니다. 이그림은 TCP 페이로드에 iscsi PDU 가포함된 iscsi 패킷에대해설명합니다. 그림 7 iscsi 패킷포맷 46 1500 Bytes Preamble Destination Address Source Address Type IP TCP Data FCS 8 6 6 2 4 Octet Well-known Ports: 21 FTP 23 Telnet 25 SMTP 80 http 3260 iscsi Sourced Port Destination Port Sequence Number Acknowledgement Number Offset Reserved U A P R S F Window Checksum Urgent Pointer Options and Padding TCP Header iscsi PDU Basic Header Segment (BHS) Additional Header Segment (AHS) Header-Digest Data Segment Data-Digest
iscsi PDU 의종류에는 iscsi 요청및응답, 텍스트요청및응답, 로그인요청및응답등이있습니다. 그림 8 에서는 iscsi 요청명령중하나의헤더포맷에대한예를보여줍니다. 그림 8 iscsi PDU 명령 0 4 8 16 20 24 28 32 48 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Opcode Opcode-Specific Fields Total AHS Length Data Segment Length Logical Unit Number (LUN) Initiator Task Tag Expected Data Transfer Length CmdSN ExpStatSN SCSI Command Descriptor Block (CDB) AHS (if any), Header Digest (if any) Data Segment Command Data + Data Digest (if any) iscsi 오류처리 오류복구는기본적으로잘못된프로세스를복구하기위해충분한상태및데이터를유지관리하는것입니다. iscsi 의경우 initiator entity 는해결되지않은 PDU 를다시작성하기위해필요한명령과데이터정보를보유해야합니다. 이와마찬가지로 target entity 는상태응답정보와함께확인되지않은데이터출력을유지관리해야합니다. iscsi 에서오류처리를위해사용하는두가지메커니즘은재시도와재할당입니다. initiator entity 는같은명령또는데이터 PDU 를 target entity 에다시보내서누락된 CmdSN 을 연결 (plug) 하려고할수있습니다. 재할당은 initiator entity 와 target entity 간의 TCP 연결이끊어진경우에사용됩니다. 이경우 initiator entity 는새로운연결을통해 작업재할당 작업관리 PDU 를전송함으로써 target entity 에게해결되지않은명령을새로운 CID 에서계속하도록명령합니다. target entity 에서이기능을지원할필요는없으며로그인할때지원여부를협상합니다. iscsi 프로세스 이단원에서는전체적인 iscsi 연결설정, 교환및종료에대해설명합니다. 실제 iscsi 구현에서는인증, 암호화, 다양한파라미터설정, 기타 SCSI 작업등과같은여러가지다른작업을수행할수있습니다. 이단원의목적은 iscsi 단계및프로세스흐름에대한기본적인이해를제공하기위한것입니다. 로그인프로세스는로그인 initiator 요청으로시작되고이후에 initiator entity 가추가로그인요청으로응답하는로그인부분응답 ( 옵션 ) 이수행되는로그인단계의측면에서설명됩니다. 추가파라미터설정이필요할때마다로그인부분응답과추가로그인요청을반복할수있습니다. 이단계이후에는 target entity 로부터로그인최종응답이수행되어 로그인허용 이나 로그인거부 를나타내야합니다.
로그인시작 iscsi 로그인은 iscsi initiator entity 와 iscsi target entity 간의 iscsi 세션을설정하는데사용됩니다. TCP 연결은 iscsi 세션에속해있어야하고 iscsi initiator entity 와 iscsi target entity 는보안인증및기타운영파라미터를교환하고합의합니다. 이프로세스는 initiator entity 가 target TCP 수신포트에서 target entity 에대한 TCP 연결을열고 CID 를할당하면서시작됩니다. 그런다음 initiator entity 는자신이지원하는프로토콜버전, SSID, CID 및시작하려는설정단계등이포함된로그인요청을보냅니다. 선택사항으로초기요청에보안파라미터나 iscsi 운영파라미터를포함시킬수도있습니다. 그림 9 에서는 iscsi 로그인프로세스를보여줍니다. 그림 9 iscsi 로그인패킷흐름 Single TCP Session iscsi Driver TCP Establish Normal TCP Session 0X03 Command Login Initial iscsi Login with Optional Authentication Negotiation and Operational Negotiation 0X23 Login Response iscsi TargetName is Presented Authentication Negotiation and Operational Negotiation 0X04 Optional Text Command 0X24 Text Response 0X03 Command Login Additional Multiple Logins 0X23 Login Response Login Success, Enter Full Feature Phase TCP Port 3260 Block Device Has Already Initialized Onto the Fibre Channel Fabric 앞에서설명한대로 SSID 는 ISID 와 TSID 로구성됩니다. ISID 는 SSID 의처음 6 바이트로 1 바이트의유형, 3 바이트의이름지정기관및 2 바이트의한정자필드로구성됩니다 ( 표 1 참조 ). 유형바이트는이름지정기관의포맷을나타냅니다 ( 표 2 참조 ). ISID 의이름지정기관 (Naming Authority) 필드는이 iscsi initiator entity 의공급업체또는조직입니다. 마지막으로한정자는부호없는 16 비트정수로특정 initiator entity 와 target 포털그룹조합에대해고유해야합니다. TSID 는 target entity 의 iscsi 노드에따라결정되는 16 비트값입니다. initiator entity 가 target entity 와의새세션을설정하면초기로그인요청의 TSID 는 0 으로설정됩니다. 이값은새세션이요청되었음을 target entity 에게알립니다. target entity 는 TSID 를생성하여로그인응답으로반환합니다. initiator entity 가기존세션에서추가 TCP 연결을설정하려는경우에는세션이생성되었을때이전에성공한로그인시도에서알게된 TSID 를사용합니다. 값이 0 이아니므로 target entity 는 initiator entity 가이미설정된세션에연결을추가하려고한다는것을알수있습니다. initiator entity 가초기로그인응답에서 TSID 를수신하면 SSID 가완성되며이 SSID 는이후의모든로그인 PDU 에서세션을식별하는데사용됩니다.
표 1: 세션 ID 필드 SSID 바이트 0 바이트 1 바이트 2 바이트 3 단어 0 유형이름지정기관 단어 1 한정자 TSID initiator entity 부분 : ISID target entity 부분 : TSID 표 2: 유형바이트정의 유형 0x00 0x01 이름지정기관 IEEE OUI IANA 기업번호 0x02 임의 0x03-0xFF 예약됨 인증및파라미터설정 initiator and target entity 를인증해야하는경우에는운영파라미터를교환하기전에인증을설정해야합니다. 인증에는다양한방법을사용할수있으며이에대해서는뒤에서설명합니다. 파라미터협상은 initiator entity 가보낸초기로그인요청으로시작됩니다. 초기 entity 는인증이성공적으로완료된후에 ( 필요한경우 ) 파라미터협상을진행할수있습니다. 일부운영파라미터는텍스트포맷으로전달됩니다. 이러한교환에서사용하는포맷은다음과같습니다. 발신포맷 : 응답포맷 : <key>=<value> <key>=<value> None Reject NotUnderstood Irrelevent <value> 인수는숫자, 리터럴, 부울 ( 예또는아니오 ) 또는쉼표로구분한리터럴값의목록이될수있습니다. 발신자가 <values> 목록을제공하면응답자는지원되는첫번째값으로응답하거나, 지원되지않는경우 거부 (Reject) 해야합니다. 리터럴목록의경우 없음 (None) 응답은 없음 (None) 이사용가능한값중하나로제공된경우에만허용됩니다. 공급업체가키앞에 X 를첨부하고뒤에해당도메인이름을역으로붙여새로운 <key> 를추가할수도있습니다. 연결 initiator entity 가 target entity 로부터로그인최종응답을수신하면로그인프로세스가종결됩니다. 로그인거부 라는응답을받으면로그인에실패한것이며 initiator entity 는 CID 로식별되는해당 TCP 연결을닫아야합니다. 로그인허용 응답을수신하면세션은완전한기능단계로들어갑니다 ( 초기로그인시도인경우 ). 완전한기능단계에도달한경우에만 initiator entity 가 iscsi PDU 에포함된 SCSI 명령과데이터정보를보낼수있습니다.
주어진 iscsi 세션에대해여러개의 TCP 연결이설정되어있으면 ( 다중로그인 ) 이후의데이터및응답 PDU 는관련명령을보냈던 TCP 연결 (CID) 을통해보내야합니다. 이런개념을 연결고수 (connection allegiance) 라고합니다. 발신 CID 가실패한경우앞에서설명한오류복구절차로인해연결고수가다시설정될수있습니다. 반대로 SCSI 작업과관련된여러개의명령을다른 TCP 연결을통해보낼수도있습니다. 또한관련없는 SCSI 명령, 데이터및상태를 iscsi 세션에끼워넣을수있습니다. 그러나각각의해당데이터와응답은연결고수규칙을따라야합니다. 협상되는운영파라미터중하나는 target entity 가발신데이터전송 (SCSI Write) 을위해유도 (R2T) 모드또는임의모드로작동하는지를나타냅니다. 임의모드인경우 initiator entity 가 즉시데이터 를명령과같은 PDU 로보내거나 ( 단계축소 ) 별도의 PDU 로보낼수있습니다. 각각의경우에대해 initiator entity 가보낼수있는데이터의최대량은로그인시설정할수있습니다. 초기즉시데이터를보낸이후의모든데이터 PDU 는 R2T 응답에대한회신으로보내야합니다 ( 유도모드 ). initiator and target entity 는명령, 데이터및응답교환의순서를유지관리하기위해앞에서설명한시퀀스번호지정체계를사용합니다. initiator entity 는비동기적조건을확인하면 SNACK 요청을보낼수있습니다. 단일 SNACK 은시퀀스번호레지스터에따라누락된연속데이터집합을처리합니다. 로그아웃및종료 로그아웃프로세스는 iscsi 연결또는세션을닫기위한적절한종료메커니즘입니다. 로그아웃절차를시작하는것은 initiator entity 이지만내부오류조건을나타내는비동기 iscsi 메시지를보내이절차를수행하는것은 target entity 입니다. 어떤경우든 initiator entity 가로그아웃요청을보낸후에는다른요청을보낼수없습니다. target entity 에서로그아웃응답을보내면정리가완료되었고이연결에서다른응답을보낼수없다는것을나타냅니다. 또한로그아웃응답에는 target entity 에서보낸복구정보도포함되어있습니다. 이런복구정보에는 target entity 가복구를위해명령정보를보류하면서대기하는시간길이 (Time2Retain) 와 initiator entity 가연결을다시설정할수있기까지기다려야하는시간길이 (Time2Wait) 등이있습니다. 마지막으로 TCP FIN 을보내연결을종료합니다. 보안고려사항 과거에는스토리지장치및스토리지네트워크와관련된보안은주요고려사항이아니었습니다. 스토리지장치는호스트에직접연결되거나사용자가액세스할수있는네트워크와는별도의 SAN 을통해연결되었습니다. iscsi 의경우다른 IP 기반 SAN 프로토콜과마찬가지로스토리지정보를개방형 IP 네트워크를통해전송하기때문에보안위험이있습니다. 이런점을알고있기때문에 IP Storage 작업그룹에서는 IP 기반스토리지통신을보안하기위한초안을개발했습니다. 이작업은 Securing Block Storage Protocols over IP 초안에포함되어있습니다. iscsi 프로토콜초안에서는보안, 인증및패킷보호와관련하여두가지요소를지정합니다.
인증 iscsi 에서는로그인프로세스중에 target entity 가 initiator entity 를인증할수도있고 initiator entity 가 target entity 를인증할수도있습니다. 이러한인증은파라미터설정이나로그인허용전에수행됩니다. 인증을이용하는경우 iscsi 세션내의각연결이인증되어야합니다. iscsi 초안에는다음인증방법이정의되어있으며로그인단계에서 AuthMethod 키를통해설정됩니다. KRB5 커버로스 V5 SPKM1 단순한공개키일반보안서비스 (GSS) 애플리케이션프로그래밍인터페이스 (API) 메커니즘 SPKM2 단순한공개키 GSS API 메커니즘 SRP 보안원격암호 CHAP 챌린지핸드셰이크 (Challenge Handshake) 인증프로토콜 없음 인증없음 이메커니즘은 target 장치에권한없이연결하는것을방지할수있지만연결한이후의 PDU 교환에대해보호하지는못합니다. 패킷보호 패킷보호는 iscsi 노드간통신에서의무결성, 인증및기밀유지를보장합니다. iscsi 연결의경우 IP 레이어에서개인정보를안전하게교환하기위해 IP Security(IPSec) 를사용합니다. 초안을준수하려면 iscsi 네트워크요소는재생방지기능을비롯하여 ESP(Encapsulating Security Protocol) 의 IPSec 터널모드를구현해야합니다. iscsi 구현의빠른속도로인해 IPSec 시퀀스번호확장은속도에따라구현될수있고또구현되어야합니다. 기밀유지를위해 3DES(Triple Digital Encryption Standard) 를사용하여 CBC(Cipher Block Chaining) 모드로 IPSec 터널을암호화합니다. iscsi 노드는인증, 보안연관협상및키관리를제공하기위해 IKE(Internet Key Exchange) 를지원해야합니다. 별도의 IKE Phase 2 Security Association 은 iscsi 세션내의각 TCP 연결을보호합니다. iscsi 구현 Cisco SN 5420 및 5428 스토리지라우터는 iscsi 초안 8 을지원합니다. 이들라우터는 iscsi 를블록수준스토리지액세스를위한전송수단으로사용합니다. 일반적인파이버채널 SAN 에서스토리지장치 /LUN 은 IP 네트워크호스트에마치직접연결되어있는것처럼표시됩니다. iscsi 작업을지원하려면 IP 호스트에 iscsi 드라이버나 iscsi 네트워크인터페이스카드를설치해야합니다. Cisco SN 5420 스토리지라우터는 iscsi target entity 로작동하는반면 IP 호스트는 iscsi initiator entity 기능을합니다. IP 호스트는 Cisco SN 5420 스토리지라우터에접속하여정의된 iscsi target 주소와포트를통해 iscsi 로그인을수행합니다. 스토리지라우터는교환되는정보와설정된파라미터에따라로그인 ( 또는다중로그인 ) 을허용하거나거부합니다. Cisco SN 5420 은 iscsi target/lun 을실제의물리적 target/lun 에맵핑합니다. iscsi 로그인에성공하면작동이완전한기능단계로돌입하고데이터전송을할수있게됩니다. 따라서 IP 네트워크에있는 iscsi initiator entity 가물리적스토리지 target/lun 을사용할수있게됩니다. 그림 10 에서는 Cisco SN 5420 구현의 iscsi target 모드또는 SCSI 라우터모드를보여줍니다.
그림 10 iscsi 구현예 SAN IP SCSI Routing Mode IP Network Cisco SN 5420 은 iscsi target 모드외에도투명모드와 iscsi 다중 initiator entity 모드를지원합니다. Cisco SN 5420 은주로분산환경에서의스토리지통합 / 중앙집중화및원격백업에사용됩니다. Cisco SN 5420 스토리지라우터에대한자세한내용은아래의 Cisco 웹페이지를참조하십시오. http://www.cisco.com/warp/public/cc/pd/rt/5420/ 요약 iscsi 의표준화는스토리지업계에서혁신적인기술이될것입니다. iscsi 는기존스토리지네트워크의물리적제약을제거하므로가까운장래에워크그룹및엔터프라이즈네트워크에상당한영향을끼치는기술이될것이확실합니다. 표준기반의장치가많이출시되고있기때문에네트워크기술자들은 iscsi 프로토콜및이와관련된구현요건에대해이해할필요가있습니다. 이문서는특히 iscsi 프로토콜에중점을두고있으며구현시의고려사항에대해서는다루지않습니다. 하지만성능, 보안, 애플리케이션요건등구현과관련된일부주제는여기서설명합니다. 구현시의고려사항으로는장치기능, 네트워크기능, QoS 파라미터, 애플리케이션별요건등이있습니다. 이러한영역에대한정보는백서, 설계안내서, 제품인증서및애플리케이션정보와같은추가자료를참조하십시오. 추가자료는다음과같은웹사이트에서살펴볼수있습니다. http://www.cisco.com http://www.ietf.org/html.charters/ips-charter.html http://www.snia.org/ 참조문서 IETF IPS 작업그룹, 문서 : draft-ietf-ips-iscsi-14 IETF IPS 작업그룹, 문서 : draft-ietf-ips-security-11 SCSI-3 아키텍처모드, 문서번호 : X3.270-1996
www.cisco.com/kr 2003-03-05 Gold 파트너 ㄜ데이콤아이엔 02-6250-4700 한국아이비엠ㄜ 02-3781-7800 쌍용정보통신ㄜ 02-2262-8114 ㄜ데이타크레프트코리아 02-6256-7000 ㄜ콤텍시스템 02-3289-0114 에스넷시스템ㄜ 02-3469-2400 ㄜ인네트 02-3451-5300 ㄜ인성정보 02-3400-7000 현대정보기술 02-2129-4111 ㄜ링네트 02-6675-1216 한국후지쯔ㄜ 02-3787-6000 케이디씨정보통신ㄜ 02-3459-0500 한국휴렛팩커드ㄜ 02-2199-0114 Silver 파트너 대우정보시스템 02-3708-8642 ㄜ시스폴 02-6009-6009 한국 NCR 02-3279-4423 한국유니시스ㄜ 02-768-1114,1432 Local SI 파트너 ㄜ LG 씨엔에스 02-6276-2821 포스데이타주식회사 031-779-2114 이스텔시스템즈ㄜ 031-467-7079 SK 씨앤씨ㄜ 02-2196-7114/8114 Global 파트너 이퀀트코리아 02-3782-2600 Local 디스트리뷰터 ㄜ소프트뱅크코리아 02-2187-0114 ㄜ인큐브테크 02-3497-9303 ㄜ아이넷뱅크 02-3400-7486 IPT 파트너 청호정보통신 02-3498-3114 LG 기공 02-2630-5156 WLAN 전문파트너 ㄜ에어키 02-541-1557 ( 주 ) 텔레트론 INC 02-2105-2300 Security 전문파트너 코코넛 02-6007-0133 TISS 051-743-5940 NMS 전문파트너 ㄜ넷브레인 02-573-7799