Citrix Provisioning Service ile XenDesktop 7.6 İmaj Güncelleme

Citrix XenDesktop ile sanal masaüstü oluşturmak için iki yöntem vardır. Provisioning Services (PVS) ve Machine Creation Services (MCS). PVS ve MCS ile ilgili daha önce bir yazı yazmıştım. Buradan ulaşabilirsiniz.
PVS ve MCS ile golden imaj oluşturmak ve bu imajları güncelleştirmek için farklı yöntemler mevcut. Bu yazıda PVS ile oluşturulmuş olan bir imajı güncelleştirme yöntemlerinden birini anlatmaya çalışacağım.
Öncelikle ortamdan bahsedeyim.
  • Tüm sunucu işletim sistemleri (Provisioning Server, Delivery Controller vs.) Windows Server 2012 R2.
  • Sanal masaüstü olarak kullanılan işletim sistemi Windows 7.
  • XenDesktop 7.6
PVS ile imaj güncellemek aslında PVS Server üzerinde bulunan vDisk’in güncellenmesi demektir. Sanal masaüstleri çalışırken vDisk’in güncellenmesi mümkün değildir. vDisk güncellemesi yapılabilmesi için, vDisk’in Private Mode’da olması gerekir. vDisk’i Private Mode’a alabilmek için de ilgili vDisk’i kullanan tüm sanal VM’lerin kapatılması gerekir. (ki mesai saatleri içinde bu işlemi yapmak uygun olmaz). Bu seçenekte mevcutta kullanılmakta olan vDisk güncelleneceği için golden imajın güncellenmesi sırasında yapılabilecek bir hatada imaj kullanılamaz duruma gelebilir ve geri dönüşü olmayabilir.
İkinci seçenek, ilgili vDisk’in bir kopyasını alıp onun üzerinde güncelleme yapmak ve sonrasında yaygınlaştırmak. Bu seçenek ile mevcutta kullanılmakta olan vDisk’in bir kopyası alınıp bunun üzerinde değişiklikler yapıldığı için, hata yapılsa bile geri dönüşü mümkün olacaktır. Bu yazıda ikinci seçenek üzerinden ilerleyeceğiz.
Diğer bir seçenek de versiyonlama dediğimiz bir yöntemdir. Versiyonlama ile mevcut imajın farklı bir versiyonu alınarak uygulanan bir yöntemdir. Bu yazıda bu seçenekten bahsetmeyeceğiz.
İmaj güncelleme için kullanacağımız yöntemde vDisk’in bir kopyasını alıp, bu kopyanın üzerinde değişiklikleri yapacağımızı söylemiştim. Provisioning Services ile sanal masaüstü kullanımında tüm vDisk’ler PVS Server üzerinde durur. Her imaj için PVS Server’da 3 dosya türü bulunur:
  dosya_turleri  
