Hyper-V Integration Services (Tümleştirme Hizmetleri)
İngilizcedeki adı Integration Services olan Hyper-V tümleştirme yada entegrasyon servislerinin ana görevini kısaca özetlersek, sanallaştırma katmanının üzerinde çalıştırdığı sanal makineleri kendisi yani Hyper-V Server (host) ile düzgün ve uyumlu bir şekilde haberleştirmek için kullanılan bir dizi servis kümesine verilen genel isimlendirmedir. Tümleştirme yada entegrasyon servisleri (Integration Services) sanal makinelerin stabil ve performanslı çalışması bakımından Hyper-V Server için oldukça önemli bileşenlerdir. Her bir servisin belli önem derecesine göre görevi vardır. Tümleştirme hizmetlerinin Vmware ESX’deki karşılığı Vmware Tools’dur. Vmware’den farklı olarak Microsoft, Windows tabanlı işletim sistemlerinin yüklemesi yapılırken bu hizmetleri otomatik olarak sanal makineye yükler ve tamamına yakınını da etkinleştirir. Vmware’de ise Vmware Tools yüklemesini sanal makineye manuel yapmanız gerekmektedir. Bu durum vmware ile hyper-v arasında bir artı yada eksi değildir. Entegrasyon servisleri Hyper-V Server üzerinde de yüklü gelmektedir çünkü hyper-v iç içe sanallaştırılmış yada test amacı ile bir hyper-v rolü üzerinde aktifleştirilmiş olabilir.
Hyper-V Server entegrasyon servisleri sadece Windows makineleri değil Linux sanal makineleri de desteklemektedir. Linux üzerinde nasıl aktifleştirilip kullanılacağı ayrı bir makalenin konusu. Eğer entegrasyon servislerinin düzgün çalışmamasından yada devre dışı bırakılmış olmasından kaynaklı sorunlar var ise sorunun kaynağına doğru bir şekilde inebilmek için servislerin tam olarak ne işe yaradığını bilmek ve anlamak çözüm için önemlidir. O halde nedir bu tümleştirme hizmetleri diye tek tek kısaca inceleyelim.
Hyper-V Heartbeat Service (Sinyal)
Hyper-V tarafından sanal makinenin doğru yüklendiğinden ve açıldığından (boot) haberdar olmak için kullanılan servistir. Hyper-V bu servis ile sanal makinenin durumuna doğrudan erişerek izleyebilir. Windows Server 2012 ile gelen bu servis Windows sanal makinelerde vmicheartbeat adında bir servis olarak çalışmaktadır.
Powershell ile Get-Vm -VmName VmAdı | Select Name, Status, State yazdığınızda eğer servis düzgün çalışıyor ise ‘status’ sekmesinde ‘’Operating normally’’ sütununda yazan veriyi Hyper-V Heartbeat (sinyal) servisi sağlamaktadır. Yani sinyal çekiyor :)
Servisi kapalı ise başlatmak için Start-Service -Name vmicheartbeat
Hyper-V Guest Shutdown Service (işletim Sistemi Kapanması)
Hyper-V Server tarafından konuk işletim sisteminin düzgün şekilde kapatılması için kullanılan servistir. Servisi devre dışı bıraktığınızda Hyper-V Manager veya powershell üzerinden sanal makineye verilen kapat komutu hata vererek çalışmaz. Core platformlarda servisleri genelde powershell ile bu tip basit işlemlerin yönetimi daha kolaydır. Denemek için kullanılacak komutlar;
Stop-Service -Name vmicshutdown
Start-Service -Name vmicshutdown
Hyper-V Time Synchronization Service (Zaman Eşitleme)
Sanal makine ile Hyper-V arasındaki saatin eşitlemesini sağlar. Basit manada kapalı olur ise sanal makine ile host arasında farklar oluşur ve iletişim hatalarına sebep olabilir. Özel durumlarda kapatılması gerekiyor ise aşağıdaki Powershell komutu ile kapatılabilir.
Stop-Service -Name vmictimesync
Hyper-V Data Exchange Service (KVP) (Veri Değişimi)
Veri değişim hizmeti, VMBUS sürücülerini kullanarak sanal makine ile Hyper-V arasında veri bağlantısı olmadan temel metadata alışverişi yapabilmek için kullanılmaktadır. Varsayılanda Windows sanal makinelerde aktif olarak gelmektedir. Aşağıdaki gibi kapatılabilir.
Stop-Service -Name vmickvpexchange
Hyper-V Volume Shadow Copy Requestor (Yedek — Birim Gölge Kopyası)
Bu servis sayesinde sanal makinenin çalışırken ve sanal makine üzerinde dosyaları açık yada kapalı farketmeksizin imaj yedeklerini almanızı sağlayan servistir. Servisin çalışıyor olması sanal makine yedeği açısından oldukça önemlidir. Bu servis aynı zamanda Windows sanal makinelerde çalışan Volume Shadow Copy servisini tetiklemektedir. Bu servisin genelde bilinmeyen ve bence en önemli yanlarından birisi de checkpoint (eski adı snapshoot) teknolojisine yeni gelen bir özellik olan production chekpoint özelliği için gerekli bir servis olmasıdır. Standart checkpoint aldıktan sonra geri dönüşlerde yaşanabilecek hatalar ve kararsızlıklardan dolayı production checkpoint özelliği eklenmiştir.
Hyper-V Volume Shadow Copy Requestor servisi ve VSS düzgün çalışmaz ise production chekpoint alınamaz ve hata verir. Yine de kapatmak isterseniz powershell ile aşağıdaki gibi kapatabilirsiniz. Servisin kapalı olması durumunda sadece sanal makine kapalı iken yedek alabilirsiniz.
Stop-Service -Name vmicvss
Hyper-V Guest Service Interface (Konuk Hizmetleri)
Varsayılanda kapalı gelen bu özellik sayesinde Hyper-V ile sanal makine arasında Copy-VMFile komutu ile dosya alış verişi yapmaya yarar. Örnek kullanım için Powershell komutu aşağıdaki gibidir.
Copy-VMFile “VMAdı” -SourcePath “D:\Test.txt” -DestinationPath “C:\Temp\Test.txt” -CreateFullPath -FileSource Host
Komutun işe yaraması için servisi etkinleştirmeniz gerekmektedir.
Hyper-V PowerShell Direct Service
Microsoft’un Hyper-V ile sanal makineler arasındaki yönetimi kolaylaştırmak için eklediği özelliklerden bir tanesidir. Hyper-V Server üzerinde doğrudan administrator yetkisine sahip bir hesap ile oturum açtıysanız, sanal makine ile host arasında network bağlantısına ihtiyaç duymadan powershell ile komut verebilir ve yöntebilirsiniz. Üstelik sanal makinedeki administrator yetkisine veya güvenlik duvarı izinlerine takılmadan bunu yapabilmektesiniz. En az Windows Server 2016 TP3 veya Windows 10 ile çalışmaktadır. Kullanmak için host üzerinde oturum açtıktan sonra aşağıdaki komutu girebilirsiniz.
Enter-PSSession -VMName <Virtual Machine Name>
Bağlantı başarısız olursa Start-Service -Name vmicvmsession yazarak servisi çalıştırmayı deneyin ve çalıştığından emin olun.
Genel olarak bütün servisleri anlaşılır özetiyle belirttim. Tümleştirme / entegrasyon servislerinin Powershell Direct hariç hepsinin Linux tarafında da karşılığı Microsoft tarafından sunulmaktadır.