-
OpenStack 고가용성
-
제어 노드의 고가용성
-
핵심 구성 요소를 위한 고가용성 솔루션
-
고가용성 OpenStack 구축
-
강화된 OpenStack 보호
-
Openstack 고가용성 FAQ
-
결론
OpenStack은 컴퓨팅, 저장소, 네트워킹 서비스를 포함하는 아키텍처를 갖춘 오픈소스 클라우드 컴퓨팅 플랫폼으로, 강력한 가상화 기능과 자동 관리 기능을 제공합니다. OpenStack 플랫폼의 고가용성을 보장하기 위해서는 특정 아키텍처 솔루션과 기술적 조치를 채택할 필요가 있습니다. 이 문서에서는 일반적인 OpenStack 고가용성 아키텍처 솔루션들을 소개하겠습니다.
OpenStack 고가용성
고가용성을 실현하는 방법을 이해하기 위해서는 가용성 손실이 발생하기 쉬운 서비스가 무엇인지 파악하는 것이 중요합니다. 먼저 OpenStack의 구조에 대한 기본 이해부터 시작합시다.
OpenStack은 컴퓨팅(Nova), ID 관리(Keystone), 이미지 관리(Glance), 프론트엔드 관리(Dashboard), 객체 저장(Swift)의 5가지 주요 구성 요소로 이루어져 있습니다.
Nova는 컴퓨팅과 제어를 담당하는 핵심 구성 요소입니다. nova-compute, nova-scheduler, nova-volume, nova-network, nova-api 등의 서비스를 포함합니다. 대부분의 분산 시스템과 마찬가지로 OpenStack은 컨트롤 노드와 컴퓨트 노드의 두 가지 유형으로 나뉩니다. 컨트롤 노드는 nova-compute를 제외한 모든 서비스를 제공합니다. 이러한 구성 요소와 서비스는 독립적으로 설치할 수 있으며, 필요에 따라 조합을 선택할 수 있습니다.
Nova-compute는 각 컴퓨트 노드에서 실행됩니다. 일단은 이 노드들을 신뢰할 수 있다고 가정하겠습니다. 신뢰할 수 없다면, 장애 전환을 위해 백업 머신을 사용할 수 있습니다(다만 각 컴퓨트 노드마다 백업을 설정하는 것은 혜택에 비해 비용이 많이 들 수 있습니다).
제어 노드의 고가용성
제어 노드의 고가용성을 보장하는 것은 주요 과제이며, 다양한 구성 요소마다 특정 가용성 요구사항과 해결책이 존재합니다.
(1) 전체 시스템을 관리하고 제어하는 컨트롤 노드가 하나뿐인데, 만약 컨트롤 노드에 장애가 발생하면 어떻게 되나요?
이는 일반적인 단일 장애 지점(SPoF) 문제입니다. 고가용성은 단일 머신만으로는 달성할 수 없습니다. 보통 문제 발생 시 실패한 머신을 신속하게 대체할 수 있도록 솔루션이 설계되지만, 이는 더 높은 비용이 듭니다.
단일 포인트 문제를 해결하기 위해 일반적인 해결 방법은 중복 장치 또는 핫 스탠바이를 사용하는 것입니다. 하드웨어 고장이나 인적 오류로 인해 언제든 하나 또는 여러 노드의 장애가 발생할 수 있고, 유지보수나 업그레이드를 위해 일시적으로 특정 노드를 중지해야 할 때도 있기 때문에, 신뢰할 수 있는 시스템은 하나 또는 여러 노드의 중지를 견딜 수 있어야 합니다.
일반적인 배포 모드에는 액티브-패시브 대기 모드, 액티브-액티브 모드 및 클러스터 모드가 있습니다.
(2) 이중화된 제어 노드는 어떻게 구축하나요? 또는 높은 신뢰성을 갖춘 제어를 구현할 수 있는 다른 방법은 무엇인가요?
많은 사람들이 하트비트 메커니즘 또는 유사한 방법을 사용하여 백업을 수행하고 장애 조치를 통해 고가용성을 달성하는 능동-수동 모드를 구현할 수 있다고 생각할 수 있습니다. OpenStack은 본래 여러 개의 컨트롤 노드를 지원하지 않기 때문에, Pacemaker는 다양한 서비스가 자체 백업, 모니터링 및 전환 메커니즘을 구현해야 합니다.
컨트롤 노드에서 제공하는 서비스를 자세히 살펴보면 주로 nova-api, nova-network, nova-scheduler, nova-volume, 그리고 Glance, Keystone, 데이터베이스 MySQL 등이 포함된다. 이러한 서비스는 개별적으로 제공된다. nova-api, nova-network, Glance는 각각의 컴퓨트 노드에서 실행될 수 있으며, RabbitMQ는 주-보조 모드로 동작할 수 있고, MySQL은 중복되는 고가용성 클러스터를 사용할 수 있다.
다음 섹션에서는 이러한 구성 요소를 자세히 설명합니다.
핵심 구성 요소를 위한 고가용성 솔루션
1) nova-api 및 nova-scheduler의 고가용성
각 컴퓨트 노드는 자체의 nova-api 및 nova-scheduler를 실행하여 적절한 작동을 위한 부하 분산을 보장합니다. 이렇게 하면 제어 노드에 결함이 발생하더라도 컴퓨트 노드의 nova-api 및 관련 서비스가 정상적으로 계속 작동합니다.
2) nova-volume의 고가용성
현재 nova-volume에 완벽한 HA 솔루션은 없으며, 추가 작업이 필요합니다. 그러나 nova-volume이 iSCSI 기반으로 동작하기 때문에, DRBD와 통합하거나 iSCSI 기반의 고가용성 하드웨어 솔루션을 사용하면 고가용성을 달성할 수 있습니다.
3) 네트워킹 서비스의 고가용성(nova-network)
OpenStack은 이미 여러 가지 고가용성 네트워킹 솔루션을 제공하고 있습니다. 일반적으로 사용되는 방법은 "멀티 호스트(Multi-host)" 옵션을 사용하여 고가용성 모드를 활성화하는 것입니다. 그 외의 일반적인 솔루션으로는 장애 조치(Failover), 멀티 NIC(Multi-nic), 하드웨어 게이트웨이(Hardware Gateway), Quantum 등이 있습니다.
4) Glance 및 Keystone의 높은 가용성
OpenStack 이미지는 Swift를 사용하여 저장할 수 있으며, Glance는 여러 호스트에서 실행될 수 있습니다. Pacemaker는 멀티노드 클러스터를 관리하기 위한 강력한 고가용성 솔루션으로, 서비스 전환 및 장애 조치를 수행할 수 있으며 Corosync와 Heartbeat와 함께 사용할 수 있습니다. Pacemaker는 액티브-패시브, N+1, N-N 등 여러 모드를 유연하게 지원합니다. 각 노드에 OCF 에이전트를 설치하면 다른 노드에서 Glance와 Keystone 서비스가 정상적으로 실행되고 있는지 확인할 수 있으며, Pacemaker가 이러한 서비스를 시작하고 중지하며 모니터링하는 데 도움을 줍니다.
5) Swift 오브젝트 스토리지의 고가용성(High Availability)
일반적으로 OpenStack의 분산 객체 저장소 시스템인 Swift는 추가적인 HA 설정을 요구하지 않습니다. 이는 Swift가 분산 아키텍처(마스터 노드 없음)를 기반으로 설계되었으며, 결함 허용, 중복 메커니즘, 데이터 복구 메커니즘, 확장성 및 고가용성을 갖추고 있기 때문입니다.
6) 메시지 큐 서비스(RabbitMQ)의 고가용성
RabbitMQ가 실패하면 메시지가 손실될 수 있습니다. 여러 HA 메커니즘을 사용할 수 있습니다:
퍼블리셔 확인 메서드는 데이터가 디스크에 쓰여질 때 장애 발생 시 알립니다.
다중 노드 클러스터 메커니즘을 사용할 수 있으나, 노드 장애로 인해 큐 장애가 발생할 수도 있습니다.
활성-수동 모드는 오류 발생 시 장애 조치를 보장하지만, 백업 노드를 시작하는 데 지연 또는 실패가 발생할 수도 있습니다.
재해 복구 및 가용성을 위해 RabbitMQ는 큐 서비스가 충돌할 경우 처리되지 않은 메시지를 디스크에 저장하는 지속성 큐를 제공합니다. 메시지 전송과 저장 사이의 지연으로 인한 메시지 손실을 방지하기 위해 RabbitMQ는 메시지가 실제로 디스크에 기록되었는지 확인하는 퍼블리셔 확인(Publisher Confirm) 메커니즘을 도입하였습니다.
클러스터 지원을 위해 RabbitMQ는 Active/Passive 및 Active/Active 모드를 제공합니다. 예를 들어, Active/Passive 모드에서 노드가 실패하면 수동 노드가 즉시 활성화되어 실패한 액티브 노드를 빠르게 대체하고 메시지 전달을 계속 처리합니다.
고가용성 OpenStack 구축
일반적으로 고가용성은 중복성 및 백업 구축을 통해 달성됩니다. 일반적인 전략으로는 클러스터 모드가 있습니다. 중앙 노드 없이 각 인스턴스가 여러 번 백업되는 다중 머신 상호 백업 방식으로, 분산 객체 저장 시스템인 Swift나 nova-network의 멀티 호스트 모드 등이 이에 해당합니다.
자율 모드. 어떤 경우에는 SPoF를 해결하기 위해 각 노드가 독립적으로 작동하도록 하여 마스터-슬레이브 관계를 제거하고 제어 노드의 장애로 인한 영향을 줄일 수 있습니다. 예를 들어, nova-api는 해당 노드 자체에 대해서만 책임을 집니다.
액티브-패시브 모드. 이 일반적인 모델은 대기 및 백업 상태를 유지하는 패시브 노드를 포함하며, 장애 발생 시 전환됩니다. 예로는 MySQL 고가용성 클러스터와 Pacemaker 및 Heartbeat를 통해 중복성을 구현하는 Glance 및 Keystone 서비스가 있습니다.
액티브-액티브 모드. 이 모드에서는 노드들이 서로 백업 및 지원 역할을 수행합니다. 예를 들어, RabbitMQ는 노드들이 큐를 복제할 수 있는 액티브-액티브 고가용성 클러스터를 사용합니다. 아키텍처적인 관점에서 이 방식은 패시브 노드가 시작되지 않거나 과도한 지연이 발생하는 것에 대한 우려를 해소시켜 줍니다.
요약하자면 OpenStack 최적화 및 개선은 지속적으로 발전하고 있으며, 그 배포와 응용은 한층 더 탐색되고 개발되고 있습니다. 실제 튜닝은 필수적입니다. 훌륭한 설계와 아이디어는 실제 환경에서 검증을 받아야 합니다.
강화된 OpenStack 보호
OpenStack는 중복 및 고가용성 아키텍처를 통해 시스템의 단일 장애 지점 위험을 줄이지만 데이터 보호는 여전히 중요합니다. 비즈니스 연속성을 보장하기 위해 데이터 손실과 재해성 장애의 영향을 방지하기 위한 전문적인 백업 솔루션을 채택해야 합니다.
Vinchin Backup & Recovery 는 에이전트가 필요 없는 고효율 백업 기능을 제공하는 강력한 OpenStack 백업 솔루션으로, 데이터 중복 제거, 압축, 증분 백업, 파일 단위 복구 및 클라우드 아카이브 등의 다양한 기능을 갖추고 있습니다. 빠른 복구 기능과 OpenStack과의 원활한 통합, 강력한 데이터 보안 기능을 통해 클라우드 환경을 관리하고 보호하는 데 최적화된 선택지가 됩니다.
그 외에도 데이터 암호화 및 랜섬웨어 보호 기능을 통해 OpenStack VM 백업을 이중으로 보호할 수 있습니다. 또한 OpenStack 호스트에서 다른 가상 플랫폼(VMware, Hyper-V, Proxmox, XenServer, oVirt, AWS EC2 등)으로 데이터를 간단히 마이그레이션하거나 반대로 이동할 수도 있습니다.
OpenStack VM를 Vinchin Backup & Recovery로 백업하는 데 필요한 단 4단계:
1. 백업 대상 선택

