새로운 Azure ILB 기능으로 다중 인스턴스 SQL Server 장애 조치 (Failover) 클러스터 구축 가능
Microsoft는 지난 9 월에 이그제큐티브를 통해 Azure에 대한 발표를 시작했습니다. 이러한 발표 중 하나는 내부로드 밸런서에 여러 VIP가 일반적으로 제공된다는 것입니다. 왜 이것이 SQL Server DBA에게 중요한가? 이제까지 Azure에 고 가용성 SQL Server를 배포하려는 경우 클러스터 당 하나의 SQL Server FCI 또는 단일 가용성 그룹 수신기로 제한되었습니다. 이 제한으로 인해 장애 조치 (Failover) 클러스터에서 보호하려는 각 SQL Server 인스턴스에 대해 새 클러스터를 배포해야했습니다. 또한 AlwaysOn AG 구성에서 자동 장애 조치 및 클라이언트 리디렉션을 원할 경우 모든 데이터베이스를 단일 가용성 그룹으로 그룹화해야했습니다.
이러한 제한 사항을 벗어나려면 어떻게해야합니까?
이러한 제한 사항은 이제 새로운 ILB 기능으로 해제되었습니다. 이 글에서는 두 SQL Server 인스턴스가 포함 된 Azure에 SQL Server FCI를 배포하는 과정을 안내합니다. 향후 게시글에서 SQL Server AlwaysOn AG와 동일한 프로세스로 안내 할 것입니다.
다중 인스턴스 SQL Server 장애 조치 (failover) 클러스터 시작하기
Azure Resource Manager에서 Microsoft SQL Server 2014 장애 조치 (failover) 클러스터 배포 게시물에 설명 된대로 Azure에서 기본 단일 인스턴스 SQL Server FCI를 작성하십시오. 이 게시물은 다중 인스턴스 SQL Server 장애 조치 (Failover) 클러스터를 만드는 과정을 설명합니다. DataKeeper를 사용하여 클러스터에서 사용되는 복제 된 볼륨 리소스를 만들려면 ILB (Internal Load Balancer)를 만든 다음 ILB에서 작동하도록 SQL Server 클러스터 IP 리소스를 수정하십시오. 해당 프로세스를 건너 뛰고 구성을 시작하려는 경우 SIOS DataKeeper를 사용하여 2 노드 SQL Server FCI를 만드는 Azure 배포 템플릿을 항상 사용할 수 있습니다. 이제 기본 두 노드 SQL Server FCI가 있다고 가정하고 두 번째 인스턴스는 다음과 같습니다.
- 현재 사용되지 않는 다른 볼륨에 다른 DataKeeper 볼륨 리소스를 만듭니다. 사용 가능한 볼륨이없는 경우 Azure 인스턴스에 디스크를 추가해야 할 수도 있습니다. 이 볼륨 생성 프로세스의 일부로 새로운 DataKeeper 볼륨 리소스가 클러스터의 사용 가능한 저장소에 등록됩니다. 자세한 내용은 앞에서 언급 한 기사를 참조하십시오.
- 방금 저장 위치로 만든 DataKeeper 볼륨을 지정하여 첫 번째 노드에 SQL Server의 명명 된 인스턴스를 설치합니다.
- "노드 추가"는 두 번째 노드의 클러스터에 추가됩니다.
- 이 새 명명 된 인스턴스의 포트 번호를 사용 중이 아닌 포트로 잠급니다. 내 예제에서는 포트 1440을 사용합니다.
ILB를 두 번째 인스턴스로 조정
다음으로 트래픽을이 두 번째 인스턴스로 리디렉션하도록 ILB를 조정해야합니다. 다음과 같은 단계를 따라야합니다. 두 번째 SQL Server 인스턴스에 사용 된 SQL 클러스터 IP 주소와 동일한 프런트 엔드 IP 주소를 아래와 같이 추가합니다. 다음으로 인스턴스가 다른 서버에서 실행될 수 있으므로 다른 프로브를 추가해야합니다. 아래 그림과 같이 포트 59998 (보통 59999 대신)을 프로브하는 프로브를 추가했습니다. 새 규칙이이 조사를 참조하는지 확인해야합니다. 또한이 프로세스의 마지막 단계에서이 인스턴스와 연결된 IP 주소를 업데이트해야하므로 포트 번호를 기억해야합니다. 이제 ILB에 두 개의 새로운 규칙을 추가하여이 두 번째 SQL 인스턴스로 향하는 트래픽을 지정해야합니다. 물론 TCP 포트 1440 (명명 된 SQL 인스턴스에 사용 된 포트)을 리디렉션하는 규칙을 추가해야하지만 이제는 명명 된 인스턴스를 사용하기 때문에 SQL Server Browser Service를 지원하는 포트가 있어야합니다. UDP 포트 1434. SQL Server Browser Service에 대한 규칙을 묘사하는 아래 그림에서 프런트 엔드 IP 주소가 새 프런트 엔드 IP 주소 (10.0.0.201), UDP 포트 1434 (포트 및 백 엔드 포트 모두)를 참조합니다. 풀에서 클러스터의 두 서버를 지정하고 마지막으로 방금 만든 새 상태 프로브를 선택해야합니다. 이제 TCP / 1440에 대한 규칙을 추가 할 것입니다. 아래 그림과 같이 포트 TCP 1440에 대한 새 규칙을 추가하거나 명명 된 SQL Server 인스턴스에 대해 잠긴 포트를 추가합니다. 다시 한 번, 새 FrontEnd IP 주소와 새 상태 프로브 (59998)를 선택하십시오. 또한 Floating IP (직접 서버 리턴)가 사용 가능한지 확인하십시오.
마지막 단계
로드 균형 조정기가 구성되었으므로 마지막 단계는 PowerShell 스크립트를 실행하여이 두 번째 SQL Server 인스턴스와 연결된 새 클러스터 IP 주소를 업데이트하는 것입니다. 이 PowerShell 스크립트는 클러스터 노드 중 하나에서만 실행하면됩니다.
# 변수 정의 $ ClusterNetworkName = "" # 클러스터 네트워크 이름 (Windows Server 2012의 Get-ClusterNetwork를 사용하여 이름을 찾으십시오) $ IPResourceName = "" # SQL Server의 두 번째 인스턴스의 IP 주소 리소스 이름 $ ILBIP = "" # 두 번째 SQL 인스턴스의 IP 주소, 이는 새로운 프론트 엔드 IP 주소와 동일해야합니다. 가져 오기 모듈 장애 조치 (failover) 클러스터 # Windows Server 2012 이상을 사용하는 경우 : Get-ClusterResource $ IPResourceName | Set-ClusterParameter -Multiple @ {Address = $ ILBIP; ProbePort = 59998; SubnetMask = "255.255.255.255"; 네트워크 = $ ClusterNetworkName; EnableDhcp = 0} # Windows Server 2008 R2를 사용하는 경우 다음을 사용하십시오. #cluster res $ IPResourceName / priv enabledhcp = 0 address = $ ILBIP probeport = 59998 서브넷 마스크 = 255.255.255.255
이제 Azure에 완벽하게 작동하는 다중 인스턴스 SQL Server FCI가 있습니다. Clusteringformeremortals.com에서 복제 된 New Azure ILB 기능으로 다중 인스턴스 SQL Server 장애 조치 (Failover) 클러스터를 구축하는 데 관한 질문이 있으면 알려주십시오.