Horizon View for Linux Konfigürasyonu

Aşağıda VMware’in, Horizon View 6.1 versiyonuyla beraber desteklemeye başladığı Linux VDI konfigürasyonunu anlatmaya çalıştım. Bu anlatımda ESX, horizon connection gibi bileşenlerin kurulum ve konfigürasyonuna yer vermeyeceğim çünkü Linux masaüstü sanallaştırma yapmak isteyenin diğer bileşenler hakkında bilgi ve deneyiminin olduğunu varsayıyorum.

 

En başta şunu belirteyim: Horizon View for Linux’de composer operasyonları bulunmuyor. Yani Horizon Linux composer desteklenmiyor. Bundan dolayı refresh, rebalance ve recompose gibi composer operasyonları ne yazıkki yapılamıyor. Pool oluştururken base template’den birden çok makina üretemeyeceğimiz anlamına gelmekte.

 

Normal şartlarda yani composer operasyonları sayesinde pool oluştururken istediğimiz sayıda makinayı otomatik olarak oluşturabiliyorduk. Composer bulunmadığı için automated desktop pool seçemiyoruz. Onun yerine manuel desktop pool’u zorunlu seçiyoruz. Bu durumda aşağıda detayları anlatılan bir tane referans makine oluşturup power off konumunda tutarak, ihtiyaç duydukça bu makinadan clone’layıp yine manuel olarak pool’a dahil ediyoruz.

 

16 

15

VMware tarafından açıklanan limitlerin listesi aşağıdadır:

  • Single Sign-on (SSO) desteklenmiyor. Horizon client’a bağlanırken domain kullanıcısı ile login olunuyor. Ancak ardından Linux’da tanımlı lokal kullanıcıyla oturum açmak gerekiyor.
  • Automated provisioning, refresh, rebalance gibi özellikler bulunmuyor.
  • Uzak masaüstü bağlantısı ile yapılan bağlantılarda lokal aygıtlar kullanılamıyor. Bu durumda USB redirection, virtual printing, lokal printer, Real-Time Audio-Video ve smart kart gibi local aygıtları kullanılamayacak.
  • HTML erişimi desteklenmiyor. Yani internet Explorer, chrome gibi tarayıcılar üzerinden uzak masaüstü bağlantısı yapılamayacak.

 

  1. Sanal makine hazırlama:
  • En az 1 GB ve 1 vCPU ve en az 20 GB alana sahip HDD’ye sahip bir VM oluşturulur
  • VMware tarafından desteklenen (yukarıda listelenen) bir Linux sanal makine kurulur
  • VM tools kurulur. Aşağıda ubuntu üzerinden yaptığım kurulumun adımlarını aşağıya aktarıyorum:
    • İlk önce sanal makine console’dan ‘Install VMware Tools’ seçeneğini tıklayın
    • Masaüstüne mount olan ‘VMware Tools CD’ klasörünü açın
    • Klasör içerisindeki versiyona göre değişiklik gösterecek olan ‘VMwareTools.x.x.x-xxxx.tar.gz’ isimli dosyaya sağ tıklayıp masaüstüne extract edin. Extract ettikten sonra masaüstüne ‘vmware-tools-distrib’ adıyla gözükecektir.
    • Terminalı açıp şu komut ile vmtools klasörüne gidin: cd Desktop/vmware-tools-distrib
    • Sonrasında şu komutu çalıştırın: sudo ./vmware-install.pl –d
    • Password isterse passwordü girin. Kurulum bittikten sonra da sanal makineyi restart edin
  • Gerekli IP, hostname ve DNS kayıtlarını yapın
  • İstenilen yazılım ve uygulamaların kurun.

 

  1. View agent kurulumu:
    • İlgili view agenti şu linkten indirip devamındaki adımlara göre kurun: https://my.vmware.com/web/vmware/downloads
    • Uygun view agenti VMware sayfasından indirip masaüstüne extract edin
    • Terminali açıp extract ettiğiniz dosyaya gidin ve şu komutu çalıştırın:

sudo ./install_viewagent.sh -b mybroker.mydomain.com -d mydomain.com -u domainuser -p password 

(Açıklama: mybroker, view connection server’ımızın hostname’idir. Mydomain ise domain name’imimizin ismidir. Domainuser ise view connection’da yetkili bir user olabilir. Ben domain administrator’u kullandım.)

 

  1. View administrator üzerinden yeni bir pool oluşturma:
  • Catalog -> Desktop Pools gidin ve Add seneçeneğini tıklayın. Ardından aşağıda ekran görüntüsü bulunan ekranda Manual Desktop Pool’u seçin12
  • Kullanıcı atama ekranında ise atama modelinizi seçin. Ben ‘Dedicated’ seçtim.11
  • Bu ekranda ‘Other Sources’ seçiyoruz çünkü composer operasyonları bulunmadığı için vcenter’da tanımlı makinayı bulamayacak.10
  • Bu ekranda ID ve Display name belirtiyoruz. İki isim aynı olmak zorunda değil.9
  • Bu ekranda herhangi bir değişiklik yapmak zorunda değiliz. Ben herhangi bir değişiklik yapmadan devam ettim.8
  • Eğer her şey normal tüm ayarlar eksiksiz yapılmışsa bu ekranda Linux işletim sisteminiz gözükecektir. Burada poola dahil etmek istediğiniz VM’i seçiyoruz.7
  • Ve geldik son ekrana. Bu ekranda yaptığımız tüm seçimlerin özeti bulunmakta. Finish’e tıklayarak makinanın oluşmasını sağlıyoruz.6
  • Pool oluştuktan sonra aşağıdaki gibi bir görünüme sahip oluyor. Bu ekranda başarıyla bittiğini ve her şeyin normal olduğunu anlıyoruz.5
  • Buradan Entitlements -> Add Entitlements -> Add aracılığıyla domainde tanımladığımız bir kullanıcıyı atıyoruz.4
  • Recources -> Machines’a gittiğimizde ise Linux makinamızın geldiğini görmekteyiz.3
  • Son olarak Horizon view client ile gerekli ayarları yapıp bağlantıyı kuruyoruz. Horizon client bağlantısı başarılı bir şekilde sağlanırsa aşağıdaki gibi Pool’unuz gelir.2
  • Pool’a çift tıkladığınızda karşınıza aşağıdaki gibi ekran çıkacaktır.1

ESX Memory Kavramları ve Anlamları

ESX Memory Kavramları ve Anlamları

ESX sanallaştırma platformunda en önemli parametrelerden biri de memory yönetimidir. İster cluster ortamı olsun isterse de stand alone bir ESX sanallaştırma ortamı olsun her iki durumda da bellek yönetimi temelde değişmez. Sanal makinalarımıza ayırmamız gereken miktar, boşta kalan bellek miktarı, ne kadarının kullanıldığı ve ne kadarının boşta kaldığı gibi bellek hesaplamaları sanallaştırma platformunun performans yönetiminin temelini oluşturur. İşte bu yönetimi daha verimli yapabilmek için ESX sanallaştırma platformunun memory kavramlarına ve onun anlamlarına hakim olmak işimizi epey kolaylaştıracaktır. Ben de günlük yaşamımda edindiğim bilgiler ışığında derlediğim memory kavramları ve anlamlarını bir nevi sözlük mantığıyla paylaşmak istedim.

Allocated Memory: Ayrılmış ya da atanmış memory demektir. ESX sanallaştırma platformunda oluşturulan sanal makinalarımıza atadığımız bellek için kullanılır bu tanım. Ama bu tanım da kendi içerisinde idle ve active olarak 2’ye ayrılır:

Idle: allocate edilmiş yani sanal makinamıza atamış olduğumuz memory’nin o an kullanılmayan kısmıdır.

active: allocate edilmiş yani sanal makinalarımıza atamış olduğumuz bellek miktarının o anda kullanılmakta olan kısmını tanımlar.

