Nano Server Kurulumu Nasıl Yapılır?

16.05.2015 | 00:18 Dokümanlar , Hyper-V , Windows Server 5 Yorum

Windows Server 2016’nın minimal kurulum seçeneği olan Nano Server, bulut uygulamaları (cloud apps), mikro servisler (micro services), Windows konteyner yapısı (Windows containers), Hyper-V konteyner yapısı (Hyper-V containers), Microsoft Cloud Platform infrastructure çözümlerinden Hyper-V VM’ler ve Scale-out File Server yapılarını çalıştırmak üzere optimize edilmiş, süper düşük ayak izine sahip, kırpılmış ve daha güvenilir bir Windows Server seçeneğidir.

Geçen hafta Nano Server ile ilgili oldukça kapsamlı bir post yayımlamıştım. Yeniden aynı şeyleri anlatmanın bir manası olmadığı için kuruluma doğru hızlıca ilerliyoruz ama kurulumu yapmadan önce Microsoft Nano Server nedir yazısını mutlaka okumanız gerekiyor. İmza bir dost :)

Nano Server, Windows Server 2016 TP2 ile birlikte test edilebilir durumda ama maalesef henüz Setup sırasında GUI’den yükleme şansınız yok. Bu yüzden de Nano Server kurulumu şimdilik biraz zahmetli. Muhtemelen kararlı sürümde çok daha kolay bir kurulum yöntemi yer alacak.

Kuruluma geçmeden önce ve tabi eğer elinizde yoksa Windows Server 2016 TP2 ISO’sunu buradan indirebilirsiniz.

Nano Server Kurulumu (VHD Üzerine)

Windows Server 2016 Nano Server kurulumunu bir fiziksel sunucuya yapabileceğiniz gibi bir VHD’ye yaparak VM’ üzerinde de boot edebilirsiniz. Bu blog yazısında VHD içerisine kurulum yöntemini ele alıyorum.

Nano Server Kurulumu Hakkında Bazı Bilgiler

Windows Server 2016 TP2 ile görücüye çıkan Nano Server kurulum seçeneği, Windows Server 2016 TP2 ISO’su içerisinde NanoServer dizini altında yer alan NanoServer.wim dosyası şeklinde geliyor ve kurulumu tamamlamak için bu imaj dosyasını bir fiziksel diske yazdıktan ya da bir VHD’ye dönüştürdükten sonra boot etmek gerekiyor.

NanoServer dizin altındaki Packages dizininde ise Nano Server üzerine sonradan yüklenebilecek rol/görev paketleri (cab dosyaları) yer alıyor. Aslında bu konudan daha önce bahsetmiştim: Nano Server kurulumu sonrasında aktifleştirebileceğiniz sunucu görevlerine ait binary’ler disk üzerinde yer almadığı için harici olarak dışarıdan alıp yüklemeniz gerekiyor. Bu cab dosyaları Nano Server platformuna Failover Clustering, Hyper-V, Storage bileşenleri gibi çeşitli yetenekler kazandırıyor.

CAB dosya isimleriyle eşleşen roller/görevler aşağıdaki gibi.

  • Microsoft-NanoServer-Compute-Package.cab – Hyper-V rolü
  • Microsoft-NanoServer-FailoverCluster-Package.cab – Failover Clustering bileşeni
  • Microsoft-NanoServer-Guest-Package.cab – VM olarak çalışacak kurulumlar için platform sürücüleri
  • Microsoft-NanoServer-OEM-Drivers-Package.cab – Çeşitli network adapter’ler ve storage controller’lar için temel sürücüler
  • Microsoft-NanoServer-Storage-Package.cab – File Server rolü ve diğer storage rol bileşenleri

Örneğin Nano Server’ı bu yazıda olduğu gibi bir VHD içerisine yükleyip Hyper-V VM’e bağlı şekilde boot edecekseniz, Hyper-V platform sürücülerini sağlayan Microsoft-NanoServer-Guest-Package.cab paketini aşağıdaki 4. adımda yüklemeniz önemlidir.

Nano Server Kurulum Adımları

Aşağıdaki adımları takip ederek Nano Server kurulumunu bir VHD (VHDX de olabilir) içerisine yaptıktan sonra bir Hyper-V VM’e bağlayarak boot edebilirsiniz.

1) En az Windows 8 istemci (8.1 öneririm) veya Windows Server 2012 (R2 öneririm) sunucu üzerinde Windows Server 2016 TP2 ISO dosyasını mount edin, virtual media sürücü harfini alın (bende G:\) ve NanoServer dizini altındaki WIM imaj dosyasını bulun.

microsoft-nano-server-kurulumu-adim1