.vhd – vDisk’in kendisidir
.pvp – vDisk özellikler dosyası
.lok – vDisk kullanımda olduğunda oluşan dosya
copy
Mevcut vDisk’in kopyasını almak için PVS Server’da .vhd ve .pvp uzantılı dosyaları kopyalayıp yine aynı yere yapıştırıyoruz.
rename
Sonrasında bu dosyaları yeniden adlandırıyoruz. Genelde versiyon mantığı ile ilerlemek sağlıklı olacaktır (02, 03 gibi.)
addorimport
PVS Console’a geçiyoruz ve vDisk Pool’a sağ tıklayarak Add or Import Existing vDisk ‘e tıklıyoruz.
addorimport2
Gelen ekranda Search butonu ile PVS Server üzerindeki yeni vDiskleri buluyoruz. Burada az önce kopyasını alıp yeniden isimlendirdiğimiz vDisk’i bulduk. Add butonuna tıkladığımızda ilgili vDisk, vDisk Pool ekranına gelecek. Close butonu ile bu ekranı kapatıyoruz.
addorimport3
Görüldüğü gibi kopyasını aldığımız vDisk, vDisk Pool ekranına geldi. Bundan sonraki güncelleme işlemlerimizi bu vDisk üzerinde yapacağız. Kopyasını kullandığımız vDisk ise halen kullanımda ve bu vDisk’e 3 adet sanal masaüstü bağlı durumda. Bundan dolayı da sol tarafında bir kilit işareti var.
vidsk_properties
vDisk’e sağ tıklıyoruz ve sonrasında Properties’e tıklıyoruz.
vidsk_properties2
vDisk Properties ekranında Access mode kısmını Private Image olarak ayarlıyoruz. Bu kısım Standart Image olarak gelir. vDisk’i güncellemek istiyorsak bunu Private olarak ayarlamak zorundayız.
vdisk_load_balancing
vDisk’in Load Balance’ta olmadığından emin olmalıyız. Eğer ortamda birden fazla PVS Server varsa (yedeklilik ve yük dengeleme için olması gerekir), güncellemek istediğimiz ve kopyasını aldığımız vDisk hangi PVS Server üzerinde ise Server bölümünden onu seçmeliyiz.
base_image_properties  
PVS Console’da Device Collections alanı vardır. Burada Target Device’lar bulunur. Target Device, Hypervisor olarak kullanılan sanallaştırma uygulamasındaki (VMware, XenServer) sanal makinalardır. Benim ortamımda hypervisor olarak VMware vSphere 6.0 kullanılıyor. Burada genellikle Golden Imajlar tek bir collection altında toplanır. Benim ortamımda da BASE_IMAGES olarak adlandırdım. Burada görünen her bir Target Device VMware üzerindeki bir sanal makinayı gösterir. Bu ekranda sanal makinanın MAC adresi, hangi store üzerinde durduğu, açık veya kapalı olduğu, açık ise IP adresi gibi bilgiler görülebilir.
target_device_properties
Şimdi yapacağımız işlem, kopyasını alıp PVS Console’a eklediğimiz vDisk’i buradaki Target Device’a göstermek. Bunun için ilgili Target Device’a sağ tıklayıp Properties’e ve vDisks sekmesine tıklıyoruz. Yukarıdaki ekranda görüldüğü “Win7x64BIM” adında bir vDisk mevcut. Sağ taraftaki Remove butonuna tıklayarak bu vDisk’i kaldırıyoruz. Bizim yeniden adlandırdığımız vDisk’in adı “Win7x64BIM_02”.
assign_vdisks
Bu vDisk’i eklemek için Add butonuna tıklıyoruz. Assign vDisks ekranında bu vDisk’i buluyoruz ve OK butonu ile ekliyoruz.
open_base_image
Sıra geldi ESXi üzerindeki ilgili sanal makinayı açıp güncellemeleri yapmaya. Bunun için vCenter’a geçip ilgili golden imaj makinasını buluyoruz ve açıyoruz. Provisioning Services kullanıyorsanız DHCP servisinin sağlıklı çalışması gerekiyor. Eğer sanal makina IP alamazsa açılamaz. Yukarıdaki ekranda açılmakta olan VM’in aldığı IP, Gateway gibi bilgiler görünmekte.
start_menu
Bunun sonrasında golden imaj açılıyor ve biz güncellemelere başlıyoruz. Güncelleme işlemi yeni bir uygulama kurmak olabileceği gibi, mevcut bir uygulamayı kaldırmak da olabilir. Ben burada mevcut bir uygulamayı kaldıracağım. Yukarıdaki ekranda görüldüğü gibi SMART adında bir uygulama daha önce kurulmuş ve ben bunu kaldırmak istiyorum.
control_panel
Golden imaj üzerinde denetim masasına giriyorum ve istediğim uygulamaları kaldırıyorum. Yeni bir uygulama kurmak isteseydim, uygulamayı kurup devam edecektim.
  start_menu_golden
