Windows Sunucu Çekirdeği ile Windows Sunucusunu Düşük Güçlü Bir VPS'ye Sıkıştırma

Windows Sunucu Çekirdeği ile Windows Sunucusunu Düşük Güçlü Bir VPS'ye Sıkıştırma
Windows sistemlerinin oburluğu nedeniyle, VPS ortamı hafif Linux dağıtımlarının hakimiyetindedir: Mint, Colibri OS, Debian veya Ubuntu, amaçlarımız açısından gereksiz olan ağır bir masaüstü ortamından yoksundur. Dedikleri gibi, yalnızca konsol, yalnızca hardcore! Ve aslında bu hiç de abartı değil: Aynı Debian 256 MB bellekle ve 1 Ghz saat hızına sahip bir çekirdekle, yani hemen hemen her "güdükte" başlar. Rahat çalışma için en az 512 MB'a ve biraz daha hızlı bir işlemciye ihtiyacınız olacak. Peki ya size hemen hemen aynı şeyi Windows çalıştıran bir VPS'de de yapabileceğinizi söylesek? Neden üç ila dört hektarlık RAM ve en az birkaç 1,4 GHz saat hızına sahip çekirdek gerektiren ağır bir Windows Server'ı piyasaya sürmeniz gerekmiyor? Sadece Windows Server Core'u kullanın; GUI'den ve bazı hizmetlerden kurtulun. Makalede bunun nasıl yapılacağı hakkında konuşacağız.

Bu Windows Sunucu Çekirdeği kimdir?

Mikes'in resmi web sitesinde bile Windows (sunucu) Çekirdeğinin ne olduğuna dair net bir bilgi yok veya daha doğrusu, orada her şey o kadar kafa karıştırıcı ki hemen anlayamazsınız, ancak ilk sözler Windows Server 2008 dönemine kadar uzanıyor Temel olarak, Windows Core çalışan bir Windows çekirdek sunucusudur (birdenbire!), kendi GUI'sinin boyutuna ve yan hizmetlerin yaklaşık yarısına göre "daha ince".

Windows Core'un ana özelliği, iddiasız donanımı ve PowerShell aracılığıyla tam konsol kontrolüdür.

Microsoft web sitesine gidip teknik gereksinimleri kontrol ederseniz, Windows Server 2016/2019'u başlatmak için en az 2 gig RAM'e ve 1,4 GHz saat hızına sahip en az bir çekirdeğe ihtiyacınız olacaktır. Ancak hepimiz böyle bir konfigürasyonla yalnızca sistemin başlamasını bekleyebileceğimizi, ancak kesinlikle işletim sistemimizin rahat çalışmasını bekleyemeyeceğimizi anlıyoruz. Bu nedenle, Windows Server'a, ucuz bir sanal makine yerine bazı Xeon'larda pahalı bir fiziksel makine sağlamazlarsa, genellikle daha fazla bellek ve işlemciden en az 2 çekirdek/4 iş parçacığı ayrılır.

Aynı zamanda, sunucu sisteminin çekirdeği yalnızca 512 MB bellek gerektirir ve GUI tarafından yalnızca ekrana çizilmek ve sayısız hizmetin çalışır durumda kalmasını sağlamak için tüketilen işlemci kaynakları daha kullanışlı bir şey için kullanılabilir.

Kutudan çıktığı haliyle desteklenen Windows Core hizmetleri ile resmi Microsoft web sitesindeki tam Windows Server'ın karşılaştırmasını burada bulabilirsiniz:

uygulama
sunucu çekirdeği
sunucu ilemasaüstü tecrübesi

Komut istemi
mevcut
mevcut

Windows PowerShell/Microsoft .NET
mevcut
mevcut

Perfmon.exe
kullanılamaz
mevcut

Windbg (GUI)
destekli
mevcut

Resmon.exe
kullanılamaz
mevcut

Regedit
mevcut
mevcut

