가상화 고가용성(High Availability)에 대한 진실 혹은 오해…

가상화 기술을 검토 혹은 도입하고자 하는 고객들의 가장 큰 걱정은 역시나 장애에 대한 측면입니다. 기존에 20대의 물리적인 머신이 있을 경우에, 장애가 발생하면 문제가 발생한 해당 머신 한대에 대해서만 영향을 끼치고, 이에 대해서만 해결하면 되지만, 가상화의 경우에는 물리적인 머신 1대가 여러대의 가상 머신을 가지고 있으므로, 장애가 발생하면 이 여파는 실로 표현할 수 없을 정도로 클 수 밖에 없습니다. 이러한 이유로 가상화 도입을 주저하시는 경우가 많습니다.

테스트/개발 서버를 가상화로 이전하는 현재의 시장 상황에서, 현업 환경에 가상화를 도입하고자 할 때는 꼭 고가용성(High Availability) 기능이 뒤따라야만 하고, 필수적으로 같이 다녀야만 합니다. 고가용성없는 가상화는 폭탄을 안고 있는 것과 동일한 형태(?)라고 생각할 수도 있겠네요.

그렇다면, 고가용성이 필요한 이유는 바로 다운 타임(Downtime)에 대한 대비라는 뜻에는 다들 동감하실거라 생각합니다. 다운 타임에는 크게 두종류가 있을 수 있습니다.

  • 예정된 다운 타임(Planned Downtime) : 서버의 유지 보수 작업, 하드웨어 교체와 같은 예정된 시간의 다운 타임을 의미하며, 이미 어느정도 공지 후 작업, 또는 업무 시간 이후에 작업을 하기 때문에, 이에 대한 여파는 아주 크지는 않습니다.
  • 갑작스런 다운 타임(Unplanned Downtime) : 서버의 하드웨어 문제, 혹은 소프트웨어의 문제로 인한 운영 체제의 문제, 이로 인한 서비스 불가, 다시 말해 예상치도 못한 다운 타임이 이에 해당되며, 이에 대한 여파는 매우 크다고 볼 수 있습니다.

Microsoft의 Hyper-V는 고가용성 기능으로 Quick Migration이라는 기술을 제공하고 있습니다.

장애 조치 클러스터링(Failover Clustering)과 Hyper-V 기술과의 조합으로 제공하는 기능이죠. 그냥 쉽게 기존 클러스터링이다. 라고 생각하셔도 맘 편할 수 있습니다. 장애 조치 클러스터링은 문제가 발생했을 경우 자동으로 해당 물리적 서버에서 서비스되던 서비스를 대기중이던 물리적인 서버로 이전해주는 기술입니다. 자동으로 해당 서비스가 넘어가므로, 갑작스런 다운 타임.. 다시말해 사용자가 개입하지 못하고 있던, 인지할 수 없었던 문제에 대해서 즉각적으로 대응하기 때문에, 지속적인 서비스 제공에는 매우 중요한 부분을 담당하고 있습니다만, 장애 조치가 발생하는 그 시점에 일시적으로, 짧게는 몇초, 길게는 몇분, 서비스가 중단되는 약점도 가지고 있습니다.

다른 가상화 벤더인 VMware에서는 VMotion이라는 기능을 제공하고 있고, 이와 유사한 기술은 Hyper-V의 다음 버전(서비스 팩)에서 Live Migration이라는 기능으로 제공할 예정으로 되어져 있습니다. 동작중인 가상 머신을 장애없이 실시간(Live)로 다른 물리적인 머신으로 이전할 수 있는 기술로, 매우 훌륭한 기술이라고 저는 생각합니다.

많은 분들께서 VMotion이 해당 벤더의 고가용성 기술이라고 생각하시는 경우가 많은데, 엄밀하게 말하면 VMotion은 고가용성 기술로 보기에는 조금 부적절한 부분이 있습니다. 다시 말해 오해하시고 있는 부분도 있다는 뜻입니다. VMotion이 고가용성 기술이라면 왜, 해당 벤더가 VMware HA라는 추가적인 기술을 제공하고 있을까요? VMotion이 모든 고가용성의 측면을 커버링할 수 있다는 것은 아니라는 것입니다. 또한 Microsoft의 가상화 기술에 대한 고가용성만 서비스에 대한 중단이 발생한다? 라는 것도 아니라는 것이죠.

고가용성 기술은 예정된 다운 타임과 갑작스런 다운 타임을 모두 커버할 수 있어야 합니다. 정확하게 짚어야 할 부분은 바로 VMotion은 예정된 다운타임만 처리할 수 있으며, 갑작스런 다운타임에는 대응할 수 없는 기능입니다. VMotion의 작동 구조를 살펴보면, 서비스하는 물리적인 머신간 상호 서비스 가능 여부(Heartbeat)에 대해서 주고 받는 모듈은 없습니다. 당연히 예정된 다운 타임, 그리고 상호 서비스 가능 여부에 대한 체크를 하지 않음으로 인해, 물리적인 머신간의 이동은 관리자의 개입이 필수적입니다. 이를 VirtualCenter나 SCVMM 2008을 이용하시면 된다는 뜻입니다.

그렇다면, VMware의 가상화 기술에서 갑작스런 다운 타임에 대해서는 어떠한 솔루션을 제공할까요? VMware HA라는 기술을 제공하고 있고, 추가적인 라이센스를 필요로 하고 있습니다. Microsoft Hyper-V의 고가용성 기능은 Windows Server 2008 Enterprise, Datacenter 에디션에 포함되어져 있는 클러스터링 기술을 사용합니다. 고가용성적인 측면을 위해 추가적인 비용 지불을 하실 필요가 없다는 의미입니다.

VMware의 백서중 하나인 Automating High Availability (HA) Services with VMware HA를 살펴보면 아래와 같은 구문이 보입니다. 1페이지 2번째 단락에는 아래와 같은 내용이 있습니다.

image 

또한 8페이지에도 비슷한 내용이 있습니다.

image

결국 고가용성적인 측면은 Microsoft의 Hyper-V나 VMware의 ESX Server나 동일한 측면을 제공합니다. 더 낫지도, 더 안좋지도 않습니다. 이 이야기가 못 믿으시겠다면, ESX Server 중 하나의 전원을 강제로 꺼보시면 바로 아실 수 있을 거라 생각합니다. :)

다만 예정된 다운 타임에 대한 VMotion 기능에 대해서는 추가적인 라이센스를 구입하여, 사용할 수 있는 부분을 VMware는 제공하고 있습니다. 예정된 다운 타임은 앞서 언급드린 데로, 사전 공지 및 업무 시간 이후등 여파를 최소화하거나, 서비스를 제공받는 사람들과의 합의(?)를 통해 처리할 수 있는 부분이 많습니다. 그렇다고 아예 예정된 다운 타임에 대해서 부정하자는 의미는 아닙니다만, 인프라에 대한 이중화, 아키텍트 디자이닝등 여러 측면에서 해결할 수 있는 부분도 생각을 해보자는 것입니다. 당연히 Microsoft에서도 이에 상응하는 기술을 제공하여 더욱 편하고 효율적인 Dynamic Infrastructure를 제공해드려야겠죠.