가상화를 할때 '호스트 OS' 기반이던 '하이퍼바이져(Hypervisor)'기반이던. 각각의 디바이스들은 VMM을 통해서 각각의 VM 들과
연결이 되며 vmm을 통해서 디바이스를 가상으로 에뮬레이션하여 자원을 할당받아보니. 효율성 문제와 병목현상이 발생합니다.
그래서 각각의 VM에서 직접적으로 디바이스를 엑세스 할수 있게 해주는 기술이 VT-D 입니다.
(위 이미지 하나만 보셔도 차이는 쉽게
이해 되실겁니다.)
왼쪽이 일반 소프트웨어 방식의 I/O 가상화를 통한 연결방식을 보여주는것이고. 오른쪽이 VT-D 기술을 사용하여 VM
들과 연결된 상태를 보여줍니다. 이렇게 디바이스를 직접적으로 연결하기 위해서는 DMA Remapping 이라는 기능이 필요한데.
DMA Remapping 이란 이름에서 알수 있든 장치(디바이스)의 고유 메모리 주소를 VM(게스트OS)에서 "직접" 엑세스 할수 있도록
DMA메모리 주소값을 변환/관리 해주는 기술입니다.
각각의 디바이스들과 시스템이 직접적으로 연결되는 노스브릿지 사이에 VT-D 기능이 위치하게 되며. 이로 인해 '칩셋'에 따라 VT-D 가
적용여부가 달라지는것입니다.(※주: 메모리 컨트롤러가 cpu에 내장되고. 노스/사우스 칩셋 통합 및 인텔 정책에 따라 칩셋이 아닌 다른
제약조건으로 바뀔수 있음.)
또한 DMA Remapping 직접적으로 연결된다는 사실 이외에 따라 각각의 디바이스들은 독립적인 I/O 버퍼를 활용할수 있기 때문에 병목현상이
줄일수 있으며, 도메인간 버퍼를 공유하지 않기 때문에. 데이터 보안성도 높일수 있다는 장점도 있습니다.
VT-D 기술에 대해 좀더
자세한 내용을 원하시는분은 아래 링크를 참고하기 바랍니다.
http://download.intel.com/technology/computing/vptech/Intel(r)_VT_for_Direct_IO.pdf
http://www.intel.com/technology/itj/2006/v10i3/2-io/1-abstract.htm
결론적으로 VT-D 기술은 가상화시 당연히 있으면 좋은 기능이며. 클라이언트에게 서비스를 제공하는 서버 입장에서는
큰 차이가 됩니다만…. 데탑 시스템으로 지원할수 있는 최대 메모리 및 코어수가 서버용 제품들에 비해 한정적이라 많아봐야 2~4개정도의 VM을
올리는게 최대치라 생각되는데. 이정도 규모에서는 VT-D의 유무에 따른 체감속도는 미비할것으로 생각됩니다.
저렴한 가격에 VT-D
기능과 인텔 AMT 기능을 사용해 볼 생각이라면 구매를 말리지는 않겠습니다만.
슈퍼마이크로 제품들중에서 모델명이 C로 시작하는
제품들은 데탑용으로 설계된 구색 맞추기용 제품이라. 서버용으로 개발된 X계열보다 전원부도 부실한게 사실이고. 전반적으로 저렴한 부품이
사용되었기에. 적극 추천할 만한 제품은 아니라고 생각됩니다. 차액금인 10만원을 저축하여 차후 물리적 듀얼 제품으로 업글하는것도 한가지 방법이라
판단됩니다. 신중하게 선택하셨으면 합니다.
- 짧게 축약하면 게스트 OS가 물리적인 Device를 별도의 에뮬레이팅을 거치지 않고 직접 I/O할 수있도록 하는 기술이다. 즉, Guest OS가 조금더 Host OS(또는 Hypervisor)에 근접한 성능과 환경이 될 수 있도록 뒷받침 해주는 기술임.
* VT-D는 Intel의 Direct I/O 가상화 기술이고, AMD는 AMD-VI 라는 같은 맥락의 가상화 기술이 있다.
CPU, 메인보드, Hypervisor 모두 해당 기술을 지원해야 사용 가능하다.
* 참고로 mapoo는 Intel i5-3570 CPU와 Foxconn B75M Mainboard를 통해서 VT-D를 사용중이다.
* 이미지 출처 : intel.com
* 내용 출처 : http://2cpu.co.kr/bbs/board.php?bo_table=QnA&wr_id=343381