Yeni Azure Stack HCI nedir? Preview kurulumu ve konfigürasyonu nasıl yapılır? – Bölüm 1
Azure Stack HCI, 1 seneyi aşkın bir süredir piyasada olan bir kavram, fakat tam olarak neyi ifade ettiği konusunda genel bir belirsizlik var. İçerisinde Azure ifadesi geçtiği için doğal olarak bir bulut bağı var diyoruz, ama aslında isterseniz hiçbir Azure hizmetine bağlamak zorunda değilsiniz. Azure, Azure Stack ve Azure Stack HCI kavramlarını kısaca açıklayarak işe başlayalım:
Azure, çoğumuzun bildiği üzere bir umuma açık (public), hibrit bir bulut platformudur. Umuma açık ile kastedilen isteyen her bir bireyin veya kurumun doğrudan bir web portala girip, herhangi bir insan müdahalesi olmadan kendi IT kaynaklarını veya altyapısını oluşturmasına imkân vermesidir. Bir ön kayıt veya özel erişim gerekli değildir. Azure portala girersiniz, kaynaklarınızı oluşturursunuz ve işinize başlarsınız.
Azure Stack, Azure’un sunduğu hizmetlerin bir kısmını kendi veri merkezlerinde, kendi donanımınız üzerinde çalıştırmanıza izin veren bir hibrit bulut platform çözümüdür. Hyper converged bir yapıdır; yani Software Defined Storage ve Network mimarisi üzerine kurulmuştur. Hizmetlerinizi aynı Azure’daki web portala benzer bir portal üzerinden yönetirsiniz; tek farkı bu portalın sadece size ait olmasıdır. Umuma açık değildir. Aslında Azure’un platform ve altyapı servislerinin sizin donanımınız üzerine kurulmuş minyatür bir versiyonudur. Sizin tarafınızdan yönetilir ve tüm verileriniz, siz buluta replike etmeyi veya yedeklemeyi tercih etmediğiniz sürece size ait cihazlar üzerinde tutulur. Lisanslamasını yapmak dışında Azure ile zaruri bir bağlantısı yoktur diyebiliriz. Lisans ücreti, kullandığınız kaynaklara atadığınız vCPU ve depolama alanı üzerinden (TB başına) Azure aboneliğinize yansıtılır. Donanımı alırken piyasadaki üreticilerin Azure Stack sertifikalı, donanımlarını alırsınız. Bu donanımlar üzerinde sadece Azure Stack işletim sisteminin çalışacağı özel donanımlar değildir; sadece Microsoft tarafından Azure Stack’in tam uyumlu şekilde çalışacağına dair sertifikalandırılmışlardır. Yarın bir gün Azure Stack kullanmak istemediğiniz takdirde bu donanımları formatlayıp üzerine istediğiniz sistemi kurabilirsiniz.
Azure Stack HCI, sizin donanımızın üzerine konumlandırılacak, Windows Server 2016/2019’un Core sürümünü baz alınan hyper converged sanallaştırma altyapısı ve bu yapının uzaktan yönetimini sağlayan Windows Admin Center’dan oluşur. Aslında yeterli miktarda Windows Server lisansına sahipseniz oturup kurabileceğiniz, storage ve network’ü sanallaştırılmış bir yapıdır. Yine buradaki önemli fark alacağınız donanımın Azure Stack HCI kataloğunda bulunması gerekliliğidir. Bu katalog sayesinde donanım uyumluluğu hedeflenmiştir. Kısacası sertifikalandırılmış donanım üzerine kurulan Windows Server tabanlı hyper converged yapıdır. Azure Stack HCI, Windows Admin Center üzerinden yönetildiğinde Azure Site Recovery, Storage Replica veya Azure Monitor gibi bulut servisleriyle entegre olma imkânı sunar. Eğer Azure servislerine bağlamazsanız, Windows Server lisansı dışında bir ücret ödemezsiniz.
Yeni Azure Stack HCI diye bahsedilen ve geçtiğimiz Microsoft Inspire 2020 etkinliğinde duyurulan ürün, Azure entregrasyonunu daha ileriye götürmeyi hedefliyor. Öncelikle host makinelere Windows Server 2016/2019 kurmak yerine Azure Stack HCI adında yeni bir işletim sistemi kurulmasını şart koşar. Bu işletim sistemi Windows Server 2016/2019’un aksine LTSC dağıtım kanalında değildir; yani yıllık update’ler alır. Şu an kullandığımız Server 2019’dan daha güncel bir kod tabanına sahiptir. İçerisinde Azure Arc servisi ile entegre olmasını sağlayacak gerekli kütüphaneler vardır ve Core sürümü baz almaktadır. Lisanslama modeli ise ortamınızdaki host’lardaki fiziksel çekirdek adedine göredir. Yapıyı Azure’a kaydettirdiğinizde bu miktar hesaplanır ve Azure üyeliğiniz üzerinden ücretlendirilirsiniz.
Bahsi geçen özelleştirmeler sonucu bu HCI yapısını aşina olduğumuz Azure portal üzerinden yönetmek, sanal makine oluşturmak ve RBAC ile Azure AD’de bulunan objelere bu kaynaklar üzerinde yetki vermek mümkün olacaktır. Makaleyi yazdığım tarih itibariyle bu özellikler Azure tarafına henüz gelmemiştir. İlerleyen zamanlarda bu özellikler eklenince makale serime ekleme yaparak bu entegrasyonu da anlatacağım.
Görebileceğiniz üzere Azure Stack HCI’ın bu son revizyonu çok yeni ve gelişime müsait. Etkinlikten edindiğim bilgilere göre şu anki Azure Stack HCI’dan yeni versiyona bir migrasyon yolu da ayrıca duyurulacak. Sonuç itibariyle yapılar çok da farklı değil, en kötü ihtimalle Cluster OS Rolling Upgrade ile bu sürüme geçiş yapmanın mümkün olacağını düşünüyorum.
İşe başlamadan önce aşağıdaki linkten kaydolup yeni Azure Stack HCI Preview’in ISO’unu indirelim:
https://azure.microsoft.com/tr-tr/products/azure-stack/hci/hci-download
Ortamımız bir adet DC, client makine (tercihen Windows 10) ve minimum 2 adet Azure Stack HCI işletim sistemi kurulu sanallaştırma host’undan oluşacak. Yapımızı Azure’da açtığım bir sanal makinede ayaklandıracağız fakat anlatacaklarımı kendi Windows makinenize HyperV rolü kurarak da uygulayabilirsiniz. Anlatımımı yaparken buna da atıfta bulunacağım. VMware Workstation veya Virtualbox gibi 3. parti çözümleri kullanamıyoruz çünkü Microsoft, HyperV rolünün sanal makine içerisinde bir kez daha etkinleştirmeyi bu platformlarda desteklemiyor.
Azure’daki sanal makinelerde, aynı Windows Server 2016/2019’da olduğu gibi nested virtualization (iç içe sanallaştırma) mümkün fakat bunu destekleyen bir makine tipi kullanmanız gerekiyor. Desteklenen makine tiplerini aşağıdaki linkten bulabilirsiniz:
https://azure.microsoft.com/en-us/blog/introducing-the-new-dv3-and-ev3-vm-sizes
İşletim sistemi olarak Windows Server 2019 kullanacağız fakat isterseniz Server 2016’da kullanabilirsiniz. Daha eski sürümlerde nested virtualization desteği yok.
Bu makine aynı zamanda sanallaştırma hostumuz da olacağı için RAM miktarını 32 GB’ın altında seçmemenizi tavsiye ederim. Eğer kendi cihazınızda test edecekseniz SSD’li bir makine ve minimum 16GB RAM gerekiyor. Fakat önerim, 32GB RAM ve SSD ile bu ortamı kurmanız yönünde olacaktır. Ayrıca yapıyı Azure’da kuracaksanız sanallaştırma host’unuza işletim sistemi diski dışında 1 adet SSD datadisk de eklemenizi ve sanal makine dosyalarını buna konumlandırmanızı tavsiye ederim.
Sanallaştırma hostu üzerinde bir adet DC, bir adet client ve minimum iki adet Azure Stack HCI node’u kuracağız. DC’yi Windows Server 2019 üzerinde konumlandıracağız ve client makine olarak Windows 10 sürüm 2004’ü kullanacağız.
Temel ADDS, Failover Clustering ve HyperV bilginizin olduğunu varsayarak anlatacağım. Eğer bu konular hakkında yeterli bilginiz yoksa Çözümpark’ta aratıp detaylı bilgiye ulaşabilirsiniz.
Ben Azure’da D16ds_v4 tipinde 16 çekirdekli ve 64GB RAM’li bir makine açtım ve bir adet SSD tipinde datadisk’i ekledim.
Bu makineyi HyperV hostumuz olarak kullanacağız. Eğer fiziksel makinenize kuruyorsanız o da sizin HyperV host’unuz oluyor. Makineye HypverV rolünü kurmak için yönetici haklarıyla çalıştırdığınız bir powershell oturumunda aşağıdaki komutu çalıştıralım:
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Komutun çalıştırılması bittiğinde makine otomatikman kendini yeniden başlatacaktır.
Yeniden başlatma işlemi bittikten sonra özellikle client makinede çalışmayı kolaylaştırması açısından host’umuzda Enhanced Session özelliğini aşağıdaki komutla aktif hale getirelim:
Set-VMhost -EnableEnhancedSessionMode $True
Artık vSwitch (virtual switch) oluşturma aşamasına geçebiliriz.
HyperV host’unuz ister kendi cihazınız ister Azure’da bir sanal makine olsun vSwitch olarak External türünü kullanmak yerine Server 2016 ve sonrasında desteklenen vNAT destekli Internal vSwitch kullanacağız. Böylece fiziksel networkünüzü doğrudan sanal makinenize açmamış olacağız.
Öncelikle Internal tipinde vSwitch oluşturalım. Bunun için aşağıdaki powershell komutunu girelim:
New-VMSwitch -Name “InternalNAT” -SwitchType Internal
Bu komutu çalıştırdıktan sonra InternalNAT isminde bir sanal switch oluşacak. İşimiz burada bitmiyor. Zira bu switch’i dış dünyayla haberleştirmek için NAT gateway ve NAT network ayarlamamız gerekiyor. Sırasıyla şu komutları çalıştıralım:
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceAlias “vEthernet (InternalNAT)”
New-NetNat -Name “AzSHCINAT” -InternalIPInterfaceAddressPrefix 192.168.0.0/24
İlk komutla gateway IP adresimizi (istediğiniz iç IP blokunu kullanabilirsiniz), ikinci komutta da NAT networkünün IP subnetini belirledik. Artık sanal makineleri açarken network adımında bu oluşturduğumuz vSwitch’i seçeceğiz. Makinelere statik IP vermek için bu subnet aralığını kullanacağız ve gateway söz konusu olduğunda da 192.168.0.1 adresini yazacağız.
Sanal makinelerimiz kurmaya başlayabiliriz. Öncelikle ortamın kimlik doğrulama yöneticisi olacak olan AD Domain Controller’ı kurmakla başlayalım.
Makine ismi: AZSHCIDC
IP: 192.168.0.2
vCPU: 2
RAM: 2048 (Dynamic Memory aktif)
Makinenin kurulumu bittikten sonra ismini verip AD DS rolünü makineye kurduktan sonra makinemizi Domain Controller rolüne terfi ettiriyoruz. Bu işlem bittikten sonra domainde “labadmin” isminde bir kullanıcı açıp bu kullanıcıyı Domain Admins, Enterprise Admins ve Schema Admins gruplarına dahil edelim. Bütün kurulumlarda ve bağlantılarda bu kullanıcıyı kullanacağız. Bu işlemden sonra Client makinemizi kurmaya başlayabiliriz.
Makine ismi: CLIENT
IP: 192.168.0.3
vCPU: 4
RAM: 4096 (Dynamic Memory aktif)
Windows 10 kurulumu bittikten sonra DNS ayarlarını yapıp bir önceki adımda oluşturduğumuz domaine dahil edelim. Domaine dahil etme işi bittikten sonra “labadmin” kullanıcısı ile bu makinede oturum açalım. Uzaktan yönetim için gerekli Windows Admin Center’ı indirelim ve kuralım:
https://www.microsoft.com/en-us/windows-server/windows-admin-center
Windows Admin Center’ın 2007 sürümünden önceki bir sürüm kullanmayın, zira eski sürümleri Azure Stack HCI konfigürasyonunu desteklenmiyor.
Artık Azure Stack HCI node’larını kurmaya geçebiliriz. Demo ortamımızda 2 adet node kullanacağız ve bunlara aşağıdaki konfigürasyonda açacağız:
Node 1 ismi: AZSHCIN1
IP: 192.168.0.4
vCPU: 4
RAM: 4096 (Dynamic memory pasif)
Node 2 ismi: AZSHCIN2
IP: 192.168.0.5
vCPU: 4
RAM: 4096 (Dynamic memory pasif)
Bu makineler içerisinde bir kez daha HyperV rolünü etkinleştireceğimiz için Dynamic Mermory özelliğinin kapalı olması şartı var. Bu durum, nested virtualization kullanarak sanal makine içinde sanal makine kurmaya yönelik tüm senaryolarda geçerli olan istisnai bir durum.
Sanal makine oluşturma adımında “Installation Options” adımında indirdiğimiz Azure Stack HCI ISO’sunu gösterelim:
İkinci host’u da aynı şekilde açtıktan sonra host’ların vCPU, network adaptörü ve disk ayarlarını yapmak için sanal makine özelliklerine girelim. Her iki host’ta 3’er tane network adaptörü ve 4 tane sanal disk ekleyeceğiz. Sanal makineler oluşturulurken 1 tane network adaptörü oluşturuluyor. Diğer 3’ünü oluşturalım ve aynı vSwitch’e bağlayalım.
Açacağımız diğer üç network adaptöründe aşağıda ek özellikleri aktif hale getirelim:
Sonrasında sanal makinemize 127 GB boyutunda 4 adet dinamik sanal disk ekleyelim:
Bu diskler konfigürasyon aşamasında hyper converged yapımızdaki Storage Space Direct havuzuna dahil edilecek ve CSV (Cluster Shared Volume) olacak.
Aynı işlemleri ikinci node olarak kullanacağımız sanal makinede de yapalım.
Makineleri açmadan önce son olarak işlemcimizdeki sanallaştırma özelliğini sanal makinelerine açmamız lazım ki iç içe sanallaştırma yapabilelim. HyperV host’unda bu iki sanal makine için nested virtualization’ı aktif hale getirelim:
Set-VMProcessor -VMName sanal_makine_ismi -ExposeVirtualizationExtensions $true -Verbose
Bu işlemler bittikten sonra Azure Stack HCI sanal makinelerini başlatıp kuruluma geçebiliriz. Kurulumun standart bir Windows Server 2019 Core kurulumundan bir farkı yok. Tek dikkat etmeniz gereken nokta kurulumu “English (United States)” bölgesel ayarı seçili olarak yapmanız. Şu anki Preview’de bulunan bir bug’dan ötürü bu bölgesel ayar dışındaki kurulumlarda Azure Stack HCI konfigürasyon aşamasında ilerlemenizi engelleyen bir hata ile karşılaşıyorsunuz. “English (United Kingdom)” ayarıyla bile aynı hataya düşen ve ilerleyemeyen kullanıcılar var. Bu yüzden baştan önlemimizi alalım. Klavye düzeninizi TRQ veya TRF seçebilirsiniz. Kurulum bitip lokal admin şifrenizi belirledikten sonra Core sürümün temel konfigürasyon script’i olan sconfig açılacaktır.
8 numarayı seçip network ayarlarımızı yapalım. Index numarası 1 olan network adaptörümüz management için kullanacağız. Dolayısıyla buna şimdi yukarda belirlediğimiz IP, subnet ve DNS (Domain Controller IP adresi) ayarlarını vereceğiz.
Network iletişimi tamamsa ana menüye dönüp öncelikle 2 sonrasında 1 seçeneğini kullanarak makine ismini belirleme ve domaine dahil etme işlemlerini yapalım.
Artık Azure Stack HCI host’larının lokalinden yapılması gereken tüm işlemler bitmiş durumda. Normalde bundan sonraki işlemlerimizi client makinemizde Windows Admin Center veya powershell üzerinden yapabiliriz fakat Azure HCI’ın bu preview sürümündeki başka bir bug sebebiyle Windows Admin Center üzerinden Azure Stack HCI hostlarında HyperV özelliğini etkinleştirirken bir hata çıkıyor ve HyperV kurulamıyor. Keza makineye lokalden bağlanıp powershell üzerinden kurmaya çalıştığınızda da aynı durum oluyor. Microsoft bu durum için geçici bir workaround yayınladı. “Invoke-Command” komutunu HyperV hostumuz üzerinde bu 2 HCI host’u için çalıştırarak HyperV özelliğini aktif hale getireceğiz. Aşağıdaki powershell script’ini Azure Stack HCI sanal makinelerini ayaklandırdığımız HyperV host’unda çalıştıralım.
$domainName = “domain_ismi“
$domainAdmin = “$domainName\yetkili_kullanıcı“
$domainCreds = Get-Credential -UserName “$domainAdmin” -Message “Enter the password for the LabAdmin account”
$nodeName = “hci_node_ismi”
Invoke-Command -VMName “$nodeName” -Credential $domainCreds -ScriptBlock {
# Enable the Hyper-V role within the Azure Stack HCI OS
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -NoRestart -Verbose
}
Write-Verbose “Rebooting node for changes to take effect” -Verbose
Stop-VM -Name $nodeName
Start-VM -Name $nodeName
while ((Invoke-Command -VMName $nodeName -Credential $domainCreds {“Test”} -ErrorAction SilentlyContinue) -ne “Test”) {
Start-Sleep -Seconds 5
}
Write-Verbose “$nodeName is now online. Proceeding to install Hyper-V PowerShell….” -Verbose
Invoke-Command -VMName “$nodeName” -Credential $domainCreds -ScriptBlock {
# Enable the Hyper-V PowerShell within the Azure Stack HCI OS
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell -All -NoRestart -Verbose
}
Write-Verbose “Rebooting node for changes to take effect” -Verbose
Stop-VM -Name $nodeName
Start-VM -Name $nodeName
while ((Invoke-Command -VMName $nodeName -Credential $domainCreds {“Test”} -ErrorAction SilentlyContinue) -ne “Test”) {
Start-Sleep -Seconds 1
}
Write-Verbose “$nodeName is now online. Proceed to the next step….” -Verbose
İtalik yazdığım değişkenleri kendi ortamınızdaki değerlere göre düzenlemeyi unutmayın.
HyperV’yi de etkinleştirdiğimize göre artık client makinede kurulu Windows Admin Center üzerinden Azure Stack HCI konfigürasyonuna geçebiliriz. Makalemizin ikinci bölümünde görüşmek üzere.
Eline sağlık üstat, çok güzel konular çok kıymetli bilgiler.
Teşekkürler hocam. Heyecan veren bir ürün ve bu ürünü denerken karşılaştıklarımı yazıya dökmesem olmazdı.
Hocam herkesin böyle bir imkanı olmuyor ama olanlarda ki malum bende bankada çalıştım çok acayip donanımlar gördüm onlarda pek yazmıyor, o yüzden hem bu kadar kıymetli teknolojilere dokunan hem de bunları paylaşan birisi olarak emeğin çok büyük. Teşekkürler.