Windows Server 2019 Full Desktop (GUI) ile Windows Server 2019 Core Karşılaştırma/İnceleme
Önceki yazılarıma göre aslında makale sırası biraz kaydı. Hyper-V Server anlatmadan önce ilk olarak Server Core’dan başlamalıydım yani bu makaleden. Temelde bu makaleyi “Neden Windows Server Core tercih etmeliyim?” sorusuna cevap olarak yazmak istedim. Kıyaslamaları, farkları ve Server Core nedir? Neden tercih edilmesi gerektiğini ben de deneyimlerimden önce ağırlıklı olarak başka teknik makalelerden ve Microsoft dokümanlarından okudum. Hatta 2019 sürümüne kadar hiç bir projemde kullanmadım. Hepimizin bazen kurulum ekranında 2012’den beri yanlışlıkla Core seçtiği senaryolardan bahsetmiyorum :) Şimdi gerçek manada bir incelemeyi kendimce yaparak neden Core platformunu projelerimde tercih ettiğimi anlatmaya çalışacağım.
Windows Server Core Nedir ?
Biz sistem yöneticileri olarak bir Windows’tan ne bekleriz? Çabuk yüklensin, çabuk açılsın, daha az bakım ve güncelleme gerektirsin, güvenli olsun, az kaynak tüketsin vs… Bazı fantastik taleplerimiz de olabiliyor tabi :) Mesela hiç güncellemeye ihtiyaç duymasın, kur ve unut olsun gibi…
Tecrübe neydi? Emek? Evet! Sevgi? Evet! Ama asıl tecrübe hayatta yediğimiz kazıkların bileşkesidir. İşte bu talepler, yaşanılan tecrübeler ve yenilen kazıkların sonucunda ortaya çıkmıştır. Bundan ötürü de Microsoft, Windows Server with Full Desktop eski adı GUI’e alternatif olarak Core ve Nano Server platformlarını, sürümlere geliştirmiştir. Nano Server başka bir konu ona girmeyeceğim çünkü assolistler en son girer.
Windows Server Core, Microsoft tarafından minimal ihtiyaçlar düşünülerek tasarlanmış bir Windows Server platform seçeneğidir. Tıpkı “Full Desktop” yüklemede olduğu gibi Standart ve Datacenter sürümleri vardır. Lisanslamada grafik arabirimli sürümle bir farkı yoktur. Esasında ayrı bir sürüm zaten olmadığından kurulum platformu demek daha doğrudur. Windows Server 2019 üzerinde 2016 sürümünde olduğu gibi artık yükleme ekranından seçim yaparken Core yada GUI ibaresi kalkmıştır. Yükleme ekranında Full Desktop menüsünü seçmediğiniz takdirde yükleme Core olarak gerçekleşir. Bu durum Server Core’un geleceğinin ne kadar önemli olduğu hakkında bizlere bir işarettir.
Core kelime anlamı olarak “Çekirdek” demektir. Sunucu çekirdeği ihtiyaç duyulmayan birçok servis ve bileşenden arındırılarak daha az rol, servis ve uygulama barındırmaktadır. Bu durum sistemleri daha az yormakta, daha az yer kaplamakta ve daha az bakım gerekmektedir. Bu yükleme seçeneğinde alıştığımız cıvıl cıvıl bir masaüstü ve birçok grafiksel yönetim araçları bizleri karşılamamakta ve sunucu üzerinde desteklememektedir. İyi de nasıl yöneteceğiz? Böyle;
Server Core yönetimi nasıl yapılır?
- Windows Admin Center kullanarak (uzak)
- Powershell kullanarak (yerel yada uzak)
- Remote Server Administration Tool (RSAT) kullanarak (uzak)
- Server Manager kullanarak (uzaktan)
- Microsoft Management Console (MMC Snap-in) kullanarak (uzaktan)
- Makineye RDP yaparak (uzaktan)
Kısmen yada tamamen uzaktan yönetime göre tasarlanmıştır. Uzaktan yönetim birçok konuda vaktinizi verimli kullanmak adına iyidir. Zaten full desktop platformlarda da uzaktan yönetilebiliyor diyebilirsiniz. Haklısınız tabi ama marifeti sadece uzaktan yönetim değil. Server Core bazı grafiksel araçlardan yoksun olduğu için tasarımı gereği uzaktan yönetime daha yatkın.
Server Core, Full Desktop’a göre hepsini olmasa da çoğu rol, servis ve özelliği desteklemektedir. Neye ihtiyacınız varsa ve destekleniyorsa ona göre tercih etmelisiniz. Etmelisiniz diyorum çünkü her senaryo Server Core için uygun olmayabilir. Mesela, Remote Desktop Services rolünü eklemeye kalktığınızda sadece Remote Desktop Licencing hizmetini bu platformda kullanabilirsiniz. RD Licencing kritik bir roldür ve güvenliği icap eder ama diğer RDS rollerini grafik desteğinin olmamasından ötürü Server Core üzerine kuramazsınız. Burada detaylı bir listesini görebilirsiniz. Ben bir kısmını özet olarak aşağıya ekledim. Desteklenmeyen rol ve servisler için de buraya bakabilirsiniz.
İnceleme için sanalda kullandığım işletim sistemi Windows Server 2019 Standard sürümüdür. İki adet birisi Core birisi Full Desktop olmak üzere Hyper-V Server 2019 (core) üzerine kurulumları yapıp internete çıkacak şekilde ayarladım.
Her iki işletim sistemi Core ve Full Desktop için ayırdığım sistem kaynağı 1 CPU, 4096MB Ram ve 50GB disk alanıdır. En alta yaptığım tüm incelemenin özet grafiği paylaşacağım.
Yükleme Hızı
Sunucuyu kurarken ilk olarak Core sunucunun bariz bir şekilde daha hızlı yüklenip hazır hale geldiğini şahit oldum. Yükleme hızını değiştiren faktörler olduğu için süre tutmak yerine aşağıdaki ekran görüntülerini aldım. Her ikisini de aynı diske aynı anda yüklemeyi başlattım. Full Desktop sunucunun yüklemesi bitmeden Core sunucunun konfigürasyonu bile bitmişti. Ekran görüntüsünde soldaki Full Desktop sağdaki ekran ise Server Core sunucu.
Full Desktop vs Server Core İlk Yükleme Sonrası Bellek (RAM) Karşılaştırma
Core üzerinde ram miktarı Full Desktop’a göre %56 daha düşüktür. Henüz bir güncelleme işlemi yapmadığımı da hatırlatırım.
Full Desktop vs Server Core Sanal Disk Boyutları Karşılaştırması
Fikizsel disklerde bu boyutlar daha aşağıda olacaktır. Core sunucunun dijital ayak izi (footprint) her durumda daha düşük kalmaktadır.
İlk Kurulumdan Sonra Disk Boyutu (Güncelleme / patch İşlemi Yapılmadı)
Güncelleme (patch) İşlemleri Yapıldıktan Sonra Disk Boyutu
İlk kurulumdan sonra server core, full desktop’a göre 3.5 GB daha az yer kapladı. Güncelleme işleminden sonra boyut farkı 5 GB’a kadar çıktı. Muhtemelen bir kaç yıl içerisinde artan yamalarla fark daha da açılacaktır. 2012 ve 2016 sunucularda Core kurarak bunu görebilirsiniz.
Full Desktop vs Server Core Servisler (Hizmetler) Karşılaştırması
Burada belirtmeliyim ki sonuçlar her ölçüm için %100 aynı rakamlarda çıkmayabilir. Ben ekran görüntüsünü, sunucunun açık kaldığı süreye bakmadan aldım. Yani bazen ilk açılışta bazen saatlerce açık kalan sunucuda o an çalışan servis sayıları üç aşağı beş yukarı bir farkla aynı olmayabilir. Ama yüklü gelen servisler için yükleme yapılan ISO dosyasında bir değişiklik olmadıkça sayı değişmeyecektir.
Yüklü gelen hizmetleri Powershell ile saydırmak için;
Get-Service | Where-Object {$_.Status } | Measure-Object | Select-Object Count
Sistemde o an çalışan servisleri Powershell ile saydırmak için;
Get-Service | Where-Object {$_.Status -eq “running” } | Measure-Object | Select-Object Count
Core sunucu varsayılanda Full Desktop’a göre %43 daha az arkaplan hizmeti ile gelirken, çalışan arkaplan hizmetinde %35 bir fark vardır. Bu fark yine bizlere daha az kaynak tüketimi ve daha fazla performans, güvenlik olarak dönecektir.
Güncelleme : 2021 Haziran, Temmuz ve Ağustos 2021 ayında ortalığı kasıp kavuran ve hala devam eden Print Nightmare zaafiyeti tüm windows sürümlerini etkilerken Core platformu bu zaafiyetten hiç etkilenmedi çünkü “spooler” servisi yüklü gelmemektedir :) Kritik servislerinde Core kullanan benim gibi sistem yöneticisi arkadaşlar bu konuda rahat olabilirler.
Full Desktop vs Core Çalışan İşlemler (process) Karşılaştırması
Prosesler doğrudan disk üzerindeki IO (girdi-çıktı) değerlerine etki eden bir sonuç. Server Core, Full Desktop’a göre varsayılanda 30 kadar daha az işlem dosaysı çalıştırıyor.
Çalışan işlemleri powershell kullanarak saydırmak için;
Get-Process | Measure-Object | Select-Object Count
Full Desktop ve Server Core Açık Port Karşılaştırması
Port, iletişim kuran dijital sistemlerin (sunucu, istemci, güvenlik duvarı, router vs) dışarıya veya içeriye açılan kapısıdır. Tıpkı ülklerin sınır kapısı gibi. Kapı açıldığında güvenlik duvarı da açık ise kontrollü bir şekilde trafik denetlenerek içeri girişine yada dışarı çıkışına izin verilir. Port numaraları 1'den başlar ve 65000 civarına kadar çıkabilir. Açık kapı demek her ne kadar güvenlik duvarı tarafından denetlense bile güvenlik zaafiyeti demektir. Çünkü güvenlik duvarları geçilemez bir duvar değildir. Kullanılmayan portların kapatılması atak yüzeyinin düşürülmesi ve güvenliğin arttırılması açısından çok önemli güvenlik sıkılaştırma süreçlerinden birisidir. Ayrıca ne kadar az sayıda port açık olursa güvenlik duvarının trafiği denetlemesi gereken port sayısı da azalacağından yükü hafifleyeceği için kaynak tüketimi de bir o kadar azalacaktır. Networkçü arkadaşlar daha iy ibilir fiziki güvenlik duvarlarını ne kadar fonksiyonel kullanırsanız üzerinde yük o kadar artar.
Açık Port’ları powershell kullanarak saydırmak için;
netstat -an | Measure-Object | Select-Object Count
Server Core sunucuda, Full Desktop’a göre 11 adet daha az açık port bulunmaktadır.
Sonuç olarak farklarını özetlersek
Windows Server Core, Full Desktop’a göre;
- Daha az kaynak tüketimi
- Daha az güvenli riski taşıyan bir sunucu
- Daha az kesinti
- Daha az bakım gereksinimi
- Daha fazla performans
gibi avantajlar sağlamaktadır. Ben 2019 sürümünü inceledim ama bu durum bazı istatistik sayı ve oranları için olmasa da genel olarak diğer eski Windows Server sürümleri için de geçerlidir. Talepleriniz Server Core ile uyuştuğunda Full Desktop yüklemeye göre özellikle kritik sunucularda avantajlıdır. Desteklenmeyen yada önerilmeyen rol, özellik ve servislerde yine Full Desktop kullanmaya devam edeceğiz. Server Core sunucuyu yönetmek belki full desktop’a göre biraz daha zor ama alışkanlıkları da değiştirmek lazım.
Eğer yeterince Server Core yönetimi konusuna hakim değilseniz iş kritik sunucularınızı Server Core platformu üzerine planlamamanzı tavsiye ederim. Aksi takdirde bu defa da yöntemsel sorunlar yaşarsınız. Server Core üzerine özellikle yönetimi ve kurulumlarını medium blogumda anlatmaya devam edeceğim. Konuyu fazla uzatmadan özet excel grafiğini aşağıya bırakıyorum.