[SQL 서버 특강] ① 성능 향상을 위한 인덱싱 기법[SQL 서버 특강] ② MS SQL 서버 클러스터 셋업[SQL 서버 특강] ③ 합리적인 DTS 실행 비법MS 클러스터 서비스(MSCS)를 사용해 SQL 서버 클러스터를 셋업해 보자.클러스터링은 웹, 이메일, 데이터베이스(DB) 서버와 같은 인프라에 높은 가용성과 범위성(scalability)을 제공하는 기술이다. 이번 강좌에서는 클러스터의 종류를 살펴보고 MS 기반 클러스터링 솔루션 구축방법을 중점적으로 알아본다. 또 하드웨어 컴포넌트, 클러스터 동작 원리, 그리고 클러스터 솔루션에 SQL 서버를 설치하는 방법도 알아본다.클러스터의 종류클러스터에는 로드 밸런싱(load balancing)과 페일오버(failover) 두가지 타입이 있다. 로드 밸런싱 클러스터는 서버의 부하를 클러스터링된 리소스로 분산시킨다. 네트워크 트래픽을 다수의 프론트 엔드 서버로 분산시키는 것이 여기에 포함된다. 로드 밸런싱은 부하를 모든 가용한 서버에 고루 분산시킴으로써 성능 및 범위성을 향상시켜 준다. 웹 및 COM+ 애플리케이션이 이 방법을 사용한다. 로드 밸런싱은 클러스터에서 두 개 이상의 노드를 지원한다.페일오버 클러스터는 하드웨어 및 소프트웨어의 사용불가 상황(계획적인 것이든 사고든)이 닥쳤을 때 고가용성을 제공한다. 페일오버 클러스터는 리소스를 모니터링하면서 언제 페일오버 상황을 발동시킬지 결정한 후 (해당 상황이 발생하면) 리소스를 클러스터 내의 다른 서버로 옮기는 방식으로 고가용성을 제공한다.무정지형(fault-tolerant) 페일오버 클러스터는 하드웨어와 소프트웨어에 대해 리얼타임 페일오버를 제공한다. 무정지형에는 필요한 하드웨어도 많고 애플리케이션 상태(state)를 확인할 수 있는 특수 소프트웨어도 필요하다. 고가용성 클러스터 역시 무정지형 클러스터라고 할 수도 있지만 페일오버 기능에 차이가 있다. 고가용성 클러스터는 하드웨어와 소프트웨어에 대한 페일오버는 되지만 애플리케이션 상태는 대부분의 경우 잃게 된다.MSCS는 무정지형 클러스터 보다는 고가용성 클러스터에 가깝다. 즉 무정지형 클러스터보다 필요한 하드웨어 규모도 작고, 전문적인 무정지형 솔루션보다 더 많은 종류의 애플리케이션에서 동작한다. 또 하드웨어, 소프트웨어에 대한 페일오버는 되지만 페일오버 시점의 정확한 상태는 유지하지 못할 확률이 크다. MSCS 고가용성 솔루션은 클러스터당 총 2개의 서버(노드)를 지원한다.기본적인 하드웨어, 소프트웨어 컴포넌트클러스터는 독립적인 공통 하드웨어를 통해 함께 동작하는 독립적인 서버 노드로 구성된다. 클러스터내의 각 서버는 자체 운영체제 인스턴스와 네트워크 연결을 가지며, 외부 디스크 및 서버간 프라이빗(private) 네트워크 접속을 통해 서로 연결된다. 공유 디스크는 드라이브 컨트롤러(SCSI, SAN 등)를 통해 각 노드와 연결되는데, 드라이브 컨트롤러는 운영체제 드라이브 연결 컨트롤러와는 다른 것이다.MSCS는 액티브/패시브 모드로 운영된다. 즉 클러스터에서 항상 하나의 노드만 액티브 상태로 동작한다. 액티브 서버는 가용한 모든 클러스터 자원을 소유하며, 액티브 노드는 쿼럼 드라이브에 지속적으로 데이터를 기록한다. 쿼럼 드라이브는 클러스터가 페일오버할때 다른 노드와 상태 정보를 공유하기 위해 사용된다. 패시브 상태의 서버는 프라이빗 연결을 통해 리소스 소유가 더이상 불가능하다는 '신호'가 오면 클러스터 리소스 소유권을 넘겨받고 쿼럼 드라이브에 저장된 상태 정보를 읽게 된다.클러스터에 SQL 서버 설치하기클러스터내에 SQL 서버를 설치하기 위해서는 먼저 다음 순서에 따라 클러스터를 셋업해야 한다.