Technical Guide Windows Server 2016 Cluster Rolling Upgrade Step-By-Step Guide Prepared for January 31, 2016 SPM 이동철 Microsoft Korea Premier Service 1
목차 데모를위한 ISCSI TARGET 서버구성... 4 WINDOWS SERVER 2012 R2: SCALE-OUT 파일서버구성을위한사전설치사항... 6 RUNODE01 서버에역할및기능설치... 6 RUNODE02 서버에역할및기능설치... 11 SCALE-OUT 파일서버를위한클러스터생성... 12 CLUSTER SHARED VOLUME 구성... 18 WINDOWS SERVER 2012 R2: SCALE-OUT 파일서버구성... 20 SCALE-OUT 파일서버클러스터역할구성... 20 클러스터공유볼륨 에 CONTINUOUSLY AVAILABLE 파일공유 생성... 26 WINDOWS SERVER 2012 R2: HYPER-V 호스트의 SCALE-OUT 파일서버사용구성... 32 HYPER-V 호스트를위한 DELEGATION 활성화... 33 파일공유에권한부여... 35 신규가상기계생성... 40 WINDOWS SERVER 2012 R2: SQL SERVER 의 SCALE-OUT 파일서버사용구성... 45 SQL SERVER 컴퓨터를위한 DELEGATION 활성화... 46 파일공유에권한부여... 48 데이터베이스파일생성... 51 SCALE-OUT FILE SERVER 파일공유의데이터베이스테스트... 54 WINDOWS SERVER 2016: CLUSTER OPERATING SYSTEM ROLLING UPGRADE... 64 REQUIREMENTS... 65 CLUSTER OS ROLLING UPGRADE 동안클러스터전이상태... 65 2
CLUSTER OS ROLLING UPGRADE 과정의클러스터전이상태예제 (4 노드 )... 66 CLUSTER OPERATING SYSTEM ROLLING UPGRADE: 절차... 69 OS UPGRADE 를위한클러스터준비... 70 클러스터내의각노드에서수행작업... 71 RUNODE02 서버의 WINDOWS SERVER 2016 업그레이드작업... 71 RUNODE01 서버의 WINDOWS SERVER 2016 업그레이드작업... 88 클러스터내의모든노드가 WINDOWS SERVER 2016 으로업그레이드이후의작업... 106 정상적인클러스터업데이트및백업재시작... 109 WINDOWS SERVER 2016 클러스터의신규기능활성화및사용... 110 CLUSTER OS ROLLING UPGRADE 기능의제약점... 112 FAQS... 113 참조자료... 115 3
데모를위한 iscsi Target 서버구성 iscsi Target 서버구성을위해아래블로그를참조합니다. [Dongclee의 2012년 10월첫번째포스팅 ] Windows Server 2012 Series 17: 장애조치클러스터의 New, Update 및 Remove 기능에대한모든소개및 Step-by-Step 가이드 (http://blogs.technet.com/b/dongclee/archive/2012/10/22/dongclee-2012-10-windowsserver-2012-series-17-new-update-remove-step-by-step.aspx) iscsi Target 서버구성후의전체데모환경은아래와같습니다. 아래구성의모든 OS 환경은 Windows Server 2012 R2 Datacenter 버전입니다. 4
본문서의최종목적인 Windows Server 2012 R2 기반의장애조치클러스터를 Windows Server 2016 의신규기능인 Cluster OS Rolling Upgrade 기능을사용하여, Windows Server 2016 기반의 장애조치클러스터로업그레이드한최종결과는아래그림과같습니다. 5
Windows Server 2012 R2: Scale-Out 파일서버구성을위한사전설치사항 이번단계에서, Scale-Out 파일서버 구성에참여할노드들에아래와같은역할및기능을설치합니다. 아래설치는 서버관리자 또는 Windows PowerShell 을사용할수있습니다. File Server role service Failover Clustering Share and Storage Management 서버이름 역할 IP 주소 OS 버전 DC01 도메인컨트롤러 192.168.0.1 Windows Server 2012 R2 Datacenter RUNODE01 클러스터노드 192.168.0.21 Windows Server 2012 R2 Datacenter RUNODE02 클러스터노드 192.168.0.22 Windows Server 2012 R2 Datacenter CORPSOFSCLU 클러스터네트워크이름 192.168.0.23 CORPSOFSFS Scale-Out 파일서버 Client Access Point 192.168.0.21 192.168.0.22 본데모환경에서는아래와같이총 3 개의공유저장소가필요합니다. 클러스터디스크이름 역할 드라이브 크기 클러스터디스크 1 Quorum 용도 E 1 GB 클러스터디스크 2 Scale-Out 파일서버용도 F 30 GB RUNODE01 서버에역할및기능설치 1. RUNODE01 서버에도메인관리자그룹의구성원으로로그인합니다. 6
2. 서버관리자가자동을시작합니다. 만약, 자동으로서버관리자가시작되지않으면, 시작을클릭하고, 서버관리자를입력하고, 서버관리자를클릭합니다. 3. 빠른시작부분에서, 역할및기능추가를클릭합니다. 4. 역할및기능추가마법사의시작하기전페이지에서, 다음을클릭합니다. 7
5. 설치유형페이지에서, 역할기반또는기능기반설치를클릭하고, 다음을클릭합니다. 6. 대상서버선택페이지에서, RUNODE01 을선택하고, 다음을클릭합니다. 기본적으로 로컬서버가선택됩니다. 8
7. 서버역할선택페이지에서, File and Storage Services -> File Services and iscsi Services 를확장하고, File Server 를선택하고, 다음을클릭합니다. 8. 기능선택페이지에서, Failover Clustering 을먼저선택한후, Remote Server Administration Tools -> Role Administration Tools -> File Services Tools 순서로확장한후, Share and Storage Management Tools 를선택하고, 다음을클릭합니다. 9
Note Remote Server Administration Tools -> Role Administration Tools -> File Services Tools 순서로확장하고, Share and Storage Management Tools 를선택합니다. 9. 설치선택확인페이지에서, 설치를클릭합니다. 10
참고로, 이작업은아래와같은 PowerShell 명령어로도동일하게수행할수있습니다. Add-WindowsFeature name File-Services,Failover-Clustering,RSAT-CoreFile-Mgmt - IncludeManagementTools RUNODE02 서버에역할및기능설치 1. 앞서 RUNODE01 서버에역할및기능설치 과정을클러스터에참여할다른노드인 RUNODE02 에서반복적으로수행합니다. 11
Scale-Out 파일서버를위한클러스터생성 1. RUNODE01 서버에도메인관리자그룹의구성원으로로그인합니다. 12
2. 서버관리자가자동을시작합니다. 만약, 자동으로서버관리자가시작되지않으면, 시작을클릭하고, 서버관리자를입력하고, 서버관리자를클릭합니다. 3. 도구를클릭하고, 장애조치 (Failover) 클러스터관리자를클릭합니다. 4. 관리부분에서, 구성유효성검사를클릭합니다. 5. 구성유효성검사마법사의시작하기전페이지에서, 다음을클릭합니다. 6. 서버또는클러스터선택페이지에서, 이름입력부분에서클러스터에참여할서버 RUNODE01 의 FQDN 을입력하고, 추가를클릭합니다. 이작업을 RUNODE02 서버의 FQDN 도동시에입력한다. 7. 다음을클릭합니다. 13
8. 테스트옵션페이지에서, 모든테스트실행 ( 권장 ) 옵션을선택하고, 다음을클릭합니다. 9. 확인페이지에서, 다음을클릭합니다. 14
10. 요약페이지에서, 검사된노드를사용하여클러스터만들기를선택하고, 마침을 클릭합니다. 이제클러스터생성마법사가수행됩니다. 11. 클러스터만들기마법사의시작하기전페이지에서, 다음을클릭합니다. 15
12. 클러스터관린액세스지점페이지에서, 클러스터이름부분에, 클러스터이름 CORPSOFSCLU 를입력하고, 다음을클릭합니다. 13. 확인페이지에서, 클러스터에사용할수있는모든저장소를추가하세요를선택함을 확인하고, 다음을클릭합니다. 16
14. 요약페이지에서, 마침을클릭합니다. 위과정은아래와같은 Windows PowerShell 명령어를수행하여동일하게작업을진행할수 있습니다. 17
Test-Cluster Node RUNODE01, RUNODE02 New-Cluster Name CORPSOFSCLU Node RUNODE01, RUNODE02 Cluster Shared Volume 구성 클러스터공유볼륨 은장애조치관리자에서사용됩니다. 특정시점에하나이상의노드에서 동시에접근할수있습니다. 장애조치관리자 도구를사용하여 Cluster Shared Volume 을추가할 수있습니다. 1. RUNODE01 서버에도메인관리자그룹의구성원으로로그인합니다. 2. 서버관리자가자동을시작합니다. 만약, 자동으로서버관리자가시작되지않으면, 시작을클릭하고, 서버관리자를입력하고, 서버관리자를클릭합니다. 3. 도구를클릭하고, 장애조치 (Failover) 클러스터관리자를클릭합니다. 4. 저장소 -> 디스크순서로클릭하고, 클러스터공유볼륨으로추가하고싶은디스크를오른쪽마우스클릭하고, 클러스터공유볼륨에추가를클릭합니다. 추가작업이완료된후, 클러스터디스크 2 의 할당대상 탭의값이 클러스터공유볼륨 으로변경되어있음을확인합니다. 18
위과정은아래와같은 Windows PowerShell 명령어를수행하여동일하게작업을진행할수 있습니다. Add-ClusterSharedVolume "ClusterDiskName" EX) Add-ClusterSharedVolume "Cluster Disk 2" 19
Windows Server 2012 R2: Scale-Out 파일서버구성 이번단계에서는, high availability 를위한 Scale-Out 파일서버 클러스터역할을앞서구성한 CORPSOFSCLU 클러스터에생성합니다. 이렇게생성된 Scale-Out 파일서버 역할에 continuously available 파일공유 를생성합니다. Scale-Out 파일서버클러스터역할구성 1. RUNODE01 서버에도메인관리자그룹의구성원으로로그인합니다. 2. 시작을클릭하고, 장애조치클러스터를입력한후, 장애조치 (Failover) 클러스터관리자를 클릭합니다. 3. CORPSOFSCLU 클러스터를오른쪽마우스클릭하고, 역할구성을클릭합니다. 4. 고가용성마법사의시작하기전페이지에서, 다음을클릭합니다. 20
5. 역할선택페이지에서, 파일서버를클릭하고, 다음을클릭합니다. 6. 파일서버유형페이지에서, 응용프로그램데이터용스케일아웃파일서버를선택하고, 다음을클릭합니다. 21
7. 클라이언트액세스지점페이지에서, 이름부분에, Scale-Out File Server 를접근할때 사용할 NETBIOS 이름으로써, CORPSOFSFS 를입력하고, 다음을클릭합니다. 8. 확인페이지에서, 설정을확인하고, 다음을클릭합니다. 22
9. 요약페이지에서, 마침을클릭합니다. 위과정이완료된후, CORPSOFSFS 역할의 리소스 부분을확인해보면, 아래와같이 분산 서버이름 과 스케일아웃파일서버 를확인할수있습니다. 23
또한, 위과정이완료된후, Active Directory DNS 에는아래와같이 CORPSOFSFS 에대한호스트레코드가총 2 개가등록되는데, 이 IP 는각기 RUNODE01 (192.168.0.21) 과 RUNODE02 (192.168.0.22) 의임을확인합니다. 즉, DNS Round Robin 을통해로드를분산할수있도록합니다. 24
또한, Active Directory Users and Computers 도구의 Computers 컨테이너에 CORPSOFSFS 네트워크이름이가상컴퓨터객체로생성되어있음도확인할수있습니다. 위과정은아래와같은 Windows PowerShell 명령어를수행하여동일하게작업을진행할수 있습니다. Add-ClusterScaleOutFileServerRole -Name DistributedNetworkName -Cluster ClusterName Ex) Add-ClusterScaleOutFileServerRole -Name SCALEOUTFS -Cluster SCALEOUTCLU 25
클러스터공유볼륨 에 Continuously Available 파일공유 생성 장애조치클러스터관리자를사용하여클러스터공유볼륨에파일공유를생성합니다. 1. RUNODE01 서버에도메인관리자그룹의구성원으로로그인합니다. 2. 시작을클릭하고, 장애조치클러스터를입력한후, 장애조치 (Failover) 클러스터관리자를 클릭합니다. 3. CORPSOFSCLU 클러스터를확장하고, 역할을클릭합니다. 4. CORPSOFSFS 파일서버역할을오른쪽마우스클릭하고, 파일공유추가를 클릭합니다. 5. 이공유에대한프로필선택페이지에서, SMB 공유 응용프로그램 을클릭하고, 다음을클릭합니다. 26
6. 이공유에대한서버및경로선택페이지에서, 아래와같이 C:\ClusterStorage\Volume1 을선택하고, 다음을클릭합니다. C:\ClusterStorage\Volume1 는앞서생성한 클러스터공유볼륨 인 Cluster Disk 2 의 Mount Point 입니다. 7. 공유이름지정페이지에서, 공유이름부분에, CORPSOFSSHARE 로입력하고, 다음을 클릭합니다. 27
8. 공유설정구성페이지에서, 지속적인가용성사용을선택했음을확인하고, 다음을 클릭합니다. Note 조정자노드 (Coordinator Node) 에서생성되는다량의메타데이터트래픽때문에, Scale- Out Filer Server 위의파일공유는접근-기반 enumeration 을사용하지않습니다. (You should not use access-based enumeration on file shares for Scale-Out File Server because of the increased metadata traffic that is generated on the coordinator node.) 28
9. 액세스를제어하는권한지정페이지에서, 사용권한사용자지정 을클릭하고, 다음권한을부여합니다. 본데모환경에서는아직 아래설정을하지않습니다 : o Hyper-V 용도의 Scale-Out File Server 파일공유를사용한다면, 모든 Hyper-V 호스트컴퓨터계정, SYSTEM 계정, 모든 Hyper-V 관리자계정은파일공유및 NTFS 파일시스템에대해서 모든권한 (Full Control) 을할당받아야합니다. (If you are using this Scale-Out File Server file share for Hyper-V, all Hyper-V computer accounts, the SYSTEM account, and all Hyper-V administrators must be granted full control on the share and the file system.) o Microsoft SQL Server 용도의 Scale-OUT File Server 파일공유를사용한다면, SQL Server 서비스계정은파일공유및 NTFS 파일시스템에대해서 모든권한 (Full Control) 을할당받아야합니다. (If you are using Scale-Out File Server on Microsoft SQL Server, the SQL Server service account must be granted full control on the share and the file system.) 10. 확인페이지에서, 만들기를클릭합니다. 29
위 Scale-Out File Server 파일공유를생성한후, 아래와같이 CORPSOFSFS 역할의 공유 부분에앞서생성한 CORPSOFSSHARE 가보여짐을확인할수있습니다. 또한, SCALEOUT- SHARE 의 지속적인가용성 값이 Yes 임도확인합니다. 30
위과정은아래와같은 Windows PowerShell 명령어를수행하여동일하게작업을진행할수 있습니다. New-Item -Name "folder" -ItemType DirectoryNew-SmbShare -Name ShareName -Path Path - FullAccess Domain\User -ContinuouslyAvailable:$True$acl = Get-Acl "folder"$acl.setaccessruleprotection($true, $True) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule( Domain\User, FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")$acl.AddAccessRule($rule)Set-Acl "folder" $acl 31
Windows Server 2012 R2: Hyper-V 호스트의 Scale-Out 파일서버사용구성 데이터저장소로써 Scale-Out File Server 파일공유를지원하는 2 개의 Microsoft 어플리케이션은 Hyper-V 와 Microsoft SQL Server 입니다. 이번단계에서는, Scale-Out 파일서버 를사용할수있도록 Hyper-V 호스트를구성합니다. Step 3 를수행한후, 구성도는아래그림과같이개략적으로설명이됩니다. 32
Hyper-V 호스트를위한 Delegation 활성화 이번단계에서는, delegation 을활성화할것입니다. Delegation 은 highly available SMB 공유 를 사용하는 Hyper-V 서버의컴퓨터계정에지정할것입니다. 본데모환경에서는 Hyper-V 호스트로써 APP01 서버를가정합니다. 1. DC01 서버에도메인관리자그룹의구성원으로로그인합니다. 2. 시작을클릭하고, Active Directory 사용자및컴퓨터를클릭합니다. 3. Computers 컨테이너를선택합니다. 4. APP01 를오른쪽마우스클릭하고, 속성을클릭합니다. 5. 위임탭에서, 모든서비스에대한위임용으로이컴퓨터트러스트 (Kerberos 만 ) (Trust this computer for delegation to any service (Kerberos only)) 를클릭합니다. 33
NOTE: 보안을강화하기위해서는, APP01 Hyper-V 호스트서버에 CIFS 서비스에대해서만 delegation 하도록제한할수있습니다. 6. 확인을클릭합니다. 7. Windows PowerShell 를클릭합니다. 8. 이명령어를 Restart-Computer APP01 Force 실행합니다. Delegation 설정을적용하기 위해 APP01 을재시작합니다. 34
파일공유에권한부여 가상기계를생성하기전에, 관리자는 Continuously Available 파일공유에적절한권한을 부여해야합니다. 1. RUNODE01 서버에로컬관리자그룹의구성원으로로그인합니다. 2. 시작을클릭하고, 장애조치클러스터를입력한후, 장애조치 (Failover) 클러스터관리자를클릭합니다. 3. CORPSOFSCLU 클러스터를확장하고, 역할을클릭합니다. CORPSOFSFS 파일서버역할을클릭한후, 아래 공유 탭에서 CORPSOFSSHARE 를오른쪽마우스클릭하고, 속성 메뉴를클릭합니다. 35
4. CORPSOFSSHARE 속성의 사용권한 탭을클릭한후, 사용권한사용자지정 을 클릭합니다. 36
5. CORPSOFSSHARE 고급보안설정 의 사용권한 탭에서, Hyper-V 호스트컴퓨터계정, SYSTEM 계정및모든 Hyper-V 관리자계정에 모든권한 (Full Control) 을할당합니다. 본데모환경에서는 APP01.CORP.CONTOSO.com 컴퓨터계정이 Hyper-V 호스트컴퓨터계정으로가정합니다. 추가 버튼을클릭합니다. 37
6. CORPSOFSSHARE 권한항목 에서, 보안주체선택 을클릭하여, APP01 컴퓨터 계정을추가합니다. 추가후, 기본권한 부분에서 모든권한 을선택한후, 확인 버튼을클릭합니다. 7. 아래와같이 CORPSOFSSHARE 고급보안설정 의 사용권한 탭의최종권한을 확인합니다. 8. 이제, CORPSOFSSHARE 고급보안설정 의 공유 탭에서, Hyper-V 호스트컴퓨터계정, SYSTEM 계정및모든 Hyper-V 관리자계정에 모든권한 (Full Control) 을할당합니다. 본데모환경에서는기본권한인 Everyone 의 모든권한 (Full Control) 을그대로사용합니다. 38
9. 확인을두번클릭하여작업을완료합니다. 39
신규가상기계생성 Windows Server 2012 R2 의 Hyper-V Manager 를사용하여가상기계를생성합니다. 가상기계 위치를지정하는부분에서, Scale-Out 파일서버 에서구성했던, Scale-Out File Server 파일 공유를지정합니다. 본데모환경에서는 APP01 서버에 Hyper-V 호스트로구성됩니다. 1. APP01 서버에도메인관리자그룹의구성원으로로그인합니다. 2. 시작클릭하여, Hyper-V Manager 를클릭합니다. 3. APP01 Hyper-V 호스트이름을오른쪽마우스클릭하고, New -> Virtual Machine 을 클릭합니다. 4. Before You Begin 페이지에서, Next 를클릭합니다. 5. Specify Name and Location 페이지에서, Name 부분에, SMB-VM-01 이라는 적당한가상기계의이름을입력합니다. 6. Store the virtual machine in a different location 를선택합니다. Location 부분에, Scale-Out Filer Server 에서구성했던, Scale-Out File Server 파일공유 (\\corpsofsfs\corpsofsshare) 를입력한후, Next 를클릭합니다. 40
7. Specify Generation 페이지에서, Generation 2 를선택한후, Next 를클릭합니다. 8. Assign Memory 페이지에서, Startup memory 부분에적당한값을입력한후, Next 를클릭합니다. 41
9. Configure Networking 페이지에서, Connection 부분에적당한네트워크를선택한 후, Next 를클릭합니다. 10. Connect Virtual Hard Disk 페이지에서, Location 부분에서 Scale-Out Filer Server 에서구성했던, Scale-Out File Server 파일공유의하위폴더가기본으로 설정되었음을확인하고, Next 를클릭합니다. 11. Installation Options 페이지에서, Next 를클릭합니다. 42
12. Completing the New Virtual Machine Wizard 페이지에서, Finish 를 클릭합니다. 43
위와같이가상기계를 Scale-Out File Server 의 Continuously Available 파일공유에생성하게 되면, 가상기계의 VHDX 에대한 highly-available 가유지되기때문에, 가상기계에대한무정지 운영이가능합니다. 44
Windows Server 2012 R2: SQL Server 의 Scale-Out 파일서버사용구성 데이터저장소로써 Scale-Out File Server 파일공유를지원하는 2 개의 Microsoft 어플리케이션은 Hyper-V 와 Microsoft SQL Server 입니다. Scale-Out File Server 를사용할수있는 SQL Server 버전은 SQL Server 2008 R2 및 SQL Server 2012 및 SQL Server 2014 입니다. SQL Server 2008 R2 는 stand-alone 구성에서사용가능하고, SQL Server 2012 및 SQL Server 2014 는 Cluster 환경에서도 Scale-Out File Server 파일공유를사용할수있습니다. 본데모환경에서는아래와같이 SQL Server 2014 를설치하면서, 모든데이터베이스파일을 Scale-Out File Server 의파일공유에위치시켰습니다. 45
SQL Server 컴퓨터를위한 Delegation 활성화 앞선 Hyper-V 호스트의 Scale-Out 파일서버사용구성 -> Hyper-V 호스트를위한 Delegation 활성화 단계를반복적으로수행합니다. 역시, 본데모환경에서는, SQL Server 를 SQL01 로 가정합니다. 1. DC01 서버에도메인관리자그룹의구성원으로로그인합니다. 2. 시작을클릭하고, Active Directory 사용자및컴퓨터를클릭합니다. 3. Computers 컨테이너를선택합니다. 4. SQL01 를오른쪽마우스클릭하고, 속성을클릭합니다. 5. 위임탭에서, 모든서비스에대한위임용으로이컴퓨터트러스트 (Kerberos 만 ) (Trust this computer for delegation to any service (Kerberos only)) 를클릭합니다. 46
6. 확인을클릭합니다. 7. Windows PowerShell 를클릭합니다. 8. 이명령어를 Restart-Computer SQL01 Force 실행합니다. Delegation 설정을적용하기 위해 APP01 을재시작합니다. 47
파일공유에권한부여 SQL Server 데이터베이스를생성하기전에, 관리자는 지속적인가용성 (Continuously Available) 파일공유에적절한권한을부여해야합니다. 앞서 Hyper-V 호스트의 Scale-Out 파일서버사용 구성 -> 파일공유에권한부여 단계와유사하게진행합니다. 1. RUNODE01 서버에로컬관리자그룹의구성원으로로그인합니다. 2. 시작을클릭하고, 장애조치클러스터를입력한후, 장애조치 (Failover) 클러스터관리자를클릭합니다. 3. CORPSOFSCLU 클러스터를확장하고, 역할을클릭합니다. CORPSOFSFS 파일서버역할을클릭한후, 아래 공유 탭에서 CORPSOFSSHARE 를오른쪽마우스클릭하고, 속성 메뉴를클릭합니다. 4. CORPSOFSSHARE 속성의 사용권한 탭을클릭한후, 사용권한사용자지정 을클릭합니다. 5. CORPSOFSSHARE 고급보안설정 의 사용권한 탭에서, SQL Server 서비스계정에 모든권한 (Full Control) 을할당합니다. 본데모환경에서는 CORP\SQLSVC 사용자계정이 SQL Server 서비스계정으로가정합니다. 추가 버튼을클릭합니다. 6. CORPSOFSSHARE 권한항목 에서, 보안주체선택 을클릭하여, CORP\SQLSVC SQL Server 서비스계정을추가합니다. 추가후, 기본권한 부분에서 모든권한 을선택한후, 확인 버튼을클릭합니다. 48
7. 아래와같이 CORPSOFSSHARE 고급보안설정 의 사용권한 탭의최종권한을 확인합니다. 8. 이제, CORPSOFSSHARE 고급보안설정 의 공유 탭에서, SQL Server 서비스계정에 모든권한 (Full Control) 을할당합니다. 본데모환경에서는기본권한인 Everyone 의 모든권한 (Full Control) 을그대로사용합니다. 9. 확인을두번클릭하여작업을완료합니다. 49
50
데이터베이스파일생성 데이터베이스파일을생성할때, SQL Server Management Studio 또는 Query 를사용하여 Scale- Out 파일공유에데이터베이스파일을저장할수있습니다. SQL Server 2014 에서는, 설치과정 중에 Scale-Out 파일공유에모든데이터베이스파일을저장할수있는방법이제공됩니다. 본데모환경에서는, SQL 2014 버전을설치하면서, Scale-Out 파일공유에모든데이터베이스 파일을저장하는방법을구현합니다. 아래화면은 Windows Server 2012 R2 컴퓨터에 SQL Server 2014 를설치할때, 데이터베이스엔진구성 부분에서, Data Directories 부분에서, \\corpsofsfs\corpsofsshare Scale-Out 파일공유폴더로지정한것입니다. 아래경고다이얼로그는 Scale-Out 파일공유에 데이터베이스 파일을위치시키면서, 설치를 진행할때, 반드시 파일공유 에 SQL Server 서비스계정이 모든권한 을가져야함을알려주는 것입니다. 51
52
설치가완료된후, Master 데이터베이스의파일경로는아래와같이 Scale-Out 파일공유임을 확인할수있습니다. 53
Scale-Out File Server 파일공유의데이터베이스테스트 1. \\corpsofsfs\corpsofsshare\sqldata 폴더에 SMBDATABASE 데이터베이스생성하 기. 아래 Script 를이용하여데이터베이스를생성합니다. -------------------------------------------- USE [master] GO /****** Object: Database [SMBDATABASE] Script Date: 2012-03-07 오전 12:48:46 ******/ CREATE DATABASE [SMBDATABASE] CONTAINMENT = NONE ON PRIMARY ( NAME = N'SMBDATABASE', FILENAME = N'\\corpsofsfs\CORPSOFSSHARE\SQLData\SMBDATABASE.mdf', SIZE = 204800KB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'SMBDATABASE_log', FILENAME = N'\\corpsofsfs\CORPSOFSSHARE\SQLData\SMBDATABASE_log.ld f', SIZE = 160960KB, MAXSIZE = 2048GB, FILEGROWTH = 10%) GO ALTER DATABASE [SMBDATABASE] SET COMPATIBILITY_LEVEL = 110 GO IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) begin EXEC [SMBDATABASE].[dbo].[sp_fulltext_database] @action = 'enable' end GO ALTER DATABASE [SMBDATABASE] SET ANSI_NULL_DEFAULT OFF 54
GO ALTER DATABASE [SMBDATABASE] SET ANSI_NULLS OFF GO ALTER DATABASE [SMBDATABASE] SET ANSI_PADDING OFF GO ALTER DATABASE [SMBDATABASE] SET ANSI_WARNINGS OFF GO ALTER DATABASE [SMBDATABASE] SET ARITHABORT OFF GO ALTER DATABASE [SMBDATABASE] SET AUTO_CLOSE OFF GO ALTER DATABASE [SMBDATABASE] SET AUTO_CREATE_STATISTICS ON GO ALTER DATABASE [SMBDATABASE] SET AUTO_SHRINK OFF GO ALTER DATABASE [SMBDATABASE] SET AUTO_UPDATE_STATISTICS ON GO ALTER DATABASE [SMBDATABASE] SET CURSOR_CLOSE_ON_COMMIT OFF GO ALTER DATABASE [SMBDATABASE] SET CURSOR_DEFAULT GLOBAL GO 55
ALTER DATABASE [SMBDATABASE] SET CONCAT_NULL_YIELDS_NULL OFF GO ALTER DATABASE [SMBDATABASE] SET NUMERIC_ROUNDABORT OFF GO ALTER DATABASE [SMBDATABASE] SET QUOTED_IDENTIFIER OFF GO ALTER DATABASE [SMBDATABASE] SET RECURSIVE_TRIGGERS OFF GO ALTER DATABASE [SMBDATABASE] SET DISABLE_BROKER GO ALTER DATABASE [SMBDATABASE] SET AUTO_UPDATE_STATISTICS_ASYNC OFF GO ALTER DATABASE [SMBDATABASE] SET DATE_CORRELATION_OPTIMIZATION OFF GO ALTER DATABASE [SMBDATABASE] SET TRUSTWORTHY OFF GO ALTER DATABASE [SMBDATABASE] SET ALLOW_SNAPSHOT_ISOLATION OFF GO ALTER DATABASE [SMBDATABASE] SET PARAMETERIZATION SIMPLE GO ALTER DATABASE [SMBDATABASE] SET READ_COMMITTED_SNAPSHOT OFF GO 56
ALTER DATABASE [SMBDATABASE] SET HONOR_BROKER_PRIORITY OFF GO ALTER DATABASE [SMBDATABASE] SET RECOVERY SIMPLE GO ALTER DATABASE [SMBDATABASE] SET MULTI_USER GO ALTER DATABASE [SMBDATABASE] SET PAGE_VERIFY CHECKSUM GO ALTER DATABASE [SMBDATABASE] SET DB_CHAINING OFF GO ALTER DATABASE [SMBDATABASE] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) GO ALTER DATABASE [SMBDATABASE] SET TARGET_RECOVERY_TIME = 0 SECONDS GO ALTER DATABASE [SMBDATABASE] SET READ_WRITE GO -------------------------------------------- 2. 위스크립트수행후, 아래와같이 SQL Management Studio 에서데이터베이스생성이 정상적임을확인합니다. 57
또한, \\corpsofsfs\corpsofsshare\sqldata 폴더에 *.mdf 및 *.ldf 가생성되어있음도 확인합니다. 3. SMBDATABASE 데이터베이스에예제테이블생성하기. 실제데이터입력테스트를위해 필요한예제테이블을생성합니다. 아래스크립트를사용하여테이블을생성합니다. ---------------------------------------- USE SMBDATABASE Go CREATE TABLE tblemployee ( EmpID INT, 58
EmpName VARCHAR(25), DOB DATETIME, Salary MONEY, Password VARCHAR(8) ) GO ---------------------------------------- 정상적으로테이블이생성되었음을확인합니다. 4. 예제데이터를 tblemployee 에 insert 하는동안, Scale-Out File Server 파일공유를 Failover 합니다. Failover 하는동안에도여전히 insert 작업이중단없이진행됨을확인합니다. 예 제데이터의입력은아래스크립트를사용합니다. ----------------------------------------- DECLARE @i int; SELECT @i = 1; WHILE @i < 500000 BEGIN INSERT INTO tblemployee VALUES(12345, 'Test', GETDATE(), 10000,'LastSt') SELECT @i = @i + 1; 59
END ----------------------------------------- 5. 현재 CORPSOFSFS 역할의소유자가아래와같이 RUNODE01 임을확인합니다. 6. SQL01 서버에서, Scale-Out File Server 파일공유의데이터전송률을확인하기위해아래와같이 Performance Monitor 에서 SMB2 Server Shares -> \\corpsofsfs\corpsofsshare -> Transferred Bytes/sec 항목에대해서 RUNODE01 및 RUNODE02 모두모니터링합니다. 7. 위스크립트를먼저수행하면, 현재 SQL01 서버가 CORPSOFSFS 역할의소유자인 RUNODE01 서버와데이터를교환함을 Performance Monitor 를통해확인합니다. 60
8. 이제위스크립트를수행하면서, CORPSOFSFS 를역할의소유자인 RUNODE01 서버를 리부팅을수행하고, 해당스크립트가여전히수행중임을확인합니다. 아래와같이 Query 가수행중임을알수있습니다. 61
9. 해당스크립트가여전히수행중임을확인하고, 아래와같이이제 CORPSOFSFS 의 소유자인 RUNODE02 을통해데이터가전송되고있음을확인할수있습니다. 아래와같이 Failover 가성공적으로진행되어, CORPSOFSFS 소유자가 RUNODE02 가되었음을 확인합니다. 62
결과적으로아래와같이 Query 가성공적으로수행되었음을확인할수있습니다. 성공적으로테스트가진행되었습니다. 63
Windows Server 2016: Cluster Operating System Rolling Upgrade Cluster OS Rolling Upgrade 는 Windows Server 2016 의신규기능입니다. 장애조치클러스터내의 Hyper-V 또는 Scale-Out 파일서버워크로드중단없이클러스터노드의운영체제를 Windows Server 2012 R2 에서 Windows Server 2016 으로업그레이드할수있는기능이 Cluster OS Rolling Upgrade 기능입니다. 이기능을사용하게되면, SLA 기반의다운타임벌금을피할수있을것입니다. Cluster OS Rolling Upgrade 기능은다음과같은장점을제공합니다 : Hyper-V VM 및 Scale-Out 파일서버역할이운영되는장애조치클러스터는다운타임없이 Windows Server 2012 R2 에서 Windows Server 2016 으로업그레이드될수있습니다. 반면에, SQL 서버와같은다른역할들은 Windows Server 2012 R2 에서 Windows Server 2016 으로업그레이드할경우에, 대략 5 분정도의다운타임이발생합니다. 장애조치클러스터의운영체제를 Windows Server 2012 R2 에서 Windows Server 2016 으로업그레이드할경우에, 임의의추가적인하드웨어자원이필요하지않습니다. 클러스터서비스는중지또는재시작할필요가없습니다. 신규클러스터가필요하지않습니다. 기존클러스터가업그레이드됩니다. 추가적으로, Active Directory 에저장된기존클러스터객체가그대로사용됩니다. 업그레이드과정은고객이 point-of-no-return 을선택할때까지는기존 Windows Server 2012 R2 장애조치클러스터로복귀할수있습니다. point-of-no-return 는클러스터내의모든노드가 Windows Server 2016 로업그레이드되고, Update- ClusterFunctionalLevel 파워쉘명령어가수행되는시점입니다. 장애조치클러스터가 mixed-os 모드로운영되는경우에, 장애조치클러스터는 patching 및일반적인 maintenance 기능을지원합니다. Cluster OS Rolling Upgrade 기능은파워쉘및 WMI 로자동화할수있습니다. ClusterFunctionalLevel 속성은 Windows Server 2016 클러스터노드상의클러스터상태를표시합니다. 이속성은장애조치클러스터내의 Windows Server 2016 노드상에서만수행되는파워쉘명령어를통해확인할수있습니다. Get-Cluster select ClusterFunctionalLevel 위명령어의결과값이 8 이라면, Windows Server 2012 R2 기능수준으로현재장애조치클러스터가운영되고있음을의미합니다. 위명령어의결과값이 9 이라면, Windows Server 2016 기능수준으로현재장애조치클러스터가운영되고있음을의미합니다. 또한, Cluster OS Rolling Upgrade 기능은 SCVMM 2016 에의해완벽하게지원됩니다. 이에관한자료는 Upgrading Windows Server 2012 R2 clusters to Windows Server 2016 Technical Preview in VMM 를참조합니다. 64
앞서 Scale-Out 파일서버를 Windows Server 2012 R2 기반의장애조치클러스터로구성했습니다. 그러므로, 본가이드에서는 Scale-Out 파일서버장애조치클러스터의 Cluster OS Rolling Upgrade 기능을구현해보았습니다. Requirements Cluster OS Rolling Upgrade 과정을시작하기전에다음요구사항을준수해야합니다 : Windows Server 2012 R2 장애조치클러스터 클러스터내의역할이 Hyper-V VM 또는 Scale-Out 파일서버라면, 관리자는제로- 다운타임업그레이드를수행할수있습니다. Hyper-V 노드의 CPU 가 SLAT 를지원하는지반드시검증해야합니다. SLAT 지원여부를확인하기위해다음도구를사용할수있습니다. Are you SLAT Compatible? WP8 SDK Tip 01 Coreinfo v3.31 Cluster OS Rolling Upgrade 동안클러스터전이상태 Cluster OS Rolling Upgrade 과정동안에클러스터역할이지속적으로운영되기위해서는, Windows Server 2012 R2 노드에서 Windows Server 2016 노드로클러스터역할을이동하더라도여전히전체클러스터노드가 Windows Server 2012 R2 로운영되도록해야합니다. Windows Server 2016 노드가기존장애조치클러스터에추가되었을때, 기존장애조치클러스터는 Windows Server 2012 R2 호환모드로운영됩니다. Mixed-OS-mode 라불리는새로운클러스터모드는아래그림과같이다양한 OS 버전의노드들이동일장애조치클러스터에서운영할수있는기능을지원합니다. Windows Server 2012 R2 기반의장애조치클러스터에신규로 Window Server 2016 기반의노드가추가되는순간부터 mixed-os-mode 로장애조치클러스터가운영됩니다. 추가적으로, mixed-os-mode 환경에서, 신규로추가되었던 Windows Server 2016 기반의노드를기존장애조치클러스터에서제거할수도있고, Windows Server 2012 기반의신규노드를여전히기존장애조치클러스터에추가할수도있습니다. 장애조치클러스터내의모든노드가 Windows Server 2016 운영체제로업그레이드되고, Update-ClusterFunctionalLevel 파워쉘명령어가성공적으로수행된시점을바로 point of no return 이라고합니다. 이시점이후에는 Windows Server 2012 기반의노드는절대로추가될수없습니다. 65
Cluster OS Rolling Upgrade 과정의클러스터전이상태예제 (4 노드 ) 1 단계 : 장애조치클러스터전체노드가모두 Windows Server 2012 R2 기반 2 단계 : 2 개노드가 paused, drained, evicted, reformatted 되고, Windows Server 2016 노드설치됨 66
3 단계 : 전체클러스터노드가모두 Windows Server 2016 으로업그레이드되고, 기존장애조치클러스터는 Update-ClusterFunctionalLevel 파워쉘명령어를통해클러스터모드를업그레이드할수있음. 본 3 단계에서는, 여전히 Windows Server 2012 R2 기반의노드가기존장애조치클러스터에추가될수도있습니다. 4 단계 : Update-ClusterFunctionalLevel 파워쉘명령어가성공적으로수행되고, 이제 Windows Server 2016 기반의신규클러스터기능을사용할수있습니다. 67
68
Cluster Operating System Rolling Upgrade: 절차 이제앞서구성한 Scale-Out 파일서버역할 을호스팅했던 Windows Server 2012 R2 기반의장애조치클러스터를 Scale-Out 파일서버역할 의서비스중단없이 Windows Server 2016 기반의장애조치클러스터로업그레이드하는작업을진행합니다. Cluster OS Rolling Upgrade 를수행하는대략적인절차는아래와같습니다. 69
OS Upgrade 를위한클러스터준비 1. Cluster OS Rolling Upgrade 는특정시점에클러스터내의한개의노드만수행하는것이권장사항입니다. 즉, 동일시점에동시에 2 개노드의 Cluster OS 를 Upgrade 할수는있지만, 고객의고가용성 SLA (Service Level Agreement) 를준수할수있는용량이제공되는지확인을반드시해야합니다. 2. Hyper-V 워크로드의경우에, Windows Server 2016 Hyper-V 호스트의 CPU 가 SLAT 를지원하는지반드시확인해야합니다. Windows Server 2016 경우에, SLAT 를지원하는호스트만이 Hyper-V 역할을지원합니다. 3. Cluster OS Rolling Upgrade 수행前에, 반드시기존클러스터내의워크로드는반드시백업되어야합니다. Cluster OS Rolling Upgrade 과정중에서, 백업이중단되기때문입니다. 4. 모든클러스터노드의상태는 Get-ClusterNode 명령어로事前에확인합니다. 5. 만약, 기존에 CAU(Cluster Aware Updating) 기능을사용하고있었다면, Cluster-Aware Updating UI 또는 Get-CauRun 명령어를통해 CAU 가현재수행중인지확인합니다. Cluster OS Rolling Upgrade 과정동안에, CAU 로인해임의의노드가 Pause 또는 Drain 상태로변경되는것을예방하기위해 Disable-CauClusterRole 명령어를사용하여 CAU 기능을중단시킵니다. 본데모환경에서는, CAU 는사용하지않기때문에, 본과정을생략해도무방합니다. 70
클러스터내의각노드에서수행작업 본단계에서는, 기존 Windows Server 2012 R2 기반의장애조치클러스터노드들을순차적으로 Windows Server 2016 노드로업그레이드하는작업을진행합니다. 본데모환경에서는, 기존장애조치클러스터내에오로지 Scale-Out 파일서버역할만이존재하므로, 현재 Scale-Out 파일서버역할의소유자를확인하고, 소유자가아닌노드를먼저 Windows Server 2016 으로업그레이드합니다. 현재, Scale-Out 파일서버역할의소유자가 RUNODE01 서버이므로, RUNODE02 서버를먼저 Windows Server 2016 으로업그레이드합니다. RUNODE02 서버의 Windows Server 2016 업그레이드작업본과정을진행하게되면아래그림과같은형태로 Scale-Out 파일서버역할 이장애조치클러스터에서수행될것입니다. 여전히, Cluster Functional Level 값이 8 이므로, Windows Server 2012 R2 기반의장애조치클러스터모드로운영되고있음을확인할수있습니다. 또한, RUNODE01 서버는 Windows Server 2012 R2 기반노드이고, RUNODE02 서버는 Windows Server 2016 기반노드이므로, 현재 CORPSOFSCLU 장애조치클러스터가 Mixed-OS-mode 로운영되고있음을의미합니다. 71
1. 장애조치클러스터관리자 UI (CORPSOFSCLU.CORP.CONTOSO.com -> 노드 (Nodes) -> RUNODE02 상태로확장한후, 오른쪽마우스클릭하여 일시중지 (Pause) -> 역할드레이닝 (Drain Roles) 를선택 ) 또는 Suspend-ClusterNode 파워쉘명령어를사용하여, RUNODE02 서버를 Pause-Drain 상태로변경합니다. 72
2. 장애조치클러스터관리자 UI (CORPSOFSCLU.CORP.CONTOSO.com -> 노드 (Nodes) -> RUNODE02 상태로확장한후, 오른쪽마우스클릭하여 추가작업 (More Actions) -> 제거 (Evicts) 를선택 ) 또는 Remove-ClusterNode 파워쉘명령어를사용하여, RUNODE02 서버를기존장애조치클러스터에서제거합니다. 73
RUNODE02 서버가제거된후에도, RUNODE01 서버가 Scale-Out 파일서버역할을지원하고 있으므로, Scale-Out 파일서버에데이터를위치시킨 SQL01 서버의 SQL Server 2014 가여전히 정상동작중임을확인합니다. 3. 이제 RUNODE02 서버에신규 (Custom: Install Windows only (advanced)) 로 Windows Server 2016 운영체제를설치합니다, 절대로기존의 Windows Server 2012 R2 에서 Windows Server 2016 으로업그레이드 (Upgrade: Install Windows and keep files, settings, and applications) 하지않습니다. 74
75
4. 신규로설치된 Windows Server 2016 서버의컴퓨터이름을 RUNODE02 로다시 설정합니다. 76
5. RUNODE02 서버의 Public 네트워크카드의 TCP/IP 설정을확인한후, 다시 CORP.CONTOSO.com 도메인에죠인시킵니다. 참고로, 이전 Windows Server 2012 R2 서버에서설정했던 IP 를동일 ( 본데모환경 : 192.168.0.22) 하게사용하는것이권장사항입니다. 이유는한번생각해보셨으면합니다. 77
6. 본데모환경에서, RUNODE02 서버가 Scale-Out 파일서버의저장소공간으로 iscsi 방식을사용하므로, RUNODE02 서버에서 iscsi Initiator 를구성하여, 저장소를 연결합니다. 78
7. 이제기존장애조치클러스터의워크로드에필요한 Roles 및 Features 를설치합니다. 본데모환경에서는장애조치클러스터의워크로드가 Scale-Out 파일서버 이므로, 아래와같은 Role 및 Features 를설치합니다. 만약, 장애조치클러스터의워크로드가 Hyper-V 였다면, 추가적으로 Hyper-V 역할을설치할수도있습니다. Role File and Storage Services -> File Services and iscsi Services 를확장하고, File Server 79
Features Failover Clustering Remote Server Administration Tools -> Role Administration Tools -> File Services Tools 순서로확장한후, Share and Storage Management Tools 8. RUNODE02 서버의 Private 네트워크카드의 TCP/IP 설정을확인하고, 또한장애조치 클러스터관리자를사용하여공유저장소의연결성을확인합니다. 80
9. 필요하다면, 장애조치클러스터에사용해야할포트에대한방화벽규칙을확인합니다. 예를들어, CAU 가활성화된클러스터는방화벽구성을할필요성이있을수도있습니다. 본데모환경에서는, CAU 를사용하지않으므로, 별도의방화벽구성을수행하지않습니다. 10. Windows Server 2016 운영체제가설치된 RUNODE02 서버에서, 장애조치클러스터관리자를수행한후, 기존장애조치클러스터인 CORPSOFSCLU.CORP.CONTOSO.com 를연결합니다. 81
82
11. 이제장애조치클러스터관리자 UI (CORPSOFSCLU.CORP.CONTOSO.com -> 노드 (Nodes) 확장한후, 오른쪽마우스클릭하여 노드추가 (Add Nodes) ) 또는 Add-ClusterNode 파워쉘명령어를사용하여, RUNODE02 서버를기존장애조치클러스터에추가합니다. 83
84
85
( 중요 ) 첫번째 Windows Server 2016 노드가기존장애조치클러스터에추가되었을때, 기존클러스터는 Mixed-OS 모드로변경됩니다. 또한, 기존장애조치클러스터의 코어리소스 (Core Resources) 는 Windows Server 2016 노드로이동하게됩니다. Mixed-OS 모드클러스터는신규노드 (Windows Server 2016) 가 old 노드 (Windows Server 2012 R2) 와같이호환성모드로운영될수있도록기능적인지원을합니다. Mixed-OS 모드는클러스터의중간적인모드입니다. 즉, 86
Mixed-OS 모드는영구히운영해서는안되는것이고, 적어도 4 주이내에모든노드를 Windows Server 2016 으로업그레이드완료해야합니다. 12. 이제 RUNODE02 서버로기존장애조치클러스터의워크로드인 Scale-Out 파일서버를 failover 시킵니다. Failover 가성공적이라면, 이제 RUNODE01 서버를 Windows Server 2016 으로업그레이드하는작업을진행합니다. 87
13. 현재기존장애조치클러스터에는 Windows Server 2012 R2 노드와 Windows Server 2016 노드가혼재되어있는 Mixed-OS 모드상태입니다. Get-Cluster Select ClusterFunctionalLevel 명령어를통해현재값이 8 임을확인합니다. 이명령어의결과값은오로지 Windows Server 2016 노드에서만보여집니다. RUNODE01 서버의 Windows Server 2016 업그레이드작업본과정을진행하게되면아래그림과같은형태로 Scale-Out 파일서버역할 이장애조치클러스터에서수행될것입니다. 여전히, Cluster Functional Level 값이 8 이므로, Windows Server 2012 R2 기반의장애조치클러스터모드로운영되고있음을확인할수있습니다. 그러나, RUNODE01 서버도 Windows Server 2016 기반노드이고, RUNODE02 서버는 Windows Server 2016 기반노드이므로, 더이상 CORPSOFSCLU 장애조치클러스터가 Mixed-OS-mode 로운영되지않고있음을의미합니다. 다만, 여전히 Cluster Functional Level 값이 8 이므로, Windows Server 2012 R2 기반의장애조치클러스터기능만을사용될수있음을의미합니다. 88
이제나머지 RUNODE01 서버의 Windows Server 2012 R2 운영체제를 Windows Server 2016 운영체제로업그레이드합니다. 현재, CORPSOFSFS 역할의소유자가 RUNODE02 서버임을다시 한번확인합니다. 89
1. 장애조치클러스터관리자 UI (CORPSOFSCLU.CORP.CONTOSO.com -> 노드 (Nodes) -> RUNODE01 상태로확장한후, 오른쪽마우스클릭하여 일시중지 (Pause) -> 역할드레이닝 (Drain Roles) 를선택 ) 또는 Suspend-ClusterNode 파워쉘명령어를사용하여, RUNODE01 서버를 Pause-Drain 상태로변경합니다. 90
2. 장애조치클러스터관리자 UI (CORPSOFSCLU.CORP.CONTOSO.com -> 노드 (Nodes) -> RUNODE01 상태로확장한후, 오른쪽마우스클릭하여 추가작업 (More Actions) -> 제거 (Evicts) 를선택 ) 또는 Remove-ClusterNode 파워쉘명령어를사용하여, RUNODE01 서버를기존장애조치클러스터에서제거합니다. RUNODE01 서버가제거된후에도, RUNODE02 서버가 Scale-Out 파일서버역할을지원하고있으므로, Scale-Out 파일서버에데이터를위치시킨 SQL01 서버의 SQL Server 2014 가여전히정상동작중임을확인합니다. 91
3. 이제 RUNODE01 서버에신규 (Custom: Install Windows only (advanced)) 로 Windows Server 2016 운영체제를설치합니다, 절대로기존의 Windows Server 2012 R2 에서 Windows Server 2016 으로업그레이드 (Upgrade: Install Windows and keep files, settings, and applications) 하지않습니다. 4. 신규로설치된 Windows Server 2016 서버의컴퓨터이름을 RUNODE01 로다시 설정합니다. 5. RUNODE01 서버의 Public 네트워크카드의 TCP/IP 설정을확인한후, 다시 CORP.CONTOSO.com 도메인에죠인시킵니다. 참고로, 이전 Windows Server 2012 R2 서버에서설정했던 IP 를동일 ( 본데모환경 : 192.168.0.21) 하게사용하는것이권장사항입니다. 이유는한번생각해보셨으면합니다. 92
93
6. 본데모환경에서, RUNODE01 서버가 Scale-Out 파일서버의저장소공간으로 iscsi 방식을사용하므로, RUNODE01 서버에서 iscsi Initiator 를구성하여, 저장소를 연결합니다. 94
7. 이제기존장애조치클러스터의워크로드에필요한 Roles 및 Features 를설치합니다. 본데모환경에서는장애조치클러스터의워크로드가 Scale-Out 파일서버 이므로, 아래와같은 Role 및 Features 를설치합니다. 만약, 장애조치클러스터의워크로드가 Hyper-V 였다면, 추가적으로 Hyper-V 역할을설치할수도있습니다. Role File and Storage Services -> File Services and iscsi Services 를확장하고, File Server Features Failover Clustering Remote Server Administration Tools -> Role Administration Tools -> File Services Tools 순서로확장한후, Share and Storage Management Tools 8. RUNODE01 서버의 Private 네트워크카드의 TCP/IP 설정을확인하고, 또한장애조치 클러스터관리자를사용하여공유저장소의연결성을확인합니다. 95
9. 필요하다면, 장애조치클러스터에사용해야할포트에대한방화벽규칙을확인합니다. 예를들어, CAU 가활성화된클러스터는방화벽구성을할필요성이있을수도있습니다. 본데모환경에서는, CAU 를사용하지않으므로, 별도의방화벽구성을수행하지않습니다. 10. Windows Server 2016 운영체제가설치된 RUNODE01 서버에서, 장애조치클러스터관리자를수행한후, 기존장애조치클러스터인 CORPSOFSCLU.CORP.CONTOSO.com 를연결합니다. 96
97
11. 이제장애조치클러스터관리자 UI (CORPSOFSCLU.CORP.CONTOSO.com -> 노드 (Nodes) 확장한후, 오른쪽마우스클릭하여 노드추가 (Add Nodes) ) 또는 Add-ClusterNode 파워쉘명령어를사용하여, RUNODE01 서버를기존장애조치클러스터에추가합니다. 98
RUNODE01 서버를기존장애조치클러스터에추가하게되면, 앞서첫번째 Windows Server 2016 을기존장애조치클러스터를추가했을때와는다르게, 아래와같이 구성유효성검사 마법사 가수행됩니다. 99
100
101
102
이제 RUNODE01 서버가기존장애조치클러스터에추가완료되었습니다. 103
12. 이제 CORPSOFSFS Scale-Out 파일서버역할의소유자가현재 RUNODE02 임을확인하고, 신규로 Windows Server 2016 으로업그레이드한 RUNODE01 서버로 CORPSOFSFS Scale- Out 파일서버역할을 Failover 합니다. 104
13. 이제기존장애조치클러스터에는 Windows Server 2016 노드만존재합니다. 그러나, 여전히클러스터기능수준이 Mixed-OS 모드임을 Get-Cluster Select ClusterFunctionalLevel 명령어를통해값이 8 임을확인합니다. 이명령어의결과값은오로지 Windows Server 2016 노드에서만보여집니다. 다음단계에서이제클러스터기능수준까지업그레이드합니다. 105
클러스터내의모든노드가 Windows Server 2016 으로업그레이드이후의작업 본과정을진행하게되면, CORPSOFSCLU 장애조치클러스터내의모든노드를 Windows Server 2016 으로업그레이드한후, 아직사용하지못하고있는 Windows Server 2016 장애조치클러스터의신규기능을사용할수있습니다. 즉, Cluster Functional Level 값이 9 이변경되고, 이제부터진정한 Windows Server 2016 기반의장애조치클러스터로의기능을수행할수있습니다. ( 중요 ) 클러스터기능수준이업그레이드된후, Windows Server 2012 R2 클러스터기능수준으로변경할수없고, 더이상 Windows Server 2012 R2 노드가기존장애조치클러스터에추가될수없습니다. 106
Update-ClusterFunctionalLevel 파워쉘명령어가수행되기전에는, 기존장애조치클러스터에 Windows Server 2012 R2 노드가추가될수도있고, Windows Server 2016 노드가삭제될수도있습니다. Update-ClusterFunctionalLevel 파워쉘명령어가수행된후, 신규클러스터기능을사용할수있습니다. 1. 장애조치클러스터관리자 UI 또는 Get-ClusterGroup 파워쉘명령어를사용하여, 기존장애조치클러스터내의모든역할 ( 워크로드 ) 이클러스터내에서운영되고있는지확인해야합니다. 예를들어, 사용가능한저장소 는사용되지않고, 대신에 CSV 가사용되고있으므로, 사용가능한저장소 는 Offline 상태로보여집니다. 반면에, CORPSOFSFS 역할이 Online 상태이고, 클러스터그룹 ( 클러스터코어리소스 ) 역할또한 Online 상태임을확인합니다. 2. Update-ClusterFunctionalLevel 파워쉘명령어를수행하여, 클러스터기능수준을 업그레이드합니다. 107
3. Update-ClusterFunctionalLevel 파워쉘명령어를수행된후, 신규클러스터기능수준을 사용할수있습니다. 108
정상적인클러스터업데이트및백업재시작 본데모환경에서는, CAU 및별도의백업작업을하지않습니다. 아래과정은필요시에 수행합니다. 1. Windows Server 2012 R2 클러스터기능수준에서 CAU 가수행되고있었다면, CAU UI 또는 Enable-CauClusterRole 파워쉘명령어를수행하여 CAU 를재시작합니다. 2. 필요하다면, 백업을다시수행합니다. 109
Windows Server 2016 클러스터의신규기능활성화및사용 본데모환경에서, 장애조치클러스터의워크로드가 Scale-Out 파일서버이므로, Hyper-V VM 워크로드의신규기능은아래설명을참조합니다. Scale-Out 파일서버역할의신규기능에 대해서는추후설명하도록하겠습니다. 1. 장애조치클러스터의기능수준이 Windows Server 2016 기능수준으로업그레이드된후, Hyper-V VM 과같은많은워크로드들은신규기능을사용할수있습니다. 예를들어, Hyper-V VM 에적용할수있는신규기능은 Migrate and upgrade virtual machines 링크를참조합니다. 2. 장애조치클러스터내의 Hyper-V 호스트노드에서, Get-VMSupportedVersion 파워쉘명령어를사용하여해당호스트에서지원되는 Hyper-V VM 구성버전 을확인할수있습니다. 3. 장애조치클러스터내의 Hyper-V 호스트노드에서, Hyper-V VM 구성버전 은 VM 백업, VM turn-off, Update-VMVersion 파워쉘명령어를순차적으로수행하는간단한스케즐러작업으로업그레이드될수있습니다. Update-VMVersion 명령어는 VM 버전을업데이트할것이고, 신규 Hyper-V 기능을활성화할수있고, Hyper-V IC (Integration Component) 업데이트의필요성을제거할수도있습니다. Update-VMVersion 명령어는 VM 을호스팅하는 Hyper-V 노드에서반드시수행되어야합니다. 또한, Update- VMVersion 명령어를사용하면, 1 세대 VM 이신규 Hyper-V 기능을이용할수있도록구성버전을 5.0 에서 7.0 으로업그레이드할수있습니다. 110
4. 저장소풀은 Update-StoragePool 파워쉘명령어를사용하여업그레이드될수있습니다. Update-StoragePool 파워쉘명령어는온라인상태에서수행할수있는장점이있습니다. 현재운영하고있는 Windows Server 2012 R2 기반의 Private Cloud 시나리오가 Hyper-V 및 Scale-Out 파일서버워크로드에집중되어있다면, 다운타임없이 Windows Server 2016 클러스터로업그레이드할수있고, 또한, Cluster OS Rolling Upgrade 기능은 기타임의의클러스터역할 (ex, SQL Virtual Server, SQL AlwaysOn, Exchange DAG) 에도사용될수있습니다. 111
Cluster OS Rolling Upgrade 기능의제약점 1. 이기능은오로지 Windows Server 2012 R2 기반의클러스터를 Windows Server 2016 클러스터로업그레이드하는경우에만적용가능합니다, 즉, 이기능은 Windows Server 2008, Windows Server 2008 R2 및 Windows Server 2012 기반의클러스터를 Windows Server 2016 클러스터로업그레이드할경우에는사용할수없는기능입니다. 2. 앞서살펴보았지만, 각클러스터노드의 Windows Server 2016 설치는반드시 clean 으로진행해야합니다. In-Place 또는 Upgrade 설치형식은지원되지않습니다. 3. Mixed-OS 모드를운영할때, 반드시모든관리작업은 Uplevel 노드인 Windows Serer 2016 노드에서수행해야합니다. Downlevel 노드인 Windows Server 2012 R2 기반의노드에서는절대로 Windows Server 2016 노드를관리할수없음을유념해야합니다. 4. 특정클러스터기능은 mixed-os 모드에최적화되어있지않기때문에, 최대한빠르게클러스터업그레이드작업을진행해야합니다. 5. 반면에, mixed-os 모드에서운영할경우에, 저장소의생성및크기조절작업을 Windows Server 2016 노드에서수행하는것을피해야합니다. Windows Server 2016 노드에서생성한저장소가 Windows Server 2012 R2 노드로 Failover 되었을경우에, 호환성문제로인해저장소가인식되지않을수있음도유념해야합니다. 112
FAQs How long can the failover cluster run in mixed-os mode? We encourage customers to complete the upgrade within four weeks. There are many optimizations in Windows Server 2016 Technical Preview. Will you port this feature back to Windows Server 2012, Windows Server 2008 R2, or Windows Server 2008? We do not have any plans to port this feature back to previous versions. Cluster OS Rolling Upgrade is our vision for upgrading Windows Server 2012 R2 clusters to Windows Server 2016 Technical Preview and beyond. Does the Windows Server 2012 R2 cluster need to have all the software updates installed before starting the Cluster OS Rolling Upgrade process? Yes, before starting the Cluster OS Rolling Upgrade process, verify that all cluster nodes are updated with the latest software updates. Can I run the Update-ClusterFunctionalLevel cmdlet while nodes are OFF or Paused? No. All cluster nodes must be on and in active membership for the Update- ClusterFunctionalLevel cmdlet to work. Does Cluster OS Rolling Upgrade work for any cluster workload? Does it work for SQL Server? Yes, Cluster OS Rolling Upgrade works for any cluster workload. However, it is only zero-downtime for Hyper-V and Scale-out File Server clusters. Most other workloads incur some downtime (typically a couple of minutes) when they failover, and failover is required at least once during the Cluster OS Rolling Upgrade process. Can I automate this process using PowerShell? Yes, we have designed Cluster OS Rolling Upgrade to be automated using PowerShell. For a large cluster that has extra workload and failover capacity, can I upgrade multiple nodes simultaneously? Yes. When one node is removed from the cluster to upgrade the OS, the cluster will have one less node for failover, hence will have a reduced failover capacity. For large clusters with enough workload and failover capacity, multiple nodes can be upgraded simultaneously. You can temporarily add cluster nodes to the cluster to provide improved workload and failover capacity during the Cluster OS Rolling Upgrade process. What if I discover an issue in my cluster after Update-ClusterFunctionalLevel has been run successfully? 113
If you have backed-up the cluster database with a System State backup before running Update-ClusterFunctionalLevel, you should be able to perform an Authoritative restore on a Windows Server 2012 R2 cluster node and restore the original cluster database and configuration. Can I use System Center 2016 Technical Preview Virtual Machine Manager (SCVMM) to automate the Cluster OS Rolling Upgrade process? Yes, You can automate the Cluster OS Rolling Upgrade process using VMM in System Center Technical 2016 Preview. 114
참조자료 Deploy Scale-Out File Server (http://technet.microsoft.com/en-us/library/hh831359.aspx) Cluster Operating System Rolling Upgrade (https://technet.microsoft.com/enus/library/dn850430.aspx) 115