Date: 3월 9, 2018
단계별 : Microsoft Azure IaaS에서 SQL Server 장애 조치 클러스터 인스턴스 (FCI)를 구성하는 방법
2011 년 7 월 19 일 업데이트 – 아래 단계에서는 Azure "Classic"의 배포에 대해 설명합니다. Azure Resource Manager (ARM)에 SQL 클러스터를 배포하는 경우 여기에서 필자의 기사를보아야합니다. https://clusteringformeremortals.com/2016/04/23/deploying-microsoft-sql-server-2014-failover-clusters-in-azure-resource-manager-arm/
시작하기 전에 장애 조치 클러스터링 및 Microsoft Azure에 대해 최소한 약간 알고 있고 Azure 계정에 이미 가입했다는 가정을합니다. 이 단계별 가이드에서 추가 읽기 자료를 참조 할 것입니다. 이 가이드에는 스크린 샷과 코드 예제가 포함되어 있습니다. Azure는 빠르게 발전하는 제품이므로 사용자의 경험이 설명 된 것과 다를 수 있습니다. 그러나 필요에 따라 적응하고 조정할 수 있어야합니다. 이 기사를 최신 상태로 유지하여 시간이 지남에 따라 추가 의견을 추가하려고합니다. 새로운 Azure Portal은이 기사를 쓰는 시점에서 여전히 미리보기 단계에 있습니다. 따라서 모든 예제에서 PowerShell과 함께 현재 지원되는 포털을 사용합니다.
Azure IaaS에서 고 가용성 SQL Server 배포를 만들려면 다음 단계를 수행해야합니다. Azure IaaS에 이미 작동중인 도메인이 있다면 항목 1-3을 건너 뛸 수 있습니다.
아래의 각 단계를 자세히 살펴 보겠습니다.
- 가상 네트워크 만들기
- 클라우드 서비스 만들기
- 저장소 계정 만들기
- Azure VM 및 저장소 만들기
- Active Directory 구성
- 클러스터 만들기
- 복제 된 클러스터 볼륨 리소스 만들기
- 클러스터에 SQL 설치
- 내부로드 밸런서 만들기
- 클라이언트 수신기 업데이트
개요
이 지침은 하나의 Azure 영역 내에 고 가용성 SQL Server 배포를 전제로 만들어야한다고 가정합니다. Azure 내에 다른 지리적 영역에 걸쳐있는 SQL Server 클러스터를 구성하거나 온 프레미스에서 Azure Cloud 또는 그 반대의 범위에있는 하이브리드 클라우드 구성을 구성 할 수 있습니다. 이 문서에서 이러한 유형의 구성을 다루는 것이 나의 의도는 아닙니다. 대신 구성에 초점을 맞춘 구성이 그림 1에 나와 있습니다.
이 기사에서는 Azure 영역에서 서로 다른 두 개의 오류 도메인과 도메인 업데이트에 걸친 클러스터를 만드는 방법에 대해 설명합니다. 서로 다른 오류 도메인에 걸쳐 계획되지 않은 중단 시간과 관련된 중단 시간을 없애줍니다. 다른 업데이트 도메인을 확장하면 계획된 중단 시간과 관련된 오류가 제거됩니다.
자세한 개요 정보는이 주제에 대해 자세히 설명한 SQLTIPS에서 수행 한 웹 세미나를 참조하십시오. http://www.mssqltips.com/sql-server-video/360/highly-available-sql-server-cluster-deployments-in-azure-iaas/에서 볼 수 있습니다.
가상 네트워크 만들기
이 기능을 사용하려면 가상 네트워크 내에 모든 VM을 보유해야합니다. 가상 네트워크를 만드는 것은 꽤나 간단합니다. 아래의 스크린 샷은 과정을 안내해줍니다.
이 시점에서 Google DNS 서버 주소 8.8.8.8을 추가하려고합니다. 기본 DNS 서버를 사용할 때 Microsoft에서 업데이트를 다운로드하려고 할 때 이상한 연결 문제가 발생했습니다. 이러한 서버에 필요한 모든 업데이트를 다운로드 한 후 DNS 서버 IP 주소를 AD 컨트롤러의 IP 주소로 바꿉니다. 그러나 지금은 8.8.8.8을 추가하십시오.이 가상 네트워크에 프로비저닝 된 모든 VM은 DHCP 서비스를 통해이를 DNS 서버로받습니다. 이 포럼 게시물은이 DNS 서버 항목을 추가하지 않고 내가 경험 한 문제점을 설명합니다. 모든 서버를 도메인에 추가하기 전에이 8.8.8.8 주소를 삭제하고 사용자가 만든 첫 번째 도메인 컨트롤러의 IP 주소로 바꿔야한다는 것을 알았습니다.
이 가상 네트워크에 하나의 서브넷을 만들고 공개로 표시 한 것을 볼 수 있습니다. 나중에 VM을 만들 때 공용 네트워크를 사용합니다. Azure가 최근 VM 당 여러 개의 NIC에 대한 지원을 추가 한 반면 Azure VM에 여러 서브넷과 NIC를 추가하는 것이 문제가 될 수 있다는 것을 발견했습니다. 주된 문제점은 각 NIC에 자동으로 게이트웨이 주소가 할당된다는 점입니다.이 주소는 동일한 서버에 여러 게이트웨이가 정의되어있어 라우팅 문제를 일으킬 수 있습니다.
가상 네트워크를 만들려면 몇 분이 걸립니다.
클라우드 서비스 만들기
귀하의 VM은 모두 동일한 "클라우드 서비스"에 상주합니다. Azure는 전반적으로 "클라우드 서비스"이므로 Azure "Cloud Service"의 정의를 찾는 것이 좋습니다. 그러나 이것은 Azure IaaS에 특정한 매우 특정한 생각으로, VM 배포를 시작하기 전에 작성해야합니다. 아래의 스크린 샷은 과정을 안내합니다.
클라우드 서비스를 가상 네트워크와 동일한 지역에 배치하십시오.
저장소 계정 만들기
VM 프로비저닝을 시작하기 전에 스토리지 계정을 만들어야합니다. 아래 단계에 따라 스토리지 계정을 만드십시오.
가상 네트워크와 동일한 위치에 스토리지 계정을 만드십시오.
Azure VMS 및 저장소 만들기
아직 Azure PowerShell을 다운로드하고 설치하지 않았다면 지금하십시오. 또한 기본 구독 및 CurrentStorageAccountName을 설정했는지 확인하십시오.
먼저 도메인 컨트롤러 (DC)가 될 첫 번째 VM을 프로비저닝하는 것으로 시작합니다. 이 예에서는 DC를 파일 공유 감시로 사용하기 때문에 도메인 컨트롤러와 두 노드를 클러스터에 포함하는 가용성 집합을 만듭니다. 다음은 VM을 생성하고 "정적 주소"를 할당하는 예제 스크립트입니다.
$ AVSet = "SQLHA"
$ InstanceSize = "Large"
$ VMName = "DC1"
$ AdminName = "myadminaccount"
$ AdminPassword = "mypassword"
$ PrimarySubnet = "공용"
$ PrimaryIP = "10.0.0.100"
$ CloudService = "SQLFailover"
$ VirtualNetwork = "하늘빛 이스트"
$ ImageName = "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd"
$ image = Get-AzureVMImage -ImageName $ ImageName
$ VM = New-AzureVMConfig -Name $ VMName -InstanceSize $ InstanceSize -Image $ image.ImageName -AvailabilitySetName $ AVSet
Add-AzureProvisioningConfig -VM $ vm -Windows -AdminUserName $ AdminName -Password $ AdminPassword
Set-AzureSubnet -SubnetNames $ PrimarySubnet -VM $ vm
Set-AzureStaticVNetIP -IPAddress $ PrimaryIP -VM $ vm
New-AzureVM -ServiceName $ CloudService -VNetName $ VirtualNetwork -VM $ vm
기술 자료 – "정적 IP 주소"라고 말하지만 실제로는 DHCP "요청"만 생성합니다. 나는 단지 최선의 노력 요청이기 때문에 그것을 "요청"이 아니라 "예약"이라고 부릅니다. 이 서버가 오프라인 상태이고 누군가 새로운 서버를 시작하면 DHCP 서버는이 주소를 다른 사람에게 넘겨 주어이 서버가 켜져있을 때이 주소를 사용할 수 없도록 만들 수 있습니다.
첫 번째 VM을 만들면 클러스터에 사용되는 두 개의 SQL VM을 만들 준비가 된 것입니다. 당신은 다른 변수를 지정할 수있게하여 스크립트를 사용하기 쉽게 만들려고 노력했습니다. 각 VM에 대해 변경해야하는 변수를 강조 표시했습니다.
$ AVSet = "SQLHA"
$ InstanceSize = "Large"
$ VMName = "SQL1"
$ AdminName = "myadminaccount"
$ AdminPassword = "P @ 55w0rd"
$ PrimarySubnet = "공용"
$ PrimaryIP = "10.0.0.101"
$ CloudService = "SQLFailover"
$ VirtualNetwork = "하늘빛 이스트"
$ ImageName = "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd"
$ image = Get-AzureVMImage -ImageName $ ImageName
$ VM = New-AzureVMConfig -Name $ VMName -InstanceSize $ InstanceSize -Image $ image.ImageName -AvailabilitySetName $ AVSet
Add-AzureProvisioningConfig -VM $ vm -Windows -AdminUserName $ AdminName -Password $ AdminPassword
Set-AzureSubnet -SubnetNames $ PrimarySubnet -VM $ vm
Set-AzureStaticVNetIP -IPAddress $ PrimaryIP -VM $ vm
New-AzureVM -ServiceName $ CloudService -VNetName $ VirtualNetwork -VM $ vm
스크립트를 다시 실행하여 두 번째 클러스터 노드를 프로비저닝하십시오.
$ AVSet = "SQLHA"
$ InstanceSize = "Large"
$ VMName = "SQL2"
$ AdminName = "myadminaccount"
$ AdminPassword = "mypassword"
$ PrimarySubnet = "공용"
$ PrimaryIP = "10.0.0.102"
$ CloudService = "SQLFailover"
$ VirtualNetwork = "하늘빛 이스트"
$ ImageName = "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd"
$ image = Get-AzureVMImage -ImageName $ ImageName
$ VM = New-AzureVMConfig -Name $ VMName -InstanceSize $ InstanceSize -Image $ image.ImageName -AvailabilitySetName $ AVSet
Add-AzureProvisioningConfig -VM $ vm -Windows -AdminUserName $ AdminName -Password $ AdminPassword
Set-AzureSubnet -SubnetNames $ PrimarySubnet -VM $ vm
Set-AzureStaticVNetIP -IPAddress $ PrimaryIP -VM $ vm
New-AzureVM -ServiceName $ CloudService -VNetName $ VirtualNetwork -VM $ vm
이 VM 각각은 모두 "SQLHA"라고하는 동일한 가용성 세트에 배치됩니다. 동일한 가용성 세트에 VM을 배치하면 여기에 설명 된 오류 도메인 및 업데이트 도메인을 활용할 수 있습니다. http://blogs.technet.com/b/yungchou/archive/2011/05/16/window-azure-fault-domain-and-update-domain-explained-for-it-pros.aspx
VM을 생성하고 나면 Azure Portal은 다음과 같이 나타납니다.
결함 도메인에 관한 지혜의 말씀
Active Directory 구성
먼저 RDP를 통해 DC1에 연결하고 활성 디렉토리를 활성화합니다. "연결"단추를 사용하여 RDP 연결을 DC1에 다운로드하십시오. Azure VM을 만들 때 지정한 사용자 이름과 암호를 사용하십시오. DC1을 도메인 컨트롤러로 승격하십시오.
내부자 팁 – DNS 서버에서 모든 DNS 전달자를 제거하고 루트 힌트 만 사용하면 DNS 해결 방법이 가장 효과적이라는 사실을 발견했습니다. AZURE는 때때로 DNS 서버를 사용하는 경우 Microsoft 웹 속성을 해결하는 데 어려움을 겪을 수 있습니다.
클러스터 만들기
DC1을 도메인 컨트롤러로 구성하면 SQL1과 SQL2에 연결하여이를 도메인에 추가합니다. 그러나이를 수행하기 전에 가상 네트워크의 DNS 서버를 DC1 서버 (10.0.0.100)로 변경하고 SQL1과 SQL2를 다시 부팅해야합니다. SQL1과 SQL2의 DNS 서버가 100.0.0.100이되면 도메인에 가입 할 수 있습니다.
도메인에 가입하면 SQL Server 장애 조치 (Failover) 클러스터 인스턴스 (FCI)를 만들기 위해 아래에 설명 된 단계를 완료해야합니다.
먼저 각 노드에서 .Net 3.5 Framework를 활성화합니다.
.Net Framework를 설치할 수 없다는 것을 알게되면 DNS 관련 팁을 참조하십시오.
장애 조치 (failover) 클러스터 사용
이제 .NET 3.5가 활성화되었으므로 SQL1과 SQL2 모두에서 장애 조치 클러스터 기능을 활성화해야합니다.
확인
클러스터 기능을 사용할 수있게되면 클러스터를 만들어야합니다. 첫 번째 단계는 클러스터 유효성 검사를 실행하는 것입니다. 클러스터링에 익숙하다고 가정하고 있으므로 몇 가지 스크린 샷을 게시하고 고려해야 할 사항을 기록해 두겠습니다.
유효성 검사가 완료되지만 몇 가지 경고가 표시됩니다. 대부분의 경고는 저장과 관련된 것입니다. 공유 디스크가 아닌 복제 된 저장소를 사용할 때이를 무시할 수 있습니다. 또한 네트워크에 대한 경고를받을 수 있습니다. Azure가 네트워크 리던던시를 물리적 레이어에 내장하고 있다는 것을 알았으므로이 경고를 무시할 수도 있습니다.
클러스터 액세스 지점 만들기
2011 년 11 월 24 일 업데이트 – 생성 프로세스의 일부로 클러스터의 IP 주소를 지정할 수 있기 때문에 Powershell을 통해 클러스터를 생성하면 GUI 단계에서 설명한 모든 문제를 피할 수 있습니다. 아래의 두 PowerShell 명령은이 섹션에 나오는 GUI 스크린 샷에 표시된 모든 단계를 대체합니다. StaticIaddress 매개 변수를 확인하십시오.
테스트 클러스터 – 노드 서버 1, 서버 2
새 클러스터 -Name MyCluster -Node Server1, Server2 -StaticAddress 10.0.0.200
위의 Powershell 스크립트를 실행 한 경우이 섹션의 나머지 부분은 건너 뛰고 파일 공유 감시를 만드는 다음 섹션으로 바로 넘어갈 수 있습니다.
클러스터 작성 프로세스를 시작하려면 마침 클릭을 작성하는 것이 좋습니다. 먼저 클러스터의 이름을 선택하십시오.
보고서보기를 클릭하면 몇 가지 경고가 표시됩니다. 파일 공유 감시를 만들 때 경고를 무시할 수 있습니다.
클러스터가 생성 된 후 다음과 같은 메시지가 나타날 수 있습니다. " 'Validate Configuration …'작업이 완료되지 않았습니다.
클러스터 액세스 포인트 IP 주소 수정
여기서 근본적인 문제는 클러스터가 IP 주소 충돌로 인해 클러스터 이름을 올바르게 해결하지 못한다는 것입니다. Azure DHCP가 방금 만든 클러스터 컴퓨터 개체에 중복 IP 주소를 실제로 제공한다는 사실을 알게 될 것입니다. 이것은 다음과 같이 다루어야 할 이상한 Azure 특질 중 하나입니다.
연결할 때 SQL2에서 장애 조치 클러스터 GUI를 열어야 할 수 있습니다. 클러스터에 연결할 수 있으면 클러스터가 클러스터 노드 중 하나와 동일한 IP 주소를 얻었음을 알 수 있습니다. 이것은 물론 IP 주소 충돌을 야기합니다.
우리가해야 할 일은 10.0.0.102 IP 주소를이 서브넷에서 사용되지 않는 다른 IP 주소로 변경하는 것입니다.
내 주소로 10.0.0.200을 골랐습니다. 현재 DHCP 범위를 제어하거나 예약을 추가 할 수있는 방법이 없기 때문에이 주소는 DHCP 범위에 예약되어 있지 않습니다. 난 그냥 DHCP 범위의 상단에있는 주소를 선택하고 그 서브넷 내에서 그 IP 주소에 도달하기에 충분한 VM을 제공하지 않도록하십시오.
이제 클러스터 IP 주소가 고정되었으므로 어느 노드에서든 장애 조치 (Failover) 클러스터 관리자를 사용하여 클러스터에 연결할 수 있습니다.
파일 공유 감시 만들기
다음으로 클러스터 쿼럼에 대한 파일 공유 감시를 만듭니다. 클러스터 쿼럼에 대한 전체 설명은 MSDN 보도 자료에서 블로그 게시물 (http://blogs.msdn.com/b/microsoft_press/archive/2014/04/28/from-the-mvps-understanding-the-windows-server)을 읽으십시오. -failover-cluster-quorum-in-windows-server-2012-r2.aspx
파일 공유 감시 서버가 도메인 컨트롤러에 만들어집니다. 기본적으로 DC1에 파일 공유를 만들고 클러스터 컴퓨터 계정 "sioscluster"에 읽기 / 쓰기 권한을 부여해야합니다. 아래 그림과 같이 공유 및 보안 권한을 모두 변경해야합니다.
다음 단계는 DC1에서 수행됩니다.
새 폴더를 만듭니다.
컴퓨터 개체를 검색하고 클러스터 컴퓨터 개체 이름을 선택하십시오.이 경우에는 SIOSCLUSTER
변경 권한을 부여했는지 확인하십시오.
또한 클러스터 컴퓨터에서 폴더에 대한 수정 권한을 허용하도록 보안을 변경해야합니다.
공유 폴더를 만들면 아래와 같이 노드 중 하나에서 Windows Server 장애 조치 (Failover) 클러스터 인터페이스를 사용하여 파일 공유 감시를 추가합니다.
DataKeeper 설치
공유 저장소없이 장애 조치 (failover) 클러스터 인스턴스를 구축 할 수있는 복제 및 클러스터 통합을 제공하려면 SIOS Technology의 DataKeeper Cluster Edition이 필요합니다. 먼저 클러스터의 두 노드에 DataKeeper Cluster Edition을 설치합니다. 아래 그림과 같이 설정을 실행합니다.
데모 용으로 도메인 관리자 계정을 사용했습니다. 유일한 요구 사항은 사용 된 사용자 계정이 각 서버의 로컬 관리자 그룹에 있다는 것입니다.
DataKeeper 볼륨 리소스 만들기
각 클러스터 노드 (SQL1 및 SQL2)에 소프트웨어를 설치하면 처음으로 볼륨 리소스를 복제 할 준비가 된 것입니다. 두 노드 중 하나에서 DataKeeper GUI를 시작하고 아래 단계에 따라 DataKeeper 볼륨 리소스를 만듭니다.
두 서버에 모두 연결 한 후 서버 개요 보고서를 클릭하십시오. 다음과 같이 보입니다.
두 서버에 모두 연결되어 있지만 볼륨이 나열되어 있지 않음을 알 수 있습니다. 다음으로 각 클러스터 노드에 스토리지를 추가해야합니다. 아래 그림과 같이 Azure 포털을 통해이를 수행하십시오.
각 VM에 추가 볼륨을 추가하고 포맷 된 파티션을 만들면 DataKeeper GUI가 다음과 같이 나타납니다.
이제 작업 생성 마법사를 시작하고 아래와 같이 DataKeeper 볼륨 리소스를 만들 준비가되었습니다.
작업을 작성하고 이름과 선택적 설명을 제공하십시오.
클러스터에 SQL 설치
클러스터를 구성하고 사용 가능한 저장소에 DataKeeper 볼륨이 생기면 SQL Server 클러스터 설치를 시작할 수 있습니다. 이 프로세스는 공유 저장소를 사용하여 SQL Server 장애 조치 (Failover) 클러스터 인스턴스를 설치하는 것과 완전히 동일합니다. DataKeeper 복제 된 볼륨 리소스가 저장소 클래스 리소스이기 때문에 장애 조치 클러스터링은 실제 디스크 리소스처럼 취급합니다. 클러스터에 SQL Server를 설치하려면 아래의 단계를 따르십시오.
SQL Server 2014 Standard Edition을 사용하여 2- 노드 장애 조치 (Failover) 클러스터를 구축 할 수 있습니다. 이 시나리오에서 DataKeeper는 데이터를 세 번째 노드로 복제 할 수도 있지만 해당 노드는 클러스터의 일부가 될 수 없습니다. 3 + 노드 클러스터를 만들려면 SQL Server 2014 Enterprise Edition을 사용해야합니다. 이전 버전의 SQL은 완벽하게 잘 작동합니다. SQL 2014를 통해 SQL 2008을 테스트했습니다.
다음을 클릭하기 전에 데이터 디렉토리 탭을 클릭하십시오.
SQL이 첫 번째 노드에 설치되면 두 번째 노드에서 설치를 실행해야합니다.
내부로드 밸런서 만들기
클러스터가 구성되면 모든 클라이언트 액세스에 사용할 내부로드 밸런서 (ILB)를 만들어야합니다. SQL Server에 연결하는 클라이언트는 클러스터 IP 주소에 직접 연결하는 대신 ILB에 연결해야합니다. 이 시점에서 직접 클러스터에 연결하려고하면 모든 원격 시스템에서 클러스터에 연결할 수 없습니다. 이 시점에서 SQL Server Management Studio도 클러스터에 직접 연결할 수 없습니다.
로컬 바탕 화면에서이 Powershell 명령을 실행하여 내부 부하 분산 장치 (ILB)를 만듭니다.
# 변수 정의
$ IP = "10.0.0.201"# 내부 부하 분산 장치에서 사용할 IP 주소.이 주소는 SQL Server 클러스터 IP 주소와 동일해야합니다.
$ svc = "SQLFailover"# 클라우드 서비스의 이름
$ vmname1 = "sql1"# 첫 번째 클러스터 노드 인 VM의 이름
$ epname1 = "sql1"# 첫 번째 클러스터 노드와 연관된 엔드 포인트에 지정하려는 이름입니다. 원하는대로 사용하십시오.
$ vmname2 = "sql2"# 두 번째 클러스터 노드 인 VM의 이름
$ epname2 = "sql2"# 이것은 두 번째 클러스터 노드와 연관된 엔드 포인트에 지정하려는 이름입니다. 원하는대로 사용하십시오.
$ lbsetname = "ilbsetsqlha"# 원하는 이름을 사용하십시오.이 이름은 중요하지 않습니다.
$ prot = "tcp"
$ locport = 1433
$ pubport = 1433
$ probeport = 59999
$ ilbname = "sqlcluster"# 클라이언트가 연결하는 이름입니다. 일치해야합니다. SQL 클러스터 이름 리소스
$ subnetname = "Public"# 내부로드 밸런서를 사용할 Azure 서브넷의 이름
# 내부로드 밸런서를 서비스에 추가
Add-AzureInternalLoadBalancer -InternalLoadBalancerName $ ilbname -SubnetName $ 서브넷 이름 -ServiceName $ svc -StaticVNetIPAddress $ IP
#로드 밸런싱 엔드 포인트를 기본 클러스터 노드에 추가
Get-AzureVM -ServiceName $ svc -Name $ vmname1 | Add-AzureEndpoint -Name $ epname1 -LBSetName $ lbsetname -Protocol $ prot -LocalPort $ locport -PublicPort $ pubport -ProbePort $ probeport -ProbeProtocol tcp -ProbeIntervalInSeconds 10 -DirectServerReturn $ true -InternalLoadBalancerName $ ilbname | 업데이트 – AzureVM
# 보조 클러스터 노드에로드 밸런싱 엔드 포인트 추가
Get-AzureVM -ServiceName $ svc -Name $ vmname2 | Add-AzureEndpoint -Name $ epname2 -LBSetName $ lbsetname -Protocol $ prot -LocalPort $ locport -PublicPort $ pubport -ProbePort $ probeport -ProbeProtocol tcp -ProbeIntervalInSeconds 10 -DirectServerReturn $ true -InternalLoadBalancerName $ ilbname | 업데이트 – AzureVM
스크립트가 계획대로 실행되었다고 가정하면 다음과 같은 결과가 나타납니다.
클라이언트 수신기 업데이트
내부 부하 분산 장치가 만들어지면 SQL Server 클러스터에 대한 IP 주소를 업데이트하기 위해 SQL1에서 Powershell 스크립트를 실행해야합니다. 이 스크립트는 클러스터 네트워크 이름과 IP 리소스 이름을 참조합니다. 아래 그림은 장애 조치 클러스터 관리자에서이 두 이름을 모두 찾을 수 있음을 보여줍니다.
아래 스크립트는 클러스터 노드 중 하나에서 실행해야합니다. 관리자 권한으로 실행을 사용하여 Powershell ISE를 시작하십시오.
#이 스크립트는 내부로드 밸런서를 만든 후에 기본 클러스터 노드에서 실행해야합니다.
# 변수 정의
$ ClusterNetworkName = "클러스터 네트워크 1"# 클러스터 네트워크 이름
$ IPResourceName = "SQL IP 주소 1 (sqlcluster)"# IP 주소 자원 이름
$ CloudServiceIP = "10.0.0.201"# 내부로드 밸런서의 IP 주소
가져 오기 모듈 장애 조치 클러스터
# Windows 2012 이상을 사용하는 경우 Get-Cluster Resource 명령을 사용하십시오. Windows 2008 R2를 사용하는 경우 주석 처리 된 cluster res 명령을 사용하십시오.
Get-ClusterResource $ IPResourceName | Set-ClusterParameter -Multiple @ { "Address"= "$ CloudServiceIP"; "ProbePort"= "59999";
SubnetMask = "255.255.255.255"; "네트워크"= "$ ClusterNetworkName";
"OverrideAddressMatch"= 1; "EnableDhcp"= 0}
# cluster res $ IPResourceName / priv enabledhcp = 0 overrideaddressmatch = 1 address = $ CloudServiceIP probeport = 59999 subnetmask = 255.255.255.255
스크립트가 예상대로 실행되었다고 가정하면 출력은 다음과 같아야합니다. 변경 내용을 적용하려면 클러스터 리소스를 한 번 오프라인으로 설정 한 다음 온라인 상태로 만들어야합니다.
방화벽
열린 TCP 포트 59999, 1433 및 1434는 각 서버의 방화벽에서 열립니다.
개요
클러스터가 생성되었으므로 sqlcluster라는 이름을 사용하거나 10.0.0.201에 직접 사용하여 Internal Load Balancer를 통해 SQL 장애 조치 (Failover) 클러스터 인스턴스에 연결할 수 있습니다.
유용한 SQL 서버 장애 조치 클러스터 인스턴스에 대한 기사를 찾으십시오. 다른 블로그 게시물을 읽어보십시오.
Clusteringformeremortal의 허락을 받아 재현