Hyper-V R2.. (1) - Windows Server 2008 R2에서는…

Hyper-V, Virtualization이라는 단어를 제 품안에 안고, 이야기한지 벌써 17개월이 다되어가네요. Windows Server virtualization이라는 이름으로 2007년 5월 2일에 첫 발표를 하고, 베타를 거치고, 2008년 3월 20일 Windows Server 2008 발표회, 2008년 9월 24일 Virtualization 360 발표회까지.. 긴 시간을 많은 분들 앞에서 가상화에 대해서 말씀드렸던 것 같습니다.

얼마전에 발표되었던 IDC 조사 결과에서도 가상화가 기업 인프라의 한 주축으로 자리잡고 있다는 것을 볼 수 있었고, 그안에서 Hyper-V의 선전은 마치 자식이 나가서 잘 지내고 있다는 듯한(?) 느낌까지 받게했으니까요..

이것이 끝이 아니겠죠? 항상 새로운 기술과 새로운 방향을 가지고 나아가고 있는 기술의 발전 앞에.. 하루하루 어떤 가치와 기술로 많은 분들을 찾아뵐까? 라는 고민을 하고 있고.. 조만간 서울이 아닌, 지방에서 여러분을 찾아뵐거라 생각합니다. ^^

이번 주에 나라의 부름(?)을 받고.. 그 추운 날씨에 어딘가에 갇혀있다가 풀려나길 반복.. 조금 시간의 여유를 가지고 제가 가진 데모 인프라에 Windows Server 2008 R2 M3(6801 빌드)를 설치해보았습니다. 그래도 매일 보던 것이 가장 보고 싶다고.. Hyper-V의 변경점이 무엇이 있는지.. 살펴보았습니다. 그중에서도 많은 분들께서 궁금해하시는 Live Migration.. 기능을..

image

가상화를 도입하시고자 할 때, 가장 중요하게 생각하셔야 할 분야 중 하나가 고가용성(High Availability)쪽입니다. 세미나에 종종 말씀드렸지만, IDEAS 조사 결과에 따르면 막연하게 가상화로 통합하고자 하는 서버의 댓수가 15:1.. 을 원한다라는 것을 보아도.. 기존의 물리적 머신 1대가 서비스 머신 1대의 컨셉이 아니라, 이제는 물리적인 머신 1대가 서비스 머신 16대를 의미할 수도 있다는 것입니다.

고가용성의 의미는 크게 2가지 분류로 나눌 수 있습니다. 계획된 다운 타임(Planned Downtime)과 계획되지 않은 다운타임(Unplanned Downtime)이죠. 계획된 다운타임의 의미는 패치와 같은 서버의 유지 보수를 위해, 예정된 서버 다운을 유발시키는 것이며, 계획되지 않은 다운타임은 하드웨어 장애와 같은, 예상치 못한 사고가 발생하는 것입니다. 이에 대해서 2008년 7월에 고가용성에 대한 진실 혹은 오해란 포스팅을 한적도 있습니다.

보통 Microsoft 기술만으로 고가용성을 구축하고자 할 때, 2가지 요소로 접근이 가능합니다. TCP/IP 기반 응용 프로그램에 대한 고가용성은 네트워크 로드 밸런싱(Network Load Balancing) 기술로 접근하며, 주요 응용 프로그램에 대한 서비스 중단 방지 접근은 장애 조치 클러스터(Failover Cluster)를 활용합니다.

Hyper-V에서는 Quick Migration이라는 브랜드 이름으로, 고가용성을 제공하였고, 이는 MSCS(Microsoft Clustering Service)를 기반으로 제공되었습니다. 즉, 장애 조치 클러스터란 이야기죠

장애 조치 클러스터는 공유된 저장소를 여러대의 노드에서 연결해놓고, 저장소의 소유권을 그중 하나의 노드에서 가집니다. 해당 노드에서 서비스를 제공하다가, 문제가 발생하면, 이에 대한 소유권을 타 노드로 넘겨줌으로서, 서비스의 지속을 꾀할 수 있습니다. 타 노드로 넘어가는 것에 대해서 장애 조치(Failover)라고 부르고 있고, 문제가 발생한 노드가 다시 원상 복구가 되면, 이에 대해 다시 복구시킬지 여부에 대해서는 장애 복구(Failback)이라고 부르고 있죠.

