자유롭게 게시물을 올릴수있는 게시판입니다.
  • 유년추억
  • 학교생활
  • 입시준비
  • 대학생활
  • 군생활
  • 알바생활
  • 취업준비
  • 직장생활
  • 원룸생활
  • 연애중
  • 결혼준비
  • 집안살림
  • 자녀교육
  • 창업준비
  • 이민유학
  • 노후생활
  • 전체보기


InfiniBand의 개요

 

InfiniBand의 개요


박경*


인터넷 및 인트라넷 기술 발달에 따라 웹 서비스 및 전자상거래 서비스를 지원하기 위한 인터넷 서버는 연산 능력뿐 아니라 높은 입출력 처리 능력을 요구한다. 웹 서비스와 전자상거래 서비스와 같은 인터넷 응용 서비스를 비롯하여 OLTP(On-Line Transaction Processing) 및 의사결정 응용 서비스(Decision Support Application)를 제공하는 서버는 이미 입출력 장치와 중앙처리 장치 간의 연결망에서 성능 한계에 부딪히고 있다.  InfiniBand 연결망은 고속 점대점 연결구조를 갖는 차세대 서버용 연결망으로 차세대 인터넷 서버에서 요구되는 입출력 중심의 정보 처리 기술에 적합하도록 구성되어 있다.  본 고에서는 차세대 서버 구조의 연결망으로 떠오르고 있는 InfiniBand의 기술 배경과 구성 기술에 대하여 소개한다. ▧



I. 서 론


서버  시스템을 구현하는데 있어서 각 구성 장치들은 주로 계층 구조를 갖는 공유버스 구조를 사용하여 연결하고 있다. 낮은 성능 요구를 갖는 장치는 낮은 성능을 지원하는 하위 단계 버스에 연결되고, 하위 단계 버스는 버스 브릿지를 통하여 상위의 고성능 버스에 연결되는 구조를 사용하여 낮은 성능을 요구하는 장치가 고성능 장치의 동작 및 성능에 영향을 적게 미치는 구조를 채택하여 시스템의 효율성을 높이고 있다[1].


지난 수년간에 걸쳐 공유 버스를 사용하는 서버 구조가 시장을 지배하면서 버스 성능을 향상시키기 위한 기술들이 개발되어 적용되어 왔다. 예를 들면 동작 주파수 향상 및 버스 전송폭 확대와 같은 물리적인 방법 외에 파이프라인 트랜잭션 지원, 분리형 트랜잭션 지원, 비순차 트랜잭션 종료 지원 등과 같은 방법들이 사용되어 오고 있다.


그러나 버스 구조는 스큐 문제로 인하여 버스의 전송폭 확대 및 동작 주파수 고속화에 한계가 있으며, 특히 전송폭 확대는 곧 핀수의 증가를 가져와 구현 비용에서도 단점을 가진다. 버스 구조의 가장 큰 단점은 버스상에 연결할 수 있는 장치의 수가 제한된다는 점과 구조적으로 고가용도와 확장성을 보장하지 못하는 것이다[1].


따라서 차세대 서버 구조를 위한 새로운 연결방식에 대한 논의가 이루어지기 시작하였으며 그 결과 스위치 기반형 점대점 연결망을 기반으로 하는 InfiniBand 연결 구조가 나오게 되었다[2,3,4,5].



II. InfiniBand의 배경


인터넷의 발전과 인터넷 기반형 서비스의 대중화는 서버의 기능면에서 많은 변화를 가져왔다. 연산능력 중심으로 하는 컴퓨팅 서버에서 연산 능력은 물론 입출력 처리 능력에서도 높은 성능을 요구하는 인터넷 서버로 그 기능이 변화되었으며, 이로 인하여 PCI(Peripheral Components Interconnect) 버스[6]로 대표되는 입출력 버스는 고성능 인터넷 서버를 구현하는데 있어서 성능 한계를 맞게 되었다. 또한 버스의 구조적인 단점인 고가용도와 확장성의 한계는 고성능 인터넷 서버 구현에 있어서 제약 사항으로 남아 있었다[1,5].


