2011년 5월 31일 화요일

Infiniband

인터넷 및 인트라넷 기술 발달에 따라 웹 서비스 및 전자상거래 서비스를 지원하기 위한 인터넷 서버는 연산 능력뿐 아니라 높은 입출력 처리 능력을 요구한다. 웹 서비스와 전자상거래 서비스와 같은 인터넷 응용 서비스를 비롯하여 OLTP(On-Line Transaction Processing) 및 의사결정 응용 서비스(Decision Support Application)를 제공하는 서버는 이미 입출력 장치와 중앙처리 장치 간의 연결망에서 성능 한계에 부딪히고 있다. InfiniBand 연결망은 고속 점대점 연결구조를 갖는 차세대 서버용 연결망으로 차세대 인터넷 서버에서 요구되는 입출력 중심의 정보 처리 기술에 적합하도록 구성되어 있다.
InfiniBand는 프로세서와 입출력 장치 간 데이터 흐름에 대한 구조 및 규격으로서, 보다 큰 대역폭과 거의 무한대에 가까운 확장성을 지닌다. InfiniBand는 향후 수년 동안 현재 대부분의 개인용 컴퓨터와 서버에 사용되고 있는 PCI 방식을 점차 대체할 것으로 기대된다. InfiniBand는 초당 최대 2.5 GB의 스루풋을 제공하며, 64,000개의 주변장치에 대해 지원이 가능하다. 또한, 이 구조는 더 좋아진 신뢰성, 프로세서 클러스터 간의 더 나은 데이터 공유, 그리고 내재된 보안 기능 등을 기약하고 있다. InfiniBand는 컴팩, IBM 및 HP 등에 의해 개발된 Future I/O라는 설계와, 인텔, 마이크로소프트 및 썬마이크로시스템즈 등에 의해 개발된 Next Generation I/O 등 두 가지의 구조 설계가 합쳐진 결과로 탄생하였다. 비록 잠시 동안이긴 했지만 이 구조는 InfiniBand라는 새로운 이름을 붙여지기 전까지는 System I/O라고 불린 적도 있었다.
오늘날의 64 비트, 66 MHz PCI 버스를 포함한 기존의 PC와 서버 시스템은 유연성이 떨어지며, 내부 데이터 흐름이 상대적으로 느리다는 이유 때문에 곤란한 점이 많았다. 컴퓨터 내부 부품들로 흘러 들어오고 나가는 많은 량의 데이터 때문에, 기존의 버스시스템은 병목 현상을 보여 왔다. InfiniBand는 이에 대해 가히 혁명적이라 할 만큼의 새로운 접근방법을 제시한다. 즉, 데이터를 한번에 32 비트 또는 64 비트 등과 같이 병렬로 보내는 대신, 한번에 한 비트씩 보내는 직렬 버스를 조건으로 지정하고 있는 것이다. 이렇게 하면 핀의 갯수와 전자적 접점이 적어도 되므로, 생산비가 절감되는 동시에 신뢰도는 오히려 개선된다. 직렬 버스는 신호를 다중화 함으로써 동시에 여러 채널의 데이터를 전송할 수 있다. InfiniBand는 프로세서와 저장 장치 양측 모두에서 주소를 지정할 수 있는 여러 개의 기억 공간을 지원한다.
InfiniBand는 컴퓨터 내에 있는 현재의 입출력 서브시스템과는 달리 완전한 네트웍처럼 보이기도 한다. InfiniBand 교역 조직에서는 이 새로운 버스를 입출력 네트웍이라고 표현하고 있으며, 제어 정보가 목적지 주소까지 따라 가야할 메시지의 경로를 결정하기 때문에, 버스 그 자체를 하나의 스위치로까지 여기고 있다. 사실 InfiniBand는 자신의 128 비트 주소와 함께 IPv6를 사용함으로써, 거의 무한대에 가까운 주변장치 확장을 가능하게 한다.

InfiniBand의 배경
인터넷의 발전과 인터넷 기반형 서비스의 대중화는 서버의 기능면에서 많은 변화를 가져왔다. 연산능력 중심으로 하는 컴퓨팅 서버에서 연산 능력은 물론 입출력 처리 능력에서도 높은 성능을 요구하는 인터넷 서버로 그 기능이 변화되었으며, 이로 인하여 PCI(Peripheral Components Interconnect) 버스로 대표되는 입출력 버스는 고성능 인터넷 서버를 구현하는데 있어서 성능 한계를 맞게 되었다. 또한 버스의 구조적인 단점인 고가용도와 확장성의 한계는 고성능 인터넷 서버 구현에 있어서 제약 사항으로 남아 있었다.
서버의 기능이 변화함에 따라서 요구되는 기능에 적합한 구조의 제안이 나오게 되었으며, 새롭게 제안된 구조는 새로운 연결망 구조에 기술적 노력을 집중하였다. 인텔(Intel)과 썬(Sun Micro-systems)을 주축으로 하는 “NGIO(Next Generation IO)” 그룹과 HP(Hewlet Packard)와 IBM, Compaq을 주축으로 하는 “Future IO” 그룹이 차세대 서버 연결망을 목표로 구성되었다. 양 진영은 모두 스위치 기반형 점대점 연결망이라는 유사한 연결망 구조와 이를 이용한 서버 구조를 검토, 제안하고 있었으며 지난 1999년 8월 두 진영이 통합하면서 InfiniBand라는 차세대 서버 연결망 구조를 제안하였다.

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

