PCI
Protocol
Network
인터넷 서비스의 증가로 대용량 데이터 전송이 늘어나고 기존의 이더넷 규격이 이러한 인터넷 환경에 부응하지 못함에 따라 InfiniBand라는 새로운 네트워크 규격이 고안되었다. RDMA를 지원해 낮은 지연시간과 최대 50Gbps의 높은 대역폭을 제공하는 새로운 네트워크 프로토콜이다.
InfiniBand 네트워크 환경을 구성하기 위해서는 전용 스위치, 케이블, 어댑터 카드 등이 필요하다.
초기 인피니밴드 기술은 PCI(Peripheral Component Interconnect) 버스의 대체 기술로 출발하였다. 인피니밴드의 1차적 목표는 PCI 버스의 한계(성능 병목현상, 확장성 등)을 극복하는 것에서 시작되었으 나 현재는 타 서버와의 상호 연결하는 시스템 연결망 기술, 여러 서버 들 간의 클러스터링을 위한 시스템 연결 기술을 향상시키는 쪽으로 발 전하고 있다.
이러한 인피니밴드 기술은 클러스터 컴퓨팅을 위한 통합 연결망을 목적으로 개발되고 있는 차세대 시스템 연결망 기술로 슈퍼 컴퓨팅센터에서 보유해야 할 핵심기술이다.
인피니밴 드 아키텍처는 관련 업계를 중심으로 두 개의 표준화를 진행해 온 두 개의 연결망 기술인 NGIO(Next Generation I/O)와 FIO(Future I/O) 기술로부터 비롯된다.
1996년 인텔은 VI(Virtual Interface) 아키텍 처를 기반으로 한 입출력 기술 개발을 주도하였고 이 기술은 NGIO(Next Generation I/O)라고 명명되었고, 델 컴퓨터, 인텔, 썬, NEC, 히다찌, 후지쯔, 지멘스 등이 기술 개발에 동참하였다.
거의 비 슷한 시점에, 또 하나의 표준화 노력으로서 FIO(Future I/O)가 IBM, 컴팩, 3Com, 시스코, HP, 어탭텍 등을 중심으로 개발되기 시작하였다.
NGIO는 대량의 소규모 서버를 초점으로 맞추었고, 반면에 FIO는 고성 능 플랫폼에 초점을 맞추었다. 이후 양 진영은 통합이 더 바람직하다 고 판단하고, 199년 10월 IBTA를 결성하였다. 2000년 10월 IBTA는 개발자 회의를 개최하고 인피니밴드 표준 규격서(버전 1.0)를 완성하여 업계에 공표하였다.
InfiniBand 구조(InfiniBand Architecture: IBA)는 입출력 처리에 최적화된 입출력 연결망과 프로세서 상호간 통신에 최적화된 클러스터 연결망을 통합한 차세대 클러스터 연결망 기술이다. IBA는 통신 및 관리 메커니즘을 포함하고 있으며, 소규모 컴퓨터 시스템에서 대규모 인터넷 서버 및 슈퍼 컴퓨터에 이르기까지 다양한 영역에서 사용이 가능하다.
IBA는 복수 개의 디바이스간에 동시 전송을 가능하게 하며, 높은 전 송 대역폭과 낮은 전송 지연시간을 제공하고 높은 확장성 보장을 위하 여 스위치 기반형 연결망으로 정의되었다. IBA는 통신 처리에 있어서 프로세서의 부하를 최소화할 수 있도록 프로토콜 및 프로토콜 처리 하 드웨어를 정의하고 있으며, 이를 통하여 zero copy 데이터 전송, 커널 오버헤드 최소화, DMA, 고확장성 및 고가용성 기능을 제공하고 있다.
주로 사용되는 Quad Data Rate (QDR)에서는 실행 전송 속도가 10 Gbits/초, 최신 Fourteen Data Rate (FDR)에서는 14 Gbits/초가 된다. 이것을 케이블 내에서 4줄로 묶으면 QDR에서는40 Gbits/초, FDR은56 Gbits/초가 실현 될 수 있다. 또한 전이중 통신이므로 송신과 수신을 합하면 QDR은 80 Gbits/초, FDR은 112 Gbits/초가 된다.
스위치의 레이턴시가 짧다. QDR은 HCA-HCA의 직접 연결로 100나노초 정도, HCA-Switch-HCA도 1마이크로초 정도의 레이턴시로 통신이 가능하다.
InfiniBand에는 최소 2종류의 흐름 제어가 존재한다. 한가지는 이더넷에도 존재하는 인접 HCA와 스위치 간, 스위치와 스위치 간에 동작하는 링크레이어의 흐름 제어이다. 다른 한가지는 HCA간에 end-to-end에서 동작하는 흐름 제어로, 양단 버퍼의 빈 용량을 상대방에게 통지하는 것으로 통신량을 조절할 수 있다. 두 종류의 흐름 제어로 폭주에 강한 네트워크를 구성하고, 처리량 한계에 가까운 성능을 쉽게 끌어 낼 수 있다
데이터를 송신처에서 수신처로 전송하는 것 뿐만 아니라, 원격 노드의 메모리 어드레스를 지정해서 데이터를 기록하는 RDMA WRITE나, 원격 노드의 메모리를 읽어오는 RDMA READ 기능이 있다.
InfiniBand는 송신처 프로그램이malloc()
이나mmap()
으로 확보한 메모리를 수신처 프로그램의 메모리에 직접 전달 할 수 있다. 이 사이에 불필요한 데이터 카피가 발생하지 않기 때문에 낮은 레이턴시가 가능하다.
서브넷 내에 있는 노드로 부터 노드로의 패킷 경로는 Subnet Manager로 불리는 콘트롤러가 소프트웨어적으로 제어한다. 루프를 구성하는 부분이 있더라도 옳바른 경로 설정을 하면 동작 시키는 것이 가능하고, 여유도가 높아 병목현상이 적은 토폴로지를 구성할 수 있다.
CA
: Channer Adapter, 서버 내에 존재하는 인터페이스로서 IBA, 서버 메모리, 프로세서와 직접 통신한다.
GUID
: MAC address와 같은 역할을 수행하며 HCA마다 고유의 주소를 부여한다.
GID
: IP address와 같은 역할을 수행하며 subnet마다 주소가 주어진다. (global)
LID
GID와 마찬가지로 IP address와 같은 역할을 수행한다. (local)
switch
switch는 라우터와 같은 역할을 수행하며 서브넷과 타 서브넷을 연결해주는 일종의 브리지이다.
RoCE(RDMA Over Converged Ethernet)는 이더넷에서 UDP/IP를 통해 RDMA 통신을 제공하는 표준 네트워크 프로토콜이다. iWARP(Internet Wide-area RDMA Protocol)는 RoCE와는 달리 RDMA 통신을 TCP를 통해 제공한다.
이 두 프로토콜은 RDMA의 장점을 가짐과 동시에 기존 이더넷 환경에서 구축이 가능해 유연성과 비용면에서 장점이 있다. 하지만 iWARP의 경우 특유의 복잡한 구조로 RoCE와 같은 성능을 기대하기 힘들고 지원하는 벤더가 적어 많이 사용되지 않는다.
기술 분석: InfiniBand 기술 동향 분석 - 한국과학기술정보연구원