Analysis Services 솔루션 확장

최종 사용자가 증가함에 따라 Analysis Services DBA(데이터베이스 관리자)가 쿼리 응답 시간을 개선해야 하는 경우가 많습니다. 이러한 목표는 기존 서버의 성능을 높이거나(수직 확장) 여러 작은 서버에 부하를 분산하는(수평 확장) 두 가지 방법으로 성취할 수 있습니다.

솔루션의 수평 확장은 일반적으로 기존 하드웨어를 더 이상 확장하거나 업그레이드할 수 없는 시점까지로 제한됩니다. 기존 마더보드에 새 버전의 CPU를 장착할 수 없거나 메모리의 실제 주소 공간에 도달할 수 있습니다. 반면 솔루션의 수평 확장은 보다 유연하고 제한을 극복하기가 더 쉽습니다. NLB(네트워크 로드 균형 조정)의 서버 수가 최대 한계에 도달한 경우 솔루션에 NLB를 추가하고 서버를 여러 NLB에 분산할 수 있습니다.

이 문서에서는 Analysis Services 솔루션을 수평으로 확장하기 위한 이론적 아키텍처에 대해 설명합니다.

시나리오

Analysis Services DBA는 Analysis Services 솔루션의 최종 사용자에게 보다 나은 쿼리 응답 시간을 제공하면서도 매일 데이터를 새로 고치는 데 필요한 작동 중단 시간을 최소화해야 합니다. 처음 80명에서 시작된 사용자 수가 지난 달 동안 두 배로 늘었고 다음 6개월 동안 다시 두 배로 늘 것으로 예상됩니다. 7번째 달부터는 사용자가 매달 4%씩 증가할 것으로 예상됩니다. Analysis Services 데이터베이스 크기는 현재 80GB이고 매달 6GB씩 증가합니다. 데이터베이스에는 현재 지난 12개월 동안의 데이터가 보관되어 있으며 지난 3개 회계 연도와 현재 연도의 기록이 유지 관리될 것으로 예상됩니다. 평균 처리 시간은 2 ½시간이고 작동 중단 시간은 ½시간으로 제한됩니다.

대체 방법

시나리오를 읽어 보면 서버를 수직으로 확장하는 것이 유일한 해결 방법인 것처럼 보일 수 있습니다. 이렇게 하면 작동 중단 시간이 없는 서비스를 제공할 수 있지만 처리 시간 동안 성능이 떨어집니다. 그러나 현재 160명의 사용자가 있고 다음 6개월 안에 이 수가 320명으로 배로 늘어납니다. 그 후에는 알 수 없는 시간 동안 계속 매달 13-16명의 사용자가 늘어납니다. 이러한 비율로 꾸준히 증가하면 18번째와 19번째 달 사이에 사용자 수가 다시 두 배로 증가합니다. 이러한 상황에서는 적당한 하드웨어 크기를 정하기가 어려울 뿐 아니라 다음 12개월 동안 해당 용량의 50% 미만으로 사용될 장비에 대한 예산 요청을 정당화하기가 어렵습니다.

다행히 SQL Server 2008Analysis Services에서는 읽기 전용 데이터베이스 기능을 사용하여 이 솔루션을 수평으로 확장할 수 있습니다.

확장 아키텍처

이 아키텍처는 다음과 같은 두 가지 요소로 설계됩니다.

  • 최종 사용자 처리량을 최대화하기 위한 물리적 레이아웃

  • 작동 중단 시간을 최소화하기 위한 작업 프레임워크

물리적 레이아웃

이 솔루션은 다음과 같은 세 가지 주요 구성 요소로 구성됩니다.

  • 처리 환경

  • SAN(Storage Area Network)

  • 데이터 액세스 환경

첫 번째 구성 요소인 처리 환경은 SAN의 세그먼트를 사용하여 데이터를 업데이트하고 처리하는 위치입니다. 두 번째 구성 요소인 SAN은 처리 및 데이터 액세스 환경 모두에 대한 데이터를 유지하는 위치입니다. 세 번째 구성 요소인 데이터 액세스 환경은 최종 사용자가 데이터를 사용할 수 있는 위치입니다.

처리 환경