Cache: Buradaki cache, günlük yaşamda kullandığımız Windows dünyasında da kullanılan cache kavramıyla aynıdır. En basit tanımıyla anlatacak olursam: En sık kullanılan uygulama ve servislere ihtiyaç olduğunda daha hızlı erişmek için RAM üzerinde belirli alanda tutulur. İşte bu alana cache denir.

Memory Overcommit: Host üzerindeki sanal makinalaramıza atamış olduğumuz toplam bellek miktarının, fiziksel makinamızın toplam memory miktarından daha yüksek olması anlamına gelir.

Memory Undercommit: Memory overcommitin tam tersi durumudur. Burada da sanal makinaların toplam bellek miktarının fiziksel host üzerindeki toplam bellek miktarının altında olması durumudur.

 Transparent page sharing: Aynı host üzerinde bulunan sanal makinalarımız üzerinde çalışan uygulama, servis ve rollerden ortak, aynı ya da birbirine çok yakın noktalar varsa bunları hepsinde ayrı ayrı oluşturmaktansa tek bir tane oluşturur ve hepsine kullandırtır. Mesela diyelim ki 2 adet IIS serverımız olsun bunların barındırdıkları sayfalar aynı olabilir ama servis, uygulama ve OS seviyesinde birbirine çok yakın ya da aynı olan memory içeriklerini (pages) kullanırlar. işte bu durumda ESX tüm sanal makinalar için ayrı ayrı bellek tutmaktansa bir tanesini tutar ve bunu hepsine kullandırtır. Yani tekilleştirme işlemi yapılmaktadır. Bu tekilleştirme işlemi her 60 dk. bir yenilenmektedir. Ama bu süre yani Mem.ShareScanTime değiştirilebilir olduğundan süreyi istediğimiz gibi değiştirebiliriz.

Memory Ballooning: Host üzerinde bulunan vm’lerden birine RAM ihtiyacı doğduğunda ESX o an başka bir vm üzerinde bulunan ancak kullanılmayan idle memoryden bir kısmı alıp ihtiyacı olan vm’e atar, ihtiyacı bittiğindeyse geri alır. İşte bu kavrama memory ballooning denir.

Compression: ESX üzerindeki boş memory değeri azaldıkça VM’lerin kullandıkları memory üzerindeki alanları sıkıştırarak boş alan kazanmaya çalışır.

Swapping: Yukarıdaki yöntemlerin yani compression ile memory ballooning hiç biri işe yaramazsa bu sefer de ESX vm’lerin memory page’lerini hdd üzerine yazar. Yalnız bunu yaparken vm önceliği yoktur, ESX bunu rastgele yapar. Bu durum vm’in performansını doğrudan etkiler.

Memory size: Sanal sunucunuz üzerine atadığınız sanal ram miktarıdır.

Host Mem – Mb: Esx host sunucunuz üzerinde o vm tarafından kullanılan ram kullanımını gösterir.

Guest Memory: Sanal sunucunuzun kullandığı yüzdelik ram miktarıdır.

Memory Overhead: Vmkernel’in bir makinayı sanallaştırmak için kullandığı RAM miktarıdır. Bu miktar sanal makinaya atanan RAM miktarından harcanmaz host üzerindeki RAM’den harcanır. Memory overhead her makinada değişiklik gösterir. Bunun nedeni her makinaya atanan cpu, network kart, RAM miktarı gibi aygıtların değişiklik göstermesi.  Ne kadar çok aygıt varsa memory overhead miktarı da o kadar artar.

Consumed host memory: Fiziksel memory üzerinde bu vm için toplamda ne kadar memory ayrıldığını gösterir. Bu değere aynı zamanda memory overhead oranı da dahildir.

Active Guest Memory: VM’in şuanda ne kadar RAM kullandığı değeridir. Buradaki değer bir istetistiki değerdir ve tahminidir. Biraz şaşma ihtimali vardır.

Private: Fiziksel memory üzerinde saklanan bellek miktarıdır.

Hyper-V Öneriler/Best Practise

  • Yapının sürekli büyüyen bir yapı olması da göz önünde bulundurularak fiziksel sunucuya kurulacak server işletim sistemi bu duruma göre uygun tercih edilmeli. Eğer sürekli büyüyen bir yapıysa ve ya çok fazla sanal makine kurulacaksa datacenter versiyon tercih edilmeli muhakkak
  • Sanal makine sayısının arttığı ve kritik işlemlerin (Exchange, APP, Web site gibi doğrudan kullanıcıları büyük oranda etkileyecek uygulamalar) çalıştığı yapılarda cluster yapısı tercih edilmeli.
  • Host olarak seçilecek fiziksel sunucuların donanım kaynakları ortamda kurulacak olan sanal makine adetleri, kullanılacak uygulamalar ve servisleri çok iyi tespit edilerek seçilmeli. Aksi halde kısa zamanda ciddi darboğazlar yaşanabilir.
  • SAN bağlantı modeli olarak ISCSI tercih edilirse chap şifresi muhakkak konulmalı. Aksi halde ciddi bir güvenlik açığı oluşuyor.
  • Sanal makinaların kullanacağı disklerin LUN yapısını da duruma göre iyi ayarlamak lazım. Çok fazla LUN oluşturmak ileride yapı büyüdükçe karmaşaya yol açacaktır. Bunu da mümkün olan en yönetilebilir şekilde yapmak ve sıkı bir dokümantasyon yapmak lazım. Aynı RAID diski üzerinde çok fazla LUN yapmanın disaster recovery bakımından pek bir anlamı yok ancak daha iyi yönetmek için bir –iki tane LUN oluşturup bunlardan birini sadece işletim sistemi diğerlerini de duruma göre yedeklemeler, sunucu uygulamaların dataları gibi işlerde kullanılabilir.
  • Oluşturulacak sanal makinaların donanım kaynağı kullanacağı uygulamaların harcayacağı kaynak ve IO değerlerine uygun donanım kaynağı ayrılmalı. Aksi durumda çok ciddi kaynak sorunları ortaya çıkar. Örneğin sadece yüzde 1’ lik bir cpu kullanan bir sunucu için 2 çekirdekli 2 cpu ayırmak çok mantıklı değil. Ya da aynı şeyi RAM ve Hdd için de söyleyebiliriz.
  • RAM modeli olarak muhakkak Dynamic memory kullanılmalı. Bu özellik çok büyük bir avantaj sağlıyor.
  • Tüm node’larda çalışan sanal makinaların takibinin yapılması gerekir. Aksi halde baş ağrıtan karmaşalar ortaya çıkacaktır.
  • Kurulacak işletim sistemlerinin microsoftun desteklediği işletim sistemleri yüklenirse daha faydalı olur. Özellikle Unix türevi işletim sistemleri kurulacaksa bu duruma kesinlikle dikkat edilmeli. Microsoftun hangi işletim sistemlerini desteklediğini Microsoftun bu konu için yayınladığı listelere bakılabilir. Kuracağınız işletim simtemi bu listede yer almıyorsa kurulmayacağı anlamına gelmez ancak bazı sorunlarda Microsoft destek vermeyebiliyor.
  • Cluster yapılarında network kartlardan birini Hyper-V’ nin yönetimsel işleri için ayırmalı. Mesela live ve quick migration işlemleri bu network kartı üzerinde yapılabilir.
  • Yeterli derecede network kartı bulunuyorsa bunları network teaming tercih edilmeli.
  • Snapshotlar gerek görülmedikçe alınmamalı. Alınacak snapshotları da çok iyi takip etmek lazım çünkü snaphotlar çok fazla disk alanı harcıyor.
  • Bazı backup yazılımları backup alırken makinayı save ediyor. Özellikle host üzerine backup yazılımı kurulacaksa bu durumu göz önünde bulundurmak gerekiyor. İlgili backup yazılımının bu özelliğinin devre dışı bırakılmalı.
  • Sanal makinalar üzerinde antivirüs kullanılması pek tavsiye edilmez ancak kullanmak zorunda kalınırsa şu dizinler devre dışı bırakılmalı;
      • c:\ProgramData\Microsoft\Windows\Hyper-v
      • Özel olarak belirlediğiniz sanal sistemlerin klasörleri
      • Sanal harddisklerin kurulu olduğu dizin.
      • Özel olarak belirlediğimiz sanal disk dizinleri
      • Snapshot dizinleri
      • Vmms.exe
      • Vmwp.exe