Fsutil.exe
mevcut
mevcut

Disksnapshot.exe
kullanılamaz
mevcut

diskpart.exe
mevcut
mevcut

diskmgmt.msc
kullanılamaz
mevcut

devmgmt.msc
kullanılamaz
mevcut

Sunucu Yöneticisi
kullanılamaz
mevcut

mmc.exe
kullanılamaz
mevcut

eventvwr
kullanılamaz
mevcut

Wevtutil (Olay sorguları)
mevcut
mevcut

services.msc
kullanılamaz
mevcut

Kumanda panosu
kullanılamaz
mevcut

Windows Güncelleme (GUI)
kullanılamaz
mevcut

Windows Gezgini
kullanılamaz
mevcut

görev çubuğu
kullanılamaz
mevcut

Görev çubuğu bildirimleri
kullanılamaz
mevcut

Vazife
mevcut
mevcut

Internet Explorer veya Edge
kullanılamaz
mevcut

Dahili yardım sistemi
kullanılamaz
mevcut

Windows 10 Kabuğu
kullanılamaz
mevcut

Windows Media Player
kullanılamaz
mevcut

PowerShell
mevcut
mevcut

PowerShell İMKB
kullanılamaz
mevcut

PowerShell IME'si
mevcut
mevcut

Mstsc.exe
kullanılamaz
mevcut

Uzak Masaüstü Hizmetleri
mevcut
mevcut

Hyper-V Yöneticisi
kullanılamaz
mevcut

Gördüğünüz gibi Windows Core'dan çok şey kesildi. Sistemin GUI'siyle ilişkili hizmetler ve süreçlerin yanı sıra, Windows Media Player gibi konsol sanal makinemizde kesinlikle ihtiyaç duyulmayan herhangi bir "çöp" bıçağın altına girdi.

Neredeyse Linux'a benziyor ama öyle değil

Gerçekten Windows Server Core'u Linux dağıtımlarıyla karşılaştırmak istiyorum ama aslında bu tamamen doğru değil. Evet, bu sistemler GUI'nin ve birçok yan hizmetin terk edilmesi nedeniyle kaynak tüketiminin azalması açısından birbirine benzer, ancak operasyon ve bazı montaj yaklaşımları açısından bu hala Windows'tur ve bir Unix sistemi değildir.

En basit örnek, Linux çekirdeğini manuel olarak oluşturarak ve ardından paketleri ve hizmetleri yükleyerek, hafif bir Linux dağıtımının bile ağır ve İsviçre Çakısı'na benzer bir şeye dönüştürülebilmesidir (burada Python hakkında gerçekten bir akordeon şakası yapmak istiyorum) ve “Programlama Dilleri Silah Olsaydı” serisinden bir resim ekleyeceğiz, ancak yapmayacağız). Windows Core'da bu tür bir özgürlük çok daha az çünkü sonuçta bir Microsoft ürünüyle karşı karşıyayız.

Windows Server Core hazır olarak gelir ve varsayılan yapılandırması yukarıdaki tablodan tahmin edilebilir. Desteklenmeyen listeden bir şeye ihtiyacınız varsa, eksik öğeleri konsol aracılığıyla çevrimiçi olarak eklemeniz gerekecektir. Doğru, isteğe bağlı özelliği ve bileşenleri CAB dosyaları olarak indirme yeteneğini unutmamalısınız; bunlar daha sonra kurulumdan önce montaja eklenebilir. Ancak işlem sırasında kesme hizmetlerinden herhangi birinin eksik olduğunu fark ederseniz bu komut dosyası çalışmaz.

Ancak Core sürümünü tam sürümden ayıran şey, çalışmayı durdurmadan sistemi güncelleme ve hizmet ekleme yeteneğidir. Windows Core, yeniden başlatmaya gerek kalmadan paketlerin sıcak haddelenmesini destekler. Sonuç olarak, pratik gözlemlere dayanarak: Windows Core çalıştıran bir makinenin, Windows Server çalıştıran bir makineden yaklaşık 6 kat daha az yeniden başlatılması gerekir; yani ayda bir değil, altı ayda bir.

