Dynamic Datacenter를 위한 첫번째 발걸음, Dynamic Memory in Hyper-V R2 서비스팩 1(SP1)

image

무더운 여름 잘 보내고 계신지요? Microsoft BPIO(Business Productivity Infrastructure Optimization) 기술의 핵심인 Office 2010 제품 출시 이후, 약간의 휴식(?), 그리고 또다른 이야기를 위한 준비의 시간이 조금 길었던 것 같습니다. 지난 7월 13일 Windows 7, Windows Server 2008 R2, Hyper-V Server 2008 R2 서비스팩 1 공개 베타 포스팅 이후, Windows 7/Windows Server 2008 R2 서비스팩 1에 대한 내용을 조금씩 살펴보고, 그중 첫번째 이야기로 Hyper-V R2 SP1에 추가될 기술 중 동적 메모리(Dynamic Memory)에 대한 이야기를 논해볼까 합니다.

Windows Server 2008 R2에 포함된 Hyper-V R2 버전에서는 실제 가상 머신(VM)을 사용할 때, 가상 머신에서 사용하는 메모리를 지정하면, VM 동작시 실제 물리적인 메모리를 할당하여 사용하게 하였습니다. VM에 할당된 전체 메모리 + Windows Server 2008 R2(물리적인 머신)에서 사용하는 메모리의 총 합이 설치된 메모리를 넘을 수도 없습니다. Hyper-V R2 SP1에 포함된 동적 메모리 기술을 언급하기 전, 먼저 확실히 이야기해야 할 부분은 서비스팩1에서 물리적인 메모리의 총합이상을 가상 머신에서 사용할 수 있느냐라는 것입니다. 결론적으로는 불가능합니다. Hyper-V 개발팀의 경우, 다양한 측면에서 가상화에서의 메모리 기술을 검토하고, 이를 기술로서 구현하고 있습니다. 비록 영문으로 되어져 있지만, 본사의 가상화 개발팀의 동적 메모리 기술에 대한 포스팅을 살펴보면, 최소한의 성능 임팩트를 고려하여 기술을 구현하고 있음을 알 수 있습니다. (성능과 관련된 재미있는 문서로는 Windows Server 2008 R2의 VHD 성능을 정리해놓은 문서도 있습니다. WS08_R2_VHD_Performance_WhitePaper.docx를 살펴보세요 Smile)

image

특히 파트 3부터 6에 이르는 포스팅은 가상화 기술에서 가상 머신의 메모리 관리 기술에 대한 자세한 기술 설명이 포함된 포스팅이므로, 시간이 되실 때, 한번 읽어보시길 강추합니다. Smile

image

Windows Server 2008 R2 SP1을 설치하면, VM의 설정에 위와 같은 그림으로 구성된 메모리 부분을 살펴볼 수 있습니다. SP1 이전까지는 메모리를 고정 값으로 입력해야 하지만, 이젠 동적으로 시작시 메모리, 그리고 최대 메모리 양을 입력할 수 있습니다.

그 밑에 위치한 것은

image

VM내에서 최소한의 메모리로 얼마를 가지고 있을 것인가를 지정할 수 있는 부분입니다. 기본값이 20%이므로, 1G의 메모리를 시작 메모리로 지정했을 경우, 200MB의 메모리가 항상 여유공간으로 남아있게 한다는 것입니다. 이 이하로 떨어질 경우, 동적 메모리 최대양에 설정된 값까지 살짝살짝 올라가게 된다는 것이죠.

image

메모리 우선 순위의 경우에는 다양한 VM이 동적 메모리를 사용할 경우, 어느 VM의 동적 메모리 할당이 우선하는지를 설정할 수 있습니다. 전체 VM이 사용하는 메모리의 총합이 실제 물리적인 메모리양을 넘을 수 없다고 앞에서 언급하였습니다. 그럴 경우, VM의 밀집도가 높아질수록 메모리 할당 가능양은 줄어들 수 밖에 없습니다. 어느 VM부터 할당할 것인가에 대한 우선 순위를 지정할 수 있는 부분입니다.

image

동적 메모리의 기술이 반영되고, Hyper-V MMC의 약간의 레이아웃 변화가 생겼습니다. 바로 현재 메모리, 그리고 사용 가능량입니다. 사용 가능량이 앞서 설정한 버퍼로 예약된 양보다 적게되면, 메모리가 계속적으로 추가 반영되게 되고(최대값까지), 메모리 사용량이 줄면, 다시 줄어들게 되어서, 한눈에 현재 상태를 확인할 수 있는 부분입니다. 아직까지 SCVMM 2008 R2에서는 이와같은 부분의 레이아웃을 확인할 수 없지만, Windows Server 2008 R2 SP1 출시(2011년 상반기 출시 예정)이후에는 반영되겠죠?

후에 포스팅할  RemoteFX와는 달리, 동적 메모리 기술은 별도의 하드웨어 요구 조건은 없습니다. SP1을 설치하시고, VM의 Integration Services만 SP1용으로 업그레이드해주시면, 기존 Hyper-V R2에서 지원하는 모든 OS는 전부 동적 메모리 기술을 사용할 수 있습니다.

image

본사의 가상화 개발팀의 블로그내 동적 메모리의 활용을 설명한 내용이 있어서, 이를 이용하여 동적 메모리의 동작 시퀀스를 살펴보죠. (예제의 서버는 메모리가 8G인 서버입니다.)

VM 시작. 각 머신에 메모리를 1G를 부여하였고, 최대 4G를 설정해놓았습니다. 이에 VM을 처음 켰을 경우, 물리적인 메모리는 3G를 사용합니다.

Hyper-V DM Start Time

15분 후. Finance VM과 Engineering VM에 부하가 걸리는 작업이 시작되었습니다. 이에 Finance VM은 3G, Engineering VM에는 2G의 메모리가 할당되었습니다. 여전히 Sales VM은 1G입니다. 전체 메모리 사용량은 6G로써, 물리적인 메모리의 75%가 사용되고 있습니다.

Dynamic Memory @ 15 Minutes

30분 후. Finance VM과 Engineering VM이 계속적으로 부하가 걸린 상태에서 Finance VM엔 2G, Engineering VM엔 3.5G가 부여되었습니다 이에서 유추가능한 부분은 바로 Engineering VM에 더 많은 메모리가 할당된 것으로 보아, VM 메모리 부여 우선 순위가 Engineering VM이 높다는 것을 알 수 있습니다. 그리고 추가적인 VM이 시작되었네요.

VM의 사용 가능한 메모리의 양에 따라, 메모리가 회수되고, 다시 배분되고를 반복하게 됩니다. 또한 VM에 메모리를 할당하기 위해, 물리적인 운영 체제가 페이징을 하지는 않습니다. 메모리가 모두 사용중인 경우, 우선 순위에 따라 메모리를 배분하기 위해, VM내에서 자체적인 페이징은 발생할 수 있지만, 메모리 요구가 물리적인 운영 체제에까지 영향을 미치진 않습니다.

Hyper-V R2 SP1에 포함된 동적 메모리(Dynamic Memory)에 대해서 조금은 이해가 가셨나요? 시스템을 끄지 않고, 동적으로 메모리에 대한 할당이 가능해지면, 좀더 유연하고, 동적인 인프라를 가지는데 많은 도움이 될 것으로 사료됩니다. 물론 이러한 부분은 클라우드 시대의 데이터센터에선 필수적인 요건이죠~ Smile

다음 포스팅에서는 Dynamic Datacenter Toolkit으로 알려져있는, System Center Virtual Machine Manager Self-Service Portal 2.0 (VMMSSP)에 대해서 살펴보겠습니다.