AOS - Acropolis Service
AOS는 스토리지 기술, 백업, 가상화 관리, 버전관리 등의 다양한 기능을 수행한다. 이 기능들 중 처음으로 알아볼 기능은 가상화 관리 기능이다. 사실상 가상화 자체는 하이퍼바이저가 담당하는 일 이지만, AOS는 HCI 통합관리 측면에서 가상화 기술 자체 뿐 아니라 손쉬운 가상과 자원 관리의 기능까지 폭 넓게 포함되어 있다. AOS는 Nutanix Acropolis 하이퍼바이저와 VMware ESXi, MS사의 Hyper-V를 지원하고 있으며, 이 포스팅에서는 AHV 관련된 가상화 기능 중 Acropolis 서비스와 Acropolis Dynamic Scheduler에 관한 내용을 소개할 예정이다.
AOS에서 가상화 관련된 서비스를 담당하는 컴포넌트는 Acropolis(아크로폴리스)이다. Acropolis의 주요한 역할은 가상화 및 가상화 자원관리 기능을 담당한다. 정확하게 말하면 AOS에서 AHV의 가상화 기능을 수행하는 중간 매개체 역할을 담당하는 것으로, 예를 들어 AOS에서 가상머신 하나를 만들고자 명령을 내린다면 이 명령은 Acropolis를 통해 수행되어 AHV위에 가상머신이 하나 생성되게 되는 것이다. 가상화 기능은 단순히 가상머신을 만드는 것 부터 HA, 네트워크 컨트롤러(가상스위치), 작업 스케쥴링 등 다양한 기능을 포함하고 있다. Acropolis가 Down되면 AOS를 통해 가상머신과 관련된 모든 동작을 사용할 수 없다. 다만, 해당 가상머신 자체는 계속해서 작동중인 상태이다. 왜냐하면 Acropolis 서비스 자체가 가상화를 하는 주체가 아니라, AOS와 AHV 중간의 역할을 담당하기 때문이다. Acropolis 서비스는 전체 클러스터 노드에 분산되어 실행이 되고 Acropolis 리더와 Acropolis 워커로 나뉜다. Acropolis 리더는 Acropolis 워커 중에서 하나의 Acropolis 리더가 선출되며 Acropolis 리더에 의해 각 Acroplis 워커로 작업이 분산되어 처리된다. Acroplis 리더에 장애가 발생하면 새로운 리더가 즉시 선출된다.
다음 가상화 관리 기능은 가상머신 배치를 관리하는 Acropolis Dynamic Scheduler이다. 약자로 ADS라고도 하며, ADS는 가상머신의 초기 배치 및 실시간 최적화에 관여한다.
가상머신의 배치는 자원을 효과적으로 사용하기위해 필요한 일로, ADS를 통해 자원이 효과적으로 소비되고 사용자 성능의 최적화를 이룰 수 있다. 배치 관리중 초기 배치는 전원을 켤 때 가상머신이 호스팅 되는 위치를 결정하는 방식이고, 실시간 최적화는 실시간 동작 중 워크로드의 상태에 따라 최적화된 호스트로 이동시키는 기능이다. ADS를 살펴보면 조금 특이한 점이 있는데, 초기 배치는 다른 솔루션들과 비슷하게 클러스터 전체 자원의 균형을 밸런스 있게 맞추도록 배치하지만, 실시간 성능 최적화에서는 조금 다른 접근방식을 가진다. 실시간 성능 최적화를 일반적으로 생각하면 계속 일관되도록 전체 클러스터의 밸런스를 맞춰줘야 할 것으로 생각한다. 예를 들어, 3개 호스트 클러스터의 각 호스트 사용률이 30% 15% 15%이라고 하자. 일반적으로 생각해보면, 실시간 최적화가 작동하여 각 호스트 사용률을 20% 20% 20%로 맞춰야 한다고 생각할 수 있지만 ADS 그렇게 동작하지 않는다. ADS가 하려는 일의 목표는 사용자의 성능을 최적화로 발휘할 수 있게 하는 것이고, 이것은 이런 왜곡된 밸런싱 상태를 조정하는 것이 아닌 자원 경합이 발생하지 않도록 클러스터를 관리하는 것이다. 자원에 대한 경합이 없으면 워크로드 밸런싱을 통해 얻을 수 있는 이득보다 불필요한 이동을 강요함으로써 추가적인 작업(메모리 전송, Data Locality구축 등)을 유발하게 된다. 또한 스토리지 측면에서는 ADS 말고도 다른 Nutanix의 기술들이 밸런스를 맞춰주도록 설계되어 있다.(이것은 나중에 AOS-스토리지 파트에서 또 다룰일이 있을 것이다.)
ADS 배치 결정에 대한 조건은 CPU사용률, 스토리지 사용 성능(IO를 담당하는 Stargate 서비스에 할당된 CPU 사용이 85% 초과), 사용자가 설정한 (Anti-)Affinity rule에 의해 결정된다. 먼저 CPU 사용률은 해당 호스트의 가상머신 간 CPU 자원경합이 발생하면 동적스케쥴러가 작동한다. Nutanix에서 스토리지 IO를 담당하는 컴포넌트는 Stargate이다. 특정 Stargate의 CPU가 설정된 임계값을 넘을 경우 특정 노드에 스토리지 사용이 많이 발생하는 것으로 보고 가상머신이나 스토리지 블록을 마이그레이션 하여 밸런싱을 수행한다. (Anti-)Affinity rule은 배치에 제약조건을 설정하는 것으로 특정 가상머신이 스케쥴링 되는 호스트를 미리 결정하는 것이다. Affinity rule은 특정 가상머신이 동작할 수 있는 특정 호스트를 고정(pinned)하는 기능이고, Anti-Affinity rule은 특정 그루핑된 가상머신들이 서로 다른 호스트에서 동작하도록 설정하는 기능이다.
이번 포스팅에서는 AOS 기능 중에서 Acropolis와 ADS에 대해 설명했다. 다음번에는 가상머신 조작과 관련된 이야기를 해볼 예정이다.
'Nutanix' 카테고리의 다른 글
Nutanix Snapshot 및 백업 방식에 대한 질의 응답 공유 (0) | 2022.04.20 |
---|---|
Nutanix - Core Overview (0) | 2022.03.23 |
Nutanix - 하이브리드(멀티) 클라우드 / HCI(Hyper Converged Infrastructure) (0) | 2022.03.16 |