⫸VMware

HA 개요 및 작동 원리

OSMU-PIPELINE 2022. 10. 14. 23:57
반응형

HA(High Availability) 작동 원리

VMware vSphere에서는 클러스터 기능을 크게 두 가지로 나누어서 부른다 - HA 클러스터와 DRS 클러스터가 있다. 보통 이 두 개의 기능을 한데 묶어 사용하기도 하지만 제각기 따로 사용할 수도 있다. HA 클러스터 그룹을 생성한 다음 ESX 서버를 추가하게 되면 vCenter 서버에서는 ESXi 서버에 HA Agent를 설치하게 되고, 이 HA Agent는 ESXi 서버의 AAM 소프트웨어를 대신하는 중간 계층 역할을 담당한다. HA 클러스터가 일단 구성되면 클러스터 그룹 내의 ESXi 서버들은 HA Agent를 통해  서로를 인식하게 되며, vCenter의 도움이 전혀 필요 없다. 최초 HA 클러스터를 구성하고자 할 경우에만 vCenter 서버가 반드시 필요하다. 일단 HA 클러스터가 구성되고 나면 vCenter 서버에 자애가 발생하였다 할지라도 클러스터 서비스 자체는 정상 작동된다.

HA 클러스터 내의 ESXi 서버들은 서로의 상태를 확인하기 위해 네트워크를 통해 heartbeat 패킷을 서로 주고받는다. 클러스터 내의 다른 ESXi 서버로부터 15초 내에 heartbeat 응답이 없을 경우 장애 상태로 간주하고, 장애가 발생한 ESXi 서버에서 작동 중인 가상 머신을 클러스터 내의 다른 ESXi 호스트들이 가로채어 재시작하게 된다. 여기서 중요한 것은 가로챈다라는 의미이다. 클러스터 내의 다른 ESXi 서버들이 하드웨어적인 장애가 발생하여 작동을 멈춘 ESXi 서버에서 작동 중인 가상 머신의 디스크 파일과 구성 파일을 정상적으로 열어 본다는 뜻이다. 즉, VMFS 또는 NFS 데이터스토어 볼륨은 복수의 ESXi 서버들이 동시에 읽고 쓸 수 있지만, 가상 머신의 구성 파일과 디스크 파일은 오직 하나의 ESXi 서버에서만 열어 볼 수 있다. 가상 머신은 오직 한 대의 ESXi 서버 위에서만 power on이 되며, 한 번 power on이 되면 해당 가상 머신의 구성 파일과 디스크 파일은 해당 ESXi 서버에 의해 락이 걸리게 되고 다른 ESXi 서버들은 열어 볼 수가 없다. 하지만 ESXi 서버에 장애가 발생하여 정상 작동하지 않을 경우 그 위에서 작동 중인 가상 머신의 구성 파일들은 락이 풀린 채 release 되어버린 상태이므로, 다른 ESXi 서버에서 자연스럽게 해당 가상 머신의 구성 파일과 디스크 파일을 열어서 power on 하게 된다.

 

HA 구성도
<VMware HA 구성도>

 

Primary 노드와 Secondary 노드

HA 클러스터의 구성원 간에는 크게 두 가지 역할을 하는 노드가 존재한다 - Primary 노드와 Secondary 노드가 있다. 우선 HA 클러스터는 ESXi 서버들을 멤버로서 추가할 수 있는데 Primary  노드는 HA  클러스터 구성 시 최초 5대의 ESXi 서버가 그 역할을 도맡게 되며 그 이후에 추가되는 ESXi 서버들은 모두 Secondary  노드 역할을 맡게 된다. HA 클러스터를 생성한 다음 해당 클러스터에 ESXi 서버를 추가하게 되면 추가하는 첫 번째 순서대로 Primary 노드로 자동 지정된다. 이때 클러스터에 추가될 경우 ESXi 서버에는 HA agent 구성 파일들이 전송되어 자동으로 구성된다. Primary  노드들은 서로 HA 클러스터의 모든 구성 값 및 현재 상태들을 모두 공유하게 된다. 만일 Primary 노드 5대가 모두 다 장애가 발생하여 죽는다면, 나머지 Secondary 노드의 존재 유무와 상관없이 HA 클러스터 기능은 작동하지 않는다. 따라서 HA 클러스터 디자인을 할 경우, 하나의 클러스터에 5개 이상의 ESXi 서버를 추가하게 된다면 Primary 노드가 전원 등의 장애로 인해 동시에 장애를 겪을 수 있는 동일 랙이나 인클로저에 몰려 있지 않도록 분산시켜야 할 필요가 있다.

초기 HA 클러스터 구성 시 vCenter 서버가 필요하지만, 그 이후 vCenter 서버에 장애가 발생하여 작동하지 않더라도 HA 클러스터 본연의 기능은 정상 작동한다고 이미 언급하였다. 원래 ESXi 서버의 장애 발생 시 HA 클러스터 내의 다른 ESXi 서버들의 리소스 배분을 고려하여 계산을 도맡는 역할을 바로 vCenter 서버가 하고 있으나, 만일 vCenter 서버가 정상 작동하지 않는 경우라면, Primary 노드가 가지고 있는 최근의 리소스 사용률에 근거하여 적당하게 가상 머신을 분배할 뿐이다.

 

각 노드들은 heartbeat를 전달한다고 설명했지만, 정확하게 말하면 Primary 노드들은 Primary 노드끼리만 heartbeat 프레임을 전달하며 Secondary 노드들은 오직 Primary 노드들에게만 heartbeat 프레임을 전달하고 서로에게는 전달하지 않는다. 이 heartbeat 프레임은 기본적으로 1초에 한 번씩 보내게 된다.

 

정리하자면, VMware HA는 ESXi 서버가 하드웨어적인 장애가 발생하더라도 그 위에서 작동 중인 가상 머신을 HA 클러스터 내의 다른 ESXi 서버로 Failover 시켜주는 서비스이다. VMotion과 달리, VMware HA는 관리자가 사전에 개입할 수 없는 하드웨어 장애를 대비하기 위해 존재하는 서비스이므로 가상 머신의 downtime을 최소한으로 줄여주기 위함에 초점을 맞추고 있다. 

그러나 분명 가상화 데이터센터 환경에서는 미션 크리티컬한 서비스가 가상 머신 위에서 제대로 작동이 되어야만 하며, downtime 자체가 없는 고가용성 가상화 환경을 만들 필요가 있다. 그로 인해 VMware에서는 downtime자체가 없는 FT(Fault Tolerance) 기능을 제공하고 있으며, 데이터센터 운영 환경에 따라 상호 보완적으로 운영을 고려해 볼 필요가 있다.

 

 

반응형

'⫸VMware' 카테고리의 다른 글

DRS/DPM 기능 원리  (0) 2022.10.19
FT 작동 원리  (0) 2022.10.18
Storage VMotion 작동 원리  (0) 2022.10.13
VMotion 작동 원리  (0) 2022.10.12
가상 머신 스냅샷  (0) 2022.10.11