Windows Server 2012 Hyper-V, 고가용성 기술의 향상, 그 첫번째 이야기

image

Hyper-V의 변화 모습을 보면, 가장 눈에 띄게 보여지는 것이 바로 고가용성 기술의 향상입니다. 첫번째 버전인 Windows Server 2008 시절 Hyper-V는 Quick Migration(QM, 빠른 마이그레이션)만을 지원한 형태의 고가용성을 지원하고, 두번째 버전인 Windows Server 2008 R2의 경우에는 Live Migration(LM, 실시간 마이그레이션)을 추가하였습니다.

image

QM의 경우에는 공유 저장소(일반적으로 스토리지죠?)내 LUN 소유권을 특정 노드가 가지고 있는 형태의 전통적인 방식의 클러스터링을 제공하였습니다. 특정 노드가 문제가 발생하게 되면, 해당 LUN에 대한 소유권을 다른 노드가 넘겨받는 형태로 동작하죠. Windows Server 2008에서는 QM만이 고가용성 기술로 Hyper-V에 제공되었기에, 다운타임의 두가지 형태인 계획된(Planned), 계획되지 않은(Unplanned) 다운타임에 대해서 모두 이를 사용할 수 밖에 없었습니다. 소유권을 한 노드에서 잡고 운영하는 방식이었기에, 타 노드로 소유권을 넘기는 그 시간이 장애 시간으로 기록되게 되었고, 시장에서는 계획된 형태의 다운타임(운영자가 인지하고, 물리적인 머신의 유지 보수를 위해 작업을 할 경우)시, 무정전 고가용성 기술을 요구하였습니다.

image

이를 위해 등장한 것이 바로 클러스터 공유 볼륨(CSV)입니다.  클러스터링내 여러 노드에서 동시에 접근할 수 있는 형태의 LUN을 제공하는 것입니다. 이 경우, LUN의 소유권을 넘겨받기 위해, 일시적으로 노드에서 LUN을 분리해야 했던 형태와는 달리, 필요시 타 노드로 최소 파일단위로의 접근을 넘겨줄 수 있게 되었습니다. 동시에 접근할 수 있다고, 여러 노드가 하나의 파일에 쓰기 작업을 할 수 있는 형태가 아니기에, 아주 정확하게 이야기드리면, CSV는 파일 단위로의 쓰기 접근을 누가할 것인가만 정해주는 모습이라고 이해하셔도 괜찮을 듯 합니다.

CSV를 이용하여 등장한 기술이 LM입니다. 관리자가 타 노드로의 이전을 요청했을 경우(계획된 다운타임이겠죠?), 현재 운영중인 가상 머신의 상태 정보를 타 노드로 복사(대표적으로 메모리 정보) 후, 파일에 대한 접근권을 넘겨주는 것입니다. 그 후 네트워크단에서 ARP 정보를 새 노드로 업데이트만 해주면, 기존 접속 클라이언트는 새 노드내 동일한 가상 머신으로 접근할 수 있죠. 가상 머신의 상태 정보를 네트워크를 통해 넘겨주는 동안, 발생한 가상 머신내 처리는 별도의 메모리 변화 형태로 저장되고, 이 변화된 메모리 형태를 네트워크로 전송할 때, 필요한 시간이, TCP/IP 연결의 시간 초과(Time-Out)보다 짧을 경우, 접근권을 넘겨줄 수 있다는 것도 동작 방식의 일부입니다.

결론적으론 이렇습니다. Hyper-V의 고가용성 기술은 계획된 다운타임의 경우, 실시간 마이그레이션, 계획되지 않은 다운타임은 빠른 마이그레이션을 사용합니다. 이러한 큰 구조는 Windows Server 2012에서도 변하지 않았습니다. 그렇지만, 시장에서 요구되었던 다양한 형태의 기술이 추가되었습니다. 정리하면 아래와 같습니다.

  • 순차적으로 진행되던 기존 버전과는 달리 Windows Server 2012 실시간 마이그레이션은 노드간 네트워크 대역폭이 허락하는만큼 동시 처리

image

  • SMB 3.0 기술을 통해 파일 서버를 Hyper-V의 스토리지로 사용할 수 있고, 이를 통한 고가용성 구축 (관련 포스팅)
  • “Shared Nothing(SNO)” 실시간 마이그레이션 지원(하단 추가 설명, 커베로스 위임 참고)
  • System Center Virtual Machine Manager(SCVMM)의 추가 없이, 장애 조치 클러스터내에서 무정전으로 저장소 마이그레이션(이전, 통합)이 가능

image

  • 동적 쿼럼 지원(Windows Server 2012 장애 조치 클러스터링의 개선 사항 : 추후 포스팅 Smile)
  • Hyper-V 복제(Replica) 지원(추후 포스팅으로 살펴보겠습니다. Smile)

“Shared Nothing(SNO)”.. 공유 자원 없이.. 줄여서 SNO LM이라고도 합니다. 무언가 재미있는 단어가 등장하였습니다. 우리가 알고 있는 고가용성은 어떤 형태던 여러 노드가 접근 가능한 스토리지 레벨이 필요하고(이게 스토리지던 파일 서버던), 이를 통해 상호 소유권 넘겨주기를 통해서 고가용성을 지원했는데.. 공유 자원 없이라니.. 고가용성은 사전에 잘 만들어진 인프라가 있어야 합니다. 많이 느끼시겠지만, 실제 이런 기술이 필요한 경우는 잘 만들어져 있지 않은 경우가 다반사였고, 아무것도 추가로 구성한 것 없이도, 필요시 고가용성을 손쉽게 할 수 있어야 한다는 것이 마이크로소프트의 고가용성에 대한 생각인가 봅니다.

image

Windows Server 2012 Hyper-V의 가상 머신 메뉴내 이동이라는 옵션이 새롭게 생겼습니다. 이 옵션이 바로 SNO LM을 제공하는 옵션입니다. 공유된 스토리지가 없기에, 이동 요청시, 가상 머신의 정보의 가상 하드 디스크 파일을 복사하고, 실시간 마이그레이션과 동일하게 메모리 정보를 넘겨주는 형태입니다. 차후 ARP 업데이트를 하는 것도 동일하고요.

image

공유 스토리지 없이도, 실시간 마이그레이션과 동일한 형태의 고가용성을 제공하면서도, 필요시 가상 머신을 딴 곳으로 이전할 수 있는 형태의 기술, 괜찮지 않나요? 이를 단순하게 고가용성적으로만 생각하지 않고, 가상 머신에 대한 이동성(VM Mobility)를 생각해보면, 몇년 전부터 꼬알라가 이야기드렸던 가상 머신의 휴대 부분과 연관이 많은 부분입니다. 이런 형태의 고가용성은 경쟁사에서도 제공하고 있지 못한 부분이기도 합니다.

다음 포스팅에선 Hyper-V 복제와 장애 조치 클러스터의 개선 사항인 동적 쿼럼에 대해서 살펴보겠습니다. Smile