Not: Bu dizinler değişebilir. Her defasında hangi dizinlerin devre dışı bırakılması gerektiği detaylıca araştırılmalı.

Hyper-V’de Host ve Sanal Makinadaki Seçeneklerin Açıklamaları

Hyper-V kurulumu basit olduğu için burada anlatmayacağım çünkü internetten bu konuda binlerce kaynağa erişilebilir. En basit haliyle anlatmak gerekirse Windows Server 2008-2012 sunucuları üzerinde ‘Add Role’ kısmından Hyper-V role’u aktif edilir. Kurulumdan ziyade Hyper-V kurulmadan önce yapılması gerekenleri bilmek ve kurulduktan sonraki ayarlamaları yapmak daha verimli olur. Ben de bu makalemde Hyper-V’nin host ve vm ayarlamaları için varolan tüm seçeneklerin ne anlama geldiğini ve o seçenekle ne yapılabildiğini anlatmaya çalıştım.

Ayarlar Hakkında: Hyper-V Management konsolu, Hyper-V ile ilgili tüm ayarlara erişilen Hyper-V’nin yönetimsel ara yüzüdür. Bu arayüz Hyper-V role’ü etkinleştirildikten sonra kendiliğinden kurulur. Ekstra bir konfigürasyon ya da kurulum yapmaya gerek yok. Bu konsoldan Hyper-V ile ilgili hemen hemen tüm ayarlara erişilebilir ve konfigürasyonlar yapılabilir. Detayları aşağıda bulunan bu ayarlar temelde, host ve sanal makine ayarları olmak üzere 2 bölümden oluşur. Hyper-V’ de yapacağınız tüm ayarlar bu iki bölümden birinin kapsamına girer ve bu bölümler de kendi içlerinde alt kırılımlara bölünürler.

Hyper-V Manager Altındaki Ayarlar: Hyper-V sunucu ekranında sol tarafta bulunan Hyper-V Manager altında bulunan herhangi bir host’a sağ tıklandığında karşımıza çıkan seçenekler aşağıda ‘Action Altındaki Ayarlar’ kısmında detaylıca anlatılmıştır. Burada bu seçenekler’den sadece ‘Hyper-V Settings’ seçeneğinin detayı açıklanmıştır.

Hyper-V Settings: Hyper-V settings host seçiliyken sağ taraftaki Actions kısmında bulunan ‘Hyper-V Settings’ ya da hostun üzerine sağ tıklayıp ‘Hyper-V Settings’ seçeneğiyle erişilir. Bu seçenek altında bulunan ayrıntılar şunlardır;

Server Kısmı:

  • Virtual Hard Disks: Yeni bir makine eklediğimizde makinamızın default hdd’sinin kaydedileceği dizini belirdir.
  • Virtual Machines: Bir üstteki özelliğin sanal makine için geçerli alandır.
  • Physical GPUs: Sanal sunucuyu RDP protokolü üzerinden paylaşıma açan özelliktir. Bildiğimiz terminal serverın Microsoft sanal dünyasındaki adıdır. Bu özellikle bir nevi thin client yapmış oluyorsunuz. Bu özelliği aktif edebilmek için fiziksel sunucu üzerindeki ‘Remote Desktop Services installation’ servisinin kurulu olması ve ayrıca ortamda bir domainin olması gerekiyor.
  • NUMA Spaning: Buradaki özellik sanal makinalardaki numa özelliklerine izin veren yerdir. Numa hakkında detaylı bilgiyi bu dokümanda olduğu için tekrar aynı açıklamayı yapmayacağım.
  • Live Mirations: Bu özellik sanal makinalar çalışır vaziyetteyken hiçbir kopma yaşamadan başka bir node’a ya da domain içerisindeki başka bir hosta taşınmasına yarıyor.
  • Storage Migrations: Sanal makinaya bağlı hdd’lerin aynı anda kaç adet taşınabilir gibi küçük bir özellik içerir.
  • Enhanced Session Mode Policy: Bu özellik sanal makinanın doğrudan fiziksel makinanın usb, ekran kartı, yazıcı gibi donanımınlarına erişmesini sağlamaktadır. Ancak bu özelliği kullanan işletim sisteminin bu özelliği desteklemesi gerekmektedir. Bu özelliği destekleyen işletim sistemi Windows 8.1 ve server 2012 R’dir.
  • Replication Configuration: Disaster recovery (Felaketten kurtarma) planı çerçevesinde hostlar üzerinde çalışan sanal makinaların ve konfigürasyonlarının aynı ve ya farklı lokasyonlarda replikalarının oluşturulmasını sağlamakta. Bu özellik sayesinde asıl lokasyonda (primary site) bulunan sanal altyapınızı tcp/ip protokolü üzerinden belirli aralıklarla belirlediğiniz başka bir lokasyona taşıyarak yedeklerinin oluşmasını sağlıyor.

User Kısmı:

  • Keyboard: Klavye kısa yol tuşlarının fizikselde mi yoksa sanalda mı çalışsın ayarları mevcut.
  • Mouse Release Key: Mouse’u sanaldan fiziksele geçirmek için kullanılan kısa yollar için çeşitli seçenekler mevcut. Bildiğimiz klasik ctrl alt tuşu dışında başka seçenekler de seçebiliriz.
  • Enhanced Session Mode: Bu seçenek server kısmında bulunan Enhanced Session Mode Policy’nin tüm kullanıcılara uygulanmasını sağlar. Burayı seçmezsek de bu mode çalışır ama sanal makinada tek tek bu özelliği açmak gerekecek. Burası bu özelliğin tüm makinalarda çalışmasını sağlıyor.
  • Reset Check Boxes: Bu özellik tüm check box’ları boşaltır.

Host Sağ Klik Altındaki Seçenekleri: Hyper-V Manager ekranında sağ taraftaki Action kısmında ve ya host üzerine sağ tıklantığında çıkan seçeneklerin detayları aşağıdaki gibidir;

New: Bu seçenekle yeni bir makine ve disk oluşturulur.

İmport Virtual Machine: Bu seçenekle daha önce export edilmiş bir makine import edilir.

Hyper-V Settings: Hyper-V sunucusunun genel ayarlarına buradan da erişilir.

Virtual Switch Manager: Virtual Switch Manager sanal makinadaki network bağlantı modelini belirlememizi sağlıyor. Aslında bir nevi sanal network yönetim ortamıdır. Biz bununla sanal network kartımızın internete bağlanıp bağlanamayacağı, sadece iç networkte mi kalsın yoksa genel her tarafa mı erişsin gibi özellikleri tanımlayabiliyoruz. Burada internal, external ve private olmak üzere temelde 3 özellik bulunmakta. Bu özelliklerin açıklamaları şu şekildedir;

