가상 인프라의 중요한 요구 사항 중 하나는 특히 대형 데이터 센터에서 단일 장애 지점을 제거하고 서비스 및 앱의 고 가용성을 보장하는 것입니다. Hyper-V 환경에서는 Microsoft 장애 조치 클러스터링 기술을 사용하여 하나의 호스트가 실패하는 경우 부하를 인계 할 수있는 여러 Hyper-V 호스트(또는 노드)를 구성할 수 있습니다.
단계별 가이드에서 Hyper-V 장애 조치 클러스터링 구성의 실제 측면, 초기 호스트 및 네트워크 구성, Hyper-V 역할 설치 및 클러스터 생성 등을 배웁니다.
Hyper-V 호스트 구성
장애 조치 클러스터링을 위해 호스트를 준비하려면 특정 클러스터에서 사용될 모든 호스트에 설치 할 운영 체제를 선택해야합니다. 그런 다음 환경을 준비하기 위해 모든 호스트에 기본 구성을 수행해야합니다. Hyper-V 클러스터 설정.
설치할 운영 체제 선택
이 설정에서는 부품 이동을 최소화하고 보안을 향상시키기 위해 두 개의 Windows Server 2016 Server Core 설치를 사용합니다. Windows Server 2016 Server Core 설치를 사용하면 많은 불필요한 구성 요소가 제거되고 풋프린트가 줄어듭니다. Server Core의 관리 난이도 증가는 효율성과 보안의 장점에 의해 상쇄됩니다. Hyper-V 클러스터 설정을 위해 Windows Server 2019와 같은 최신 Windows Server 버전도 사용할 수 있습니다.
참고:Windows Server 2016 Server Core의 관리 및 구성에는 PowerShell을 사용합니다. Windows Server Desktop Experience를 사용하여 Hyper-V 장애 조치 클러스터링을 구성하는 것도 기술적으로 가능합니다.
환경의 초기 설정
하이퍼-V 호스트를 클러스터로 고려하기 전에 호스트의 초기 설정을 수행해야합니다. 이는 Windows 서버를 준비하는 일반적인 단계와 많이 겹칩니다 – 이름 지정, 네트워크 구성, 패치 적용 등이 포함됩니다. 특히 Windows 클러스터의 경우 네트워크 계획이 중요합니다. 이는 적절한 클러스터 통신 및 공유 저장소와의 통신을 가능하게 합니다.
- 이름 지정. 두 서버 모두 랩 도메인에 이름을 지정하고 가입했습니다. Windows Server 2016부터 도메인 가입이 필수가 아닙니다. 서버 구성은 첫 번째 서버 H1에 대한 아래 스크린샷에 표시됩니다. 두 번째 서버 H2의 구성은 유사합니다.
- 업데이트. 잠재적인 하이퍼-V 클러스터 노드를 Hyper-V 클러스터링 최상의 방법에 따라 사용 가능한 최신 패치 수준으로 업데이트해야합니다. 하이퍼-V 호스트에 업데이트를 설치하면 시스템의 보안이 향상됩니다. 업데이트 설치를 완료하려면 Windows를 다시 시작해야 할 수 있습니다.
- 일관성. 모든 잠재적 클러스터 노드가 컴퓨터 이름 및 IP 주소를 제외하고는 동일하게 구성되어야합니다. 이렇게하면 호스트 간에 모든 것이 표준화되어 패치 수준, 네트워크 등이 포함됩니다.
네트워크 계획
적절한 환경 계획은 미래에 많은 위험을 완화합니다. 이 시나리오에서 랩 네트워크를 위해 각 호스트에 네트워크 어댑터가 4개 구성되어 있습니다. 랩 호스트 두 대는 단순함을 위해 NIC 팀을 구성하지 않고 있습니다. 그러나 프로덕션에서는 어댑터를 팀으로 구성하여 어떤 네트워크에서도 단일 장애 지점이 발생하지 않도록 해야 합니다.
저희의 랩 설정은 다음과 같습니다:
- 관리 및 VM 트래픽
- iSCSI
- 개인 클러스터 트래픽
- 라이브 마이그레이션
상기 네트워크를 고려하여 각 서버에 원하는 서브넷 범위에 IP 주소를 할당합니다. VLAN도 고려해야 하며, 아마도 할당된 VLAN과 서브넷을 맞추는 것이 좋습니다. 이는 미리 신중하게 고려해야 합니다.
iSCSI 스토리지 타겟 설정
Hyper-V 클러스터 스토리지는 클러스터 구축에 있어 중요한 요소입니다. 예를 들어, 이 랩 환경에서 iSCSI 스토리지를 구성하기 위해 FreeNAS를 사용하여 iSCSI 타겟을 생성하고 Hyper-V 클러스터에 제공합니다. 물론, 선택한 제조업체의 하드웨어나 소프트웨어 iSCSI에서 iSCSI를 설정하는 방법은 제조업체마다 다를 수 있으므로 각각의 정의된 방법을 항상 따르도록 합니다.
이cknowledgement: FreeNAS는 유용하고 자유롭게 구성되어 있는 FreeBSD 기반 오ペ레이ting system입니다. 컴퓨터에 이를 설치하여 NAS로 사용할 수 있습니다. FreeNAS와 NAKIVO 솔루션을 사용하여 Hyper-V cluseter shared storage를 생성하거나 备份 device를 구성할 수 있습니다.
下記은 FreeNAS를 사용하여 Hyper-V 실패 接管 cluseter의 스토어지를 설정하는 간단한 概要按照입니다. FreeNAS를 iSCSI로 설정하는 모든 细节을 다룰 것이 아니며, 하지만 우리의 Hyper-V 호스트에 iSCSI 대상을 여러 개 제시하는 기본 설정을 다음과 같이 정의합니다.
- FreeNAS에서 iSCSI 서비스를 시작하고 스토어지 네트워크에 대한 네트워크 구성을 설정하여 Hyper-V 호스트가 사용할 것인 것과 일치시키십시오.
- 생성할 대상의 기본 IQN 세팅을 확인합니다.
- FreeNAS에서 iSCSI traffics를 감시하는 포털을 설정합니다.
- iSCSI 대상 이름을 설정합니다. 우리의 FreeNAS 기기에서는 다음과 같이 설정합니다:
- a quorum volume to be used as a disk witness
- a volume to be used for the Hyper-V cluster shared volume to house our VMs
Note: Windows cluseter의 机制이며, cluseter의 일부가 다운되는 경우에도 cluseter가 기능할 수 있는 대부분의 cluser resources를 항상 유지하기 위한 것입니다.
- Windows Server 2012부터, cluser의 모든 노드는 기본적으로 单个의 Ку戎먼(Quorum) 투표를 갖습니다. Windows Server 2016로 单个의 투표를 추가하여 파일 공유, 디스크, 或者 새로운 云 storage account를 이용하여, cluser의 일부는 任何时候 50% 이상의 Ку戎 Fernem(Quorum) 투표를 갖도록 공유, 디스크, 或者 云 storage account 투표를 声明해야 합니다.
- Windows Server 2012 R2에서 추천 사항은 디스크 또는 파일 공유 witeness를 항상 구성하라는 것이 변경되었습니다. 옵저버는 짝수의 노드 수일 때에만 추가적인 witeness(파일 공유, 디스크, 或者 云 저장 계정)에 대한 표를 확장합니다. 홀수의 노드 수일 때, witeness는 표를 받지 않고 사용되지 않습니다.
아래 截图에서는 두 개의 대상 이름을 생성했습니다: 디스크 witeness로 사용할 엑스큐럼 卷と 我们的 クラスター 공유 卷로 사용할 卷。
- Add Extents를 추가하면, 아래 예시에서는 우리가 물리적으로 我们的 FreeNAS 에이プliance에 할당한 개별 디스크에 매핑됩니다。
- 대상과 확장 사이 관계를 맺습니다. 대상은 FreeNAS에서 스토리지와 매핑됩니다。
Hyper-V 역할 설치
Hyper-V 역할을 설치하려면, PowerShell 명령 提示符에서 다음 명령을 실행하십시오。
Install-WindowsFeature -Name Hyper-V -IncludeAllSubFeature -IncludeManagementTools -Restart
스토리지 세팅: iSCSI 포털 주소 추가
iSCSI 포털 주소를 추가하기 전에, 아래와 같이 Microsoft iSCSI 服务를 구성하고 시작해야 합니다。
- 서비스를 자동으로 设置합니다。
Set-Service -Name msiscsi -StartupType Automatic
- 서비스를 시작합니다。
Start-Service msiscsi
- PowerShell을 사용하여 프로비저닝 한 iSCSI 포털 주소를 추가합니다.
New-iscsitargetportal -targetportaladdress <IP 주소>
- 특정 iSCSI 타겟을 연결합니다. 우리의 경우에는 FreeNAS 애플라이언스에 생성된 것입니다. 아래는 클러스터에 프로비저닝된 Hyper-V 호스트에 FreeNAS 타겟을 추가하는 데 사용한 예시입니다.
- Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:quorum -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1
- Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:hvvol1 -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1
추가된 타겟을 확인하려면 Get-iSCSItarget 명령을 실행할 수 있습니다.
참고: 클러스터 공유 스토리지가 온라인 및 정상인지 확인하려면 get-disk 명령을 사용하여 디스크 정보를 확인할 수 있습니다.
가상 스위치 설정
적절한 Hyper-V 장애 조치(failover) 클러스터 네트워크 구성을 위해 가상 스위치를 구성해야 합니다. PowerShell 또는 Hyper-V 관리자를 사용하여 Hyper-V용 가상 스위치를 설정할 수 있습니다.
PowerShell에서 가상 스위치를 생성하는 명령의 예:
New-VMSwitch “ExternalSwitch01” -NetAdapterName “Public” -AllowManagementOS 1
참고: 라이브 마이그레이션을 수행할 때 가상 스위치가 일치하는지 확인하기 위해 두 호스트 간에 가상 스위치 이름을 동일하게 설정해야 합니다.
Hyper-V 클러스터 생성
PowerShell을 사용하여 클러스터를 생성하는 것은 간단한 한 줄 명령령입니다.
- 클러스터를 생성하기 전에 Hyper-V 클러스터링 모범 사례를 충족하는지 확인하기 위해 다음 명령을 실행하십시오:
Test-Cluster H1,H2
- new-cluster 명령령을 사용하여 클러스터를 생성하고 클러스터 이름, 노드 및 클러스터에 대한 정적 IP 주소를 할당합니다.
New-Cluster -Name HVCluster -node H1,H2 -staticAddress 192.168.85.75
- 클러스터 생성 프로세스가 완료되면 클러스터 이름이 명령 줄에 표시되는 출력을 볼 수 있습니다.
Hyper-V 클러스터드 공유 볼륨
iSCSI 대상에서 공유 저장소를 가지고 있더라도, Hyper-V 클러스터드 공유 볼륨에 VM이 저장된 저장소가 설정되어 있는지 확인해야 합니다. Windows Server 2008 R2에서 Hyper-V 역할과 함께 사용되도록 도입된 클러스터드 공유 볼륨(CSV)은 클러스터의 모든 노드에서 VHD 파일에 액세스할 수 있도록 VM이 가질 수 있습니다. CSV에는 또한 I/O 오류 감지와 같은 내결함성이 빌드되어 통신 실패 시 대체 통신 경로가 사용될 수 있습니다.
CSV를 생성하여 VM에 대해 단계별로 설정해 보겠습니다.
- VM 저장소로 사용할 클러스터 디스크 리소스를 다음과 같이 다시 이름을 지정할 수 있습니다(선택 사항). 우리 실습 환경에서는 다음과 같습니다.클러스터 디스크 1:
(Get-ClusterResource | ?{$_.Name -eq “Cluster Disk 1”}).name = “VMs”
- 이 볼륨을 이제 클러스터 공유 볼륨에 추가할 수 있습니다.
Get-ClusterResource -Name “VMs”| Add-ClusterSharedVolume
참고: Failover Cluster Manager를 사용하여 CSV에 디스크를 추가할 수도 있습니다.
- 클러스터 공유 볼륨의 상태를 get-clustersharedvolume 명령으로 확인할 수 있습니다.
참고: 만약 Failover Cluster Manager를 사용하여 연결할 관리 워크스테이션이 있다면, Windows Failover 클러스터에 연결하여 그래픽 사용자 인터페이스(GUI)로 저장소를 볼 수 있습니다. 여기에서는 사용 가능한 디스크와 그에 할당된 역할을 쉽게 확인할 수 있습니다. 아래에서는 퀄러럼 및 VM 디스크가 클러스터 공유 볼륨으로 지정된 것을 볼 수 있습니다.
Hyper-V 저장소 설정 변경
이제 클러스터 공유 볼륨이 설정되었으므로 Hyper-V 설정을 변경하여 VM을 저장하는 기본 위치로 Hyper-V 클러스터 공유 볼륨을 사용할 수 있습니다.
각 호스트의 Hyper-V 설정에서 가상 하드 디스크 위치와 가상 머신 위치를 Hyper-V 호스트의 C:\ClusterStorage\volume(x)로 변경합니다.
고가용성 VM 생성
이제 Failover Cluster Manager를 시작하고 고가용성 VM을 만들기 시작할 수 있습니다.
- 역할을 마우스 오른쪽 버튼으로 클릭하고 새 가상 머신을 만들기를 선택합니다.
- 가상 머신을 위한 Hyper-V 호스트(클러스터 노드 중 하나)를 선택합니다.
- 새 가상 머신 마법사 프롬프트를 통해 새 가상 머신을 프로비저닝합니다.
- 마법사의 가상 하드 디스크 연결 단계에서 가상 머신이 Hyper-V 클러스터 공유 볼륨에 생성되도록합니다.
- 요약 단계는 선택한 옵션을 표시합니다.
- 완료를 클릭하면, 고가용성 마법사가 역할 및 가상 머신에 대한 고가용성 활성화 요약을 표시합니다. 성공적으로 활성화되었음을 확인할 수 있습니다.
- 고가용성 보고서를 확인하려면 보고서 보기 버튼을 클릭하면 고가용성 테스트의 자세한 렌더링이 표시됩니다.
Hyper-V 장애 조치 클러스터 구성이 완료되었으며, 클러스터에서 실행되는 고가용성 가상 머신이 있습니다. Hyper-V 고가용성을 사용하기 위해 클러스터에 더 많은 가상 머신을 만들 수 있습니다.
최종 생각
Hyper-V 장애 조치 클러스터링을 사용하면 장애 발생 시 가상 머신의 다운 타임을 줄일 수 있습니다. 그러나 Hyper-V 클러스터 백업이 자주 이루어지지 않는다면 가상 머신 데이터를 보호할 수 없습니다. Hyper-V 장애 조치 클러스터에서 가상 머신이 호스트 간에 이동할 수 있으므로 가상 머신 백업은 어려운 작업일 수 있습니다. NAKIVO의 솔루션을 사용하여 클러스터에서 실행되는 가상 머신을 쉽게 백업하세요.