Dec 31, 2009

I/O 가상화

I/O 가상화는 VM웨어나 마이크로소프트 하이퍼-V 같은 가상화 소프트웨어를 구동하는 서버들을 괴롭히는 문제를 해결할 수 있다. 단일 서버에 많은 수의가상머신을 구동할 때, I/O는 심각한 병목이 되는데, 백엔드에서 가상머신이 네트워크와 통신할 때는 물론, 가상 머신을 스토리지와 연결하는 데도 마찬가지다. I/O 가상화는 단일 서버 상에서 여러 가상머신에 걸쳐 대역폭을 할당하기 쉬워질 뿐만 아니라 물리 서버의 풀과 스토리지 풀 간의 연결을 동적으로 관리할 수 있는 방법도 제공한다.

우선 개별적인 서버를 살펴보자. 예를 들어, VM웨어의 권장사항에 따라 가상머신 당 기가비트 이더넷 포트 하나씩을 할당했다고 하자. 서버가 16대의 가상머신을 지원하면, 4개의 4포트 기가비트 이더넷 NIC가 필요하며, 여기에 더해 스토리지 연결을 위해 추가로 iSCSI나 파이버 채널 어댑터가 필요하다. 하지만 대부분의 서버는 설사 쿨링 성능이 엄청나게 뛰어나다 하더라도 이렇게 많은 어댑터를 장착할 만큼의 빈 슬롯이 없다. 게다가 현재의 인텔이나 AMD 기반 서버들이 8~24코어 정도를 가지고 있고, 수백 기가바이트의 RAM을 지원한다는 것을 감안하면, 물리 서버 한 대에 16대의 가상머신을 지원하는 것은 쉽지 않은 일이다.

시스코나 Xsigo 같은 I/O 가상화 업체는 여러 개의 이더넷 카드나 파이버 채널 대신의 하나의 초고속 접속을 제공해 이런 문제를 해결하고 있다. 그리고 하나의 초고속 접속은 다수의 가상 접속을 제공하는 방식이다. 여기에 사용되는 어댑터는 자체 HBA가 아니나 표준 10기가비트 인피니밴드나 10기가비트 이더넷 어댑터로, 운영체제용 드라이버와 함께 사용되기 때문에 운영체제에서 단일 고속 접속을 여러 개의 네트워크 및 스토리지 접속으로 처리할 수 있다. 모든 것이 단일 대역폭을 통해 구동되기 때문에 시스템에서 가상 접속에 필요한 만큼의 대역폭을 할당할 수 있으며, 적재적소에 대역폭을 제공해 최대 성능을 구현할 수 있다.

I/O 가상화는 보통 각 서버에 어댑터 하나씩으로 구성되어, 이를 스위치나 어플라이언스에 단일 케이블로 연결하며, 스위치나 어플라이언스가 스토리지나 다른 네트워크로 연결하는 포트를 제공하는 방식이다. 이런 구성은 각 서버의 설치뿐만 아니라 데이터센터의 케이블링도 단순화시켜 준다. 또한 서버에 장애가 생겼을 때, 이를 다른 시스템으로 옮기는 작업도 쉬워진다.

시스코의 UCS 같은 솔루션에서는 I/O 가상화를 통해 서버 프로비저닝이나 리퍼포징(Repurposing, 용도 변경), 장애 극복 등이 매우 유연해지며, 소프트웨어로 조작 가능하기 때문에 완전 자동화된 환경을 구현할 수도 있다. 더 나아가 I/O 가상화 시스템은 다양한 속도로 구동되는 여러 이더넷 및 파이버 채널 접속을 에뮬레이션할 수 있어서 가용 대역폭을 가상머신 이전이나 다른 부하가 큰 작업에 맞춰 세밀하게 조정할 수 있다.

I/O 가상화는 현재 사용 중인 특정 운영체제를 지원하는 드라이버가 필수적이다. VM웨어 ESX와 윈도우 서버 2008 하이퍼-V를 포함한 주요 운영체제와 가상화 플랫폼을 지원하지만, 리눅스와 젠, 그리고 다른 오픈소스 가상화 플랫폼은 지원되지 않는다. 만약 지원되는 운영체제를 사용하고 있다면, I/O 가상화는 대규모 데이터센터를 한층 단순하고 저렴하게 운영할 수 있도록 해주며, 특히 처리 성능과 메모리 지원의 확대로 서버가 처리할 수 있는 가상머신의 수를 늘려줄 것이다.