External: internete çıkabilsin, iç network yani kendi diğer sanal makinalarla görüşebilsin ve aynı zamanda fiziksel makinayla görüşebilsin. Bu özellik minimum bir fiziksel NIC’ e ihtiyaç duymakta. Ve bir fiziksel kart yalnızca bir tane external switche bağlanabilir. Aynı fiziksel kart birden fazla external switche bağlanamaz. Ayrıca burada ‘Allow managament operating system share to this network adapter’ seçeneği vardır ki burayı da iyi ayarlamak lazım. Bu seçeneğin şöyle bir özelliği bulunmakta; bu seçenek seçilmezse fiziksel ağ kartı doğrudan hosta atanmış olur. Fiziksel makine üzerinde yeni bir sanal kart oluşturulur ve fiziksel kartın tüm özellikleri bu sanal karta atanmış olur. Yani bu seçenek aslında fiziksel karta doğrudan erişim ile ilgili bir durumdur.

Internal: Bu seçenek sanal makinaların kendi aralarında ve fiziksel makinayla haberleşmesini sağlar ancak internete çıkmaz çünkü fiziksel network kartına erişimi yoktur.

Private: Bu seçenekteyse sanal makinalar kendi aralarında haberleşirler ancak fiziksel hosta erişemezler ve aynı zamanda internet erişimleri yoktur.

Virtual SAN Manager: Sanal SAN switch buradan oluşturulabilir. İçerisindeki özellikler bir üstteki ‘Virtual Switch Manager’ la aynıdır.

Edit Disk: Sanal makinanın diskiyle ilgili tüm ayarlamalar buradan da yapılır. Disk editlemeyle ilgili yukarıda bilgi verilmiştir.

Inspect Disk: Sanal makinaya bağlı disk hakkında genel bilgiler verir.

Stop Service: Hyper-V servisini durdurur.

Refresh: Adından da anlaşılacağı gibi ekranı yeniler

View: Virtual Machines penceresinde gözükmesini istediğimiz özellikler belirlenir.

Sanal Makine Sağ Klik Seçenekleri: Makinaya sağ tıklandığında ya da makine seçiliyken sağ ekranda makine adı altında bulunan seçenekler ve açıklamaları aşağıdadır;

Connect: Sanal makine ekranına bağlanmamızı sağlar

Settings: Sanal makinenin genel ayarlarına erişilir

Start: sanal makinayı başlatır.

Checkpoint: Eski adıyla shapshot oluşturmayı sağlar

Move: sanal makinanın başka bir host’un altına taşınma işlemini gerçekleştirir.

Export: sanal makinanın başka bir hosta taşınmak için dışarıya çıkaracağımız seçenektir

Rename: makine adını değiştirir

Delete: sanal makinayı siler

Enable Replication: makinanın daha önce ayarlanmış replika kopyasının oluşmasını sağlar

Sanal Makina Ayarları

Açıklama:Hyper-V Manager’da sanal makinanın üzerine sağ tıklayıp ‘Settings’ seçilerek ya da makina seçiliyken sağ taratan yine ‘Settings’ e tıklandığında karşımıza çıkan ekrandaki ayarların detayları aşağıdadır;

Hardware Kısmı

Add Hardware: Sanal makinaya bir donanım ekleme yeridir burası.

BIOS: Bu seçenekle makinanın boot kaynağını belirtebiliyorsunuz. Yani makine açılırken HDD’den mi yoksa CD’den mi özelliği buradan belirlenir.

RAM: Sanal makinamızın RAM değerlerini ayarlayacağımız yerdir burası. Hyper-V 2012 R2 ile beraber Dynamic memory özelliği geldiği için bu seçenek altında detayları aşağıda bulunan birkaç önemli ince ayar bulunmakta;

Startup RAM: Bu değer bize başlangıçta atanacak RAM biktarını belirler. Sistem açıldığında bu miktar üzerinden açılır.

Minimum RAM: bu değer sistemin alacağı minimum RAM miktarını belirler. RAM miktarı bu değerin altına inmez.  Buraya minimum 32 MB max. 512 MB değeri girebiliriz.

MAX RAM: Bu değer sistemin alabileceği max. RAM miktarını belirler. RAM miktarı bu değer üzerine çıkamaz. Buraya en az 512 MB en fazlaysa 1048576 MB değeri girebiliriz.

Memory Buffer: RAM ihtiyacı olduğunda sistemin bir seferde vereceği RAM miktarını yüzdelik üzerinden belirleyebiliriz. Yani orada 20 değerini girersek makinanın RAM’ e ihtiyacı olduğunda tek seferde yüzde 20 RAM artırır.

Memory Weight: RAM’ in öncelik değerini belirler. Yani Hyper-V üzerinde aynı özelliği kullanan diğer sanal makinalar arasındaki önceliği belirlemeye yarar. Diyelim ki aynı salisede iki sanal makine sisteme gidip RAM talep ederse Hyper-V bu değere bakıp hangisinin öncelikli olduğuna bakar ve buna göre RAM ataması yapar. Ve ya biz bazı makinalarımızın daha öncelikli olduğunu düşünüyorsak buradan onların değerini yükseltiriz.

CPU: Sanal makinanın CPU özelliklerini ayarlayacağımız alandır burası. Bu ekranda da çok ince ayarlar mevcuttur. Aşağıda bu ayarların detaylı açıklamaları bulunmakta;

Number of Virtual Processors: Sanal makinaya atayacağımız CPU miktarı belirlenir buradan.

Resource Control: işlemcinin max. ve min. çalışma yüzdeliğini belirlenmesine yarıyor. Burada vereceğimiz değerler kadar fiziksel CPU harcanır. Bu özellik şu işe yarıyor; herhangi bir sanal makinamızda donanımsal ya da yazılımsal bir sorununun yol açacağı işlemci overload’u diğer makinaları etkilemesi engellenmiş olur. Çünkü sonuçta tüm sanal makinalar aynı fiziksel işlemciyi kullanmakta. Bu özelliğin altında yer alan seçenekler şu şekildedir;

Virtual Machine reserve (percentage): Sunucuya atadığımız işlemcinin ne kadarlık oranını sanal makinamız tarafından kullanılabileceğini belirleniyor. Örneğin 4  işlemcili hostumuzda 2 işlemcili bir sanal makine oluşturup buranın da değerini yüzde 100 yaparsak tüm işlemci kaynaklarımızın yarısını kullanmış oluruz.

Percent of total system resources: Bir üstte detayı bulunan değerin tüm işlemci üzerinde toplamda ne kadar kaynağa denk geldiğini gösterir.

Virtual machine limit (percentage): Sanal makinenin kendisine atanan işlemci oranının ne kadarını kullanacağını belirleyebiliriz. Virtual Machine Reserve’ den farkı şudur; ilkinde host tarafından atanan işlemci oranının kullanım oranını belirleyebiliyoruz. Buradaysa elimizdeki oranın kaçta kaçını kullanabileceğini belirliyoruz.

Percent of total system resources: Bir üstte belirlenen değerin toplam işlemci kaynağının kaçta kaçına denk geldiğini hesaplar.

Relative Weight: Host üzerinde birden fazla sunucu varsa işlemci önceliklerini buradan ayarlayabiliyoruz. Diyelimki host üzerinde iki adet sunucu bulunmakta ve her ikisi de işlemci için aynı anda istekte bulundular bu durumda önceliğin hangisinde olduğunu buradan ayarlayabiliyoruz.

Compability: Live ve ya quick migration işlemlerinde aynı markanın farklı versiyonları arasında taşıma işlemleri yapabilmemizi sağlıyor. Normalde versiyon farkları ve marka farkları arasında taşıma işlemine izin vermiyor ancak bu seçenekle aynı marka içerisinde versiyon farkı varsa izin vermesini sağlıyor.

NUMA:  Açılımı ‘Non-Uniform Memory Access ve ya Non-Uniform Memory Architecture’ olan bu teknoloji çoklu işlemcili platformlarda ‘işlemcinin, kullanacağı RAM’ i bilmesi’ teknolojisidir. Bu ekran altındaki seçenekler şunlardır;

Max. Number of Processor: RAM atayacağımız VCPU adetinin belirlen alandır.