서버의 기능이 변화함에 따라서 요구되는 기능에 적합한 구조의 제안이 나오게 되었으며, 새롭게 제안된 구조는 새로운 연결망 구조에 기술적 노력을 집중하였다. 인텔(Intel)과 썬(Sun Micro-systems)을 주축으로 하는 “NGIO(Next Generation IO)” 그룹과 HP(Hewlet Packard)와 IBM, Compaq을 주축으로 하는 “Future IO” 그룹이 차세대 서버 연결망을 목표로 구성되었다. 양 진영은 모두 스위치 기반형 점대점 연결망이라는 유사한 연결망 구조와 이를 이용한 서버 구조를 검토, 제안하고 있었으며 지난 1999년 8월 두 진영이 통합하면서 InfiniBand라는 차세대 서버 연결망 구조를 제안하고 있다. 현재 InfiniBand는 표준 규격서가 준비중이며, 금년 하반기에 표준 규격서가 발표될 예정이며 2001년 하반기부터 제품이 출시될 것으로 예상되고 있다[2,5].


III. 차세대 입출력 연결망


1. PCI 버스의 한계


현재 가장 일반적인 서버는 PCI 버스를 사용하여 (그림 2)와 같은 구조를 가지며 중앙처리 장치와 입출력 장치는 PCI버스를 통하여 데이터를 송수신한다.



 


PCI 버스를 사용하여 구성되는 서버는 PCI 버스의 성능 한계로 인하여 중앙처리 장치의 성능을 떨어뜨리고 있으며, 특히 고성능 인터넷 서버의 요구사항인 고가용도와 확장성을 보장하기 어렵다. 따라서 InfiniBand 구조가 개선하고자 하는 PCI 버스 구조의  단점은 다음과 같다[5].


- 공유 메모리 매핑 방식에 의한 통신 방법


- PCI 카드 Hot-Plug 기능 부족


- PCI 카드의 오류 분리 기능(Live insertion/isolation) 부족


- PCI 버스 성능 한계에 따른 중앙처리 장치 성능 저하


PCI 버스 구조는 PCI 버스에 연결된 입출력 장치와 통신하기 위해서는 지정된 공유 메모리 영역에 쓰기와 읽기를 반복해야 하며, 이로 인하여 자주 PCI 버스를 사용하여야 한다. PCI 버스는 중앙처리 장치와 입출력 장치간에 공유되는 통신 통로이며 제한된 자원으로서 입출력 요구가 많아지면 PCI 버스 병목 현상을 야기하여 시스템의 성능을 저하시키다.  따라서 PCI 버스는 연결되는 입출력 장치의 수를 제한하고 있으며, 이로 인하여 확장성 및 가용도가 저하되는 단점을 가지고 있다.


또한 PCI 버스상에 슬롯 형태로 장착되는 어댑터 카드는 hot-plug 기능에 제한이 있으며, 공유버스 구조의 특성상 PCI 버스는 시스템 내의 단일점 결함 요소로 지적되고 있다. PCI 버스상에 연결된 장치에서 오류가 발생하였을 경우에는 PCI 버스를 공유하고 있으므로 오류 장치를 식별하기 어려우며, 특히나 공유 메모리 매핑 방식에 의해서 통신함으로 오류 장치가 다른 장치의 공유 메모리 영역을 침범하여 시스템을 마비시킬 수 있다.


PCI 버스의 동작속도는 현재 중앙처리 장치 동작속도의 1/10 수준이다. 입출력 처리 요구가 높은 서버에서는 중앙처리 장치는 PCI 버스를 통하여 입출력 장치로부터 전달되는 데이터를 기다리고, 또한 중앙처리 장치에서 입출력 장치로 데이터를 전송하는 작업을 반복하게 되며 이때 중앙처리 장치와 PCI 버스의 동작속도 차이로 중앙처리 장치의 성능이 저하되어 결과적으로 시스템 성능이 PCI 버스에 의해서 결정되는 단점이 있다. 


2. InfiniBand의 해결책


서버의 내부 연결망(PCI 버스)에서 발생하는 병목 현상과 공유 버스 구조의 낮은 확장성 및 가용성을 극복하기 위하여 InfiniBand는 다음과 3가지 구조적 해결책을 제시하고 있다[3,4,5].


- 공유 메모리 매핑에 의한 통신 방식에서 채널형 통신 방식으로


- 병렬 버스 신호 전달 방식에서 고속 직렬 신호 전달 방식으로


- 공유 버스 연결 구조에서 스위치 기반형 점대점 연결 구조 방식으로