장애 조치는 서비스와 응용 프로그램의 크기에 따라, 짧게는 몇초, 길게는 몇분의 시간이 걸립니다. 타 노드로 현재 상태를 넘겨주고, 이를 받아서, 재 복구를 하는 절차의 시간이 이에 해당되죠.

image

Hyper-V도 마찬가지였습니다. LUN단위로, VM이 장애 조치될 때, 해당 가상 머신을 현재 상태(메모리)를 공유 저장소에 저장한 후, 현재 상태 + 가상 하드 디스크에 대한 소유권을 타 노드로 이전, 타 노드에서 이를 바탕으로 복구하여, 장애 조치가 일어나게 됩니다. 계획된 다운타임과 계획되지 않은 다운타임에 대해서 별도의 비용 지불없이 Windows Server 2008 Enterprise 버전 이상을 사용하실 경우, 손쉽게 가상화 인프라에 고가용성을 추가할 수 있었습니다.

MSCS는 구지 가상화 뿐만 아니라, 데이터베이스, 메시징 시스템에서도 널리 쓰이는 고가용성 기술이며, Windows Server 2008 Enterprise, Datacenter에서는 x64를 기준으로 최대 16개의 노드를 배치할 수 있습니다.

무슨 이야기를 하려고 이렇게 길었냐? 라는 생각을 가지실 수 있습니다. Quick Migration의 경우, 현재 상태의 저장 + 소유권 이전 + 복구에 약간의 다운타임이 발생합니다. 현재 우리나라에서 많이 도입하시는 가상화의 분야가 개발 & 테스트 서버 + 미들웨어 서버(웹 서버 위주)입니다. 해당 서버는 여러 방법론을 통해, 특히 웹 서버의 경우 네트워크 로드 밸런싱을 통해, 추가적인 고가용성 확보가 가능하고, 아직까지 IO에 대한 부하가 많이 발생하는 서버, 예를 들어, 데이터베이스와 메시징 시스템과 같은 분야는 현업에서 서버를 통합해야 할만큼의 이슈가 많지 않으므로.. 약간의 다운타임은 인프라내에서 SLA(Service Level Agreement)에 크게 위배되지 않았습니다.

앞으로 하드웨어 성능이 더욱 발전하고, 부하가 많이 걸리는 서버들이 가상화 환경으로 이전될 때는, 이러한 다운타임이 허용되지 않을 거라 보여집니다.

Windows Server 2008 R2내 Hyper-V R2에서는 Quick Migration이라는 고가용성 기술의 이름을 Live Migration이라는 이름으로 변경되게 됩니다.

Live Migration에는 현재의 Quick Migration의 형태는 계획되지 않은 다운타임에 대한 대비책으로만 제공되며, 계획된 다운타임에 대해서는 서비스 중단없이 노드간 가상 머신이 이전되는 기능을 제공합니다.

이야기가 상당히 길어졌습니다. 이미 Live Migration에 대한 소개를 하기 위한 큰 테스트 및 포스팅은 다 작성해놓았습니다만, 글이 길어진 관계로 여기서 한번 끊도록 하겠습니다. 실제 Live Migration을 위해 변경된 기술, 대표적인 것이 장애 조치 클러스터의 새로운 저장소 유형이 추가되었습니다. 지금까지는 한 노드에서 저장소를 독점 소유한 형태가 되었지만, Windows Server 2008 R2의 장애 조치 클러스터에는 Cluster Shared Volumes (CSV - Codename Centipede.. 지네네요 :|)가 추가되며, 해당 공유 볼륨은 클러스터내 모든 노드에서 공통적으로 동시에 접근 가능한 저장소가 되게 됩니다. 이를 활용하여 Live Migration이 진행되는 형태가 될 것입니다.

image

결론만 먼저 말씀드리면, 해당 Live Migration 기능도 Windows Server 2008 R2 + Hyper-V R2의 기본적인 기능이 될 예정이며, 별도의 추가 비용이 발생하지 않습니다. Windows Server 2008 R2의 클러스터 기술의 개선으로 사용이 가능해질 것이니까요..

다음 편에서는 실제 구성 및 기술에 대해서 포스팅하겠습니다.