Windows Server 2012 Hyper-V, 클라우드의 정확한 이용량 측정을 통한 과금(Charging)

image

클라우드 인프라의 핵심 과제중 하나가 사용량에 대한 정확한 과금입니다. 이 과금을 위해서는, 실시간 단위의 자원 사용 측정이 되어야 하고, 이러한 측정은 운영 체제의 정보 제공과 관리 도구의 연계가 필수적입니다.

많은 클라우드 인프라가 실시간 과금이 아닌, 일, 혹은 월단위 과금을 하고 있는 이유도 운영 체제와의 연계 기술 개발과 많이 관련이 있습니다. 일정 주기로 릴리즈되는 Windows Server의 경우, 현재 출시된 가장 최신의 버전은 Windows Server 2008 R2이며, Windows Server 2008 R2 출시 시점에는 클라우드란 단어는 이렇게 유행하기 전이었죠. 돌아가보면, Microsoft의 공용 클라우드(Public Cloud)인 Windows Azure의 경우에도 이러한 과금을 위해 운영 체제의 추가 모듈 개발이 필수적이었을 것으로 보여집니다.

image

위의 그림은 Windows Azure에서 동작중인 특정 VM의 성능 현황입니다. 여러 하드웨어 자원의 이용량이 측정되는 모습을 볼 수 있습니다. 당연히 Windows Azure의 경우에도 Windows Server를 근간으로 할 것이며, 마이크로소프트가 클라우드 서비스를 운영하면서 얻은 교훈들.. 그 결과로.. 포스팅에서 언급한 것처럼, 운영 체제에 추가한 여러 기술과 노하우를 패키징한 첫번째 관리 기술이 System Center 2012이며, 운영 체제 기술이 Windows Server 2012입니다.

이야기가 길었네요. 결론적으로 사용하는 방법은 어렵지 않습니다. VM 단위의 사용량 측정을 위해서는 PowerShell의 Cmdlet을 이용해야 합니다.

Enable-VMResourceMetering, Disable-VMResourceMetering, Reset-VMResourceMetering이 이에 해당됩니다. 사용량 측정 단위의 최소는 VM 단위이며, VM내 특정한 속성(프로세서, 메모리, 네트워크, 하드 디스크)등만 뽑아낼 수도 있습니다. 더불어, 여러 자원을 묶어서 풀(Pool)형태로 제공하는 옵션도 당연히 제공됩니다.

ResourceMetering에서 살펴보는 값은 아래와 같습니다.

  • Average CPU usage, measured in megahertz over a period of time.
  • Average physical memory usage, measured in megabytes.
  • Minimum memory usage (lowest amount of physical memory).
  • Maximum memory usage (highest amount of physical memory).
  • Maximum amount of disk space allocated to a virtual machine.
  • Total incoming network traffic, measured in megabytes, for a virtual network adapter.
  • Total outgoing network traffic, measured in megabytes, for a virtual network adapter.

Get-VM Cmdlet을 통해 VM을 선택하고(타 서버에 배치된 경우 -computername을 이용해야 합니다.), 이를 Enable 시켜주는 형태입니다.

image

이렇게 수집된 데이터를 확인하는 Cmdlet은 Measure-VM이며, 가장 상단의 그림에서 결과를 살펴보실 수 있습니다. Enable-VMResourceMetering시, ResourcePool(여러 VM을 묶어줄)과 어떤 유형만 모니터링할지 결정할 수 있습니다. 풀 유형에는 Processor(CPU), VHD(하드 디스크), Ethernet(네트워크), Memory(메모리) 속성을 이용할 수 있습니다. 풀 단위의 이용량 데이터 확인은 Measure-VMResourcePool Cmdlet을 이용합니다. 네트워크의 경우에는 내부 교신용은 별도의 과금을 하지 않을 경우도 존재하기에, Windows Server 2012 Hyper-V, 보다 완벽한 멀티 테넌트를 위해, PVLAN(Private VLAN), ACL, 고급 보안 기술까지.. 포스팅에서 ACL 설정에 Meter 관련 부분이 있었던 것입니다. 여기서 Metering을 안하겠다고 선언하면, 이용량에서 측정하지 않죠.

image

image

이렇게 수집된 정보는 Hyper-V 호스트 서버의 속성에 따라 평균값이 결정됩니다. 결과의 Avg 이름이 붙은 경우, 기본적으로 1시간마다의 평균을 보여주는 것이죠. 이에 대한 변경은 Set-VMHost Cmdlet을 이용하시면 됩니다.

image

System Center 2012 Service Manager SP1Cloud Service Process Pack을 연계하면 관련된 이용량과 과금 정책을 묶어, 보고서 형태로 만들 수 있습니다. 이를 고객이나 내부에서 이용하여, 진정한 과금 모듈 형태를 띄게 되는 것이죠.