Max. Amaount of Memory: CPU’lara aktarılacak max. RAM miktarının belirlendiği alandır.

Max. Numa Nodes Allowed on a Socket: RAM oranınlarının atanacağı işlemci socket sayısı belirlenir.

IDE Controller 0: SCSI kontrolerlar ancak işletim sistemi ortamında kullanılabildiği için sistemin boot işlemi yani işletim sisteminin kurulması ve açılış için ide kontrolerlar gereklidir. Her bir ide denetleyicisine en fazla 2 adet disk ya da dvd bağlayabilirsiniz. Bu bölüm altındaki seçenekler şu şekildedir:

Controller: Burada diskimizin hangi kontroller üzerinde olacağını ayarlayabiliyoruz. Bunu fiziksel bilgisayarda ide kart yuvası olarak düşünebiliriz.

Location: Bu kısımda da diskimizin hangi uca bağlanacağı seçeneği bulunmakta. Bunu fiziksel ortamlardaki ide kablolarının uçları olarak düşünebiliriz.

New: Bu seçenekle yeni bir disk oluşturabiliriz.

Edit: Varolan diski düzenleyebiliriz. Burada disk alanımız yetmiyorsa genişletme (Expand), sıkıştırma için (Compact) ve vhd ya da vhdx biçimindeki diskleri dönüştürmek için (Convert) seçenekleri bulunmakta.

Inspect: Bu seçenekle varolan dis hakkında bilgi alabiliriz.

Browse: Buradan var olan başka bir disk bağlayabiliriz.

Remove: Bağlı diskin bağlantısını kaldırabiliriz.

Advanced Kısmı: Controller altında yer alan bir diğer özellikse QoS’ dur. Bu seçenekle min. ve max. disk iop’s unu belirleyebiliyorsun. Buraya 0 ile 1 milyar arası seçenek belirlenebilir.

IDE Controller 1: Varsayılan olarak diskimizin bağlı olduğu ide controllerdur. Buranın altındaki seçeneklerde de CD’ nin lokasyonunun belirleyebiliyoruz.

SCSI Controller: Bir sanal makine üzerinde en fazla 4 adet scsi controller bulunabilir ve bu scsi’ye de en fazla 64 adet disk bağlanabilir. Bu toplamda 256 hdd demektir. Burada yer alan özellikler ide controllerdakilerle aynıdır. Sadece şu seçenek burada ‘Enable virtual hard disk sharing’ aktifdir ancak ide controllerda aktif değildir. Bu seçenek de diskin paylaşıma açılması sağlanır.

Legacy Network Adaptor: Bu network kart tipi işletim sistemi kurulumu ağ üzerinde yapıldığında ya da integration servisi desteği olmayan bir işletim sistemi için kullanılır. Normal network kartları işletim sistemi ortamında çalışır ancak bu işletim sistemi olmadan da network kartına erişebiliyor. Bu yüzden işletim sistemi ağ üzerinden kurulacağı zaman kullanılır. Bu bölüm altındaki seçenekler:

Virtual Switch: Bu seçenekle Hyper-V üzerine oluşturduğumuz sanal ağı seçebiliyoruz.

MAC Address: Bu seçenekle ilgili network kartına elle mac adresi verebiliriz ya da dilersek otomatikte bırakabiliriz. Ancak dynamic’de kalması daha iyidir.

VLAN: Bu seçenekle sanal makinamızı bir VLAN’a dahil edebiliriz.

Network Adapter: Sanal network kartıdır. En fazla 8 adet oluşturulabilir. Bu bölüm altındaki seçenekler;

VLAN: Bu seçenekle sanal makinamızı bir VLAN’a dahil edebiliriz.

Enable Bandwith Manager: Bu seçenekle network kartı üzerinden geçecek trafiği denetleyebiliyoruz. Max. ve min. değer girilerek network kartı üzerinden geçecek network trafiğini denetim altına alabiliriz.

Hardware Acceleration Kısmı

Enable VM Queue: Bu özelliği aktif ettiğimizde fiziksel network kartına gelen istekler sıraya konularak sanal network kartına gönderilir. Bu sıra ilk gelen ilk çıkar gibi bir sıralamadır ve amaç isteklerin bir sistem içerisinde yönlenmesidir.

Enable IPsec task offloading IPSec işlemlerini sanal makineden alarak fiziksel ağ adaptörüne yükler ve sanal makine üzerinde performans artışı sağlanır.

Enable Single-root I/O virtualization SR-IOV destekli fiziksel kartları doğrudan sanal makineye kullandırır. SR-IOV nedir:  pci devicelerin sanal makinalar arasında paylaşılmasıdır. Normal şartlarda pci deviceleri sanal makinalar arasında paylaşılmazdı çünkü bunlar sonradan sisteme dahil olan parçalardır. Ancak artık üreticiler bunların da sanal makinalar üzerinde desteklenmesini sağlamışlardır. Genel olarak sonradan ilave edilmiş network kartları için iyi bir avantajdır.

Advanced Kısmı

Enable MAC Address Spoofing: NLB sunucusu olarak hizmet edecek olan sanal sunucular üzerinde bulunan MAC adreslerinin değiştirilmesine izin veren teknolojidir. NLB serverlar NLB algoritması gereği kendi ürettikleri MAC adresleriyle dışarıya paket gönderebilmesi gerekiyor. Ancak dışarıya kendi MAC adresi dışında türetilmiş bir MAC adresi gönderme işlemi güvenlik açığı oluşturduğundan (bazı kötü amaçlı yazılımlar örneğin DHCP Starvation attackları için bu işlemi yapabildiği için) Hyper-V bu işleme defaultta izin vermiyor. İzin verilmemesi durumunda NLB işlemi gerçekleşemediği için ekstradan bu özellik konulmuş.

Enable DHCP Guard: Bu özelliği aktif duruma getirdiğimiz zaman sanal makinelerimizin yetkili durumda olmayan DHCP sunucularından IP almalarını engelleyebiliyoruz. DHCP sunucuları yapıları gereği kullanıcı kimlik denetimini barındırmadıkları kendilerine gelen tüm udp 67  discovery isteklerine DHCP offer mesajıyla cevap gönderirler. Bu durum ise DHCP sunucularının DHCP starvation ile rogue DHCP ataklarına maruz kalırlar. (Bu her iki atak türü aşağılarda anlatılmıştır.) İşte bu özellikle sanal sunucumuzun buna benzer atak ve benzeri istenmeyen DHCP açıklarından korumuş oluruz.

Enable Router Guard: Yetkisiz Routerlar tarafından sanal makineye gönderilen istekleri engellemek için kullanılmaktadır.

Protected Network: Bağlantı koptuğunda clusterdaki  başka nodlara taşınmasını sağlıyor.

Port Mirroring: Gelen-Giden network paketlerini kopyalayıp kopyaları izlemek için oluşturulmuş başka bir makineye iletmeye izin verir.

NIC Teaming: Aynı sanal SW’e bağlı bulunan sanal network kartları arasında team yapılandırılmasına izin verir.

Managament Kısmı

Name: Sanal makinenin Hyper-V management konsoldaki adıdır. Buradan makinanın görünen adını değiştirebiliriz. Ve altta bulunan alanda sanal makinayla ilgili not tutabiliriz.

Integration Services: Sanal makine üzerine entegration services özelliklerini buradan yönetebiliriz. Hangi özelliğinin kullanılıp kullanılmayacağını altta bulunan seçeneklerle belirleyebiliriz.

Checkpointfilelocation: Adından da anlaşılacağı üzere checkpoint(yani snapshot) dizinini belirliyor. Yani sanal makinamızın checkpointini aldığımızda burada belirlenen lokasyona kaydoluyor.

Smart Paging: smart page dosyalarının lokasyonunu belirler.