InfiniBand는 채널 기반형 통신 방식을 사용한다. 채널은 중앙처리 장치와 입출력 장치 사이에 구성된 독립적인 메시지 패싱 인터페이스로 주기억 장치와 입출력 장치간의 직접적인 데이터 전송을 보장하여 공유 메모리 매핑 방식에서 발생하는 데이터 복제 오버헤드를 제거하고, 각 채널은 독립적으로 유지 관리된다. 채널 기반형 메시지 패싱은 중형 클러스터 컴퓨터에서 사용되던 VIA(Virtual Interface Architecture)[6]를 InfiniBand에 적용한 것으로 중앙처리 장치 상호간 또는 중앙처리 장치와 입출력 장치간에 독립적인 사용자 수준 메시지 패싱 인터페이스를 제공하여 운영체제의 간섭없이 통신을 가능하게 한다. 채널은 점대점 연결망 사용을 위한 사용자 프로그래머블 레지스터 레벌 인터페이스로 정의할 수 있으며, 채널을 제어하는 하드웨어는 DMA (Direct Memory Access) 엔진을 사용하여 주기억 장치와 통신하고자 하는 상대방과 직접 데이터를 송수신 할 수 있게 한다. 따라서 중앙처리 장치는 입출력 장치 제어 및 접근과 데이터 전송에 관련된 작업 부하를 줄임으로써 시스템 성능을 향상 시킬 수 있다[3,4,5].



 


InfiniBand는 PCI 버스와 달리 고속 직력 전송 방식을 사용한다. InfiniBand 연결망 구조가 스위치 기반형 점대점 구조를 가짐에 따라 스위치를 포함하여 연결망 구성에 있어서 비용을 절감하고 신호 전달 속도를 고속화 하기 위해서이다. 현재 2.5Gbps급 직렬 전송을 기본으로 4개, 12개의 직력 전송로를 하나의 포트로 사용하는 것도 가능하다.


InfiniBand는 스위치 기반형 점대점 연결 구조를 사용한다. 스위치 기반형 점대점 연결 구조는 공유 버스 구조의 가장 큰 단점인 확장성과 고가용성 보장을 위해서이다.  스위치 기반의 점대점 연결 구조를 가짐으로서 연결 포트의 확장 및 제거가 자유로우며, 특히 공유 버스 구조가 내포한 결함 가능성을 제거할 수 있다. 또한 점대점 연결 방식을 사용하므로 hot-plug 기능을 하드웨어적으로 완벽하게 지원할 수 있으며, 신규 장치의 장착 및 오류 장치의 분리를 손쉽게 구현할 수 있다.


IV. InfiniBand 구조


1. InfiniBand 구성 요소


새로운 서버 구조를 위한 InfiniBand구조는 하드웨어적으로 (그림 3)과 같이 구성될 수 있다. 중앙처리 장치와 메모리 장치로 구성되는 호스트는 HCA(Host Channel Adapter)를 통하여 InfiniBand 연결망에 접속된다. 입출력 장치는 TCA(Target Channel Adapter)를 통해서 Infini-Band 연결망에 접속되며, HCA와 TCA는 스위치와 라우터로 구성된 InfiniBand 연결망을 통해서 상호간에 채널을 설정하고 메시지 패싱을 사용하여 통신한다.


 



HCA는 다른 호스트 또는 입출력 장치와 통신을 위하여 호스트에게 채널 인터페이스를 제공하는 장치로 사용자 수준 프로그램에서 “Verb” 라는 소프트웨어 인터페이스를 사용하여 메시지를 송출하고 수신하는 기능을 수행한다. 호스트 프로세서에 의해서 발생된 메시지 전송 요구를 해독하여 메모리 장치에서 데이터를 읽어서 InfiniBand 연결망으로 송출하고 또한 수신된 메시지를 해독하여 메모리 장치에 직접 쓰는 작업을 수행한다. HCA는 스위치와 TCA 모두에 연결할 수 있으므로 서버 구성시 서버의 규모에 따라서 유연하여 시스템 구성을 가능하게 한다.


TCA는 입출력 장치와 연결망을 이어주는 장치로 디스크 콘트롤러, 네트워크 콘트롤러, RAID 콘트롤러 등과 같은 다양한 입출력 장치를 InfiniBand 연결망에 정합할 수 있게 한다.


InfiniBand 연결망은 스위치와 라우터로 구성된다. InfiniBand 연결망은 글로벌넷과 서브넷 두 단계로 구성되며 각 단계에 따라서 경로 설정에 사용되는 식별자를 구분하고 있다. 스위치는 서브넷 연결망에 연결된 노드간의 경로 설정을 담당하고, 라우터는 글로벌넷 연결망을 구성하는 서브넷 연결망간의 경로 설정을 담당한다.  