Golden imajda başlat menüye baktığımızda uygulamanın kalkmış olduğunu görüyoruz. Şimdi sıra geldi bu imajı kullanan diğer sanal masaüstlerine yaygınlaştırılmasına. Bunun için golden imajı kapatacağız.
update_pvd
Burada anlatmak istediğim bir konu var. Normalde gerekli güncellemeleri yaptıktan sonra golden imajı direkt kapatabilir ve devam edebiliriz. Ancak biz ortamımızda Personal vDisk kullanıyoruz. Personal vDisk, kullanıcı verilerinin ilgili sanal masaüstünde kalıcı olarak saklanabilmesi için kullanılır. C diskinden farklı olarak ayrıca eklenir. Eğer XenDesktop’ta Personal vDisk kullanılıyorsa golden imajı direkt olarak kapatmak yerine yukarıdaki şekilde de görüldüğü gibi “Update personal vDisk” linkine sağ tıklayıp Yönetici olarak çalıştır diyoruz.
update_pvd2
Bu işlem 10-15 dk kadar sürecek ve ardından golden imaj otomatik olarak kapatılacaktır.
vidsk_properties3
Daha sonra PVS Console’a gelerek güncelleme yaptığımız vDisk’i buluyoruz. Daha önce Access mode’unu Private olarak ayarlamıştık. Artık güncelleme işlemini bitirdiğimiz için tekrar Standart mode’a alıyoruz. Burada Cache type adında bir alan var. Sanal masaüstü için kullanılacak olan write cache alanını seçiyoruz. Benim ortamımda sanal masaüstü için vDisk haricinde bir de write cache alanı için bir disk ekledim. Bundan dolayı bu alanı “Cache on device hard drive” seçiyorum. Write cache ile ilgili başka bir yazıda daha detaylı bilgi vermeye çalışacağım.
copy2
Provisioning Services yöntemini kullanıyorsanız ortamda mutlaka birden fazla PVS Server olmalı. Bu, hem yedeklilik, hem de yük dengeleme için gerekli. Benim ortamımda toplam 3 adet PVS Server var. Tüm güncelleme işlemlerini yaptığım vDisk PVS01 server üzerinde bulunuyor. Şimdi yük dengeleme yapabilmek için bu vDisk’i diğer PVS server’lara da (PVS02,  PVS03)  kopyalamam gerekiyor. Bunun için PVS01 üzerinde güncelleme yaptığım .vhd ve .pvp dosyalarını kopyalayıp diğer PVS Server’lara yapıştırıyorum.
vdisk_load_balancing2
vDisk’i load balance yapabilmek için, diğer PVS Server’lara kopyaladıktan sonra güncelleme yaptığımız vDisk’e sağ tıklayıp Load Balancing linkine tıklıyoruz. vDisk Load Balancing ekranında “Use the load balancing algorithm” seçeneğini seçiyoruz ve OK butonuna tıklıyoruz.
Sıra geldi güncellenen vDisk’in yaygınlaştırma işlemine. Bunun için Device Collection’da daha önce oluşturmuş olduğumuz ve mevcutta kullanılan Target Device’lar üzerinde vDisk değişikliği yapıyoruz. PVS Console’da Device Collecitons altında ilgili collection’ı buluyoruz. Yukarıdaki ekranda görüldüğü gibi benim güncelleme yaptığım golden imajı kullanan 5 adet Target Device var. Öncelikle tek bir Target Device’ın vDisk’ini değiştiriyoruz.
vidsk_properties4
Yukarıdaki ekranda görüldüğü gibi kullanılan imaj “Win7x64BIM”. Kopyasını alıp güncelleme yaptığımız vDisk ise “Win7x64BIM_02”.
vidsk_properties5
Change butonuna tıklayarak vDisk’i değiştiriyoruz. Yukarıdaki ekrandaki gibi yeni vDisk “Win7x64BIM_02” oluyor. OK butonu ile kapatıyoruz.
change_vdisk
Görüldüğü gibi önce bir Target Device’ın vDisk’ini değiştirdik. Artık “Win7x64BIM_02” olarak görünüyor. Şimdi diğer Target Device’ların da vDisk’lerini değiştireceğiz.
copy_device_properties
Bunun için vDisk’ini değiştirdiğimiz Target Device’a sağ tıklıyoruz ve Copy Device Properties linkine tıklıyoruz.
copy_device_properties2
Copy Target Device Properties ekranında tüm özellikler seçili gelir. Biz sadece “vDisk assignment” ‘ı seçiyoruz ve Copy butonuna tıklıyoruz.
paste_device_properties  
Daha sonra vDisk’ini değiştireceğimiz diğer Target Device’ları seçip sağ tıklıyoruz ve Paste diyoruz.
paste_device_properties2
Paste dediğimizde yukarıdaki ekran çıktığında OK butonu ile devam ediyoruz.
paste_device_properties3  
Yukarıdaki ekranda, hangi Target Device’ın hangi özelliklerinin kopyalandığını, bu özelliklerin hangi Target Device’a yapıştırılacağını gösteriyor. Biz vDisk assignment özelliğini diğer 4 Target Device’a yapıştıracağız. Paste butonuna tıklıyoruz ve Status kısmında Success yani başarılı olduğunu görüyoruz. Close butonu ile pencereyi kapatıyoruz.
Kapalı olan Target Device’ların vDisk’i hemen değişecektir. Bu makinalar açıldıklarında yeni vDisk ile açılacak. Açık olan Target Device’lar ise ilk restart sonrasında yeni vDisk ile başlayacak ve yapılan güncellemeleri almış olacak.