Yöneticiler için hoş bir bonus, eğer sistem amaçlandığı gibi - konsol aracılığıyla, RDP olmadan - kullanılırsa ve ikinci bir Windows Sunucusuna dönüştürülmezse, tam sürüme kıyasla son derece güvenli hale gelmesidir. Sonuçta, Windows Server'daki güvenlik açıklarının çoğunluğu RDP'den ve aynı RDP aracılığıyla yapılmaması gereken bir şeyi yapan kullanıcının eylemlerinden kaynaklanmaktadır. Bu, Henry Ford'un ve onun arabanın rengine karşı tutumunun hikayesine benziyor: "Her müşteri, istediği renkte bir arabaya sahip olabilir, yeter ki o da olsun." siyah" Sistem için de durum aynı: Kullanıcı sistemle herhangi bir şekilde iletişim kurabilir, asıl önemli olan bunu aracılığıyla yapmasıdır. konsol.

Windows Server 2019 Core'u yükleme ve yönetme

Daha önce Windows Core'un aslında GUI sarmalayıcısı olmayan Windows Server olduğundan bahsetmiştik. Yani, Windows Server'ın hemen hemen her sürümünü çekirdek sürüm olarak kullanabilirsiniz, yani GUI'den vazgeçebilirsiniz. Windows Server 2019 ailesindeki ürünler için bu, 3 sunucu yapısından 4'üdür: çekirdek modu Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter ve Hyper-V Server 2019 için mevcuttur, yani yalnızca Windows Server 2019 Essentials hariçtir bu listeden.

Bu durumda aslında Windows Server Core kurulum paketini aramanıza gerek yok. Standart Microsoft yükleyicisinde, çekirdek sürüm tam anlamıyla varsayılan olarak sunulurken, GUI sürümünün manuel olarak seçilmesi gerekir:

Windows Sunucu Çekirdeği ile Windows Sunucusunu Düşük Güçlü Bir VPS'ye Sıkıştırma
Aslında, sistemi yönetmek için üretici tarafından varsayılan olarak sunulan PowerShell'den daha fazla seçenek vardır. Windows Server Core'daki bir sanal makineyi en az beş farklı şekilde yönetebilirsiniz:

  • Uzak PowerShell;
  • Uzak Sunucu Yönetim Araçları (RSAT);
  • Windows Yönetim Merkezi;
  • yapılandırma;
  • Sunucu Yöneticisi.

İlk üç pozisyon en çok ilgi çekicidir: standart PowerShell, RSAT ve Windows Admin Center. Ancak, araçlardan birinin faydalarını alırken aynı zamanda onun getirdiği kısıtlamalara da maruz kaldığımızı anlamak önemlidir.

Konsolun yeteneklerini açıklamayacağız; PowerShell, bariz artıları ve eksileri ile PowerShell'dir. RSAT ve WAC ile her şey biraz daha karmaşıktır. 

WAC, kayıt defterini düzenlemek ve diskleri ve aygıtları yönetmek gibi önemli sistem kontrollerine erişmenizi sağlar. İlk durumda RSAT yalnızca görüntüleme modunda çalışır ve herhangi bir değişiklik yapmanıza izin vermez ve diskleri ve fiziksel aygıtları yönetmek için Uzak Sunucu Yönetim Araçları bir GUI gerektirir, bu bizim durumumuzda geçerli değildir. Genel olarak RSAT, kayıt defterini düzenlerken dosyalar ve buna bağlı olarak güncellemeler, programların kurulumu/kaldırılmasıyla çalışamaz.

▍Sistem yönetimi

 

WAC
RSAT

Bileşen Yönetimi
Evet
Evet

Kayıt Defteri Düzenleyicisi
Evet
Hayır

