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

Comments

  • Anonymous
    July 10, 2012
    고가용성(HA)을 위해서는 공유 스토리지가 필수라는 업계의 공통된 인식이 있었고, SAN 공유 스토리지 구축 시 비용이 고민이었는데 공유 스토리지 없이 실시간 마이그레이션을 지원한다면 정말 매력적인 아키텍쳐가 아닐 수 없네요. 빨리 테스트를 해보고 싶네요. 좋은 정보 감사합니다.

  • Anonymous
    July 10, 2012
    김동하님 // 안녕하세요~ 근래 있던 몇개의 세미나에서 Shared Nothing에 대한 좋은 의견을 많이 들었습니다. 실제로도 고가용성이 계획되었던 사항보단 예정치 못했던 사항이 종종 많았는데.. 이를 효과적으로 대응할 수 있는 좋은 구조라고 생각합니다~ 계속 관심있게 지켜봐주세요~

  • Anonymous
    August 13, 2012
    안녕하세요. 이동 테스트 해 보고 있는데 에러가 발생하네요. 혹시 무슨 제약 있나요?


이동 작업 중 오류가 발생했습니다. 마이그레이션 원본에서 가상 컴퓨터 마이그레이션 작업을 수행하지 못했 습니다. '서버이름' 호스트와의 연결을 설정하지 못했습니다. 현재 연결은 원격 호 스트에 의해 강제로 끊겼습니다.(0x80072746). 데이터를 보내지 못했습니다. 현재 연결은 원격 호스트에 의해 강제로 끊 겼습니다.(0x80072746).

이렇게 나네요...

  • Anonymous
    August 14, 2012
    거북이님 // 안녕하세요. 이름 풀이가 잘 되는지 한번 확인해보시기 바랍니다.(DNS).. Failover Clustering내에. 구성된 것이신지, Shared Nothing이신지 알려주시면, 더 도움이 될 것 같습니다~

  • Anonymous
    August 14, 2012
    Shared Nothing 으로 구성 했습니다. AD 에 2서버(A, B) 모두 소속 되어 있구요. A 서버에 있는 VM 을 '이동'  명령어를 통해 B 서버로 이동할려고 합니다.

  • Anonymous
    August 14, 2012
    거북이님 // 커베로스 위임 이슈입니다. A에서 B로 넘어갈 경우나 반대의 경우에, AD내 A 컴퓨터 계정의 위임 탭에서 B 컴퓨터 계정의 CIFS 권한을 위임해주셔야 합니다. 자세한 사항은 목요일에 포스팅하겠습니다...

  • Anonymous
    July 30, 2013
    QM설명하는 부분에서 궁금한게 있습니다 LUN의 소유권을 넘겨 준다는 방식이라고 하는데 그림에서는 소유권을 넘겨주는 단계가 없고 또 소유권을 처음부터 여러 호스트에서 가질 수는 없는지요.. 이쪽 공부한지 얼마안되서 말도 안되는 질문일 수도 있지만 그래도 궁금하네요 블로그는 잘보고 있습니다 감사합니다.

  • Anonymous
    July 30, 2013
    QM기능은 A서버의 LUN의 소유권을 다른 노드로 옴긴다고 했는데 B서버로 소유권을 이동하면 A서버에 있던 VM의 cpu, meory, network등의 정보들은 어떻게 가지고 오는건가요 ?

  • Anonymous
    August 08, 2013
    정희님 // Quick Migration은 Hyper-V 첫버전에서부터 지원되었던 형태입니다. 말씀하신 바와 같이 디스크의 소유자는 한 호스트에서만 가능하며, 타 노드로 이동시 소유권이 이전되어야 하므로, 디스크의 오프라인이 일차적으로 발생합니다. 이 경우, Hyper-V가 정상적으로 동작중인 경우에는 VM의 정보는 해당 디스크에 저장됩니다. 그 후 디스크의 소유자가 타 노드로 이전되고, 해당 VM을 복원하는 형태입니다. 소유권은 한 호스트에서만 가질 수 있습니다만, 여러 호스트에 접근 권한을 가지려면 Windows Server 2008 R2에서부터 지원하는 CSV를 사용해야 합니다.

  • Anonymous
    April 17, 2014
    안녕하세요 질문드릴게요!
    같은 도메인에 참가되어있는 두개의 물리 서버 위에 각각 하이퍼 브이를 설치한 후, 각각 게스트 오에스를 까고, 같은 도메인에 참가시켰습니다. (네개의 오에스 모두 같은 도메인) 그 두개의 게스트 오에스 사이에 Shared nothing live migration이 가능한가요?

  • Anonymous
    May 12, 2014
    태희님 // Live Migration은 게스트 OS 내에서 이전하는 기술이 아닌 호스트에서 적용되는 기술입니다. :)