처리 환경은 한 대의 서버, SAN에 대한 연결 및 Analysis Services 데이터를 보관하기 위한 논리 SAN 볼륨으로 구성됩니다.

SAN(Storage Area Network)

이 솔루션은 각각 처리 환경과 데이터 액세스 환경을 위한 두 개의 독립적인 'SAN 논리 볼륨'으로 구성됩니다.

SAN은 다차원 데이터베이스를 위한 물리적 저장소를 제공하는 장치 집합입니다. SAN을 사용하면 공유 저장소, 클러스터 및 데이터 복구 메커니즘을 비롯한 저장소와 서버 간에 고속 연결을 설정할 수 있습니다.

이 문서에서 'SAN 논리 볼륨'은 운영 체제에서 단일 물리적 드라이브로 인식되는 저장 단위를 정의합니다.

데이터 액세스 환경

데이터 액세스 환경은 동일한 SAN 논리 볼륨을 공유하는 여러 대의 서버(대개 3대로 시작)로 구성됩니다. 사용자는 로드 균형 조정 알고리즘을 사용하여 들어오는 모든 요청을 라우팅하는 NLB 장치를 통해 데이터 액세스 서버에 연결합니다.

물리적 레이아웃의 변형

필요한 경우 다음과 같은 변형을 사용하여 솔루션의 성능을 더욱 개선할 수 있습니다.

처리 환경

경우에 따라 관계형 데이터베이스용과 Analysis Services 데이터베이스를 보관하기 위한 두 대의 처리 서버를 사용할 수 있습니다.

또한 SAN에서 다차원 데이터베이스와 관계형 데이터베이스가 독립적으로 보관되도록 여러 논리 볼륨을 정의할 수 있습니다.

데이터 액세스 환경

두 개 이상의 NLB를 솔루션의 일부로 정의하고 NLB 장치당 최소 3대의 데이터 액세스 서버를 구성할 수 있습니다.

작업 프레임워크

솔루션의 작업은 다음과 같은 세 가지 단계로 구분됩니다.

  • 데이터 처리

  • 작동 중단 시간

  • 데이터 처리 다시 설정

데이터 처리

이 단계에서는 다차원 데이터베이스를 업데이트하고 처리합니다. 다차원 데이터베이스의 내용을 보낼 준비가 되면 데이터 액세스 환경에서 전송을 위해 데이터를 처리합니다. 이 프로세스는 다음과 같은 단계로 구성됩니다.

  • 데이터 처리 서버에서 Analysis Services 데이터베이스를 분리합니다.

  • Analysis Services 데이터베이스를 보관하는 논리 SAN 볼륨을 오프라인 상태로 만듭니다.

작동 중단 시간

이 단계에서는 업데이트된 데이터베이스의 내용을 원래 데이터베이스의 내용으로 바꿉니다.

  • 들어오는 모든 요청을 거부하도록 NLB를 설정합니다.

  • 각 데이터 액세스 서버에서 Analysis Services 데이터베이스를 분리합니다.

  • 각 데이터 액세스 서버에서 Analysis Services 데이터베이스를 보관하는 논리 SAN 볼륨을 오프라인 상태로 만듭니다.

  • SAN 명령을 사용하여 처리 환경과 데이터 액세스 환경 간에 논리 SAN 볼륨을 바꿉니다.

  • 각 데이터 액세스 서버의 Analysis Services 데이터베이스를 보관하는 논리 SAN 볼륨을 읽기 전용 장치로 온라인 상태로 만듭니다.

  • Analysis Services 데이터베이스를 각 데이터 액세스 서버에 ReadOnly 모드로 연결합니다.

  • 들어오는 모든 요청을 받아들이도록 NLB를 설정합니다.

데이터 처리 다시 설정

이 단계에서는 처리 환경에서 이전 논리 SAN 볼륨의 내용을 업데이트하고 온라인 상태로 만듭니다.

  • SAN 명령을 사용하여 데이터 액세스 환경의 논리 SAN 볼륨을 처리 환경 논리 SAN에 미러링합니다.

  • 처리 환경의 Analysis Services 데이터베이스를 보관하는 논리 SAN 볼륨을 읽기/쓰기 장치로 온라인 상태로 만듭니다.

  • Analysis Services 데이터베이스를 처리 환경 서버에 ReadWrite 모드로 연결합니다.