Ağ yönetimi
Evet
Evet

Olay görüntüleyicisi
Evet
Evet

Paylaşılan klasörler
Evet
Evet

Disk Yönetimi
Evet
Yalnızca GUI'li sunucular için

Görev Zamanlayıcısı
Evet
Evet

Cihaz yönetimi
Evet
Yalnızca GUI'li sunucular için

Dosya yönetimi
Evet
Hayır

Kullanıcı yönetimi
Evet
Evet

Grup yönetimi
Evet
Evet

Sertifika Yönetimi
Evet
Evet

Güncellemeler
Evet
Hayır

Programları kaldırma
Evet
Hayır

Sistem Monitörü
Evet
Evet

Öte yandan, RSAT bize makinedeki roller üzerinde tam kontrol sağlarken Windows Admin Center bu konuda tam anlamıyla hiçbir şey yapamaz. Netlik sağlamak amacıyla RSAT ve WAC'ın bu açıdan yeteneklerinin bir karşılaştırması aşağıda verilmiştir:

▍Rol yönetimi

 

WAC
RSAT

Gelişmiş Konu Koruması
ÖN İZLEME
Hayır

Windows Defender
ÖN İZLEME
Evet

Konteynerler
ÖN İZLEME
Evet

AD Yönetim Merkezi
ÖN İZLEME
Evet

AD Etki Alanı ve Güvenler
Hayır
Evet

Reklam siteleri ve hizmetleri
Hayır
Evet

DHCP
ÖN İZLEME
Evet

DNS
ÖN İZLEME
Evet

DFS Yöneticisi
Hayır
Evet

GPO Yöneticisi
Hayır
Evet

IIS Yöneticisi
Hayır
Evet

Yani, GUI ve PowerShell'i diğer kontroller lehine terk edersek, bir tür tek araç kullanmaktan kurtulamayacağımız zaten açık: tüm cephelerde tam yönetim için en azından ihtiyacımız olacak RSAT ve WAC'ın bir kombinasyonu.

Ancak WAC'ı kullanmak için 150-180 megabayt RAM ödemeniz gerekeceğini unutmamanız gerekiyor. Bağlandığında, Windows Admin Center sunucu tarafında 3-4 oturum oluşturur ve bu oturumlar, aracın sanal makineyle bağlantısı kesildiğinde bile sonlandırılmaz. WAC ayrıca PowerShell'in eski sürümleriyle de çalışmaz, bu nedenle en az PowerShell 5.0'a ihtiyacınız olacaktır. Bütün bunlar bizim kemer sıkma paradigmamıza aykırıdır, ancak rahatlık için para ödemeniz gerekir. Bizim durumumuzda - RAM.

Sunucu Çekirdeğini yönetmek için başka bir seçenek de, tam teşekküllü bir montajda arayüzle birlikte gelen tonlarca çöpün ortalıkta sürüklenmemesi için GUI'yi üçüncü taraf araçları kullanarak yüklemektir.

Bu durumda iki seçeneğimiz var: orijinal Explorer'ı sisteme yaymak veya Explorer++ kullanmak. İkincisine alternatif olarak herhangi bir dosya yöneticisi uygundur: Total Commander, FAR Manager, Double Commander vb. RAM tasarrufu sizin için kritikse ikincisi tercih edilir. Bir ağ klasörü oluşturup bunu konsol veya zamanlayıcı aracılığıyla başlatarak Explorer++ veya başka bir dosya yöneticisini ekleyebilirsiniz.