Automatic Start Action:  Hyper-V açıldığında o makinanın da otomatik olarak açılıp açılmayacağıyla ilgili ayardır. Altındaki seçenekler şu şekildedir;

Nothing: Açılmasın.

Automatically start if it was running when the service stopped: Hyper-V hizmeti durduğunda makina açık bir durumdaysa hizmet yeniden başladığında makinamız da açılacaktır. Varsayılan ayar budur.

Always start this machine automaticly: Bu seçenek de makinanın her zaman otomatik olarak başlatılmasıdr.

Automatic start delay: Bu seçenek makinanın açılması anında alacağı önceliği belirliyor. Daha önemli olan (örn. DC) makinalara buradan öncelik verilebilir.

Automatic Stop Action: Bu bölümü kullanarak Hyper-V sunucumuz kapatılırken sanal makinelerimizin ne şekilde kapatılacağını belirleyebiliriz.

Save the virtual machine state: Çalışan sanal makinenin o anki durumu kayıt edilirek kapatılır. Hyper-V sunucusu açıldığında sanal makine çalışmaya kaldığı yerden devam edecektir. Varsayılan ayar budur.

Turn off the virtual machine: Çalışan sanal makineler sanki düğmeden ya da elektrik fişi çekilerek kapatılmış gibi güvensiz bir şekilde kapatılır. Bu nedenle tavsiye edilmemektedir.

Shut down the guest operating system: Çalışan sanal makine shut down komutu ile doğal yollardan kapatılır. Ancak bu özelliğin kullanılabilmesi için sanal makine üzerinde ki işletim sisteminde integration services yüklü durumda olmalıdır.

Hyper-V Teknolojisi

Hyper-V Temel Yapısı ve Tanımı

Hyper-V Nedir: Hyper-V, Microsoft’un ilk olarak Viridian kod adıyla duyurduğu ve daha sonra 2008 yılında Hyper-V adıyla piyasaya sürdüğü x64 tabanlı sunucu sanallaştırma platformunun adıdır ve aynı zamanda Microsoftun sanallaştırma hypervisor’unun adıdır.

Kısa Tarihi: Microsotf sanallaştırma dünyasına ilk olarak 2003 yılında masaüstü sanallaştırma olan Virtual PC ile giriş yaptı. Daha sonra sunucu tarafı için 2005 yılında Virtual Server 2005 ürününü sundu. Virtual Server 2005 mimarisi üzerinde yaptığı geliştirmeyle 2008 yılında Hyper-V adıyla yepyeni bir platform sunmuş oldu. Hyper-V, 2008 yılından günümüze kadar yeni özellikler eklenerek ve açıkları kapatılarak sürekli geliştirilmektedir. Son sürümü Windows Server 2012 R2’ dir. Normalde masaüstü versiyonu için virtual pc kullanılmaktaydı ancak Windows 8’le beraber Hyper-V client adıyla masaüstü versiyonda da kullanılmaya başlandı. Yani bir nevi virtual pc’nin de yerini almış oldu. Ancak adı Hyper-V clientdır.

Yapısı ve Çalışma Mantığı: Hyper-V Windows server tabanlı işletim sistemleri içerisinde bir role olarak gelir. Kurulum ve kullanımı sunucu işletim sistemi aracılığıyla gerçekleşir. Kurulumu ve kullanımının bir işletim sistemi aracılığıyla gerçekleşmesi onun Type 2 mimarisi olduğu izlenimi verir ancak Type 2 değildir çünkü işletim sistemiyle olan ilgisi sadece donanımın driverlarıdır.

Kurulum gerçekleştirildikten sonra doğrudan donanım katmanına geçer ve işletim sistemine driver kullanımı dışında hemen hemen hiç ihtiyaç duymaz. Bu özelliğinden dolayı Type 1’ in micro-kernelized kategorisine girer. Çalışma mantığını tam olarak şu şekilde özetleyebiliriz; Suncu üzerinde Hyper-V rolünü aktif ettikten sonra hypervisor kodu donanım katmanı üzerine yerleşir. Hypervisor çekirdeği (kernel) donanım katmanına yerleştiği için artık Type 1 mimariye dönmüş oluyor. Bu aşamadan sonra fiziksel sunucu üzerinde kurulu olan Windows server 2008 ya da 2012 parent partition adını alarak bir nevi sanal makinaya yani Hyper-V’nin bir sanal makinasına dönüşür. Artık bu aşamadan sonra yapı aşağıdaki diagramda da görüldüğü gibi şu şekilde değişmiştir; Donanım katmanının hemen üzerinde hypervisor katmanı, hypervisor katmanı üzerinde de biri parent partition isimli fiziksel sunucu üzerine kurulu olan işletim sistemi diğeri de child partition adını alan hyper-v üzerine kurulan sanal makinalarımızdır. Bu aşamada parent partition’daki işletim sistemimiz de bir sanal makinaya dönüştüğü için desteklediği max. cpu adeti artık 64 adettir. Bu aşamadan sonra parent ve child partitionlardan gelen tüm işlemci ve ram istekleri vmbus aracılığıyla hypervisora yönlendirilir ve hypervisor üzerinden de donanıma aktarılır.

Featured image

Hyper-V Teknik Özellikleri: Hyper-V’ nin 10’larca özelliği var ve her biri de başlı başına bir makale konusudur. Ben aşağıya sadece en önemli bulduklarımdan birkaç adetini kısa kısa aktarıyorum;

  • Host başına 320 Logical Processor desteği.
  • Host başına 4TB RAM desteği.
  • Standalone Host başına 1000 sanal makine desteği.
  • Hyper-V Failover Cluster başına 64 node desteği.
  • Hyper-V Failover Cluster başına 4000 sanal makine desteği.
  • Sanal makine başına 64 vCPU (sanal işlemci) desteği.
  • Sanal makine başına 1TB RAM desteği.
  • *Dynamic Memory
  • Canlı Snapshot Merge desteği.
  • Hyper-V Replica.
  • *Sanal makineler için NUMA desteği.
  • Eş zamanlı, canlı ve sınırsız Live Migration desteği.
  • Failover Cluster ve Shared Storage olmaksızın Live Migration desteği.
  • Live Storage Migration desteği.
  • Failover Cluster ve Shared Storage olmaksızın Live Storage Migration desteği.
  • Failover Cluster’da sanal makine failover önceliklendirme desteği.

*Dynamic Memory: Bu özellik Hyper-V’ de yeni olduğu için ayrıca açıklama gereği hissediyorum. Normal şartlarda sanal makine için belirlediğimiz RAM miktarını sistem olduğu gibi o makinaya ayırır ve başka bir iş için kullanmaz. Ancak dinamik bellek’de belirlediğimiz RAM miktarının tamamını aktarmaz sadece kullandığı kadarını aktarır. Biz RAM ayarlarından max. ve min. değerlerini girerek sistemin alabileceği min. ve max. RAM miktarını belirlemiş oluyoruz. Örn: Min. değeri 512 MB, max. değeri 1024 olan bir RAM hiçbir zaman 512’ nin altına düşmeyecektir ve 1024’ ün üstüne çıkmayacaktır. Ve o anda sadece 600 MB ihtiyacı varsa aldığı miktar sadece 600 MB olacaktır. Bunun üzerine bir 100 MB’a daha ihtiyaç duyduğunda sistem ona bir 100 MB daha aktaracak ve 100 MB’a olan ihtiyacı bittiğinde sistem ondan 100 MB’ı geri alacaktır.

*NUMA: Bu özellik de yeni olduğu için açıklama gereği duyuyorum. Tam açıklaması ‘Non-Uniform Memory Access’ ve Türkçesi Düzensiz Bellek Erişimi’ olan NUMA çoklu işlemcili platformlarda işlemcinin kullanacağı RAM’i belirleyen bir işlemci özelliğidir. Anakart üzerinde 2 adet işlemci ve 3 adet RAM slotu olsun. İşlemcinin hangi RAM’ e öncelikle erişeceği belirlenir. İşlemci artık RAM’ e ihtiyaç duyduğunda ilk önce kendisine ayrılan RAM slotuna gider eğer orada yer yoksa sonraki slotlara gider.

