Date: 10월 24, 2018
도움! 내 SQL Server 다중 서브넷 장애 조치 클러스터에 연결할 수 없습니다.
많은 고객이이 문제에 직면했습니다. 이를 해결하기 위해 나는 보통 다음과 같이 말한다.
링크에는 필요한 모든 것이 있습니다.
연결이 multisubnetfailover = true를 지원하지 않을 경우 수행 할 작업에 대해 자세히 설명하지 않습니다. 연결에서 해당 매개 변수를 지원하지 않으면 registerallprovidersip을 false로 설정하고 DNS를 정리하십시오. 이 절차는 여기에서 가장 잘 설명됩니다.
SQL Server 다중 서브넷 장애 조치 클러스터는 실제로 어떻게 작동합니까?
일반적으로 사람들은 SQL Server 다중 서브넷 장애 조치 (Failover) 클러스터가 어떻게 작동하는지 알지 못합니다. 클러스터 리소스 종속성을 정의 할 때 "OR"기술이 추가 된 Windows Server 2012에는 다중 서브넷 장애 조치 클러스터링 지원 기능이 추가되었습니다. 이로 인해 사람들은 클러스터 이름 리소스가 IP 주소 x.x.x.x 또는 IP 주소 y.y.y.y에 종속되도록 허용했습니다.
x.x.x.x는 서브넷 A에서 유효한 클러스터 IP 자원입니다. y.y.y.y는 서브넷 B에서 유효한 클러스터 IP 주소입니다. 주어진 시간에 하나의 주소 만 온라인 상태가됩니다. 현재 자원이 현재 실행중인 서브넷에 유효한 주소입니다.
Microsoft SQL Server는 SIOS DataKeeper와 같은 타사 SANless 클러스터링 솔루션과 SQL Server Always On Availability Groups를 사용하는 FCI (Failover Cluster Instance)와 함께 SQL Server 2012부터이 개념을 지원하기 시작했습니다.
기본적으로 SQL Server 다중 서브넷 장애 조치 (Failover) 클러스터를 만드는 경우 클러스터가 자동으로 최적으로 구성되어야합니다. 여기에는 두 개의 IP 주소 설정, DNS에 두 개의 A 레코드 추가 및 registerallprovidersIP 설정이 포함됩니다. 그러나 클라이언트 측에서 다중 서브넷 장애 조치 (failover) 클러스터에 연결한다는 사실을 알려야합니다. 그렇지 않으면 연결이 수행되지 않습니다.
클라이언트 구성
클라이언트 구성은 연결 문자열에 multisubnetfailover = true를 추가하여 수행됩니다. 이 Microsoft 문서는 훌륭한 리소스입니다. 그러나 multisubnetfailover = true를 검색하면 해당 설정에 대한 많은 정보를 찾을 수 있습니다.
모든 응용 프로그램이 연결 문자열에 추가하는 것을 지원하지는 않습니다. 이러한 상황에 처한 경우 응용 프로그램 공급 업체에 지원을 요청하거나 수행 방법을 제시해야합니다.
Fret 아닙니다. 이 상황에서 자신을 발견하면 모두 잃어 버리지 않습니다. 장애 조치 DNS가 업데이트되어 클러스터 클라이언트 액세스 지점과 연결된 단일 A 레코드가 새 IP 주소로 업데이트되도록 클러스터의 동작을 변경하려고합니다. 이는 DNS에 두 개의 A 레코드가있는 대신 각 서브넷 IP 주소가 하나씩있는 것입니다. 이는 다중 서브넷 클러스터의 기본 동작입니다.
길을 돕다
이 기사에서는 SharePoint를 참조하고 있으므로 무시해도됩니다. 나머지 기사는 따라야하는 프로세스를 설명하기 위해 작성되었습니다.
이 기사의 주요 내용은 다음과 같습니다.
Get-ClusterResource "[네트워크 이름]"| Set-ClusterParameter RegisterAllProvidersIP 0cluster-name-object를 재시작 (기본적으로 역할 재시작)하고 모든 "A"레코드를 수동으로 정리 (정리는 자동으로 수행되지 않음) 한 후에 우리는 이전 A 레코드가 여전히 DNS에 있음을 볼 수 있으므로 우리는 수동으로 삭제할 수 있습니다.
이러한 단계 외에도이 기사에서 설명한대로 HostRecordTTL의 TTL을 줄이는 것이 좋습니다.
이 기사의 하이라이트는 다음과 같습니다.
PS C : > Get-ClusterResource -Name cluster1FS | Set-ClusterParameter – 이름 HostRecordTTL – 값 300
값이 300이면 장애 조치 후 클라이언트가 다시 연결될 때까지 최대 5 분이 소요될 수 있으며 대규모 AD (Active Directory) 인프라가 있고 AD 복제가 인프라 전체의 모든 DNS 서버를 업데이트하는 데 시간이 걸리는 경우 더 오래 기다릴 수도 있습니다.
최적의 TTL이 DNS 조회 요청이 많은 DNS 서버에 과부하가 걸리지 않고 빠른 클라이언트 연결을 용이하게하는 방법을 알아 내려고합니다.
이러한 유형의 구성은 DR 사이트가 다른 서브넷에있는 재해 복구 구성에서 일반적입니다. 가용성 영역이 서로 다른 서브넷에 있기 때문에 AWS의 HA 배포에서도 매우 일반적입니다.
SQL Server 다중 서브넷 장애 조치 (Failover) 클러스터에 대해 궁금한 점이 있으면 알려주십시오. 트위터 @daveberm에서 언제든지 연락 할 수 있습니다.