Tam teşekküllü bir Explorer yüklemek, kullanıcı arayüzü ile donatılmış yazılımlarla çalışma açısından bize daha fazla fırsat verecektir. Bunun için biz iletişime geçmek zorunda kalacak MMC, Eventvwr, PerfMon, Resmon, Explorer.exe ve hatta Powershell ISE'yi sisteme döndürecek Sunucu Çekirdeği İsteğe Bağlı Uygulama Uyumluluk Özelliğine (FOD). Ancak, WAC'da olduğu gibi bunun bedelini ödemek zorunda kalacağız: yaklaşık 150-200 megabayt RAM'i geri dönüşü olmayan bir şekilde kaybedeceğiz ve bu, explorer.exe ve diğer hizmetler tarafından acımasızca yutulacak. Makinede aktif kullanıcı olmasa bile.

Windows Sunucu Çekirdeği ile Windows Sunucusunu Düşük Güçlü Bir VPS'ye Sıkıştırma
Windows Sunucu Çekirdeği ile Windows Sunucusunu Düşük Güçlü Bir VPS'ye Sıkıştırma
Yerel Explorer paketi olan ve olmayan makinelerde sistemin bellek tüketimi bu şekilde görünür.

Burada mantıklı bir soru ortaya çıkıyor: sola veya sağa herhangi bir adım RAM tüketiminde artışa yol açıyorsa neden PowerShell, FOD, dosya yöneticileriyle tüm bu danslar yapılıyor? Windows Server 2016/2019'u indirip beyaz bir adam gibi yaşayabilmek varken neden Windows Server Core üzerinde rahat çalışmayı sağlamak için bir dizi araçla kendinizi bulaştırıp bir yandan diğer yana karıştırasınız ki?

Sunucu Çekirdeği kullanmanın birkaç nedeni vardır. Birincisi: mevcut bellek tüketimi bunun neredeyse yarısı kadar. Hatırlarsanız başlangıçta yazımızın temelini bu durum oluşturuyordu. Karşılaştırma için Windows Server 2019'un bellek tüketimini burada bulabilirsiniz; hemen yukarıdaki ekran görüntüleri ile karşılaştırın:

Windows Sunucu Çekirdeği ile Windows Sunucusunu Düşük Güçlü Bir VPS'ye Sıkıştırma
Ve böylece Core'da 1146 MB yerine 655 MB bellek tüketimi. 

WAC'a ihtiyacınız olmadığını ve orijinal Explorer yerine Explorer++ kullanacağınızı varsayarsak, o zaman yine de neredeyse yarım hektar kazanacaksınız Windows Server çalıştıran her sanal makinede. Yalnızca bir sanal makine varsa, artış önemsizdir, ancak beş tane varsa? GUI'ye sahip olmanın önemli olduğu nokta burasıdır, özellikle de ihtiyacınız yoksa. 

İkincisi, Windows Server Çekirdeği etrafındaki herhangi bir dans, Windows Server - RDP'yi çalıştırmanın ana sorunuyla ve onun güvenliğiyle (daha doğrusu, tamamen yokluğuyla) savaşmanıza yol açmayacak. Windows Core, FOD, RSAT ve WAC ile kaplanmış olsa bile hala RDP'siz bir sunucudur, yani mevcut saldırıların %95'ine karşı savunmasızdır.

Geriye kalan

Genel olarak Windows Core, herhangi bir standart Linux dağıtımından yalnızca biraz daha kalındır ancak çok daha işlevseldir. Kaynakları boşaltmanız gerekiyorsa ve konsol, WAC ve RSAT ile çalışmaya ve tam teşekküllü bir GUI yerine dosya yöneticilerini kullanmaya hazırsanız, Core'a dikkat etmeye değer. Dahası, tam donanımlı bir Windows için fazladan ödeme yapmaktan kaçınabilecek ve tasarruf ettiğiniz parayı Windows'unuzu yükseltmek için harcayabileceksiniz. VPS, oraya örneğin RAM ekleyerek. Kolaylık sağlamak için, Windows Server Core'u ürünümüze ekledik. pazar yeri.

Windows Sunucu Çekirdeği ile Windows Sunucusunu Düşük Güçlü Bir VPS'ye Sıkıştırma

Kaynak: habr.com

Yorum ekle