2. 백업 대상 선택

3. 백업 전략 구성

4. 작업 검토 및 제출

Vinchin Backup & Recovery는 수천 개의 회사에서 신뢰하는 솔루션입니다. 지금 바로 60일간의 풀기능 체험판을 시작해 보세요!
Openstack 고가용성 FAQ
1. OpenStack에서 가용 영역이란 무엇인가요?
OpenStack에서 가용성 영역(AZ)은 클라우드 환경 내의 논리적 파티션으로, 더 나은 결함 허용과 리소스 관리를 위해 워크로드를 분산시키는 데 도움을 줍니다. 각 AZ는 고립된 장애 도메인입니다. 즉, 서로 다른 AZ에 있는 인스턴스가 동일한 하드웨어 또는 네트워크 장애의 영향을 받을 가능성이 낮습니다. AZ는 일반적으로 컴퓨트 노드를 그룹화하는 데 사용되며, 저장소 및 네트워킹 서비스 역시 향상된 회복성과 중복성을 위해 자체 영역을 가질 수 있습니다. 사용자는 인스턴스를 시작할 때 성능과 신뢰성을 최적화하기 위해 AZ를 지정할 수 있습니다.
2. OpenStack은 SAAS인가요, PaaS인가요?
OpenStack은 주로 IaaS 플랫폼입니다. 가상화된 컴퓨팅, 저장소 및 네트워킹 자원을 제공하며, 사용자가 클라우드 인프라를 배포하고 관리할 수 있도록 합니다. OpenStack은 Kubernetes 또는 Cloud Foundry와 같은 서비스를 상단에서 실행함으로써 PaaS 솔루션을 지원할 수 있지만, 그 핵심 기능은 SaaS나 PaaS가 아닌 IaaS를 제공하는 것입니다.
결론
OpenStack에서 고가용성을 보장하기 위해서는 아키텍처 전략과 기술적 솔루션을 조합하여 단일 장애점을 제거하고 시스템의 회복 탄력을 강화해야 합니다. 액티브-패시브 및 액티브-액티브 모드를 적용하고 클러스터링 기술을 활용하며 Nova, Glance, Keystone, RabbitMQ와 같은 핵심 구성 요소를 최적화함으로써 OpenStack은 결함 허용 및 고도로 신뢰할 수 있는 클라우드 인프라를 구현할 수 있습니다. 또한, Swift와 같은 분산 저장소 솔루션은 본질적으로 중복성과 회복 탄력을 제공합니다.
공유하기: