4.2. General-Purpose 아키텍처
특정 기술 또는 환경 요구 사항이 확실하지 않은 경우 일반적인 고가용성 클라우드를 배포할 수 있습니다. 이러한 유연한 아키텍처 유형은 단일 OpenStack 구성 요소를 강조하지 않으며 특정 환경에 국한되지 않습니다.
이 아키텍처 유형은 다음을 포함하여 잠재적인 사용 사례의 80%를 다룹니다.
- 간단한 데이터베이스
- 웹 애플리케이션 런타임 환경
- 공유 애플리케이션 개발 환경
- 테스트 환경
- 스케일 업 추가 대신 스케일 아웃 추가 환경
이 아키텍처 유형은 보안이 필요한 클라우드 도메인에는 권장되지 않습니다.
설치 및 배포 문서는 5장. 배포 정보 에서 참조하십시오.
4.2.1. 사용 사례 예
온라인으로 분류된 광고 회사는 Apache Tomcat, Nginx 및 MariaDB를 프라이빗 클라우드에서 포함하는 웹 애플리케이션을 실행하려고 합니다. 정책 요구 사항을 충족하기 위해 클라우드 인프라는 회사 데이터 센터 내에서 실행됩니다.
이 회사는 예측 가능한 로드 요구 사항이 있지만 야간에 대응하기 위해 확장이 필요합니다. 현재 환경은 오픈 소스 API 환경 실행의 회사 목표에 맞게 유연하게 대응할 수 없습니다.
현재 환경은 다음 구성 요소로 구성됩니다.
- Nginx와 Tomcat의 120에서 140 사이의 설치, 각각 2개의 vCPU 및 4GB RAM
- 3-노드 MariaDB 및 Galera 클러스터, 각각 4개의 vCPU 및 8GB RAM이 있습니다. Pacemaker는 Galera 노드를 관리하는 데 사용됩니다.
이 회사는 웹 사이트를 제공하는 하드웨어 로드 밸런서 및 여러 웹 애플리케이션을 실행합니다. 환경 오케스트레이션에서는 스크립트와 Puppet의 조합을 사용합니다. 웹 사이트는 매일 많은 양의 로그 데이터를 생성하므로 보관해야 합니다.
4.2.2. 설계 정보
이 예제의 아키텍처에는 컨트롤러 노드 3개와 컴퓨팅 노드가 8개 이상 포함됩니다. 정적 오브젝트에 OpenStack Object Storage를 사용하고 다른 모든 스토리지 요구 사항에 OpenStack 블록 스토리지를 사용합니다.
OpenStack 인프라 구성 요소가 고가용성을 보장하기 위해 노드는 HAProxy와 함께 Red Hat Enterprise Linux에 Pacemaker 애드온을 사용합니다.
아키텍처에는 다음 구성 요소가 포함됩니다.
- 공용 네트워크 연결에 대한 방화벽, 스위치 및 하드웨어 로드 밸런서입니다.
- 지원 서비스 MariaDB 및 RabbitMQ와 결합된 이미지, ID 및 네트워킹을 실행하는 OpenStack 컨트롤러 서비스. 이러한 서비스는 3개 이상의 컨트롤러 노드에서 고가용성을 위해 구성됩니다.
- 클라우드 노드는 Red Hat Enterprise Linux용 Pacemaker 애드온을 사용하여 고가용성을 위해 구성됩니다.
- 컴퓨팅 노드는 영구 스토리지가 필요한 인스턴스에 OpenStack Block Storage를 사용합니다.
- 이미지와 같은 정적 오브젝트를 제공하는 OpenStack Object Storage.
4.2.3. 아키텍처 구성 요소
Component | 설명 |
---|---|
블록 스토리지 | 인스턴스용 영구 스토리지입니다. |
컴퓨팅 컨트롤러 서비스 | 컨트롤러에서 실행되는 컴퓨팅 관리 및 스케줄링 서비스. |
대시보드 | OpenStack 관리를 위한 웹 콘솔. |
ID | 사용자와 테넌트에 대한 기본 인증 및 권한 부여. |
이미지 | 인스턴스 부팅 및 스냅샷 관리에 사용할 이미지를 저장합니다. |
MariaDB | 모든 OpenStack 구성 요소에 대한 데이터베이스입니다. MariaDB 서버 인스턴스는 NetApp 또는 Solidfire와 같은 공유 엔터프라이즈 스토리지에 데이터를 저장합니다. MariaDB 인스턴스가 실패하면 스토리지를 다른 인스턴스에 다시 연결하고 Galera 클러스터에 다시 가입해야 합니다. |
네트워킹 | 플러그인 및 네트워킹 API를 사용하여 하드웨어 로드 밸런서를 제어합니다. OpenStack Object Storage를 늘리는 경우 네트워크 대역폭 요구 사항을 고려해야 합니다. 10GbE 이상의 네트워크 연결에서 OpenStack Object Storage를 실행하는 것이 좋습니다. |
오브젝트 스토리지 | 웹 애플리케이션 서버의 로그를 처리하고 아카이브합니다. 오브젝트 스토리지를 사용하여 OpenStack Object Storage 컨테이너에서 정적 웹 콘텐츠를 이동하거나 OpenStack Image에서 관리하는 이미지를 백업할 수도 있습니다. |
telemetry | 기타 OpenStack 서비스에 대한 모니터링 및 보고. |
4.2.4. 컴퓨팅 노드 요구 사항
Compute 서비스는 각 컴퓨팅 노드에 설치됩니다.
이 범용 아키텍처는 최대 140개의 웹 인스턴스를 실행할 수 있으며 적은 수의 MariaDB 인스턴스에는 292 vCPU 및 584GB RAM이 필요합니다. 하이퍼 스레딩이 있는 듀얼 소켓 16코어 Intel CPU가 있는 일반적인 1U 서버에서 2:1 CPU 오버 커밋 비율을 가정하면 이 아키텍처에는 8개의 컴퓨팅 노드가 필요합니다.
웹 애플리케이션 인스턴스는 각 컴퓨팅 노드의 로컬 스토리지에서 실행됩니다. 웹 애플리케이션 인스턴스는 상태 비저장이므로 인스턴스 중 하나가 실패하면 애플리케이션을 계속 실행할 수 있습니다.
4.2.5. 스토리지 요구 사항
스토리지의 경우 서버에 직접 연결된 스토리지가 포함된 확장 가능한 솔루션을 사용합니다. 예를 들어 그리드 컴퓨팅 솔루션과 유사한 방식으로 Compute 호스트에 스토리지를 채우거나 블록 스토리지를 독점적으로 제공하는 전용 호스트에서는 스토리지를 채울 수 있습니다.
Compute 호스트에 스토리지를 배포하는 경우 하드웨어가 스토리지 및 컴퓨팅 서비스를 처리할 수 있는지 확인합니다.