Hyper-V Terminolojsi

Açıklama: Özellikle Hyper-V’de en sık kullanılan kavramları aşağıya açıklamalarıyla aktarmaya çalıştım. Ancak bu kavramların tamamı sadece Hyper-V’ye özgü değildir. Çoğu kavramlar sanallaştırma dünyasında kullanılan genel kavramlardır.

Mantıksal İşlemci Nedir: Sanallaştırma dünyasında işlemcinin çekirdeği mantıksal işlemciye denk gelir.  Örneğin 8 çekirdekli bir adet işlemciniz varsa bu 8 adet mantıksal işlemciye denk gelir ve eğer bir de CPU’da hyper-threading özelliği aktifse bu sayı 16 adet mantıksal işlemciye denk gelir.

VCPU(Sanal İşlemci): Hyper-V tarafındaysa 1 adet mantıksal işlemci bir adet VCPU’ya denk geliyor. Diyelim ki fizikselde her biri 8 çekirdekten oluşan 4 soket CPU bulunmakta. Bu durumda 8*4=32 yaptığı için sanal tarafta toplamda 32 adet işlemci ya da sanal adıyla VCPU gözükür. Bu yüzden Hyper-V’de işlemciyi fizikselde olduğu gibi işlemci ve core sayısı olarak değil sadece işlemci yani soket olarak atayabilirsin.

Parent Partition – Child Partition: Hyper-V mimarisinde fiziksel sunucu üzerinde bulunan ve hyper-v’ nin üzerinde kurulduğu işletim sistemidir. Bu Windows server 2008 ve ya 2012 olabilir. Hyper-V rolü aktif edildikten sonra artık sanal bir makine gibi çalışmaya başlıyor. Tüm sanal makinalar aslında bir nevi bu partition üzerinde oluşuyor. oluşturduğumuz sanal makinelerde child partition olarak adlandırılmaktadır.

Windows Hypervisor: Sanallaştırmanın temelini oluşturan hypervisor’ un Windows tarafındaki ismi. Yani Microsoft Hyper-V’ nin çekirdeğinin adıdır.

Partition: Windows Hypervisor üzerinde birbirinden izol şekilde çalışan tüm parçalara ve ya işletim sistemlerine partition denir. Hyper-V’ de temelde iki tip partition vardır. Bunlar; Parent Partition ve Child Partition’ dur.

Parent Partition: Bazı yerlerde root partition olarak da geçer. Fiziksel ortama kurulan Windows server 2008 ya da 2012 üzerindeki hyper-v rolü çalıştırıldıktan sonra fiziksel ortama kurulmuş Windows serverlar’ da artık bir nevi sanal sunucu durumuna girmiş oluyor. Bu sunucular da artık hypervisor üzerinde çalışmakta. Hatta biz suncuyu ilk çalıştırdığımızda devreye ilk Windows hypervisor girer ardından bu işletim sistemi çalışır. İşte bu sunucuya Parent Partition denir. Temel görevi child partitionların yaratılması ve yönetilmesinde aracılık yapmak ve ayrıca yine child’lardan gelen işlemci ve ram dışındaki donanım isteklerini ilgili donanımlara iletir.  Bu partition ayrıca şu isimlerle de anılır;

Parent Guest OS, Parent OS, Fiziksel İşletim Sistemi

Child Partition:

En sade haliyle anlatmak gerekirse; Bizim hyper-v içerisinde new diyerek oluşturduğumuz sanal makinalardır. Teorik olarak parent partitionlarla aynıdır ancak bu makinalar child partitonlar oluşturamazlar. Bunlar hypervisor üzerinde birbirinden bağımsız çalışan sanal makinalardır.

Virtualization Stack: Sanallaştırma mimarisinde sanallaştırma işlemlerinin tamamının yapıldığı ve yönetildiği katmandır. Sanallaştırma mimarisini donanım, parent partition, hypervisor, virtualization stack, child partition diye katmanlara ayrılır. Bu durumda yapılan tüm işlemler bu katmanların birinde gerçekleşmekte. Virtualization Stack katmanında da VM Worker Process (Sanal makine işlemleri), VM Services (Sanal makine servisleri), WMI Sağlayıcıları, Kullanıcı ara yüzleri, Yönetim servisleri, Emulated Devices gibi bize en yakın ve en fazla kullandığımız işlemlerin gerçekleştirildiği katmandır diyebilirz.

Child Machine: Virtualization mimarisinde child partition içerisinde yaratılan her biri bir diğerinden izole edilmiş halde olan bağımsız sanal donanımlardır. Biz gerçek hayatta nasılki işletim sistemi kurmak için hdd, işlemci, ram gibi donanımları bir araya getirip adına bilgisayar, kasa dediğimiz makineler oluşturuyorsak işte bunlar da sanal ortamdaki kasalardır diyebiliriz.

Guest OS: Child machine üzerine kurulan sanal işletim sistemlerine verilen isimdir. Bunun dışında Host OS kavramı da sık sık kullanılır ancak type 1 mimarisinde bu kavram kullanılmaz. Host OS kavramı Type 2 mimarili yapılardaki işletim sistemleri için kullanılır.

Virtual Service Provider: VCP, ve VSP olarak da adlandırılan bu servis sanal makinaların gerçek donanımlara erişmesi işini görür. Sadece parent partition üzerinde bulunur ve temel görevi child partitionlardan gelen donanım isteklerini donanımlara iletir.

VSC: Açılımı Virtual Service Client/Consumer’ dır. Sadece child partitionlarda bulunur ve temel görevi sanal işletim sistemlerinden gelen donanım isteklerini VCP’ ye iletmek ve gelen cevabı sanal işletim sistemine iletmektir.

VMBus: Parent partition üzerindeki VSC ve Child partition üzerindeki VCP’ lerin iletişimini sağlayan protokulun adıdır.

Sanallaştırma Teknolojisi

Sanallaştırmanın Genel Tanımı

Sanallaştırma Nedir: Sanallaştırmayı en genel ve sade tanımıyla anlatmak gerekirse; HDD, CPU, RAM, NIC gibi fiziksel donanımların yazılımsal halidir.

Sanallaştırmanın Amacı:  Sanallaştırma, donanım kaynaklarının daha verimli ve daha güvenli kullanımı ile bu kaynakları yönetebilme amacıyla kullanılır.

Avantajları: Sanallaştırmanın avantajlarını özet olarak şu şekilde sıralayabiliriz

  • Verimlilik: Sanal olmayan fiziksel ortamdaki donanım kaynaklarımızın bir kısmı çoğunlukla boşta durur. Sanal ortam boşta kalan tüm kaynaklarla başka sanal makineler oluşturmayı ve bu kaynakların istenilen makinalara aktarma imkanı sayesinde kaynakların daha verimli bir şekilde kullanımını sağlar.
  • Kesintisiz Çalışma: Sanal makinaların hiçbir kesintiye uğramadan RAM, CPU, HDD gibi donanım değiştirebilme imkanı.
  • Yönetim: Tek bir ekrandan 100’lerce sanal makinaya aynı anda erişme, program kurma, servis aktif etme gibi yönetimsel işlemler ve makinalara donanım kaynağı aktarabilme imkanı gibi sunucu altyapılarının tek merkezden yönetilmesi
  • Güvenlik: Hata, felaket durumları için cluster ve replikasyon gibi senaryolar oluşturabilme.
  • Taşıma İşlemleri: Sanal makinaları çok kısa zamanlarda başka bir sunucuya taşıyabilme imkanı.
  • Sistem Kurtarma: Oluşturulan sanal makinalar erişilebilir dosyalar halinde tutulduğu için bu dosyaların yedeklerinden kısa zamanda dönme.
  • Yedekleme: Erişilebilir dosyalar halinde tutulan sanal makinaları yedekleme çok kolay bir şekilde yedekleme imkanı.