2. InfiniBand의 통신 방법 및 계층구조


InfiniBand 연결망에 연결된 노드는 (그림 4)와 같은 방식에 의해서 통신하게 된다. 사용자 프로그램은 메시지 패싱을 위한 메시지 전송 요구와 전송 종료 정보 취득을 Verb를 통해서 수행한다. Verb는 HCA이하로 구성된 InfiniBand 연결망 하드웨어를 제어할 수 있도록 사용자에게 제공되는 API(Application Program Interface)형태의 인터페이스로 메시지 전송 요구 및 전송 상태에 대한 정보 취득은 물론 HCA 이하의 InfiniBand 연결망 하드웨어의 관리 및 제어에도 사용된다. Verb를 통해서 생성된 메시지 전송 요구는 주기억 장치에 위치한 Work Queue(Send Queue, Receive Queue)에  FIFO(First-in First-out)형태로 저장된다. HCA는 Work Queue의 내용을 검색하여 해당 메시지를 주기억 장치에서 읽어내어 패킷으로 변환 후에 InfiniBand 연결망으로 전송하게 된다. 전송된 패킷은 목적지 노드에서 다시 메시지로 조립되어 Work Queue에 저장된다. 노드의 전송 요구가 Work Queue에 저장될 때는 해당 전송 요구의 전송 상태 정보를 관리하는 Completion Queue를 하나 할당 받게 되며, 전송이 종료되면 해당 Completion Queue의 내용에 전송 완료 정보를 기록한다. 노드는 전송 요구후 전송 완료 여부를 Completion Queue의 상태를 점검함으로써 전송의 완료 여부 및 상태를 알 수 있다.


 



각 노드는 메시지 전송을 위하여 사전에 주기억 장치에 메시지 전송을 위해서 사용할 영역을 가상주소를 사용하여 지정해야 한다. 사용자 프로그램은 메시지 전송 요구 및 메시지 데이터를 지정된 영역에 위치시키게 되고, HCA 또는 TCA는 운영체제의 간섭없이 지정된 영역에서 메시지 전송 요구와 해당 데이터를 가상주소를 사용하여 읽어내어 InfiniBand 연결망으로 전송한다. 따라서 메시지 전송에 있어서 통신 계층을 통과하며 발생하는 데이터 복제 현상을 제거하여 메시지 전송 처리 속도를 향상 시키고 있으며, 데이터 복제시에 발생하는 중앙처리 장치의 오버헤드도 제거하였다.


InfiniBand 연결망을 통한 통신은 Send/Receive를 사용하는 메시지 패싱 기법외에 RDMA (Remote Direct Memory Access) 전송을 제공하여 대용량 데이터의 전송을 지원하고 있으며, 응용 프로그램의 특성에 따라서 메시지의 신뢰도와 대역폭을 조절할 수 있도록 다양한 형태의 전송 서비스를 제공한다. <표 2>는 InfiniBand 연결망에서 정의하고 있는 전송 서비스를 요약한 표이다.



InfiniBand 연결망을 구성하는 HCA, TCA 및 스위치와 라우터는 (그림 5)와 같은 통신 계층을 처리한다. HCA와 TCA는 Verb를 통하여 전달되는 메시지를 InfiniBand 연결망에 패킷 단위로 전송해야 하므로, 메시지 전송 요구를 입력으로 받아서 InfiniBand 패킷으로 변환하여 InfiniBand 연결망 전송로로 전기적 신호를 전송하는 기능을 수행하여야 한다. 따라서 HCA와 TCA는 Transport, Network, Link, Physical 단계를 모두 가져야 한다. 스위치와 라우터는 InfiniBand 연결망에서 InifniBand 패킷의 경로 설정 및 전송을 담당하며, Network, Link, Physical 단계로 구성된다.


 



각 통신 단계 별 기능은 다음과 같다.


- Upper layer Protocol: 사용자 프로그램에서 Verb를 사용하여 상호간에 통신을 수행하는 단계로 사용자가 사용하는 API 이다.


- Transport: Verb에 의해서 지정된 전송 요구를 전송 서비스별로 구분하여 InfiniBand 패킷으로 구성한다. 전송 서비스에 따라서 패킷의 순서, 오류 검출 및 복구 기능을 수행한다.


- Network: Transport 단계에서 생성된 패킷의 헤더 정보를 사용하여 경로를 설정한다.


