Windows Server 2012 Hyper-V, 고가용성 기술의 향상, 그 네번째 이야기, Hyper-V 복제(Replica)

image

Windows Server 2012, 그리고 Hyper-V에 향상된 고가용성 이야기, 네번째 시간입니다. 첫번째 시간에는 고가용성 기술에 대한 개요, 실시간 마이그레이션에 대한 향상점을 살펴보았고, 두번째 시간에는 파일 공유를 통한 Hyper-V의 기술, 세번째 시간에는 클러스터의 기반이 되는 쿼럼에 대한 향상점을 살펴보았습니다.

동일본 대지진 이후, 많은 기업 혹은 호스팅 업계에서는 지역간에 추가적인 고가용성 기술을 많이 검토하고 있습니다. 특정 지역이 천재지변, 또는 화재 등의 이유로 아예 접근, 서비스가 불가능할 때에도 중단없이 지속적으로 서비스를 할 수 있는 방안이 무엇이 있을까에 대한 고민이죠. 이뿐만 아니라, 특정 지역이 네트워크 공격등을 받을 경우, 다른 IP 대역으로 시스템을 일시적으로 이동할 때, 동일한 시스템을 만들기 위해서, 여러 솔루션, 나아가 인적 자원을 이용하는 경우도 많습니다.

위의 그림은 클러스터와 오늘 소개해드릴 복제에 대한 부분을 그린 그림입니다. 고가용성을 위해서 클러스터를 구축해놓고, 운영하다, 특정 노드에서 문제가 발생했을 경우, 다른 노드로 서비스가 장애 조치(Failover)되어, 서비스를 지속하게 됩니다. 해당 서비스들이 부하가 많은 경우, 결국 클러스터가 해당 부하를 견디지 못하고, 전부 내려앉는 경우도 발생할 수 있습니다. (물론 이렇게 만들어진 아키텍쳐는 올바르다고 볼 수 없겠죠.) 또는 앞서 언급드린 데로, 클러스터가 위치한 지역에 문제가 발생했을 경우엔, 아무리 높은 고가용성이라도 견딜 수 없습니다.

이를 위해 Hyper-V가 향상시킨 부분이 바로 VM 복제(Replica) 기술입니다.

image

원하는 VM에서 복제 사용이라는 메뉴를 이용하시게 되면, 손쉽게 만드실 수 있는데요. 복제의 경우엔 복제 원본을 가진 서버와, 대상 서버로 분리해서 관리를 해야 합니다. 복제를 아무 서버에서나 받게 되면, 아키텍쳐 상, 혹은 보안상의 이슈가 발생할 수 있기에, 대상 서버에는 사전에 복제를 어떤 형태로 인증하고, 어디에 저장할지, 그리고 보안상 어떻게 전송받을지를 설정하는 옵션이 제공됩니다.

image

여기서 중요한 포인트는 바로 인증 및 포트라는 부분입니다. 관리적인 측면에서 다시 살펴볼 내용입니다만, Windows Server 2012의 개선점 중 엔지니어나 네트워크 관리자가 환영할 부분이 있습니다. 바로 기존엔 모든 서버간의 교신에 대한 기반이 RPC 프로토콜이었지만, Windows Server 2012의 경우엔 관리에는 WS-Management, 그리고 서버간 전송 및 암호화 기술에 대해서는 HTTP, HTTPS 기반을 많이 사용합니다. 복제의 경우에도 지역이 분리되어져 있는 경우가 대다수일 것이기에, Windows의 인증 기반인 액티브 디렉터리(Active Directory)를 이용할 것이라 생각하시지만, “인증서 기반 인증 사용(HTTPS)”에서 의미한 데로, 상호 인증서로 인증을 할 수 있기에, AD에 대한 인증 종속이 없습니다.

image

인증과 더불어, 보안의 기본인 허가에 대한 부분도 복제를 받을 서버에서 어느 서버에서 전송을 받을지, 그리고 어느 위치에 저장할지, 나아가 신뢰 그룹을 지정하여, 아무 서버나 복제를 전송할 수 없게 설정하는 부분도 빠뜨리지 않았습니다.

image

Hyper-V Replica는 비동기(Async) 방식의 복제를 사용합니다. 실시간으로 VHD 파일을 복사하는 것이 아니라, 최초에 한번 전체 가상 머신 정보를 복제한 후, 추가적인 변경 사항은 데이터베이스의 로그 전송(Log Ship)과 같은 형태로, 전송하게 됩니다. 이런 구조로 구성되어야, 네트워크 단절, 혹은 여러 문제가 전송시 발생했을 경우, 복구 포인트를 가질 수 있게 됩니다. 나아가 위의 그림의 경우에는 하루에 몇번 전송을 할 것이냐에 대한 부분입니다. 생각해보면, 전송 시점이 복구 가능한 시점으로 볼 수 있고, 비동기 구조이기에, 장애 조치시 완벽하게 원본과 동일한 서버가 되지 않을 확률도 존재합니다. (1분전에 완료되었을 수도 있고, 2시간전에 완료되었을 수도 있습니다.) 이 시점을 하루에 몇번 잡을 것이냐는 것이 바로 추가 복구 지점의 의미입니다. 4번을 잡을 경우, 하루에 4번 변경 사항에 대해서 전송을 한다는 것입니다. (Windows Server 2012 Hyper-V의 경우, 기존 오프라인에서만 가능하던 가상 머신 스냅숏 병합 기능이 온라인에서 가능하게 되었기에, 운영 머신의 중단없이 스냅샷을 반영, 혹은 전송할 수 있습니다.)

이렇게 구성되어 복제된 VM의 경우, 대상 서버에서 오프라인 형태로 저장되어져 있다가, 필요시 해당 머신으로 장애 조치(Failover)할 수 있습니다.

image

장애 조치에 대해서도 실제로 진행 혹은 테스트 진행이 가능하며, 이 경우, 원본 머신은 중단되고, 대상 복제 머신에서 동작을 시작하게 됩니다. 이런 시나리오가 나올 수 있습니다. 원본 지역과 대상 지역이 IP 서브넷이 다른 경우, 어떻게 VM의 IP 대역을 업데이트할 것이냐.. 이것이 수동으로 할 것이냐, 자동으로 할 것이냐..

이에 대해서는 2가지 형태의 정답을 제공합니다. 하나는 아직 포스팅하지 못한 네트워크 가상화(Network Virtualization)을 통해 지역간 분리 영역도 같은 논리적인 서브넷으로 묶을 수 있는 기술을 Hyper-V에서 제공하며, 다른 하나는 다른 IP로 자동 변경시키는 옵션을 제공합니다.

image

대상 서버의 설정에 들어가보면, NIC의 세부 속성(Windows Server 2012의 Hyper-V는 세부 속성이 참 많습니다. Smile)에 장애 조치시 IP 설정을 어떻게 할지, 결정하는 페이지를 가지고 있습니다. 여기서 해당 정보를 입력해놓으면, 장애 조치시 해당 정보로 변경되게 됩니다.

추가적으로 복제에 대한 기술에서 기억하셔야 할 부분이 있습니다. 베타 시절, 꼬알라도 조금 헤맸던(?) 부분이었습니다. 바로 클러스터 환경과 복제를 어떻게 연계하냐는 것입니다. 클러스터는 몇개의 노드가 논리적으로는 하나의 형태로 보여주게 됩니다. 복제를 개별 노드들이 담당할지, 아니면 클러스터내에 복제를 총괄하는 역할이 따로 있을지에 대한 부분입니다.

image

Windows Server 2012 장애 조치 클러스터의 역할에 새롭게 보이는 역할이 하나 있습니다. 바로 Hyper-V 복제본 브로커(Replica Broker)라는 역할입니다. 이 역할이 클러스터 전체의 복제에 대한 입출입을 담당하는 역할입니다. 클러스터내의 노드가 서비스하는 가상 머신을 다른 곳으로 복제하거나, 복제를 받아야 하는 경우 Hyper-V 복제본 브로커를 구성하셔야 합니다.

Hyper-V 복제 기술의 태생은 사실 Windows Azure에 대한 부분일 것으로 보여집니다. Windows Azure의 경우에도 특정 서비스가 영역에 장애 종속되어서는 안된다는 원칙이 있습니다. 특정 지역이 불가 상태가 되더라도, 서비스는 지속되어야 한다는 클라우드의 기본 속성으로 인해, 지역간, 대륙간 복제 기술이 필수적으로 필요했고, 이에 근간 기술인 Hyper-V를 발전시켰을 것입니다. 이렇게 탄생한 부분이 바로 Hyper-V 복제입니다.

Windows Server 2012의 원칙은 In a Box입니다. 다시 말해, 기술별로 별도의 라이선스를 제공하는 것이 아니라, Windows Server 라이선스에 Hyper-V 기술은 모두 제공되고, 이에 Hyper-V 복제도 추가적인 라이선스를 요구하는 부분은 아닙니다. 고가용성은 이제 고급기술이 아니라, 클라우드, 작게 보면 인프라의 기본 기술이기에, Hyper-V 복제가 많은 비즈니스 시나리오, 또는 장애 조치에 사용될 것으로 보여집니다.