Dezavantajları: Avantajlarının yanında dezavantajlarının sayısı ve etkisi çok büyük değildir. Bazı önlemlerle bu dezavantajlar kolaylıkla aşılabilir. En yaygın kabul edilen dezantajlar olarak şunları sıralayabiliriz;

  • Sanal makinalar üzerinde kurulu işletim sistemi doğrudan donanıma erişemediği için doğrudan fiziksele kurulu bir işletim sistemine nazaran daha yavaştır çünkü sanal işletim sisteminin istekleri hypervisor’a gider oradan donanıma aktarılır. Bu yavaşlık 2 – 15 saniye kadardır.
  • Fiziksel ortamda oluşacak herhangi bir donanım sorunu tüm sanal sunucuları etkileyecektir.
  • CPU, RAM paylaşımı gibi kaynak planlaması doğru düzgün yapılmazsa ciddi performans kayıpları yaşanır.

Sanallaştırma Türleri

Açıklama: Aşağıda detayları bulunan toplamda 5 adet sanallaştırma modeli bulunmakta. Ancak sanallaştırma denilince ilk akla gelen desktop ve server türleridir. Bu dokumanda da daha çok server sanallaştırma ve Hyper-V üzerinde durulmuştur.

Sanallaştırma Başlıkları:

Server Virtualization (Sunucu Sanallaştırma)

Desktop Virtualization (Masaüstü Sanallaştırma)

Session Virtualization (Oturum Sanallaştırma)

Application Virtualization (Uygulama Sanallaştırma)

User State Virtualization (Folder Redirection Offline Files)

Detayları:

Sunucu Tabanlı Sanallaştırma: Doğrudan donanım üzerine kurulur. Doğrudan donanım üzerine kurulu olduğu için donanıma doğrudan erişirler. Aslında küçük bir işletim sistemidirler. Birden fazla sunucuya ihtiyaç duyan işletmelerin ihtiyacını karşılayabilecek şekilde geliştirilmişlerdir. Performans değerleri çok daha yüksektir ve gelişmiş bir yönetimsel ara yüze sahiptirler. Bu türdeki sanal platformlara örnek olarak: ESX, Xen ve Hyper-V uygulamaları verilebilir. Ara yüz olarak da Vsephere Client, Vcenter, Hyper-V Manager örnekleri verilebilir.

Masaüstü Sanallaştırma: Doğrudan donanıma kurulmazlar. İşletim sistemi üzerine kurulurlar. Performans değerleri düşük olduğundan ve yönetimsel ara yüzleri kısıtlı imkana sahip olmalarından dolayı kurumsal BT altyapıları için tercih edilmezler. Bu platforma örnek olarak; VMware, VirtualPc, XenDesktop verilebilir.

Oturum Sanallaştırma: En genel tabiriyle anlatılacak olursa; masaüstünün birden çok kullanıcının kullanımına açılması işlemidir. Buna en iyi örnek RDP protokolüyle yaptığımız uzak masaüstü bağlantısı ve ya thin client denilen kavram olabilir.

Uygulama Sanallaştırma: Birden çok kullanıcının aynı anda kullandığı bir uygulamanın merkezi bir yerde kurularak kullanıcıların erişimine açılmasıdır. Bu türde sanallaştırmaya en iyi örnek Logo Tiger, SAP gibi ticari ve muhasebe yazılımlar verilebilir.

User State Virtualization (Folder Redirection Offline Files): Kullanıcı bilgisayarında belirlenen herhangi bir klasörün bazı konfigürasyonlar aracılığıyla file server üzerinde tutulması işlemidir. Bu klasörler kullanıcıya bağlı olduğundan dolayı ilgili kullanıcı o domain ortamında hangi bilgisayarda oturum açarsa ilgili klasörler o bilgisayara taşınır. Bu duruma verilecek en iyi örnek; Folder Redirection ve Offline Files işlemleridir.

Sanallaştırmanın Temel Kavramları ve Tanımları

Sanallaştırmanın Tanımı: İşletim sistemi nasılki donanımları yönetmemizi sağlayan bir platformsa sanallaştırma da işletim sistemlerimizi yönetmemizi sağlayan platformdur desek yeridir. Biz sanallaştırmayla tek ve merkezi bir platformdan işletim sistemleri kurar, onlara kaynak aktarır, gerekli işlemleri yapabilmek için onlara erişiriz ve donanım-yazılım kaynaklarını yönetiriz. Bu platformu sağlayan sanallaştırma teknolojisinin temeli hypervisor denilen çekirdekten oluşur ve bu çekirdek aşağıya detayları aktarılan kavramları barındırır;

Hypervisor Kavramı: Aynı donanım üzerinde birden çok işletim sistemini çalıştırmamızı sağlayan sanallaştırma teknolojisinin en temel kod parçasıdır. Bizim sanal sunucu dediğimiz VMware, ESX, Hyper-V gibi yazılımların çekirdeğidir(kernel) aslında. Hypervisor kendi içinde Type 1 ve Type 2 olmak üzere iki ayrı modele ayrılıyor. Bu modelleri birbirinden ayıran en büyük özellik birinin doğrudan donanımı yönetebilmesi ve donanıma kurulması olarak yorumlayacağımız bare-metal (çıplak donanım) olması diğerinin de donanımla olan haberleşmesini işletim sistemi üzerinden gerçekleştiriyor olmasıdır. Aşağıda diagramı bulunan bu modellerin ayrıntılarını şu şekilde özetleyebiliriz;

Type 1: Doğrudan donanım üzerine kurulan ve doğrudan donanımı yöneten bare-metal modeldir. ESX, Hyper-V, Xen sanallaştırma platformları bu kategoriye girer. Type 1 hypervisoru de kendi içinde monolithic ve Microkernelized diye aşağıda detaylı açıklaması bulunan iki farklı yapıya ayrılır;

Monolithic Hypervisorlar: Doğrudan donanıma kurulan sistemlerdir ve bu yüzden donanımların driverlarını kendi içlerinde barındırırlar. Ekstra bir işletim sistemine ihtiyaç duymazlar. Bu özellikleri sayesinde micro-kernelized’lara göre daha hızlı ve daha az sorun çıkarırlar.  Esxi bu şekilde çalışan bir hypervisor’dür.

Micro-Kernelized: Doğrudan donanıma kurulmazlar çünkü üzerlerinde donanımların driverları bulunmaz. CPU ve RAM dışındaki tüm donanımlarla olan haberleşmeyi işletim sistemi üzerinden gerçekleştirirler. Sadece CPU ve RAM’e doğrudan bağlanırlar. Diğer donanımlarla olan haberleşmeyi işletim sistemi üzerinden gerçekleştirdikleri için içlerinde driver barındırmazlar. İşte bu özelliklerinden dolayı bir işletim sistemine ihtiyaç duyarlar. İşletim sistemi üzerine kuruldukları için Type 2 olduğu düşünülür ancak CPU ve RAM’ i doğrudan kullandıkları için Type 1 kategorisine girmektedirler. Bu yapıda çalışan sistemlere örnek olarak Hyper-V verilebilir.

Type 2: Win 7-8, XP ve ya Linux gibi masaüstü işletim sistemi üzerine doğrudan kurulan vmware,virtualbox, virtualpc gibi sanallaştırma türüne de Type 2 denir. Doğrudan donanımı kontrol etmezler. Tüm işlemler önce işletim sistemine gider oradan da sanallaştırmaya gider.

typediagram