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:
.vhd – vDisk’in kendisidir
.pvp – vDisk özellikler dosyası
.lok – vDisk kullanımda olduğunda oluşan dosya
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.
Sonrasında bu dosyaları yeniden adlandırıyoruz. Genelde versiyon mantığı ile ilerlemek sağlıklı olacaktır (02, 03 gibi.)
PVS Console’a geçiyoruz ve vDisk Pool’a sağ tıklayarak Add or Import Existing vDisk ‘e tıklıyoruz.
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.
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.
vDisk’e sağ tıklıyoruz ve sonrasında Properties’e tıklıyoruz.
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’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.
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.
Ş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”.
Bu vDisk’i eklemek için Add butonuna tıklıyoruz. Assign vDisks ekranında bu vDisk’i buluyoruz ve OK butonu ile ekliyoruz.
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.
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.
Golden imaj üzerinde denetim masasına giriyorum ve istediğim uygulamaları kaldırıyorum. Yeni bir uygulama kurmak isteseydim, uygulamayı kurup devam edecektim.
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.
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.
Bu işlem 10-15 dk kadar sürecek ve ardından golden imaj otomatik olarak kapatılacaktır.
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.
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’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.
Yukarıdaki ekranda görüldüğü gibi kullanılan imaj “Win7x64BIM”. Kopyasını alıp güncelleme yaptığımız vDisk ise “Win7x64BIM_02”.
Change butonuna tıklayarak vDisk’i değiştiriyoruz. Yukarıdaki ekrandaki gibi yeni vDisk “Win7x64BIM_02” oluyor. OK butonu ile kapatıyoruz.
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.
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 Target Device Properties ekranında tüm özellikler seçili gelir. Biz sadece “vDisk assignment” ‘ı seçiyoruz ve Copy butonuna tıklıyoruz.
Daha sonra vDisk’ini değiştireceğimiz diğer Target Device’ları seçip sağ tıklıyoruz ve Paste diyoruz.
Paste dediğimizde yukarıdaki ekran çıktığında OK butonu ile devam ediyoruz.