Windows Server 2012 가상화 관련 영업멘트 유감

얼마 전에 Windows Server 2012 설명(=영업)을 들을 기회가 있었는데, 차마 그 자리에서 뭐라 그러진 못하고 (…) 여기에 간단히 적어두기.

1. Windows Server 2012의 가상화 기능은 가장 최신의 linux kernel에 추가되었고 그런 건 hyper-v (MS의 가상화 기술) 뿐이다.

고갱님 여기서 구라치다 걸리면 피곤합니다 (…). 가상화가 VM에서 돌아가는 OS가 뭔지 모르면 매우 좋을 것 같지만 실제로는 성능 때문에 (syscall 할 때마다 가상 머신 OS – 가상 머신 device emulation – 물리 머신 OS – 물리 머신 device를 다 거치면 오래 걸린다) para-virtualization(=반가상화라고 번역하기도)을 하거나 일부 성능에 민감한 장치(block IO, network IO, graphic card …)에는 가상 머신 device emulation을 건너뛸 방법을 찾는다.

Hyper-v가 kernel mainline에 올라간 건 3.3 때 얘기고, 저 설명회(?)할 당시에 3.7 릴리즈 사이클이 진행 중이었다. (그리고 어제, 2012-12-12에 3.7 stable이 릴리즈 되었다) 게다가 mainline 말고 드라이버만 따지면 훨씬 오래된(=서버 2008시절; 2.6.xx 시절) 얘기기도 하다.

근데 Xen과 VMware가 linux kernel의 반가상화 드라이버들을 이용한 건 2.6 후반 (2.6 개발 사이클이 너무 길다;; ) 얘기다. 상대적으로 역사가 짧은 KVM도 포함된 지 오래되었음. (이것 역시 2.6.xx 시절의 얘기)

반대로 Windows에서 linux의 반가상화 드라이버인 virtio 나 VMware의 반가상화 드라이버를 쓸 수 있었던 게 이미 수년이 지난 얘기인걸 생각하면 (…).

2. Windows Server 2012의 반가상화 드라이버의 block device IO 성능이 좋아서 데이터베이스 인스턴스를 운영할 수 있다.

많은 기술들이 그렇듯이 상황에 따라 다르다. 지난 달 말에 모 게임 서버팀장을 만났는데 (서비스 중인 게임이 DB 서버에 들어간 돈이 좀 많다) 이 얘길 했더니 코웃음 치더라. IOPS가 모자란다고 (…).

그래도 M$ 내부의 빌드팜에서도 쓸 수 있을 정도라 하니 성능은 좋은 편이겠지만 영업 멘트만 읽으면 좀 곤란하지.

3. MS가 만든 네트워크 가상화 솔루션은 훌륭하다.

…뭐라고! NVGRE를 니네가 만들었냐!! ((그럴 리가 없지. 흔히 그렇듯이 CISCO에서 나옴))

여하튼 영업멘트에서 이거 기반으로 가상 네트워크를 구축할 수 있고 반가상화 드라이버 때문에 성능도 좋다라는 거였는데. 일단 네트워크 가상화의 성능 문제는 간단하지 않다.
원래 하드웨어에서 할 부분을 CPU가 대신하는 부분이 많기 때문에 CPU 로드가 꽤 높다.

아마 이쪽 엔지니어링 경력이 없는 에반젤리스트라 그럴 수도 있겠지만, 상대한테 매우 중요할 수도 있는 부분에서 이렇게 말하면 곤란하다. TechNet의 blog 포스팅에서도 고성능 네트워크가 필요하면 (이러면 사용자간 네트워크가 분리되어 있지 않기 때문에 사실 상 가상화가 아닌) IP rewrite를 쓰라고 되어있다.

저 글에서도 말하고 있지만 LSO 같은 기능을 이용하게 구성된 stateless transport tunneling (=STT) 같은 걸 써야 한다. 아니면 CPU 오버로드를 버틸 생각을 하고 GRE를 그냥 쓰거나.

 

간단히 정리하자면,

  • 영업은 영업
  • 에반젤리스트도 해당 회사에 맞는 영역으로 보내주시면 좋겠습니다(…)
  • (환경에 따라 다르겠지만) VMware 솔루션(vCenter?)을 대체하는 게 아니면 큰 임팩트는 없을 것 같다.
Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

One comment

  1. hyper-v 용 balloon driver는 3.8 merge window에 있는 걸 보면 리눅스 지원은 아직 멀었네 뭐 (적어도 커널에 직접 포함된 수준에선).

Leave a Reply