PCI 버스를 사용하여 구성되는 서버는 PCI 버스의 성능 한계로 인하여 중앙처리 장치의 성능을 떨어뜨리고 있으며, 특히 고성능 인터넷 서버의 요구사항인 고가용도와 확장성을 보장하기 어렵다. PCI 버스 구조의 단점은 다음과 같다.
  • 공유 메모리 매핑 방식에 의한 통신 방법
  • 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 버스에 의해서 결정되는 단점이 있다.

InfiniBand의 해결책
서버의 내부 연결망(PCI 버스)에서 발생하는 병목 현상과 공유 버스 구조의 낮은 확장성 및 가용성을 극복하기 위하여 InfiniBand는 다음과 3가지 구조적 해결책을 제시하고 있다.
  • 공유 메모리 매핑에 의한 통신 방식에서 채널형 통신 방식으로
  • 병렬 버스 신호 전달 방식에서 고속 직렬 신호 전달 방식으로
  • 공유 버스 연결 구조에서 스위치 기반형 점대점 연결 구조 방식으로

InfiniBand는 채널 기반형 통신 방식을 사용한다. 채널은 중앙처리 장치와 입출력 장치 사이에 구성된 독립적인 메시지 패싱 인터페이스로 주기억 장치와 입출력 장치간의 직접적인 데이터 전송을 보장하여 공유 메모리 매핑 방식에서 발생하는 데이터 복제 오버헤드를 제거하고, 각 채널은 독립적으로 유지 관리된다. 채널 기반형 메시지 패싱은 중형 클러스터 컴퓨터에서 사용되던 VIA(Virtual Interface Architecture)를 InfiniBand에 적용한 것으로 중앙처리 장치 상호간 또는 중앙처리 장치와 입출력 장치간에 독립적인 사용자 수준 메시지 패싱 인터페이스를 제공하여 운영체제의 간섭없이 통신을 가능하게 한다. 채널은 점대점 연결망 사용을 위한 사용자 프로그래머블 레지스터 레벌 인터페이스로 정의할 수 있으며, 채널을 제어하는 하드웨어는 DMA (Direct Memory Access) 엔진을 사용하여 주기억 장치와 통신하고자 하는 상대방과 직접 데이터를 송수신 할 수 있게 한다. 따라서 중앙처리 장치는 입출력 장치 제어 및 접근과 데이터 전송에 관련된 작업 부하를 줄임으로써 시스템 성능을 향상 시킬 수 있다.
InfiniBand는 PCI 버스와 달리 고속 직력 전송 방식을 사용한다. InfiniBand 연결망 구조가 스위치 기반형 점대점 구조를 가짐에 따라 스위치를 포함하여 연결망 구성에 있어서 비용을 절감하고 신호 전달 속도를 고속화 하기 위해서이다. 현재 2.5Gbps급 직렬 전송을 기본으로 4개, 12개의 직력 전송로를 하나의 포트로 사용하는 것도 가능하다.
InfiniBand는 스위치 기반형 점대점 연결 구조를 사용한다. 스위치 기반형 점대점 연결 구조는 공유 버스 구조의 가장 큰 단점인 확장성과 고가용성 보장을 위해서이다. 스위치 기반의 점대점 연결 구조를 가짐으로서 연결 포트의 확장 및 제거가 자유로우며, 특히 공유 버스 구조가 내포한 결함 가능성을 제거할 수 있다. 또한 점대점 연결 방식을 사용하므로 hot-plug 기능을 하드웨어적으로 완벽하게 지원할 수 있으며, 신규 장치의 장착 및 오류 장치의 분리를 손쉽게 구현할 수 있다.

InfiniBand 구성 요소
새로운 서버 구조를 위한 InfiniBand구조는 하드웨어적으로 아래와 같이 구성될 수 있다. 중앙처리 장치와 메모리 장치로 구성되는 호스트는 HCA(Host Channel Adapter)를 통하여 InfiniBand 연결망에 접속된다. 입출력 장치는 TCA(Target Channel Adapter)를 통해서 Infini-Band 연결망에 접속되며, HCA와 TCA는 스위치와 라우터로 구성된 InfiniBand 연결망을 통해서 상호간에 채널을 설정하고 메시지 패싱을 사용하여 통신한다.
  • HCA는 다른 호스트 또는 입출력 장치와 통신을 위하여 호스트에게 채널 인터페이스를 제공하는 장치로 사용자 수준 프로그램에서 “Verb” 라는 소프트웨어 인터페이스를 사용하여 메시지를 송출하고 수신하는 기능을 수행한다. 호스트 프로세서에 의해서 발생된 메시지 전송 요구를 해독하여 메모리 장치에서 데이터를 읽어서 InfiniBand 연결망으로 송출하고 또한 수신된 메시지를 해독하여 메모리 장치에 직접 쓰는 작업을 수행한다. HCA는 스위치와 TCA 모두에 연결할 수 있으므로 서버 구성시 서버의 규모에 따라서 유연하여 시스템 구성을 가능하게 한다.
  • TCA는 입출력 장치와 연결망을 이어주는 장치로 디스크 콘트롤러, 네트워크 콘트롤러, RAID 콘트롤러 등과 같은 다양한 입출력 장치를 InfiniBand 연결망에 정합할 수 있게 한다.
  • InfiniBand 연결망은 스위치와 라우터로 구성된다. InfiniBand 연결망은 글로벌넷과 서브넷 두 단계로 구성되며 각 단계에 따라서 경로 설정에 사용되는 식별자를 구분하고 있다. 스위치는 서브넷 연결망에 연결된 노드간의 경로 설정을 담당하고, 라우터는 글로벌넷 연결망을 구성하는 서브넷 연결망간의 경로 설정을 담당한다.


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

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...