본문 바로가기

IT Professional/Windows Management Technology

Microsoft Hyper-v Capacity design

가상화를 통한 윈도우 시스템의 구현에 요즘 가상 머신을 사용한 구현이 많이 이야기 되고 있다.

실제로 MS, EMC, Quest, Cytrix 등 수많은 제조사들이 가상화에 도전하고 있고, 그 선두 주자는 단연 VMware 다.

하지만, Windows 의 제조사인 Microsoft  의 영향력도 무시할 수는 없는 상황이고 점차 시장을 늘려가는 Hyper-V 에 의 용량 산정에 대하여 이야기 해 보자.


Hyper-V 를 구성하는 경우 가장 큰 이슈는 2가지다. CPU, Memory… HDD 는? 모자라거나 이상이 있으면 처음 부터 가상 머신이 구동되지 않으니 예외로 하자.


1. CPU 의 경우 Hyper thread 를 On/Off 할지의 여부가 중요하다. 가상 머신에 할당된 Core 수가 Hyper thread 로 가상화된 core 수보다 많지 않다면, hyper thread 를 off 시킬 강하게 권한다. 예를 들어 8 core  시스템에 hyper thread 로 16core 가 된 경우, 가상 머신이 소요하는 CPU 가 10 core  가 되면 물리적 CPU 4 core 분을 사용하지 않게 된다. 물론 대량으로 core 를 소모하는 경우 전체를 다 소모하기도 하지만, 가상 머신의 core  와 실제 core  를 감안하여 hyper thread 를 사용하여야 한다.


2. 두 번째 memory  는 더 중요한 문제다, CPU 설정이 잘못되면 서버가 속도가 저하되지만 Memory 크기의 산정이 잘못되면 서버가 Blue screen 을 일으키면서 죽는다… 그것도 Host 가…!!!


일단 두가지 메모리 설정에 주의하도록 하자.


첫번째는, 가상 머신의 메모리 크기가 실제 서버의 메모리 크기에 20% 를 넘지 않는 선에서 설정하자.
예를 들어 64GD 머신에는 16GB   가상 머신을 설정하지 말자는 의미다.


두번째는 가상 머신의 각각의 최대 메모리 크기가 실제 머신의 메모리 서버의 메모리 여유량의 50% 가 넘지 않도록 하자. 즉 실제 머신의 메모리 크기가 32GB  인데 8GB 가상 머신이 올라가는 경우 최소한 약 10GB  정도의 메모리는 남겨 두어야 한다는 말이다.


이는 hyper-v  가 가상 머신에 메모리를 전달하는 로직이 연속된 공간에 제공한다는 제약에 의해서 발생하는 by design  적인 이슈이다. 여기서 나온 수치는 실제로 경험에서 나온 수치이므로 정확한 기술적 근거를 가지고 있지는 않다. 또한 이 문제에 대해서 MS 에서 버그로 인정하고 시스템의 패치를 제공하기로 하였지만, 일단 시스템의 안정적인 운영을 위해서는 일단 패치 이전에 안정적인 운영을 위해서 생각해 보아야 할 문제다.


참, 그리고 그 전에, 안정적인 운영을 원한다면, 아직은 MS 제품보다는 VMware 를 쓰는게 나을 것 같다. 물론 비용이 허락한다면…