2) NanoServer.wim imajını boot olabilen bir VHD’ye dönüştürürken işinizi kolaylaştıracak Convert-WindowsImage.ps1 PowerShell Scrip dosyasını TehNet Gallery üzerinden indirin ve NanoServer.wim imaj dosyasının bulunduğu OS üzerinde kolay erişebileceğiniz bir dizine alın.

3) PowerShell’i açın, script’in olduğu dizine geçin ve parametreleri düzenleyerek aşağıdaki komutu çalıştırın. Eğer bu OS üzerinde ilk kez bir PowerShell script çalıştırıyorsanız önce Set-ExecutionPolicy unrestricted yapmanız gerekebilir.

.\Convert-WindowsImage.ps1 -Sourcepath G:\NanoServer\NanoServer.wim -VHD D:\nano-s.vhd –VHDformat VHD -Edition 1

NOT: Bu adımları Windows 10 veya Windows Server 2016 TP2 üzerinde yapmak isterseniz Convert-WindowsImage.ps1 hata dönecektir çünkü script henüz bu sürüm OS’ler üzerinde desteklenmiyor. İçerisinde ufak bir düzenleme yaparak çalıştırmak mümkün ama bence hiç gerek yok. Doğrudan Windows Server 2012 (R2) veya Windows 8 (8.1) üzerinde çalıştırabilirsiniz. Haziran 2015 içerisinde Convert-WindowsImage.ps1’in yeni bir sürümü yayımlandı. Version 10 olarak geçen bu yeni sürümü Windows 10 veya Windows Server 2016 üzerinde de kullanabilirsiniz. İndirme sayfasındaki Change Log’a göz atın.

microsoft-nano-server-convert-windowsimage

WIM imajının VHD’ye yazılması (aslında dönüştürülmesi) çok kısa süre içerisinde tamamlanır ve yaklaşık 480mb boyutlu bootable bir VHD dosyası oluşur; gerçekten minimal! Dinamik olarak genişleyen türdeki bu VHD’nin varsayılan maximum size’ı ise yaklaşık 40GB’tır.

Bu arada NanoServer.wim dosyasının illa mount edilmiş bir sanal sürücü içerisinde durmasına gerek yok. Yaklaşık 140mb boyutlu bu imaj dosyasını herhangi bir yere kopyalayarak veya farklı bir işletim sistemi üzerine taşıyarak da bu işlemleri gerçekleştirebilirsiniz.

İşletim sistemi kurulumu aslında bu kadar. Bu noktadan sonra VHD bir VM’e bağlanmak için hazır sayılır ama öncesinde Microsoft-NanoServer-Guest-Package.cab paketinin aşağıdaki yöntemle mutlaka yüklenmesi gerekir çünkü bu paket, Hyper-V VM olarak çalışacak Nano Server’a gerekli platform sürücülerini sağlayacak.

4) Nano Server’a vereceğiniz görevler için gerekli olan paketleri (.cab) VHD içerisine yüklerken Add-WindowsPackage (yani aslında DISM aracını) kullanmanız gerekiyor ancak burada özel bir durum söz konusu ve muhtemelen bir tercih yapmanız gerekecek.

Bu arada az önce oluşan Nano Server VHD dosyasını mount etmeniz ve sürücü harfini öğrenmeniz gerekiyor (bende E:\). Ama öncesinde aşağıdaki 3 yöntemi okumak isteyebilirsiniz çünkü duruma göre VHD’yi farklı bir OS’e taşıdıktan sonra mount etmeniz gerekebilir. Yine de VHD mount işleminin her 3 yöntem için ilk adım olduğunu unutmayın.

Bu iş için path belirterek aşağıdaki cmdlet’i kullanabilirsiniz.

Mount-DiskImage -ImagePath D:\nano-s.vhd

microsoft-nano-server-kurulumu-adim4

Yöntem 1 – Eğer bu işlemi Windows 8/8.1 veya Windows Server 2012/R2 üzerinde yapıyorsanız çalıştırmanız gereken Add-WindowsPackage ile tetiklenecek DISM aracının versiyonu yetersiz kalır ve aşağıdaki hatayı alırsınız.

Add-WindowsPackage : To service this Windows image requires the latest version of the DISM. See http://go.microsoft.com/fwlink/?LinkId=293395 to find the latest version of DISM, and http://go.microsoft.com/fwlink/?LinkId=293394 to learn how to install the latest version of DISM from the ADK on your computer.

Bu durumda Windows 10 Assessment and Deployment Kit (Windows ADK) bulup sisteme yükleyerek DISM’in sürümünün uygun sürüme yükseltilmesini sağlayabilirsiniz. Ancak bunu önermiyorum çünkü Windows 10 ADK en son Preview durumdaydı ve bugün baktığımda ortalardan kaybolmuş :) Ayrıca bu işletim sistemi hali hazırda kullandığınız bir işletim sistemi ise böyle bir Preview yükseltme geçmek pek mantıklı değil. Bu yüzden bence üstünü çizelim ama yine de siz bilirsiniz.

