Hyper-V Dynamic Memory Nedir, Nasıl Çalışır, Nasıl Uygulanır?
Merhabalar;
Sanallaştırma teknolojisinin enerji tasarrufu, yönetim kolaylığı ve fiziksel sunucuların artan kapasitelerinin çok daha verimli kullanılmasını sağlaması neticesinde kurum ve şirketlerin sistem odası maliyetleri aşağı çekilmiş oldu. Ancak sanallaştırma teknolojisini uygulamanın oldukça kolay olması da bu konuda bilgi ve deneyim sahibi olmayan herkesin önüne gelen her sunucuyu sanallaştırması ile sonuçlandı. Bu nedenle bazı şirket ve kurumlar eskisinden de kötü bir duruma geldiler. Ellerinde ki fiziksel sunucuları kapasiteleri aşırı zorlanmaya başladı ve bu da ciddi performans kayıplarına ile yönetim maliyetlerinin artmasına neden oldu. Peki sanallaştırma işlemine geçmeden önce neler yapılmalıdır kısaca bakalım,
- Sanallaştırılması düşünülen sunucular çeşitli yazılımlar vasıtasıyla takip edilir, kullandığı işlemci, bellek ve ağ yoğunluk miktarları yaklaşık olarak tespit edilir.
- İlgili sunucunun ne kadarlık bir disk kullanımı olduğu da hem boyut hem de okuma/yazma performansı izlenerek takip edilir.
- Sunucunun ağ kartının yoğunluğu da izlenmesi gereken başka önemli bir etkendir.
- Sanallaştırılacak fiziksel sunucuların sayısı da sanallaştırma sunucusunun performansını doğrudan etkilediği için hazırlanırken dikkat edilmesi gereken etkenlerden birisidir.
- Sanallaştırmada kullanılacak fiziksel sunucuların yedekli bir yapı içerisinde kurulması faydalı olacaktır.
Microsoft War on Cost Team adlı takımın sanallaştırma ürünlerinin şirket bünyesine uygulanması ve yönetilmesinin maliyetleri konusunda yapılan araştırma sonucuna ait raporu okurken dikkatimi çeken ilginç bir detayı paylaşmak isterim. Yapılan araştırma sonuca göre sanallaştırma platformu olarak kullanılan fiziksel sunucularının donanım özellikleri ile ilgili çarpıcı ayrıntıları aşağıda maddeler halinde bulabilirsiniz.
- %69 unda sadece iki çekirdekli işlemci bulunuyor.
- %23 ünde dört çekirdekli işlemci bulunuyor.
- Sadece % 8 inde dört çekirdekten fazla işlemci bulunuyor.
- %49 unda ise sadece 8 Gb bellek bulunuyor.
Microsoft Cost Team in Amerika’ da 2009 sonundan 2010 başlarına kadar tamamı ABD’ de bulunan 154 şirkete (her şirkette ki PC sayısı 500 ve üzeridir) sorulan sorulan sorulardan alınan cevaplara göre oluşturulan ve okumanızı tavsiye ettiğim bu rapora http://download.microsoft.com/download/1/F/8/1F8BD4EF-31CC-4059-9A65-4A51B3B4BC98/Hyper-V-vs-VMware-ESX-and-vShpere-WP.pdf adresinden ulaşabilirsiniz.
Sanallaştırma sunucusu olarak kullanılacak fiziksel sunuclarda ise aranan temel nitelikler aşağıda ki gibi düşünülebilir.
- Orta ve Yüksek seviye işlemci gücü (Günümüzde ki orta seviyede ki sunucularda Intel işlemciler 4 ya da 6 çekirdekli ve 4 adet fiziksel işlemci ile toplamda 24 çekirdek kadar bir işlemci sayısı sunulabilmektedir)
- Orta ve Yüksek seviye fiziksel bellek miktarı (Günümüzde yeni nesil Intel işlemciler ile birlikte orta seviyede ki sunucularda 24-48-96 Gb bellek büyüklükleri elde edilebilmektedir. Hyper-V 1 Tb bellek miktarını desteklemektedir)
Ancak yukarıda ki gelişmiş donanımları bir sunucu ile birlikte almak istediğimizde karşımıza oldukça yüksek maliyetler çıkabilmektedir. Şirketler ve kurumlar da almayı planladıkları bu sunucu ya da sunucuların maliyetini gerçekten karşılayıp karşılamayacağını, aldıkları sunucunun kaynaklarından tam olarak yararlanıp yararlanamayacaklarını sorgulayacaklardır haliyle. Burada ki en temel problem yapılacak sanallaştırma işlemi için alınacak olan sunucu özelliklerinin gereğinden fazla ya da düşük konfigurasyonda olmasıdır. Bu da yapılan sanallaştırma işlemin sonucu elde edilecek performansı ile doğru orantılı olacaktır. Peki düşük bellek konfigurasyonlu bir sanallaştırma sunucusunda belleği çok daha verimli kullanıp ihtiyaç duyulan bellek sanal makineler arasında gerçek zamanlı olarak kaydırılabilse ne kadar kullanışlı olurdu. Böylece sanallaştırma sunucumuz üzerinde çalıştırabileceğimizden daha fazla sayıda sanal makineyi performans kaybı yaşamadan ya da az bir performans kaybı yaşayarak barındırabilirdik. Bu da bize hem kaynakları çok daha verimli kullanma imkanı sağladığından fazla donanım alımlarından kurtulmuş olurduk.
Sanallaştırma işlemi fiziksel bir sunucu üzerine kurulan Hypervisor uygulaması sayesinde gerçekleştirmektedir. Piyasa da sanallaştırma teknolojisini uygulayan firmalar mevcut ancak hepsi farklı teknolojiler kullanmaktadırlar. Windows çalışma mantığı itibari ile ihtiyaç duyduğu bellek miktarı sahip olduğundan fazla olduğunda belleği kontrol edip belli bir süredir aktif olmayanları disk üzerinde oluşturduğu swap (paging işlemi) dosyasına aktarıp gerçek bellek üzerinde yer açar ve buraya o an ihtiyaç duyulan uygulama ya da servisleri yerleştirir. Bu işlem performans kaybına sebep olmaktadır. Çünkü bellek diskten her zaman çok daha hızlıdır. Dolayısıyla Dynamic Memory özelliği bu yapı üzerine kurulmamıştır. Bunun en önemli sebebi sanal makinelerimizin vhd dosyaları disk üzerine bulunması ve bunlara yoğun miktarda okuma/yazma işlemi yapılmakta eğer bu işlemin üzerine bir de swap diski eklenirse bu performansı oldukça olumsuz etkileyecektir. Memory Overcommit ya da Second Level Paging olarak adlandırılan bu yöntemi kullananan VMware, sanallaştırma platformlarında ciddi performans kayıpları yaşatacak olması sebebiyle bu yöntemin kullanılmasını tavsiye etmemektedir ve sanallaştırma sunucularının sahip olduğu fiziksel bellek miktarının üzerinde çalışan sanal makinelere atanmış olan bellek miktarından fazla olmasını önermektedir. Bunun nedenini bir örnek ile açıklayalım. İki VMware sunucumuz ve üzerlerinde de belirli sayıda sanal makine olsun. Ancak VMware sunucularının bellekleri yeterli olmadığından bazı sanal makinelerin her açıldığında kendileri için oluşturulan ve sanal makinenin sahip olduğu bellek kadar sanallaştırma sunucusunun diski üzerinde yer tutan swap dosyalarını kullanmaya başladığını düşünelim. Ardından bu sanal makinelerden birisini çalıştığı VMware sunucusundan diğerine vMotion teknolojisi ile aktarmaya çalışalım. Bu durumda diğer VMware sunucusuna sanal makinenin o an ki bellek içeriği kopyalanırken kullandığı swap dosyasının içeriğide kopyalanacaktır. Bu da iki katı yük ve buna bağlı olarak yüksek performans kaybı ile birlikte zaman kaybını da berberinde getirecektir.
Burada konuşacağımız ürün Windows Server 2008 R2 ile birlikte gelen Hyper-V sanallaştırma platformu ve bu ürün için çıkacak olan Service Pack 1 güncelleştirme paketi ile birlikte gelecek olan Dynamic Memory özelliği olacak. Ancak bu özelliği anlatmadan önce işletim sisteminde bellek nasıl çalışır, işlemci belleği nasıl yönetir kısaca bunlardan bahsetmek istiyorum.
Page Sharing
İşlemcimiz fiziksel bellek adresleri ile buna karşılık gelen sanal bellek adreslerini bir tablo içerisinde tutar. Bu tabloya page table denir. Sistemde çalışan uygulamalar fiziksel bellek adresler yerine sanal bellek adreslerini görürler. Bu nedenle bir uygulama bellek üzerinde ki bir adrese erişmek istediğinde talep ettiği alan aslında sanal bellek adresidir. İşlemcimiz bu talebi alır ve kendinde ki fiziksel bellek adresinin olduğu tabloya bakarak karşılaştırır ve uygulamaya istemiş olduğu adresi verir. Bu işlemin yapılabilmesi, işlemcinin talep edilen her adres için bu işlemi defalarca yapması anlamına gelir ki bu da vakit kaybı demektir. Bu işlemin süresini kısaltmak için TLB cache (translation lookaside buffer) adı verilen cahce (ön bellek) mekanizması kullanır. TLB cache içerisinde en çok talep edilen adreslerin bir listesi bulunur ancak burada en fazla 2 MB lık veri tutulabilir (bunlarda 4 Kb lık küçük verilerden oluşur). Peki uygulamalar neden direk fiziksel bellek adreslerine eriştirilmezler de sanal bellek adresini kullanmaları gerekir. Bunun cevabı işletim sisteminin bellek yönetimi olarak verebiliriz. Uygulamalar belleğe yüklendiklerinde veya kaldırıldıklarında fiziksel bellek üzerinde parçalanmalara (fragmantation) sebep olurlar. Dolayısıyla bellek üzerinde farklı yerlerde kullanılmayan küçük alanlar kalmış olur (bunu disk üzerindeki dosyaların parçalanması gibi düşünebiliriz). İşletim sistemi belleğin en etkin biçimde kullanılmasından sorumludur. Bu nedenle küçük alanları çeşitlli taşıma işlemleri yaparak tek bir blok haline getirir ve böylece kullanılamayan kayıp bellek alanı kalmamasını sağlar. Eğer uygulamalar direk fiziksel bellek adreslerine erişmiş olsa uygulama daha önce ulaşmış olduğu bellek adresine yukarıda ki optimizasyon sonrasında tekrar ulaşmaya çalıştığında bu alan işletim sistemi tarafından başka bir bellek alanına taşındığından ulaşamayacak ve bu da uygulamada hata oluşmasına ve çalışmayı durdurmasına sebep olacaktır. Bu durumun önüne geçmek için işlemci fiziksel bellek adreslerini sanal bellek adreslerine dönüştürür ve uygulamaların bu sanal bellek adresleri üzerinde hep aynı alanı görebilmelerini sağlar:
Page table içerisinde boyutları 4 Kb olan küçük veriler bulunur. İşlemci eğer TLB içerisinde aradığı bellek adresini bulamaz ise Page table içerisine giderek bu 4 Kb lık dosyalara teker teker bakması ve aradığı adresi bulması gerekecektir. Bu işlem 4 Gb bellekli bir sistemde performansa çok etki etmese de (4 Gb bellekli bir sistemde page table içerisinde 1 milyon küçük veri bulunur) günümüz sistemlerinde ki büyük bellekler düşünüldüğünde (ki işlemcilerin destekledikleri bellek miktarı her geçen gün artmaktadır. Örneğin Intel Nehalem serisi işlemciler soket başına 256 Gb belleği desteklemektedirler. Dolayısıyla dört fiziksel işlemci bulunan bir sunucuda toplam 1Tb bellek miktarına ulaşmak mümkündür) bu ciddi bir zaman kaybına neden olacaktır (Örneğin, 32 Gb lık bellek bulunan bir sistemde toplam 8 milyon küçük veri bulunur. Benzer şekilde 64 Gb lık bir sistemde toplam 16 milyon küçük veri bulunur). Arama sırasında ki zaman kaybını azaltmak için Large Memory Pages teknolojisi kullanılır. Large Memory Pages de page table içerisinde ki küçük verilerin herbirisinin boyutu 4 Kb yerine 2 MB dır. Böylece TLB cache içerisinde 16 MB lık bir veri tutulabilecektir (Bu durumda 64 Gb lık bir sistemde ki Page table içerisinde 16 milyon yerine toplam sadece 32000 adet küçük veri tutulacaktır). Dolayısıyla TLB cache içerisinde daha fazla veri tutularak performans arttırılmış olur. Ayrıca toplamda page table içerisinde tutulan verilerin de sayısı azaltılarak burada yapılacak bir aramada da performans arttırılmış olacaktır.
Large Memory Pages ın anlamlı çalışabilmesi için işlemcinin SLAT (Second Level Address Translation) donanımına sahip olması gerekmektedir. Bu teknoloji Intel işlemcilerinde Extended Page Tables (EPT) olarak isimlendirilirken AMD işlemcilerinde Rapid Virtualization Indexing (RVI) ya da Nested Page Tables (NPT) olarak isimlendirilmektedir. Intel işlemcilerinden Nehalem 55xx serisi Xeon işlemciler bu teknolojiye sahiptirler. AMD tarafında ise Opteron 6000 serisi işlemciler bu teknolojiyi desteklemektedirler. Sanal bellek adreslerinin fiziksel bellek adreslerine çevrilme işi işlemci üzerinden alınarak SLAT donanımı ile yapılmaktadır. Bu sayede kazanılan performans artışının en az %20 olması da dikkat çekicidir. Bu nedenle sanallaştırma için donanım alınırken işlemcimizin bu özelliği destekleyen yeni nesillerden olmasına dikkat etmeliyiz. Large Memory desteği olan Windows işletim sistemlerinin listesini aşağıda bulabilirsiniz;
- Windows Server 2008 ve Windows Server 2008 R2 (32 yada 64 bit sürümleri)
- Windows Server 2008 R2 Hyper-V Server (32 yada 64 bit sürümleri)
- Windows Vista ve Windows 7 (32 yada 64 bit sürümleri)
Dynamic Memory
Windows Server 2008 R2 SP1 güncellemesi ile birlikte gelecek olan Dynamic Memory özelliği genel olarak sanallaştırma sunucusu üzerinde ki toplam fiziksel belleği bir havuzun içerisine koyar ve buradan sanal makinelerin ilgili ayarlarına göre ihtiyaç duyduğu fazla belleği temin eder. Dynamic Memory öncesinde sanal makine başlatıldığında kendisine atanmış olan bellek miktarı fiziksel bellek üzerinde ayrılıp blokelenir ve sanal makine kapatılana kadar burada tutulur, ne zaman ki sanal makine kapatılır kendisi için ayrılmış olan bellek miktarı sisteme iade edilmekteydi. Dolayısıyla baştan ayarlanan bellek miktarının dışına sanal makine çalışır durumda iken çıkılamamaktadır. Bu da sanallaştırma sunucumuz üzerinde ki fiziksel bellek miktarı ve sanal makinelerimize ayırmayı planladığımız bellek boyutlarına göre belirli sayıda ki sanal makineyi çalışır durumda tutabilmemiz anlamına gelmektedir. Ancak dynamic memory sayesinde sanal makinelere atanan bellek boyutları dinamik olarak değişebildiğinden aynı Hyper-V sunucusu üzerinde daha fazla sayıda sanal makineyi çalıştırabilir durumda olacağız. Peki Dynamic Memory ayarları nelerdir ve nasıl çalışır?
NOT: Bu makaleyi yazdığım sırada Windows Server 2008 R2 Sp1 RC sürümünde idi. Eğer daha önceden test ortamınızda SP1 Beta sürümünü kurduysanız öncelikle bu sürümü kaldırmanız gerekmektedir. SP1 RC ile Beta da gelen bazı özelliklerin adları ve ayarlanma şekilleri (Örneğin Memory Buffer kaydırma çubuğu ile çalışırken artık text box dır. Memory Priority özelliği Memory Weight olarak yeniden adlandırılmıştır) değişmiştir. Bu nedenle yazımın bundan sonra ki bölümüne SP1 RC sürümü üzerinden devam edeceğim. SP1 tam sürüm yayınlandığında burada ki ekranlarda bazı değişiklikler olabilir. Windows Server 2008 R2 Sp1 RC sürümünü http://technet.microsoft.com/en-us/evalcenter/ff183870.aspx adresinden indirebilirsiniz.
Aşağıda ki ekran görüntüsünde üzerinde Windows Server 2008 R2 çalışan bir sanal makinenin ayarlar penceresinde ki Memory bölümünü görebiliriz.
Ayarlar penceresini ilk açtığımızda Static seçeneği seçili durumda gelecektir. Dynamic Memory özelliğini etkinleştirmek için Dynamic seçeneğini seçmeliyiz. Bu seçenek seçildikten sonra alt bölümde bulunan ayarlar düzenlenebilir duruma gelecektir. Bu ayarları açıklamak gerekirse;
- Startup RAM: Bu seçenek ile sanal makinemizin başlangıçta Hyper-V tarafından rezerve edilecek bellek miktarını ayarlıyoruz. Bu değer sadece sanal makine kapalı iken değiştirilebilmektedir.
- Maximum RAM: Bu seçenek ile sanal makinemizin kullanabileceği en yüksek bellek değeri belirleyebiliyoruz. Varsayılan olarak bu değer 65536 Mb (64 Gb) dır. Ancak buranın makul bir değer ile değiştirilmesi gerekmektedir. Burda belirlenen değerin işletim sistemi tarafından da desteklenmelidir. Bu değer sadece sanal makine kapalı iken değiştirilebilmektedir.
- Memory Buffer: Bu seçenek ile sanal makinemizin anlık durumlarda ihtiyaç duyabileceği bellek miktarını Hyper-V sunucumuzun hazır tutmasını sağlayabiliriz. Varsayılan olarak %20 değeri gelmektedir. Dolayısıyla sanal makinemizin 1 Gb belleği var ise yaklaşık 200 Mb da büyüme payı olacak demektir. Böylece sanal makinemizin toplam belleği 1.2 Gb olacaktır ve Hyper-V sanal makinemiz için bu bellek değerini hazır tutacaktır. Bu değer sanal makine çalışırken de değiştirilebilmektedir.
- Memory Weight: Hyper-V sunucuları üzerinde oluşturulan her sanal makine Dynamic Memory sisteminde öncelik olarak eşit durumdadır. Ancak bir sanal makineye diğerinden daha öncelikli olarak davranılması isteniyorsa bu durumda ayarı High bölgesine doğru çekmek yeterli olacaktır. Bu değer sanal makine çalışırken de değiştirilebilmektedir.
NOT: Dynamic Memory kullanımı ile birlikte artık sanal makinelere daha düşük başlangıç bellek değerleri verilebilir. Bazı işletim sistemlerinin tavsiye edilen başlangıç bellek değerleri aşağıda ki gibidir.
- Windows Server 2008, Windows Server 2008 R2, Windows 7 ve Windows Vista için 512 Mb
- Windows Server 2003 ve Windows Server 2003 R2 için 128 Mb
NOT: Integration Services güncellemesi yapılmayan ya da Dynamic Memory desteği olmayan bir sanal makinede ilgili bellek ayarları yapılsa dahi sadece Startup Ram değeri dikkate alınır ve sanal makinenize burada ki değer kadar fiziksel bellek üzerinde yer ayrılır.
Windows Server 2008 R2 Sp1 güncellemesini yüklemeden önce Hyper-V Manager konsolumuzun görüntüsü aşağıda ki gibidir.
Güncellemenin ardından konsolumuzun görüntüsü değişecek ve Memory kolonu yerine Assigned Memory, Memory Demand ve Memory Status kolonları eklenecektir. Aşağıda Hyper-V Manager konsolunun yeni halini görebilirsiniz.
NOT: Dynamic Memory ayarlarının sanal makine üzerinde uygulanabilmesi için Integration Services bileşeninin güncellenmesi gerekmektedir. Windows Server 2008 R2 ya da Windows 7 işletim sistemi çalıştıran sanal makineye Sp1 güncelleme kurulumu yapılması da aynı işlevi görecektir. Aşağıda sanal makine üzerinde Integration Services güncellemesi yapılmadan önce ve güncelleme yapıldıktan sonra Hyper-V Manager konsolunun ekran görüntülerini bulabilirsiniz.
Sanal makinemize Integration Services güncellemesi yaptıktan sonra Memory Demand ve Memory Status bölümlerinde değerler gözükmeye başlayacaktır. Peki Assigned Memory, Memory Demand ve Memory Status kolonları ne anlama gelmektedir?
- Assigned Memory: Sanal makineye Hyper-V sunucusu tarafından o an için ne kadar bellek atandığı görülebilir.
- Memory Demand: Sanal makinenin Hyper-V sunucusunun fiziksel belleğinde kendisi için ayrılmış alanın ne kadarını kullandığı görülebilir. Başka bir deyiş ile sanal makinenin ihtiyacı olan minimum bellek değeridir. Eğer burada ki değer Assigned Memory değerinden düşük ise sanal makine üzerinde ki işletim sisteminin paging işlemi yaparak sahip oluduğu bellekte yer açmaya çalıştığı düşünülebilir.
- Memory Status: Bu alanda görebileceğimiz değerler ile sanal makinenin ayarlarında belirlenen Memory Buffer ve Memory Demand değerleri direk bağlantılıdır.
- OK: Hyper-V sunucusunda, sanal makinenin ayarlarında belirlenen Memory Buffer oranı kadar sanal makineye atanabilecek miktarda boş fiziksel bellek alanı olduğu anlamına gelir.
- Low: Hyper-V sunucusunda, sanal makinenin ayarlarında belirlenen Memory Buffer oranından daha az miktarda sanal makineye atanabilecek boş fiziksel bellek alanı olduğu anlamına gelir. Başka bir deyiş ile sanal makine Hyper-V sunucusundan Memory Demand bölümünde yazan değerden fazlasını alabilir ancak Memory Buffer değerinin tamamını alamaz.
- Warning: Hyper-V sunucusunda, sanal makinenin ayarlarında belirlenen Memory Buffer oranı kadar sanal makineye atanabilecek miktarda boş fiziksel bellek alanı olmadığı anlamına gelir. Başka bir deyiş ile Memory Demand bölümünde yazan değer sanal makinenin alabileceği en yüksek bellek değeridir.
Peki yük altında Dynamic Memory nasıl çalışıyor? Bunu gösterebilmek için aşağıda ekran görüntüleri bulunan örnekleri hazırladım.
Örnek-1
Windows Server 2008 R2 kurulu olan sanal makine üzerinde Dynamic Memory ayarlarını 1 Gb başlangıç belleği (Startup RAM değeri) ile sanal makinenin kullanabileceği en yüksek bellek miktarını (Maximum RAM değeri) da 2 Gb olarak belirledim. Sanal makinemin anlık durumlarda kullanacağı bellek miktarını (Memory Buffer değeri) da %20 olarak değiştirmeden bıraktım. Bu ayarlar ile ilgili ekran görüntüsünü aşağıda bulabilirsiniz.
Sanal makineye SQL Server 2008 ve ardından SQL Server 2008 Sp1 kurulumu yaptım. Kurulum sırasında Hyper-V Manager konsolunda ve sanal makinenin task manager ekranında ki performance sekmesinde olan değişikliklerin ekran görüntülerini ve açıklamalarını aşağıda bulabilirsiniz.
Kurulum nedeniyle sanal makinenin ihtiyacı olan bellek miktarı Hyper-V tarafından karşılandı ve bellek 1024 Mb dan 1336 Mb a yükseldi. Task Manager ekranının Performance sekmesinde de sanal makinemizin sahip olduğu toplam bellek miktarı Physical Memory (MB) bölümünde ki Total değerinde 1335 Mb olarak görülmektedir.
Örnek -2-
Üzerinde toplam 2 Gb bellek bulunan ve test amaçlı kullanılan Hyper-V sunucusu üzerinde çalıştırılan iki sanal makineye ait ekran görüntülerini aşağıda bulabilirsiniz. Dynamic Memory öncesinde bu iki sanal makine yetersiz bellek nedeniyle aynı anda çalıştırılamıyordu.
NOT: Aşağıda üzerinde Windows Server 2003 R2 işletim sistemi bulunan MHCLABSGLPI isimli 256 Mb başlangıç belleği ve 512 Mb maksimum bellek olacak şekilde ayarlanan sanal makineye ait ekran görüntüleri;
Görüldüğü gibi Windows Server 2003 R2 yüklü sanal makine üzerinde çalışan web sitesinin veritabanı sunucusu üzerinde işlem yapmasının ardından kendisine verilen 256 Mb belleği yeterli bulmadığında belleği Hyper-V sunucusu tarafından gerçek zamanlı olarak 316 Mb a yükseltildi ve sanal makinenin rahatlaması sağlandı.
NOT: Aşağıda üzerinde Windows 7 işletim sistemi bulunan MHCLABSSCCM 256 Mb başlangıç ve 512 Mb maksimum bellek olacak şekilde ayarlanan sanal makineye ait ekran görüntülerini bulabilirsiniz.
Benzer şekilde Windows 7 yüklü sanal makine kendisine verilen 256 Mb belleği yeterli bulmadığından belleği Hyper-V sunucusu tarafından gerçek zamanlı olarak üst sınırı olan 512 Mb a yükseltildi ve sanal makinenin rahatlaması sağlandı. Ancak burada ki durum bir sanal makineye Hyper-V sunucusu tarafından her zaman ayarlarında bulunan en yüksek bellek miktarının atanabileceği anlamına gelmemektedir.
Dynamic Memory uygulanabilecek işletim sistemleri ve versiyonlarının (32 bit ve 64 bit) listesi aşağıda ki gibidir;
- Windows Server 2008 Enterprise-Datacenter versiyonları Sp2 güncellemesi ile birlikte
- Windows Server 2008 R2 Enterprise-Datacenter versiyonları Sp1 güncellemesi ile birlikte
- Windows Server 2008 ve Windows Server 2008 R2 Standard – Web versiyonları Sp1 güncelleme paketinin tam sürümünün yayınlanmasının ardından desteklenecektir.
- Windows Server 2003 R2 Enterprise-Datacenter versiyonları Sp2 güncellemesi ve üstü ile birlikte
- Windows Server 2003 Enterprise-Datacenter versiyonları Sp2 güncellemesi ve üstü ile birlikte
- Windows Server 2003 ve Windows Server 2003 R2 Standard – Web versiyonları Sp2 güncellemesi ve üstü ile birlikte Windows Server 2008 R2 Sp1 güncelleme paketinin tam sürümünün yayınlanmasının ardından desteklenecektir.
- Windows Vista Enterprise ve Ultimate versiyonları Sp2 güncellemesi ile birlikte
- Windows 7 Enterprise ve Ultimate versiyonları
NOT: Sp1 kurulumu ardından Dynamic Memory Hyper-V sunucusu üzerinde etkinleşmektedir. Buna bağlı olarak Hyper-V sunucusu üzerinde ki fiziksel bellekten mümkün oldukça çok yararlanılmak istenilmektedir. Bu nedenle parent partition a artık sabit bir miktar bellek ayrılmamaktadır. Bu durum normal şartlarda sıkıntı yaratmasa da eğer Hyper-V sunucusu üzerinde başka rollerde çalıştırılıyor ise parent partition da fazla belleğe duyulan ihtiyaç sıkıntı yaratabilir. Bu nedenle Sp1 öncesinde olduğu gibi parent partition a sabit bir miktar bellek ayrılması isteniyor ise registry de HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Virtualization bölümünü açtıktan sonra sağ tarafta memoryreserve adıyla yeni DWORD değeri oluşturup değer olarak parent partition için ayrılmak istenen bellek miktarı Megabyte cinsinden yazılabilir. Sistem yeniden başlatıldığında statik olarak parent partition a burada verilen miktar kadar fiziksel bellek ayrılacaktır.
Bu makalemde sizlere Hyper-V için Windows Server 2008 R2 Sp1 güncellemesi ile birlikte gelen Dynamic Memory kavramını anlatmaya çalıştım.
Faydalı olması dileğimle…
M. Hakan CAN
1 Response
[…] özellikle Hyper-V tarafında gelecek olan Dynamic Memory özelliği ile ilgili detaylı bilgiye http://www.mhakancan.com/hyper-v-dynamic-memory-nedir-nasil-calisir-nasil-uygulanir/ adresinden ulaşabilirsiniz. Service Pack i indirmek için ise […]