마이크로소프트2010. 7. 22. 17:22

많은 고객들이 Microsoft의 가상화, Hyper-V에 대해 제공되었으면 하는 부분이 바로 메모리에 관한 것 입니다.
”V사의 경우는 메모리 overcommit을 제공하는데, 왜 마이크로소프트는 동적인 메모리 할당을 제공하지 않는가?”

그런데 실제로 사용하시는 모습을 보면 메모리 overcommit을 켜놓고 쓰는 경우는 거의 보지 못했습니다. 성능 저하가 일어난다는 사실을 알고 계시기 때문입니다. 

메모리 overcommit이란? 실제 물리적 서버에 4G의 메모리가 있을 때 가상 서버가 1G의 메모리를 사용한다면, 4개의 가상 서버를 구동하면 물리적인 4G가 다 점유됩니다. 실제로는 더 이상의 가상서버에 메모리 할당이 불가능한데, 이 것을 실제로는 더 적게 사용하는 것처럼 하면서 5번째 가상서버, 6번째 가상서버에 1G 씩의 메모리를 더 붙여주는 것을 의미합니다. 굉장히 좋아 보이지만, 득과 실이 있는 것은 당연한 법, 성능 저하가 발생한다는 것이죠. 그것도 심하게 …

마이크로소프트에서는 메모리를 유연하게 사용하도록 해주지만, 위와 같이 메모리 overcommit이 아닌 Dynamic Memory라는 개념을 사용했습니다. 물리적인 서버가 가지고 있는 메모리를 하나의 Pool 개념으로 이용할 수 있게 하는 것입니다. 해당 가상머신(워크로드)의 부하가 달라지게 되는데요, 이 부하에 따라서 서비스를 중단하지 않고 더 많은 메모리를 할당해주고, 사용량이 줄어 들면 메모리를 회수하여 다른 가상머신이 사용할 수 있도록 해주는 개념이지요. 동적인 메모리 밸런싱이라고 보시면 될 것 같습니다. (물리적 머신의 최대 메모리 안에서만 자유롭게 할당, 회수가 일어납니다. overcommit은 사용하지 않습니다)

아래와 같은 그림으로 보시면 이해가 쉬울 것 같습니다. 처음 시작할 때는 1G로 시작하지만, 업무량이 많아지면 최대 64G까지 할당하겠다는 것이지요.

Dynamic Memory Settings Highlighted

자원을 사용량에 따라 유연하게 배부해주고, 사용량에 따른 비용 배부까지 가능해집니다. 클라우드 컴퓨팅의 기본 개념을 가상화 기술에 자연스럽게 접목한 것이지요.

image

시간대별로 업무량에 따라 사용량이 이렇게 달라지네요. ^^

출처: Technet Blog에서 가져왔습니다.

Posted by 조이트리
마이크로소프트2010. 7. 19. 14:50

“Windows Azure는 세계 최초의 범용 클라우드 플랫폼”, 마이크로소프트의 Server and Tools 비즈니스 President인 Bog Muglia의 말입니다. 범용 이라는 말이 눈에 들어 옵니다.

Windows Azure는 IaaS(Infra as a Service), PaaS(Platform as a Service)를 포괄하는 클라우드 운영체제 입니다.
Google의 AppEngine은 PaaS 영역에 해당하지만, Python과 Java 2가지 언어만을 지원합니다. 구글 AppEngine에서 가이드하는 방식에 맞도록 개발을 해야 합니다. Amazon은 IaaS 영역에 해당하는 서비스이고, 개발을 위한 도구를 지원하지는 않습니다. 애플리케이션을 어떻게 개발해야 할지에 대한 가이드, 도구는 제공하지 않는다는 의미입니다. 순수하게 가상화된 서버를 제공하고, 애플리케이션 개발은 개발자가 알아서 하는 방식 입니다.

이에 반해 Windows Azure Platform은 개발자가 원하는 어떤 언어, 프레임웍으로도 개발 가능합니다. 오픈소스 소프트웨어, 즉 MySQL, Apache도 사용할 수 있습니다. 상호운용성을 염두에 둔 플랫폼이라는 의미입니다. 쉽게 이야기하면 Windows Server를 이용해 Java, PHP, .NET, Python, Ruby 등의 언어 및 프레임웍을 사용할 수 있는 것과 같은 개념인거죠. 조금 더 확장하면 네이티브 언어, 즉 C나 C++같은 언어도 지원 가능합니다. 완전 범용이라는 의미입니다.

”개발자를 위한 플랫폼” 철학으로 만들어졌습니다. Visual Studio를 이용하거나, Eclipse를 이용하거나 상관 없습니다. 모든 유형의 개발자를 수용 가능한 플랫폼 입니다.

또 하나의 특징은 SDK(Software Development Toolkit)을 제공한다는 것 입니다. 클라우드에 배포하기 전에 PC에서 해당 애플리케이션을 클라우드 환경에서 구동되는 것처럼 에뮬레이션하여 테스트가 가능합니다. 클라우드 환경에서 디버깅을 하는 것은 그렇게 편안한 작업은 아닐 것이므로, 로컬 PC에서 테스트를 한 후에 자신이 있을 때 클라우드로 옮기는 것이 가능해지는 거죠.

Posted by 조이트리
마이크로소프트2010. 7. 14. 13:42

Microsoft의 글로벌 데이터센터에서 가동중인 클라우드 운영체제, Windows Azure Platform을 Service Provider, Enterprise 내부 데이터센터에 구축해 준다는 의미입니다.

Microsoft가 Windows Azure Platform을 만들 때 사용했던 Hardware(네트웍, 서버, 스토리지), Software를 해당 회사에 제공하여 Windows Azure, SQL Azure를 구축하는 겁니다. Enterprise class SLA(서비스 수준 협약)을 맺고 기술 지원을 제공합니다. 이렇게 되면 SaaS, PaaS, IaaS 를 단번에 제공 가능하게 되니까, 클라우드 플랫폼 사업자가 되려고 하는 많은 회사들의 폭발적인 관심이 예상됩니다.

이번 Microsoft WPC(Worldwide Partner Conference)에서 발표된 내용인데, 얼마 전까지는 Windows Azure Platform을 고객사 내부에 제공하지 않겠다고 했었는데 이번에 전격적으로 전략을 수정한 것입니다.
수 백에서 수 천대의 서버가 하나의 서버로 보이는 클라우드 운영체제가 만들어지는 것입니다. 수 천대의 자원을 한 대의 자원 처럼 사용할 수 있게 되므로, Scale up/down, Elasticity (탄력성)를 기본적으로 갖게 되는 것이죠.

Appliance라고 부른 이유는 턴키 방식으로 클라우드 솔루션을 제공하기 때문입니다. 고도로 표준화 되어 있고, 미리 설정이 완료된 하드웨어를 공급하는 방식입니다. 마이크로소프트의 클라우드 아키텍처에 최적화된 네트워킹, 스토리지, 서버 하드웨어가 미리 정의되고 설정된 하드웨어 rack 형태로 공급됩니다.

현재는 글로벌로 특정 몇 개 고객사 및 파트너에 구축 합니다. 이후에 어디까지 확대할 것인지 좀 더 기다려봐야 할 것 같습니다.
- Dell, eBay, Fujitsu, HP (4개사의 데이터센터에 구축하는 것은 이미 합의되었고, 이미 작업을 진행하고 있는
   회사도 있습니다. eBay의 경우가 흥미롭지 않으세요?)

Posted by 조이트리