Yöntem 2 – Nano Server VHD’yi güncel bir Windows 10 build veya Windows Server 2016 TP2 üzerine taşıyabilir ve orada mount edip aşağıdaki paketler ve komutlar arasından gerekli olanları tercih edip yükleme işlemini zaten üst sürüm DISM ile çalışan bir ortamda ve Add-WindowsPackage cmdlet’ini kullanarak yapabilirsiniz.

Add-WindowsPackage -Path E:\ -PackagePath G:\NanoServer\Packages\Microsoft-NanoServer-Guest-Package.cab

Add-WindowsPackage -Path E:\ -PackagePath G:\NanoServer\Packages\Microsoft-NanoServer-Compute-Package.cab

Add-WindowsPackage -Path E:\ -PackagePath G:\NanoServer\Packages\Microsoft-NanoServer-FailoverCluster-Package.cab

Add-WindowsPackage -Path E:\ -PackagePath G:\NanoServer\Packages\Microsoft-NanoServer-OEM-Drivers-Package.cab

Add-WindowsPackage -Path E:\ -PackagePath G:\NanoServer\Packages\Microsoft-NanoServer-Storage-Package.cab

Add-WindowsPackage -Path E:\ -PackagePath G:\NanoServer\Packages\Microsoft-OneCore-ReverseForwarders-Package.cab

Yöntem 3 – Windows Server 2016 TP2 ISO içerisinden üst sürüm DISM’e ait exe, dll gibi parçaları alıp Nano Server VHD’nin de bulunduğu Windows 8/8.1 veya Windows Server 2012/R2 üzerinde bir dizine kopyalayın. Bu işlem o OS üzerindeki orijinal DISM aracına ve ilişkilerine zarar vermez ve hatta Add-WindowsPackage kullanamazsınız çünkü Add-WindowsPackage hala alt sürüm DISM’e bağlı olur. Ama kopyaladığınız dizin içerisindeki DISM aracını kendi komutlarıyla çalıştırarak CAB paketlerini VHD içerisine yüklemeniz mümkün.

Öncelikle örneğin c:\dism isimli bir dizin oluşturun ve Windows Server 2016 TP2 ISO içerisindeki sources dizininde aşağıdaki 3 aramayı ayrı ayrı gerçekleştirip sonuç olarak dönen tüm içeriği c:\dism altına kopyalayın. (aynı isimli dosyalar gelirse hedefte  üzerine yazılabilir)

  • api*downlevel*.dll
  • *dism*
  • *provider*

Daha sonra PowerShell veya CMD açıp komut satırında c:\dism dizinine geçin ve aşağıdaki paketler arasından gerekli olanları seçip yükleme işlemini tamamlayın.

.\dism.exe /Add-Package /PackagePath:G:\NanoServer\Packages\Microsoft-NanoServer-Guest-Package.cab /Image:E:\

.\dism.exe /Add-Package /PackagePath:G:\NanoServer\Packages\Microsoft-NanoServer-Compute-Package.cab /Image:E:\

.\dism.exe /Add-Package /PackagePath:G:\NanoServer\Packages\Microsoft-NanoServer-FailoverCluster-Package.cab /Image:E:\

.\dism.exe /Add-Package /PackagePath:G:\NanoServer\Packages\Microsoft-NanoServer-OEM-Drivers-Package.cab /Image:E:\

.\dism.exe /Add-Package /PackagePath:G:\NanoServer\Packages\Microsoft-NanoServer-Storage-Package.cab /Image:E:\

.\dism.exe /Add-Package /PackagePath:G:\NanoServer\Packages\Microsoft-OneCore-ReverseForwarders-Package.cab /Image:E:\

nano-server-dism-add-package

ÖNEMLİ: Eğer c:\dism altındaki DISM.exe’yi PowerShell’den çalıştırıyorsanız “.\dism.exe” başındaki nokta önemli :) Aksi durumda alt sürüm DISM başlar ve hata döner. /PackagePath: yüklenecek CAB paketini, /Image: ise mount edilmiş VHD dosyasının sürücü harfini temsil ediyor.

İhtiyaç duyduğunuz paketler yüklendiyse kurulum bitti demektir. VHD’yi dismount yapmayı unutmayın. Bu işlemi aşağıdaki cmdlet ile veya Disk Management’dan gerçekleştirebilirsiniz..

Dismount-DiskImage -ImagePath D:\nano-s.vhd

Ardından VHD’yi bir VM’e bağlayıp boot etmek için hazırsınız demektir.

5) Hyper-V üzerinde yeni bir VM oluşturun, jenerasyonu Gen1 olsun ve VHD’yi bağlayarak start edin. Ardından Nano Server’ın boot süreci başlar.