- Link: 패킷 데이터를 전송하는 단계로 노드 주소 관리, 패킷 버퍼링, 밴드폭 할당 및 패킷 흐름제어, 패킷 단위의 데이터 오류 검출 기능을 수행한다.


- Physical: Link 단계에서 생성된 패킷을 전기적 신호 규격에 따라서 전송하는 단계로 병렬 신호로 구성된 패킷 데이터를 직력 신호로 변환하여 전송한다.


V. 결 론


인터넷의 발전 및 인터넷 서비스의 대중화는 서버의 기능을 연산능력 중심에서 입출력 처리 중심으로 변화시켰다. 현재 서버 구조에서 사용되고 있는 공유 버스 구조의 입출력 연결망은 성능 한계를 맞고 있으며, 구조적으로 가용성과 확장성이 낮은 단점을 가지고 있다.


서버 기능의 변화 및 요구 사항의 변화를 수용하기 위하여 차세대 서버는 스위치 기반형 점대점 연결망을 사용하는 구조로 변화하고 있으며, 이 큰 흐름을 주도하고 있는 것이 InfiniBand 구조이다.


InfiniBand 구조는 스위치 기반 점대점 연결망과 기존의 클러스터 컴퓨팅에서 사용되어진 채널 기반형 메시지 패싱을 접목한 형태로 현재 사용되고 있는 PCI 버스보다 성능 및 기능면에서 우월한 것으로 분석된다. 또한 InfiniBand 표준화 작업에 참여하고 있는 Intel을 비롯한 대규모 사업자들이 강력한 영향력을 행사하고 있는 바, 2000년 하반기로 예정된 표준안 발표에 이어서 이를 지원하는 칩셋이 발표되어 상용화 될 것으로 예상된다.


PCI 버스는 버전 2.2 발표 후 성능 및 구조 개선을 위하여 PCI-X 버전 1.0을 발표하여 차세대 서버 구조에 부응하고 있어서 향후 수년간은 관련 제품 및 쳅셋이 시장에서 InfiniBand와 경쟁할 것으로 예상된다. 


InfiniBand의 상용화 초기 제품은 현재 설치된 서버에서 InfiniBand 연결망을 사용할 수 있도록 지원하는 PCI-to-InfiniBand 브릿지 칩셋과 연결망을 구성하는 스위치로 예상되고 있다.


InfiniBand의 상용화는 서버 구조의 진화를 의미하는 것이며, 아울러서 현재 PCI 인터페이스로 제품화된 입출력 장치들이 InfiniBand 입출력 장치로 서서히 대체될 것으로 예상된다. 서버 구조 역시 모듈단위로 InfiniBand 연결망에 접속되는 형태로 구성될 것이며, 이를 통하여 입출력 기능이 향상되는 클러스터 컴퓨팅 기술이 서버 기술의 주류로 자리 잡을 것으로 예견된다.


<참 고 문 헌>


[1]         RapidIO: An Embedded System Component Network Architecture, White Paper of Motorola Semiconductor Co., Feb. 22, 2000, //www.rapidio.org/docs/rapidiowp.pdf


[2]         Future I/O and Next Genration I/O Merge, Aug. 31, 1999, //www.infinibandta.org/press/merger.html


[3]         InfiniBand Architecture Overview, IBTA Presents at IDF Spring 2000, Feb. 15, 2000, //www. InfiniBandta.org/data/events/idf-spring 2000/iba_overview.pdf


[4]         Flexible Solutions - Flexible Interconnection, IBTA Presents at IDF Spring 2000, Feb. 15, 2000, //www.InfiniBandta.org/data/events/idf-spring2000/iba_value_prop.pdf


[5]         Next Generation I/O : A New Approach to Server I/O Architecture, Technical White Paper of Aberdeen Group, Feb. 1999.


[6]         PCI-X : An Evalution of the PCI bus, TC990903TB, White Paper of Compaq Computer System Co., Sep. 1999, ftp://ftp.compaq.com/pub/supportinformation/papers/tc990903tb.pdf


[7]         Virtual Interface Architecture Specification Version 1.0, Dec. 16, 1997.


[8] PCI-X Addendum to the PCI Local Bus Specification Revision 1.0, Sep. 22, 1999.




2001-05-06 02:14:21
1937 번 읽음
☞ 로그인 후 의견을 남기실 수 있습니다
 캐시선물





365ch.com 128bit Valid HTML 4.01 Transitional and Valid CSS!
태그