ESXi Cluster Compute Resource Configuration
vSphere 호스트 클러스터 구성은 프로덕션 SQL Server 플랫폼의 안정성을 유지하는 데 필수적입니다. 적절하게 설계된 컴퓨팅 리소스 클러스터의 목표에는 VM 및 SQL Server 가용성 극대화, 하드웨어 구성 요소 장애의 영향 최소화, SQL Server 라이센싱 사용 공간 최소화가 포함됩니다.
vSphere HA
vSphere HA는 vSphere 환경에 회복탄력성을 제공하는 기능입니다. ESXi 호스트에 갑작스러운 장애가 발생하면 다운된 호스트에서 실행 중이던 가상 머신을 나머지 호스트에서 다시 시작하려고 시도합니다.
SQL Server 라이센싱 모델이 충돌할 수 있는 경우가 아니라면 SQL Server 워크로드에 대해 vSphere HA를 사용하도록 설정해야 합니다. 다양한 장애 시나리오 각각에 대해 클러스터의 HA 설정 내에서 적절한 선택 항목이 구성되어 있는지 확인합니다[15].
그림 3. vSphere HA 설정
미션 크리티컬 SQL Server 워크로드의 경우 계획된 시나리오와 계획되지 않은 시나리오 모두에서 클러스터에서 제거되는 미리 결정된 호스트 수를 견딜 수 있도록 호스트 클러스터에 충분한 예비 리소스가 있는지 확인합니다. 이러한 VM의 전원을 켤 수 있는 기능이 보장될 수 있도록 충분한 리소스를 예약하도록 v스피어 HA 어드미션 제어를 구성할 수 있습니다.
그림 4. vSphere Admission Control 설정
vSphere 6.5에는 Proactive HA라는 새로운 기능이 도입되었습니다. Proactive HA는 VMware Aria Operations(이전의 vRealize Operations)와 통합될 경우 호스트 하드웨어의 오류 상태를 감지하고 하드웨어 오류가 발생하기 전에 호스트의 VM을 다른 호스트로 대피시킬 수 있습니다.
VMware DRS 클러스터
VMware DRS 클러스터는 공유 리소스 및 공유 관리 인터페이스를 갖춘 ESXi 호스트 및 관련 가상 머신의 모음입니다. DRS 클러스터에 호스트를 추가하면 해당 호스트의 리소스가 클러스터 리소스의 일부가 됩니다. 이러한 리소스 집계 외에도 DRS 클러스터는 클러스터 전체 리소스 풀을 지원하고 클러스터 수준의 리소스 할당 정책을 적용합니다.
VMware는 SQL Server VM을 호스팅하는 클러스터에 대해 DRS 기능을 사용하도록 설정할 것을 권장합니다.
VMware EVC[17]
Enhanced vMotion Compatibility (EVC) 기능은 클러스터 내 호스트의 vMotion 호환성을 보장하는 데 도움이 됩니다. EVC는 호스트의 실제 CPU가 다르더라도 클러스터의 모든 호스트가 가상 머신에 동일한 CPU 기능 세트를 제공하도록 보장합니다. EVC를 사용하면 호환되지 않는 CPU로 인해 vMotion을 사용한 마이그레이션이 실패하는 것을 방지할 수 있습니다. EVC를 사용하도록 설정하면 클러스터의 모든 호스트 프로세서가 기준 프로세서의 기능 집합을 제공하도록 구성됩니다. 이 기준 기능 세트를 EVC 모드라고 합니다. EVC는 AMD-V Extended Migration 기술(AMD 호스트의 경우)과 Intel FlexMigration 기술(인텔 호스트의 경우)을 사용하여 프로세서 기능을 마스킹하여 호스트가 이전 세대 프로세서의 기능 집합을 표시할 수 있도록 합니다. EVC 모드는 클러스터에서 가장 작은 CPU 기능 집합을 가진 호스트의 기능 집합과 동일하거나 그 하위 집합이어야 합니다.
그림 7. VMware EVC 설정
특정 CPU 기능을 숨기면 SQL Server VM의 성능에 영향을 미칠 수 있으므로 EVC 모드 활성화의 영향을 평가하는 것을 고려하세요. 적절한 사용 사례 없이 EVC를 사용하도록 설정하지 마십시오.
다음과 같은 사용 사례에서는 EVC 모드를 사용하도록 설정하는 것이 정당화될 수 있습니다:
- 클러스터가 서로 다른 CPU 모델을 사용하는 호스트로 구성되어 있고 호스트 간 VM의 vMotion이 필요한 경우. 프로덕션 환경에서는 이러한 구성을 피하십시오.
- 클러스터 간 vMotion이 필요하며 서로 다른 클러스터의 호스트는 서로 다른 CPU 모델을 사용합니다. VM의 하위 집합만 다른 클러스터로 마이그레이션할 수 있는 경우 VM별 EVC(섹션 3.5.8)를 사용하는 것을 고려하십시오.
리소스 풀[18]
리소스 풀은 리소스를 유연하게 관리하기 위한 논리적 추상화입니다. 리소스 풀을 계층 구조로 그룹화하여 사용 가능한 CPU 및 메모리 리소스를 계층적으로 분할하는 데 사용할 수 있습니다.
예를 들어, 3계층 리소스 풀 아키텍처를 사용하여 프로덕션 비중요 VM보다 비즈니스 크리티컬 SQL Server VM의 우선 순위를 프로덕션 전 SQL Server 워크로드보다 우선적으로 지정할 수 있습니다. 리소스 풀은 CPU 및 메모리 공유 값을 높음, 보통, 낮음으로 구성할 수 있으며, 우선순위에 따라 리소스 풀에 배치된 VM을 구성할 수 있습니다.
리소스 풀을 가상 머신의 폴더로 사용해서는 안 됩니다. 리소스 풀, 특히 중첩된 리소스 풀을 잘못 사용하면 가상 머신의 성능이 저하될 수 있습니다. 가상 머신과 리소스 풀을 같은 수준의 계층 구조에 결합하지 마십시오.