Server Core Üzerinde Hyper-V Cluster Kurulumu
Bu makalemizde sizlere Windows Server 2016 Core edition üzerinde Hyper-V Cluster oluşturulmasını ve yapılandırılmasını anlatacağım. Kurulumunu yapıp anlattığım Windows Server 2016 Core Hyper-V Cluster yapıda her birinin üzerlerinde 2 HBA ve 4 Nework portlu 2 fiziksel sunucu ile 4 HBA portlu Storage kullanılmıştır.
Core sürümünde GUI olmadığı için hem daha az kaynak tüketiyor hem daha az özellik olduğundan işletim sistemi zafiyeti daha az hem de daha az güncelleme aldığı için daha uzun kesintisiz çalışma imkanına sahiptir.
Kuruluma geçmeden önce bazı ön hazırlıkların yapılması gerekiyor. Aşağıda linkini verdiğim makalede anlatılan adımların yapılmasını öneririm.
Core kurulumu yapmak için İşletim Sistemi kurulum seçeneklerinden lisansınıza uygun sürümün (Desktop Experience) yazmayanı seçerek kurulumu tamamlayınız.
Kurulum tamamlandığında gelen ilk menü sunucunuzun Local Administrator şifresinin belirlenmesi sağlayacaktır.
Enter’a basıp Administrator hesabı için şifre yazıp aşağı yön tuşu ile alt satıra inip şifrenizi yeniledikten sonra enter ile ilk oturumu açın
1-) SCONFIG ile Core Sürüm Yapılandırması
Administrator şifresi belirlendikten sonra ilk kurulum ayarların yapılması için sconfig yazıp enterlayın.
Öncelikte Network port ayarları için “Enter number port to select an option” kısmına 8 yazıp enterlayın. Gelen ekranda ayarlarını yapmak istediğiniz Network portunun Index numarasını yazıp enterlayın
Gelen ekranda ip adres tanımlaması için “Select Option” kısmına 1 yazıp enterlayın
Gelen ekranda Otomatik mi yoksa elle mi ip adresi ataması yapmak istediğiniz sorulmaktadır. Eğer Otomatik verilmesini istiyorsanız D, elle kendiniz oluşturmak istiyorsanız S yazıp enterlayın. Ben elle belirleyeceğim için S ile ilerleyeceğim.
S ile ilerlediğinizde öncelikle vermek istediğiniz ip adresinizi yazıp enterlayın. Sonrasında sizden sırası ile Subnet ve Gateway bilgilerinizi girmesini isteyecektir. İp adres tanımı bittiğinde Eğer bu porta DNS Server girişi yapacaksanız. “Select Options” kısmına 2 yazıp enterlayın.
Gelen menüde sırası ile DNS sunucularınızın ip adresini girip enterlayarak girişi tamamlayınız. Eğer bir tane DNS sunucunuz varsa Preferred kısmına ip adresini girip enterladıktan sonra Alternate kısmında enter’a basarak geçiniz.
Port için İp Adres tanılaması bittiğinde 4 ile ana ekrana dönüş yapabilirsiniz.
Eğer ağınızda WSUS veya SCCM veya Windows Update’lerinizi yönetebileceğiniz platform yoksa ana menüde 6’ya basarak Windows güncellemelerini gerçekleştiriniz.
Bu adımdan sonra 1’e basarak bilgisayarı ismini değiştirerek domain’e alabilirsiniz veya önce 2’ye basarak bilgisayar ismini değiştirip restart ettikten sonra SCONFIG’i çalıştırıp 1 ile domain’e almaktır.
2-) NIC Teaming
Hyper-V Cluster için en az 2 network portuna ihtiyaç bulunmaktadır. Eğer benim gibi 2’den fazla portunuz varsa Hyper-V için oluşturacağınız Network Switch için bu portları kullananızı tavsiye ederim. Benim 4 portum olduğu için 2 portu NIC Teaming yaparak Hyper-V Manager’da kullanacağım External Switch’de kullanacağım.
NIC Teaming yapmak için SCONFIG’den çıkmamız gerekiyor. Bunun için 15’e basarak komut satırına geri dönünüz. İstediğiniz zaman komut satırına SCONFIG yazarak ilk kurulum yönetim ekranına dönebilirsiniz.
Komut satırına POWERSHELL yazarak PowerShell ekranına düşünüz. Gelen ekrana Get-NetAdapter komutu ile network portlarınızı listelersiniz. Gelen ekranda team yapmak istediğiniz network portların isimlerini benim yazdığım komuta “Ethernet 3” olarak yazdığım alana yazıp enterlayın.
New-NetLbfoTeam –Name TrunkTeam1 –TeamMembers “Ethernet 3”, “Ethernet 4”
Default’ta NIC Teaming modeli SwitchIndependent olarak gelmektedir. Eğer değiştirmek isterseniz aşağıdaki komutu kullanınız
Set-NetLbfoTeam -Name TrunkTeam1 –TeamingMode SwitchIndependent
3-) Gerekli Bileşenlerin Kurulması
Hyper-V Cluster yapabilmemiz için Hyper-V role ve Failover Clustering feature kurulumlarının yapılması gerekmektedir. PowerShell komut satırından çıktı iseniz PowerShell yazarak giriş yapabilirsiniz.
Get-WindowsFeature komutu ile sistemine kurulu ve kurulabilecek servis ve hizmetler listelenir. Gerekli bileşenlerin kurulumu için aşağıdaki komutlar PowerShell üzerinde çalıştırınız. Bu komutu çalıştırdığınızda sunucu kendini otomatik olarak restart edecektir.
Install-WindowsFeature -ComputerName 2012R2Core -Name Failover-Clustering -IncludeManagementTools -IncludeAllSubFeatures
Install-WindowsFeature -ComputerName 2012R2Core -Name Hyper-V -IncludeManagementTools -IncludeAllSubFeatures -Restart
4-) MPIO (MultiPath i/o)
Eğer sizde benim gibi birden fazla HBA portu ile storage üzerinden disk kullanıyorsanız MultiPath I/O (MPIO) özelliğini devreye almanız gerekmektedir. Eğer MPIO kurulumunu yapmaz iseniz Disk Management üzerinde her bir diskten HBA port sayınız kadar disk görürsünüz.
MPIO feature kurulumu için aşağıdaki PowerShell komutunu çalıştırınız.
Install-WindowsFeature -ComputerName 2012R2Core -Name MultiPath-IO -IncludeManagementTools -IncludeAllSubFeatures -Restart
Kurulum tamamlandıktan sonra PowerShell ekranından exit yazarak çıkıp aşağıdaki komutu Komut Satırında (CMD) çalıştırınız. Bu komutu çalıştırdığınızda sunucu kendini otomatik olarak restart edecektir.
mpclaim.exe -r -i -a “”
5-) Private Network Portunun Yapılandırılması
Cluster’a ait sunucuların iç erişiminde kullandıkları Private Network’ünde DNS, Gateway ve Netbios olmamalıdır. Eğer DNS server tanımı yapıldı ise SCONFIG üzerinden network ayarlarına gelip 3 işaretlenerek DNS bilgisini sildirebilirsiniz.
Netbios tanımının silinmesi için network portunun wnic index bilgisinin bulunması gerekmektedir. Bunun için komut satırında aşağıdaki komutu çalıştırınız.
wmic nicconfig get caption,index,TcpipNetbiosOptions
Index bilgisini öğrendikten sonra aşağıdaki komutta yer alan 1’in yerine kendi sisteminizdeki değeri giriniz.
wmic nicconfig where index=1 call SetTcpipNetbios 2
SetTcpopNetbios Değerleri:
0 – Use NetBIOS setting from the DHCP server
1 – Enable NetBIOS over TCP/IP
2 – Disable NetBIOS over TCP/IP
6-) PageFile Yapılandırması
Hyper-V, SQL gibi büyük Memory değerlerine sahip ve yoğun RAM kullanan sistemlerde PageFile değerini sabitlemeniz gerekmektedir. Eğer sunucunun memory’si 20 GB’dan küçük ise memory boyutu kadar pagefile’i belirleyin. Eğer 20 Gb’dan büyük ise 20480’e sabitleyin.
Bunun için komut satırında aşağıdaki komutları çalıştırınız.
wmic computersystem where name=”%computername%” set AutomaticManagedPagefile=False
wmic.exe pagefileset where name=”c:\\pagefile.sys” set InitialSize=20480,MaximumSize=20480
7-) Hyper-V Virtual Network Switch’in oluşturulması
Hyper-V üzerinde Private, Internal ve External olmak üzere 3 farklı modelde network switch oluşturulmaktadır. Sanal makinelerinizin Hyper-V network portları üzerinden dışarı ulaşmasını istiyorsanız External seçmelisiniz.
External seçtiğinizde sunucunuzun hangi portunu kullanacağını belirlemelisiniz. Bunun için PowerShell üzerinde Get-NetAdapter komutunu kullanınız.
Eğer 2 network portundan fazla portunuz varsa External olarak seçtiğiniz network portunun işletim sistemi tarafından kullanılmaması için “Allow management operating system tos hare this network” kutucuğunun işaretlenmemesi lazım. Buna göre PowerShell üzerinden aşağıdaki komut ile Virtual Switch oluşturabilirsiniz.
New-VMSwitch -Name NetSWExt -NetAdapterName 1G -AllowManagementOS $False
Eğer internal veya Private modunda switch oluşturacaksanız aşağıdaki örnek PowerShell komutu kullanabilirsiniz.
New-VMSwitch -Name “Internal vSwitch” -SwitchType “Internal”
😎 Uzaktan Yönetim
Core sürüm olduğu için sunucunun ve cluster’ın yönetimi için bazı güvenlik izinlerinin verilmesi gerekmektedir. Bunun için aşağıdaki PowerShell komutlarını çalıştırınız.
Enable-PSRemoting –Force
Enable-NetFirewallRule -DisplayGroup “Remote Event Log Management”
Enable-NetFirewallRule -DisplayGroup “Remote Service Management”
Enable-NetFirewallRule -DisplayGroup “Performance Logs and Alerts”
Enable-NetFirewallRule -DisplayGroup “Remote Volume Management”
Enable-WSManCredSSP –Role Server
9-) Diğer Node’ların Yapılandırılması
İlk yedi madde anlatılan tüm işlemlerin Cluster’a dahil edilecek diğer sunucularda da uygulayınız.
10-) Disklerin Yapılandırılması
Desktop Experince olarak kurulum yapılan başka bir sunucuda Computer Management Tools çalıştırılarak Hyper-V Cluster yapılacak sunuculardan birine bağlanılarak Disk Management menüsüne gelinerek Cluster’a verilecek diskler formatlanıp harf ataması yapılır.
Eğer Disk boyutunuz 2 TB’ı geçmeyecekse NTFS, 2 TB’dan büyük disk oluşturacaksanız performans açısından ReFS seçmeniz önerilir.
Tek sayıda kurulacak Cluster’lar Split Brain senaryosunun oluşmaması için disk boyutu 1 GB’ı geçmeyecek ve Quorum olarak kullanılacak diske ihtiyacınız bulunmaktadır. Eğer MultiSite Cluster kuracaksanız ve Node sayısınız her veri merkezinde çift sayıda ise Azure gibi üçüncü veri merkezinde tüm Cluster Node’ların erişebileceği bir alanda File Share oluşturulması gerekmektedir. Detaylar için daha önceden yazdığım aşağıda linkini verdiğim makaleden okuyabilirsiniz.
11-) Cluster’ın Kurulumu
İsterseniz bu adımı GUI olarak kurulumu yapılan sunucuya Failover Cluster RSAT bileşenini kurarakta yapabilirsiniz. Ben burada komut satırını göstereceğim.Kurulumu yapılan Cluster özelliğine ait PowerShell bileşenlerini yüklemek için aşağıdaki komutu PowerShell üzerinde çalıştırınız.
import-module failoverclusters
Kurulum aşamasında bir sürpriz ile karşılaşmamak için Oluşturmayı düşündüğünüz cluster yapısının test edilmesi için aşağıdaki PowerShell komutu giriniz.
Test-Cluster –Node Server1, Server2
Testi başarı ile geçerse sunucu ve alt yapımızın Cluster kurulumuna geçebilirsiniz. Benim sunucuların ismi HV01 ve 2, Cluster ip adresim ise 192.168.9.14’dir. Cluster kurulumu için siz aşağıdaki PowerShell komutta kendi yapınıza uygun şekilde komutu düzenleyip çalıştırınız.
New-Cluster –Name CLS-HV –Node HV01, HV02 –StaticAddress 192.168.9.14
Eğer sonradan mevcut Cluster’a başka node eklemek isterseniz aşağıdaki PowerShell komutta HV03 yazan kısma yeni eklenecek sunucu isminizi yazarak Cluster’a eklemesini sağlayabilirsiniz.
Get-Cluster CLS-HV | Add-ClusterNode HV03
Cluster kurulumu sonrasında disklerinizin Cluster’a eklenmesi için aşağıdaki PowerShell komutunu kullanınız.
Get-ClusterAvailableDisk | Add-ClusterDisk
12-) Quorum Yapılandırması
Aşağıda lisnkini verdiğim daha önce yazdığım makalede detaylarını bulacağınız Quorum modeline göre aşağıdaki PowerShell komutlarından uygun olanı seçerek ile Quorum modelini yapılandırarak Cluster kurulumumuzu tamamlayınız.
Eğer tek sayıda node’unuz varsa aşağıdaki PowerShell komutu ile Node Majority olarak yapılandırabilirsiniz.
Set-ClusterQuorum -NodeMajority
Eğer çift sayıda node’unuz varsa aşağıdaki PowerShell komutu ile “Node and Disk Majority” olarak yapılandırabilirsiniz.
Set-ClusterQuorum -NodeAndDiskMajority “Cluster Disk 7”
File Share Witnes için aşağıdaki PowerShell komutunu kullanabilirsiniz.
Set-ClusterQuorum -NodeAndFileShareMajority \\fileserver\dosyaismi
Bundan sonra Desktop Experiens olarak kurulum yapılan sunucudan Failover Cluster Manager üzerinden yönetmeye başlayabilirsiniz.