Nedenini anlayamadım ama VM’in Nano Server VHD ile boot olması biraz uzun sürüyor. Muhtemelen hala geliştirme aşamasında olan Nano Server’ın boot sürecinde bazı sorunlar var çünkü bu gecikmenin disk hızı veya donanım kaynaklı olmadığından eminim. Ben hem Windows Server 2012 R2 Hyper-V üzerinde hem de Windows Server 2016 TP2 Hyper-V üzerinde ve SSD disk grubuyla test ettim ama durum hep aynı. SSD disk grubunda bir miktar daha hızlı boot olduğu kesin ama yine de önemli bir gecikme söz konusu. Neyse… Bu kadar uğraştan sonra biraz daha bekleyin ve işte karşınızda o meşhur Nano Server :)

windows-server-2016-nano-server

Bu ne yahu şaka mı dediyseniz şayet Nano Server nedir yazısına bir daha göz atmanızı öneririm :) Nano Server yapılandırma ve yönetim işlemlerinin nasıl gerçekleştirileceğini ise bir sonraki yazıda okuyabileceksiniz. Ama o kadar uğraştık bir logon olmadan bırakmam diyenler için şimdilik aşağıdaki birkaç adımı ekliyorum.

Nano Server’a Uzaktan PowerShell ile Bağlanma

  • Önce Nano Server’ın IP adresini öğrenin. Getting Started dokümanlarında Nano Server başlarken console’u izleyin orada DHCP’den almış olduğu IP adresini göreceksiniz gibi bir bilgi var ama şahsen ben göremedim :) Zaten konsolda herhangi bir bilgi de yer almıyor. Bence en kolayı DHCP’ye bakmak :) Mesela VM’e bağlı vNIC’ın MAC adresiyle DHCP’de son dağıtılan IP adresleri arasında karşılaştırma yapabilirsiniz. Veya DNS yapınız var ve kayıt kabul ediyor ise Nano Server kurulumunda default hostname olarak gelen minwinpc‘ye ping atmayı deneyebilirsiniz. Nano Server’ı bulduğunuzda ping’e yanıt vermeyecektir, ama endişelenmeyin.
  • Mümkünse bir Windows 10 veya Windows Server 2016 TP2 üzerinde PowerShell açın ve aşağıdaki komutları IP adresini güncelleyerek çalıştırın.
    • Set-Item WSMan:\localhost\Client\TrustedHosts -Value 10.20.30.217 -Concatenate
    • Enter-PSSession -ComputerName 10.20.30.217 -Credential Administrator
  • Administrator parolası varsayılan olarak boştur. Bu yüzden karşınıza gelecek username/password ekranında parolayı boş bırakmalısınız. İlk logon sonrasında eğer isterseniz değiştirme şansınız var.

nano-server-remote-powershell

Ve bu karşınızdaki de (üstteki) az önce kurulumunu gerçekleştirdiğiniz ve bağlandığınız Nano Server’ın administrator yetkilerindeki uzaktan erişilen komut satırı…

Yazı Etiketleri: , , , , ,

Sayfa Başı ▲

Yorumlar (5)

  1. barış

    Yine mükemmel bir anlatım. Emeğinize sağlık hocam.

  2. Dursun Turan

    Abi sen daha sık yazman gerekiyor :) Çok düzgün bir anlatımın var ve güzel konulara değiniyorsun. Ben rss le takip ediyorum ve yenilikleri hemen öğreniyoruz. Bu arada bir sorumvar. Bu nano server ücretlimi olacak ve üstünde başka şeyler çalışabilecekmi? Belki ileride dns gibi active directory gibi?

  3. Serhat AKINCI

    Sağol Barış :)

    Selam Dursun, Nano Server aslında bir edition (sku/sürüm/versiyon) değil bir Windows Server 2016 varyasyonu (veya kurulum opsiyonu). Henüz kesin olmasa da muhtemelen Nano Server’ı kullanabilmek için öncelikle lisanslı bir Windows Server 2016’ya sahip olmak gerekecek. Ama ücretsiz olması da gayet mümkün, bunu hep birlikte göreceğiz. Öte yandan şimdilik Nano Server üzerinde çalışabilecek görev sayısı sınırlı: Failover Clustering destekleyecek, standalone veya Hyper-V Cluster yapısında node olabilir, yüksek erişilebilir SMB alanları sunmak üzere Scale-out File Server kümesinde görev alabilir, Windows (Docker) ve Hyper-V konteynerleri barındırıp çalıştırabilir ve birtakım bulut uygulamalarını host edebilir… Büyük ihtimalle bu sürümde bunlar dışında ilave görev yer almayacak.

  4. riza

    Serhat hocam peki nano server ı fiziksel bir sunucuya kurabiliyormuyuz?

  5. Serhat AKINCI

    Riza – Kurulabilir.

Yorum Ekle