SANALLAġTIRILMIġ SUNUCULARDA YEDEKLEME SĠSTEMĠ Fevzi DAġ YÜKSEK LĠSANS TEZĠ BĠLGĠSAYAR EĞĠTĠMĠ GAZĠ ÜNĠVERSĠTESĠ BĠLĠġĠM ENSTĠTÜSÜ Mayıs 2012 ANKARA TEZ BĠLDĠRĠMĠ Tez içindeki bütün bilgilerin etik davranış ve akademik kurallar çerçevesinde elde edilerek sunulduğunu, ayrıca tez yazım kurallarına uygun olarak hazırlanan bu çalışmada orijinal olmayan her türlü kaynağa eksiksiz atıf yapıldığını bildiririm. Fevzi DAġ iv SANALLAġTIRILMIġ SUNUCULARDA YEDEKLEME SĠSTEMĠ (Yüksek Lisans Tezi) Fevzi DAġ GAZĠ ÜNĠVERSĠTESĠ BĠLĠġĠM ENSTĠTÜSÜ Mayıs 2012 ÖZET SanallaĢtırma teknolojisinin ortaya çıkıĢı 1960’li yıllara dayanmaktadır. Bu teknolojisinin etkin kullanımı ise ancak 2000’li yıllarda mümkün olmuĢtur. Özellikle enerji kullanımının ve enerji ihtiyacının her geçen gün artması, dünya üzerindeki enerji kaynaklarının zamanla azalması nedeni ile geliĢtirilen yeni cihazlar ve teknolojiler, enerjiyi daha verimli kullanabilecek tasarımlar ile üretilmektedir. SanallaĢtırma teknolojileri bu temeller üzerine kurulmuĢ ve enerji tüketiminin azaltılması, enerji verimliliğinin artırılması gibi birçok avantajının yanı sıra iĢgücü ihtiyacını azaltan, kolay yönetilebilirliğe imkân tanıyan yapısıyla daha fazla tercih edilmeye baĢlanmıĢtır. Bu çalıĢmanın amacı günümüzde hızla yaygınlaĢmakta olan sanallaĢtırma teknolojisinin getirdiği yenilikleri incelemek ve özellikle sunucu sistemde sanallaĢtırmaya geçiĢ ve kullanım sürecini bir sistem üzerinden incelemektir. Ayrıca sanallaĢtırılmıĢ sistemler üzerinde çalıĢan sanal iĢletim sistemlerinin yedeklenmesini sağlayan geliĢtirilmesi amaçlanmıĢtır. özelleĢtirilebilir bir yedekleme uygulamasının v GeliĢtirilen yedekleme uygulaması VMware ESXi ortamında sanallaĢtırılmıĢ sunucuların yedeğini baĢarılı ve hızlı bir Ģekilde alabilmektedir. Ayrıca geliĢtirilen uygulama yardımı ile yedeği alınmıĢ bir makinenin yedeği ihtiyaç halinde tekrar geri yüklenebilmektedir. Bilim Kodu : 702.1.014 Anahtar Kelime : sanallaĢtırma, sanallaĢtırma teknolojisi, sunucu yedekleme, yedekleme sistemi : 91 : Doç. Dr. Halil Ġbrahim BÜLBÜL Sayfa Adedi Tez Yöneticisi vi BACKUP SYSTEM ON VIRTUALIZED SERVERS (M.Sc. Thesis) Fevzi DAġ GAZĠ UNIVERSITY INFORMATICS INSTITUTE May 2012 ABSTRACT The emergence of virtualization technology dates back to 1970s but the effective use of technology has been possible in the 2000s. The new devices and technologies, which have been improved owing to the increasing demand for both the need and use of energy and the gradual decline of world energy resources, have been designed to use the energy more sufficiently. Virtualization technologies are based on these goals and it has been more preferable since it has a structure that allows easy manageability and the decrease in the need for labor. Moreover, it lessens the consumption of energy while it increases the effectiveness of it. The purpose of this study is to examine the advances on the branch of virtualization technology, which have become widespread, and in particular server virtualization technology virtualization switch and use the system to examine the process through a system. Also backups of virtual machines running on virtualized systems, a backup application that is aimed at developing customized. vii VMware ESXi backup application is developed successfully and quickly takes a backup of servers virtualized environment. Also taken from the backup application developed with the aid of a machine can be loaded back into the backup needs. Science Code Key Words Page Number Adviser : 702.1.014 : virtualization, virtualization technology, server backup, backup system : 91 : Doç. Dr. Halil Ġbrahim BÜLBÜL viii TEġEKKÜR Çalışmalarım boyunca değerli yardım ve katkılarıyla beni yönlendiren ve her aşamada katkısını esirgemeyen Hocam Doç. Dr. Halil İbrahim BÜLBÜL‘e ve her zaman yanımda olan aileme özellikle kardeşim Engin‘e teşekkürü bir borç bilirim. ix ĠÇĠNDEKĠLER Sayfa ÖZET........................................................................................................................... iv ABSTRACT ................................................................................................................ vi TEŞEKKÜR .............................................................................................................. viii İÇİNDEKİLER ........................................................................................................... ix ÇİZELGELERİN LİSTESİ ........................................................................................ xii ŞEKİLLERİN LİSTESİ ............................................................................................ xiii SİMGELER VE KISALTMALAR ............................................................................ xv 1. GİRİŞ ....................................................................................................................... 1 2. KONU İLE İLGİLİ YAPILMIŞ ÇALIŞMALAR ................................................... 5 3. SANALLAŞTIRMA TEKNOLOJİSİ VE VMWARE ............................................ 9 3.1. Sanallaştırma ................................................................................................. 9 3.2. Sanallaştırma Tarihi .................................................................................... 11 3.3. Sanallaştırmanın Hedefleri ve Amaçları ..................................................... 13 3.3.1. Kaynak optimizasyonu sağlamak ......................................................... 14 3.3.2. Yönetimi kolaylaştırmak ve kaynak maliyetlerini azaltmak ................ 14 3.3.3. İşletme esnekliğini artırmak ................................................................. 15 3.3.4. Güvenliği artırmak ve arıza süresini en aza indirgemek ...................... 15 3.3.5. Daha güçlü bir yedekleme ve geri yükleme sistemi oluşturmak.......... 16 3.4. Sanallaştırmanın Faydaları .......................................................................... 16 3.5. Sanallaştırma Teknolojileri ......................................................................... 19 3.6. Donanımsal Sanallaştırma........................................................................... 19 3.6.1. Tam sanallaştırma ................................................................................ 20 x Sayfa 3.6.2. Kısmi sanallaştırma (Para-virtualization) ............................................ 20 3.7. Yazılım Sanallaştırma ................................................................................. 21 3.7.1. İşletim sistemi sanallaştırma ................................................................ 22 3.7.2. Uygulama sanallaştırma ....................................................................... 24 3.8. Bellek Sanallaştırma.................................................................................... 26 3.9. Ağ Sanallaştırma ......................................................................................... 27 3.10. Depolama Sanallaştırma............................................................................ 29 3.10.1. NAS (Network-attached storage) ....................................................... 31 3.10.2. SAN (Storage area network) .............................................................. 31 3.11. Veri ve Veritabanı Sanallaştırması............................................................ 33 3.12. Sanallaştırma Standartları ......................................................................... 34 3.13. VMware Sanallaştırma Yapısı .................................................................. 35 3.13.1. VMware altyapı ve suite bileşenleri ................................................... 36 3.13.2. Yönetim araçları ................................................................................. 43 4. MATERYAL VE METOT .................................................................................... 49 4.1. Sanallaştırmada Kullanılan Donanımlar ..................................................... 49 4.2. Sanallaştırmada Kullanılan Yazılımlar ....................................................... 51 4.3. Test Ortamının Yapısı ................................................................................. 53 4.4. Yedekleme Uygulamasında Kullanılan Diğer Teknolojiler........................ 53 4.4.1. Sanallaştırılmış vMware ortamı için yazılım geliştirme ...................... 54 4.4.2. VMware Scripting APIs‘ye giriş .......................................................... 56 4.4.3. Linux kabuk programlama ................................................................... 56 4.5. Yedekleme İçin Geliştirilen Uygulama ....................................................... 57 xi Sayfa 5. SANALLAŞTIRILMIŞ SİSTEMLER İÇİN YEDEKLEME UYGULAMASI GELİŞTİRME ........................................................................................................ 58 5.1. Yedekleme Uygulamasının Yapıldığı Altyapı ............................................ 59 5.2. Sanallaştırılmış Sunucular İçin Yedekleme Uygulaması ............................ 61 5.2.1. Gereksinimler ....................................................................................... 67 5.2.2. Uygulama içeriği .................................................................................. 68 5.2.3. Kurulum ............................................................................................... 68 5.2.4. Yedek alma........................................................................................... 69 5.2.5. Yedeği alınmış bir makineye yedeğin geri yüklenmesi ....................... 72 5.3. Yedekleme Sistemlerinin Karşılaştırılması ............................................. 74 6. SONUÇ VE ÖNERİLER ....................................................................................... 76 KAYNAKLAR .......................................................................................................... 79 EKLER ....................................................................................................................... 82 EK-1. Yedekleme.sh dosyasındaki kodlar ......................................................... 83 EK-2. GeriYukle.sh dosyasındaki kodlar .......................................................... 86 EK-3. Yapilandirma.conf dosyasındaki kodlar .................................................. 89 ÖZGEÇMİŞ ............................................................................................................... 90 xii ÇĠZELGELERĠN LĠSTESĠ Çizelge Sayfa Çizelge 4.1. VMware ESXi Server 5.0 yazılımının kurulu olduğu fiziksel sunucu özellikleri ..............................................................................49 Çizelge 4.2. vSphere Client ve Putty yazılımlarının kurulu olduğu dizüstü bilgisayar özellikleri ..........................................................................50 Çizelge 5.1. Uygulamanın geliştirildiği Çankırı Karatekin Üniversitesinde kullanılan IBM xSeries 3650 sunucu temel özellikleri .....................59 Çizelge 5.2. Uygulamanın geliştirildiği Çankırı Karatekin Üniversitesinde kullanılan IBM DS3400 depolama aygıtının temel özellikleri .........60 Çizelge 5.3. Sanal işletim sistemlerinin yedeklenmesinde kullanılabilecek ticari çözümlere ve geliştirilen yedekleme uygulamasına ait temel özellikler.............................................................................................75 xiii ġEKĠLLERĠN LĠSTESĠ ġekil Sayfa Şekil 3.1. Sanal makine monitörü ........................................................................... 10 Şekil 3.2. Donanım sanallaştırma yapısı ................................................................. 19 Şekil 3.3. Yazılım sanallaştırma.............................................................................. 21 Şekil 3.4. İşletim sistemi sanallaştırma ................................................................... 22 Şekil 3.5. Uygulama sanallaştırma yapısı ............................................................... 24 Şekil 3.6. Bellek sanallaştırma yapısı .................................................................... 27 Şekil 3.7. Ağ sanallaştırma yapısı ........................................................................... 28 Şekil 3.8. Depolama sanallaştırma .......................................................................... 30 Şekil 3.9. Veritabanı sanallaştırma.......................................................................... 33 Şekil 3.10. VMware sanallaştırma yapısı ................................................................ 35 Şekil 3.11. VMware Suite bileşenleri ..................................................................... 37 Şekil 3.12. VMware virtual SMTP ......................................................................... 38 Şekil 3.13. VMware VMFS .................................................................................... 39 Şekil 3.14. VMware Virtual Center bileşeni ........................................................... 40 Şekil 3.15. VMware VMotion teknolojisi ............................................................... 41 Şekil 3.16. VMware HA (high availibility) teknolojisi........................................... 42 Şekil 3.17. vSphere teknolojisi................................................................................ 44 Şekil 3.18. vSphere client arayüzü ......................................................................... 45 Şekil 3.19. vSphere client arayüzü üzerinden konsol kullanımı ............................. 46 Şekil 3.20. vSphere web client arayüzü .................................................................. 47 Şekil 3.21. vSphere komut satırı arayüzü................................................................ 47 Şekil 4.1. VMware ESXi Server üzerinde oluşturulan sanal işletim sistemleri ...... 52 xiv ġekil Sayfa Şekil 4.2. VMware platformu üzerinde sanallaştırılmış sistemler için uygulama geliştirme araçları .................................................................................... 54 Şekil 4.3. VMware ortamında programlama ........................................................... 55 Şekil 4.4. VMware ESXi Server ortamında geliştirmiş basit bir kabuk programı .. 57 Şekil 5.1. Çankırı Karatekin Üniversitesi sanallaştırılmış altyapısı ........................ 60 Şekil 5.2. Yedekleme uygulamasına ait akış şeması ............................................... 63 Şekil 5.3. Yedekleme işleminin şematik olarak gösterilmesi ................................. 64 Şekil 5.4. Yedekleme uygulaması arayüzü ............................................................. 69 Şekil 5.5. Yedekleme programının çalışması .......................................................... 70 Şekil 5.6. Yedek dizinleri ........................................................................................ 71 Şekil 5.7. Yedekleme işlemi sonucunda oluşan dosyalar ....................................... 71 Şekil 5.8. geriYukle.sh uygulamasına ait arayüz ................................................... 72 xv SĠMGELER VE KISALTMALAR Bu çalışmada kullanılmış bazı simgeler ve kısaltmalar, açıklamaları ile birlikte aşağıda sunulmuştur. Simgeler Açıklamalar Bit En küçük bilgi depolama birimi GB Bilgi depolama birimidir. 1024 MB‘a eşdeğerdir. TB Bilgi depolama birimidir. 1024 GB‘a eşdeğerdir. Kısaltmalar Açıklama BT Bilişim Teknolojileri CPU Central Processing Unit (Merkezi İşlem Birimi) iSCSI Internet SCSI MMU Memory Management Unit (Bellek Yönetim Ünitesi) NAS Network Attached Storage (Ağ Depolama) NIC Network Interface Card (Ağ Arayüz Kartı) NSF Network File System (Ağ Dosya Sistemi) OVF Open Virtualization Format (Açık Sanallaştırma Formatı) SAN Storage Area Network (Saklama Alanı Ağları) SCSI The Small Computer System Interface (Küçük Bilgisayar Sistem Arayüzü) SNIA Storage Network Foundations (Depolama Ağ Vakfı) SOA Service Oriented Architecture (Servis Odaklı Mimari) VM Virtual Machine (Sanal Makine) VMM Virtual Machine Monitor (Sanal Makine Monitörü) SMS Simple Media System (Basit Medya Sistemi) 1 1. GĠRĠġ Bilişim teknolojileri (BT) alanında son yıllarda hızlı bir değişim yaşanmaktadır. Bu değişimin sonucunda yeni kavramlar, yeni teknolojiler ortaya çıkmaktadır. Bu kavram ve/veya teknolojilerden bir kısmı sınırlı bir değişim yaratırken diğer bir kısmı da bazı alanlar için kökten değişimler getirebilmektedir. Bilişim alanındaki gelişmeler sunucu ve istemci bazında değerlendirildiğinde her iki alanda da ciddi gelişmelerin yaşandığı görülmektedir. Sunucu ve istemci ile ilgili olarak BT alanında son yıllardaki en önemli gelişmelerden birisi sanallaştırma teknolojisidir. Son zamanlarda dünya genelinde büyük bir ivme kazanan sanallaştırma teknolojileri, ülkemizi de etkilemiş, birçok kurumun teknolojik altyapısında ve bilgi işlem merkezlerinde sanallaştırma çözümleri kullanılmaya başlanmıştır [1]. IBM firmasının 2002 yılında yaptığı bir araştırmaya göre; dünya üzerindeki birçok şirketin sunucu bilgisayarlarının yıl içerisinde çoğu zaman boş kaldığı, ayrıca masaüstü bilgisayar kullanıcılarının da, mevcut sistemlerini %5 den daha az kapasite ile kullandıklarını ortaya koymuştur [2]. Özellikle enerji kullanımının ve enerji ihtiyacının her geçen gün artması, dünya üzerindeki enerji kaynaklarının zamanla azalması nedeni ile geliştirilen yeni cihazlar ve teknolojiler, enerjiyi daha verimli kullanabilecek tasarımlarda üretilmektedir. Sanallaştırma teknolojileri bu temeller üzerine kurulmuş ve enerji tüketiminin azaltılması, enerji verimliliğinin artırılması gibi birçok avantajının yanı sıra işgücü ihtiyacını azaltan, kolay yönetilebilirliğe imkân tanıyan yapısıyla daha fazla tercih edilmeye başlanmıştır [1]. Bugün ve gelecekte kullanılacak olan teknolojinin kökleri daima geçmişten gelmektedir. Bugünün BT sektörünü yeniden şekillendiren ve büyük olasılıkla yeni nesil veri merkezlerinin kurulmasında önemli bir rol oynayacak olan sanallaştırma teknolojisinin geçmişi de oldukça uzun bir süreçtir. Sanallaştırma fikrini ortaya çıkaran ilk gelişmelerin, çoklu programlama ve zaman paylaşımı fikirlerinin Oxford Üniversitesinde ortaya atılması ile başladığı bilinmektedir. Bu fikirler ilk olarak Atlas projesi ile hayata geçmiş oldu. Manchester Üniversitesi tarafından 1960'ların başlarında yürütülen bu proje ile ilk kez supervizör (bir tür sanal makine monitörü 2 veya hipervizör) ve sanal bellek kavramları ile tanışılmış oldu [3]. Sanallaştırma teknolojisi ilk kez 1960'lı yıllarda büyük anabilgisayar donanımlarından daha iyi donanım kullanımı sağlamak amacıyla geliştirilmiştir. Günümüzdeki x86 tabanlı bilgisayarlar 1960‘lı yıllarda anabilgisayarların sahip olduğu benzer sorunlara sahiplerdi [4]. x86, 1980'li yıllarda bilgisayar teknolojisinde, baskın komut seti mimarisi olmuştur [5]. Diğer taraftan bu dönemde geliştirilen istemci-sunucu modeli dağıtık bilgi işlemeye izin vermektedir. Bu istemci-sunucu modeli yöneticilere çok düşük maliyetli iş istasyonlarına aynı anda bağlanmak için imkân vermiştir. Bu model sayesinde var olan kaynaklar birkaç güçlü sunucu kullanılarak bu iş istasyonları arasında dağıtılabilmiştir. Windows ve Linux tabanlı işletim sistemlerinin 1990'larda kitlesel olarak kullanıldığı dönemde x86 mimarisi ve sunucu-istemci modelleri bilgisayar dünyasında baskın teknolojilerdir. Ancak hiç kimse bilgisayar teknolojisi kullanımında bu kadar muazzam bir büyümeyi hayal edememiştir. Bundan dolayı BT altyapı talepleri konusunda sorunlar oluşmuştur [5]. Bu sorunlardan bazıları şunlardır; Düşük donanım altyapısının kullanımı Yükselen fiziki altyapı maliyetleri Yükselen BT yönetim maliyetleri Yetersiz afet koruma Yüksek bakım ve masraflı son kullanıcı masaüstü ortamı [4] Yukarıda belirtilen sorunları çözmek için en makul çözüm, donanım sanallaştırmadır. Böylece VMware 1999 yılında, x86 sistemler için ilk sanallaştırma uygulamasını tanıtmıştır. Günümüz modern makineleri işlem gücünün ve donanım kaynaklarının daha verimli kullanımına izin vermek için tıpkı 1960‘lı yıllarda anabilgisayarlarda olduğu gibi güçlü donanım kaynaklarını bölebilmektedir [5]. 3 Sanallaştırma teknolojisi ortaya çıkmadan önceki temel problem sistem kaynaklarının boşuna harcanmasıydı. Sanallaştırmadan önce bir anabilgisayar aynı anda sadece bir işletim sistemi ve üzerindeki uygulamaları veya servisleri çalıştırabilmekteydi. Bu durum ciddi anlamda kaynak israfına neden olmaktaydı. Sanallaştırma bu sorunu çözmek için piyasaya sürülmüştür. Bu teknoloji anabilgisayar donanım kaynaklarının bölünerek her bir bölümün ayrı çalışmasını sağlamıştır. Buna bağlı olarak tek bir fiziksel makine artık aynı anda birden fazla uygulamayı ve süreci çalıştırabilmiştir. Sanallaştırılma teknolojisi birçok yönden ciddi avantajlar getirmesine rağmen bu teknolojinin kullanılması ile birlikte bazı sorunların ortaya çıktığı bilinmektedir. Bu sorunlar temel olarak yönetimsel ve teknik problemlerdir. Yönetimsel problemler genel olarak; bilgi eksikliği, sistemi yanlış yapılandırma, hatalı yönetim gibi sistemi kuran veya kullanan kişilerden kaynaklanan sorunlardır. Teknik problemler de ise hypervisor açıklıkları, fiziksel sunucu açıklıkları, sanal sunucu açıklıkları, yönetim merkezi açıklıkları ön plana çıkmaktadır. Ayrıca sanallaştırma teknolojisinin köken olarak oldukça eski ama kullanım olarak yeni bir teknoloji olmasından dolayı sanallaştırma teknolojisi içen piyasaya çıkarılan üçüncü parti yazılımların sayısı nispeten azdır. Sanallaştırılmış sunucuların alt yapısı fiziksel sunuculardan tamamen farklıdır. Bu durum fiziksel sistemlerde kullanılan teknolojilerin büyük bir kısmının sanallaştırılmış sistemlerde kullanılmasına engel olmaktadır. Bu durum sunucu sistemlerde hayatı bir öneme sahip olan yedekleme noktasında da kendisini göstermektedir. Fiziksel sunucularda kullanılan yedekleme teknolojileri sanallaştırılmış sistemlerde kullanılmadığından dolayı sanallaştırılmış sistemler için çeşitli çözümler piyasaya çıkarılmıştır. Günümüzde sanallaştırılmış sistemler için piyasada var olan yedekleme çözümlerinin büyük kısmı ticari ve kapalı kaynak kodlu yazılımlardır. Bu yazılımlar çoğu zaman BT alt yapılarındaki farklılıkları göz önünde bulundurabilecek yapıda değildirler. Bunun yanında rotasyon desteğinin olmaması, yedekleme dosyalarına zaman bilgisinin eklenememesi, yedekleme sürecindeki bir 4 hatanın sistem yöneticisine bildirilmemesi mevcut yedekleme yazılımlarının temel eksiklikleridir. Bu çalışmanın amacı günümüzde hızla yaygınlaşmakta olan sanallaştırma teknolojisinin getirdiği yenilikleri incelemek ve özellikle sunucu sistemde sanallaştırmaya geçiş ve kullanım sürecini bir sistem üzerinden incelemektir. Ayrıca sanallaştırılmış sistemler üzerinde çalışan sanal işletim sistemlerinin yedeklenmesini sağlayan özelleştirilebilir bir yedekleme uygulamasının geliştirilmesi amaçlanmıştır. 5 2. KONU ĠLE ĠLGĠLĠ YAPILMIġ ÇALIġMALAR Sanallaştırma oldukça eski bir teknoloji olmasına rağmen, bu teknolojinin aktif bir şekilde kullanımı son yıllarda olmuştur. Sanallaştırma teknolojinin kullanılması ile birlikte farklı alanlarda bu teknolojinin kullanılmasına yönelik hem ülkemizde hem de yurt dışında birçok bilimsel çalışma yapılmıştır. Bu bölüm sanallaştırma teknolojisi ile ilgili yapılan çalışmaları kapsamaktadır. Sanallaştırma teknolojisi ile ilgili son zamanlarda yapılan bu çalışmalar önem sırasına göre aşağıda verilmiştir. Espen Braastad tarafından yapılan çalışmada açık kaynak araçlar kullanılarak sanallaştırılmış bir ortam hazırlanmıştır. Bu ortamda yüksek kullanılabilirlik hizmeti veren servislerin yönetimi ele alınmıştır. Bu servisleri çalıştıran sunucular sanal sistemlerde barındırılmışlardır. Bu çalışma Heartbeat adındaki yüksek kullanılabilirlik yazılımına dayanmaktadır. Bu çalışmada Heartbeat için bir eklenti geliştirilmiştir. Makineler düzgün bir şekilde kapatıldığında bu yazılım ile sanal makine düğümleri arasında sorunsuz bir şekilde göç edebilmek için izin geliştirilmiştir. Bu eklenti Heartbeat eklentisinin Xen sanal makinesi üzerinde yüksek erişilebilirlik ile çalıştığı bir ortamda test edilmiştir [6]. Sanallaştırılmış ortamlarda performans analizi birçok araştırmacının ilgisini çeken bir konudur. Jonas Eriksson yaptığı çalışmada sanallaştırılmış ortamlar için basitleştirilmiş bir şekilde kıyaslama ve test yapabilen bir aracın geliştirilmesi üzerinde durmuştur. Bu araç mümkün olduğunca az insan etkileşimi gerektirmesi amacıyla toplu iş odaklı olarak geliştirilmiştir. Çalışmada önceki çalışmalar hakkında ve Ericsson tarafından yöneltilen gereksinimler hakkında daha derin bilgi toplamak amacıyla, farklı kesimlerden geliştiriciler ve tasarımcılar ile görüşmeler yapılmıştır. Yapılan çalışmalar neticesinde sanallaştırma ile ilgili çok sayıda farklı teknolojinin olduğuna vurgu yapılmıştır. Var olan her teknolojinin kendisine göre avantajları ve dezavantajları mevcuttur. Tüm sanallaştırma teknolojilerini aynı anda test edebilecek bir uygulama geliştirmek oldukça zordur. Özellikle bir teknolojinin gelecekte ön plana çıkacağını öngörmek oldukça zordur. Çalışmaya göre kullanılacak sanallaştırma teknolojisinin seçiminde ihtiyaçları 6 ayrıntılı bir şekilde belirleyip mümkün olduğu kadar fazla kriteri göz önünde bulundurmak daha doğru bir seçim yapılmasını sağlayacaktır [7]. Performans analizi konusunda yapılan diğer bir çalışma ise Keith Adams ve Ole Agesen tarafından yapılmıştır. Bu çalışmada donanımsal sanallaştırmayı desteklemeyen bir VMM (virtual machine monitor) ile VMM desteğine donanımsal olarak sahip olan yeni bir VMM‘yi karşılaştırmıştır. Bu karşılaştırma için çok sayıda test yapılmıştır. Yapılan testler sonucunda şaşırtıcı bir şekilde donanımsal VMM ‗nin saf yazılımsal VMM‘den daha düşük performans gösterdiği gözlenmiştir. Bu durumun nedenini belirlemek için mimari düzeydeki olaylar örneğin, tablo güncellemeleri, durum anahtarları ve giriş çıkış üzerinde çalışılmıştır. Çalışmada donanım desteğinin başlıca iki nedenden dolayı kesin bir performans avantajı sağlamakta başarısız olduğu tespit edilmiştir: Birincisi donanım MMU (memory management unit) sanallaştırma için destek sunmamaktadır. İkincisi donanım destekli sanallaştırma mevcut yazılım teknikleri ile MMU (bellek yönetim ünitesi) sanallaştırma için başarısız olmaktadır. Çalışma sonucunda sezgisel olarak sadece donanım desteği ile performansı artışının beklenen bir sonuç olduğuna fakat ilk nesil donanımlar üzerinde yapılan testlerin ortaya karışık tablolar çıkardığı belirtilmiştir [8]. Sanal makinelerin geliştirilmesi konusunda da çeşitli çalışmalar yapılmıştır. Bu çalışmalarda genel olarak var olan teknolojilerin farklı yönlerden karşılaştırılmaları yapılmıştır. Robert Rose tarafından yapılan çalışmada sanal makine sistemlerinin geliştirilmesinde kullanılabilen iki ana yöntem üzerinde durulmuştur. Bu yöntemler tam sistem sanallaştırma ve yarım sanallaştırmadır. Çalışmada uygulamaların bağımsız ve soyutlanmış bir şekilde çalışabilmeleri için kullanılan sanallaştırma teknolojisinin daha uzun süreler kullanılabileceği sonucuna varılmıştır. Günümüzde yaygın olarak kullanılan I A-32 sistem mimarisinin sanallaştırma için tasarlanmadığı ve bu nedenle zeki programlama ve sınırlarını zorlayan tekniklerin sanallaştırmayı kullanmaya devam edecekleri belirtilmiştir [9]. 7 Mehmet Gürol ve Nuh Yavuzalp tarafından yapılan çalışmada okullarda ve eğitim kurumlarında sanallaştırmanın kullanımı incelenmiştir. Çalışmada ülkemizde bazı kurumların son yıllarda sanallaştırma teknolojisini kullanmaya başladıklarına vurgu yapılmıştır. Sanallaştırma yapılan kurumlarda sanallaştırmadan önceki durum ile sanallaştırmadan sonraki durum için ağ, fiziksel sunucu ve enerji harcaması gibi çeşitli faktörler üzerinden karşılaştırmalar yapılmıştır. Sanallaştırma çözümlerine yapılan yatırımların enerji tasarrufu ve toplam satın alma maliyetlerindeki indirimlerle çok kısa sürelerde yatırım maliyetlerini kuruma geri ödeyebildikleri vurgulanmıştır. Buradan hareketle özellikle eğitim kurumlarında ve okullarda mevcut BT laboratuvarlarının ihtiyaca cevap verebilir hale getirilmesinde ya da yeni yatırımlarda sanallaştırma çözümlerinin de göz önünde bulundurulması gerektiğine değinilmiştir [1]. Sanallaştırma teknolojisi Grid Computing (bilgisayar şebekesinde bilgi işleme) ve SOA (servis odaklı mimari) alanlarında etkin olarak kullanılmaktadır. Distributed computing olarak adlandırılan dağıtık bilgi işleme yönteminin sanallaştırılmasını sağlayan çözüm mimarisine kısaca Grid Computing denilmektedir. Buradaki temel amaç dağıtık bilgi işleme ve veri kaynaklarının kullanmakta olduğu işlemci güçleri, ağ kapasiteleri ve depolama kapasiteleri ile tek büyük bir sistem oluşturmaktır. Oluşturulan bu sistem tamamen birbirinden bağımsız çalışmakta olan ve birbirine benzemeyen sistemlerin bir araya gelerek oluşturduğu sanal bir işleme gücüdür. Bilgi sistemleri kapasitelerine sonsuz bir kullanım imkânı sunmaktadır [10]. SOA son dönemlerde popüler olan bir mimari yaklaşımdır. Bu mimarinin hedefi uygulama katmanlarını farklı servislere bölüp sunucular üzerinden kullanmaktır. Günümüzde birçok kuruluşun BT altyapısı heterojen uygulamalardan oluşmaktadır. Diğer taraftan bu uygulamaların birlikte çalışması son derece kritik bir öneme sahiptir. 90‘lı yıllardan başlayarak kurumlar bu bütünleşme sorunlarını çözmek için çeşitli mimariler veya teknolojiler geliştirmişlerdir. SOA bu modeller içerisinde en fazla kabul gören modellerden birisidir. S. Freitag ve arkadaşları tarafından yapılan çalışmada grid computing ve SOA için sanallaştırma yönetimi araştırılmıştır. Çalışmada yazılım yığınlarını farklı düzeylerde bütünleştirerek Grid ve SOA ile 8 kaynak sanallaştırmadan nasıl yararlanabilir konusu ele alınmıştır. Çalışmada, kaynak yönetimi ve planlama alanlarında sanallaştırma desteğinin etkisi üzerinde odaklanılmıştır. Çalışma basit bir işin (daha zorlu ve karmaşık) Grid cumputing sistemlerinden sanal makinelere teslimini sağlamayı amaçlamaktadır. Grid Middleware‘deki gerekli değişiklikler, gereksinimler ve LROR düzeyindeki sorunlar da tartışılmaktadır. Uzun vadede kullanıcı ve kaynak sağlayıcısının bu teknolojilerin benimsenmesi ve birleşiminden fayda sağlayacağı belirtilmektedir. Kullanıcıların artık uygulama yazılımlarını çalışma ortamına göre yeniden ayarlanması ihtiyacı olmayacaktır. Kullanıcılar sadece bir kez bir sanal makine oluşturacaklardır. Bu sanal makineler doğrudan gerekli olan yürütme ortamı ve uygulama düzeyinde yazılımları da içermektedirler. Daha sonra ayar gerektirmeden sanal makinelere her türlü yetenekli kaynak sunulabilecektir. SOA birçok tipik Grid‘de görülen boşpaylaşımlı iş yürütme ile karşılaştırıldığında daha fazla işlem odaklı, uzun çalışma senaryosunu takip etmektedir. Burada kaynak tahsisinin dinamik adaptasyon ile yapılması sanal ortamların yönetilmesi avantajlarından birisi olduğuna vurgu yapılmıştır [11]. 9 3. SANALLAġTIRMA TEKNOLOJĠSĠ VE VMWARE Sanallaştırma kavramının çeşitli tanımları mevcuttur. Bu tanımların büyük bir kısmı sanallaştırılmayı doğru bir biçimde ifade edebilmektedir. Birçok bilgisayar kullanıcısı için sanallaştırma var olan bir işletim sistemi üzerine VMware, Virtual PC veya Virtual Box yazılımlarından birisi ile ikinci veya üçüncü bir işletim sistemini kurmaktır. Bu işlem aslında bir sanallaştırma uygulamasıdır. Oysa sanallaştırma teknolojisi bundan çok daha fazlasını sunmaktadır. Bu bölümde bu teknolojilerden bahsedilmiştir. 3.1. SanallaĢtırma Sanallaştırma, IBM firmasının 1960'lı yıllarda geliştirmeye başladığı bir teknolojidir. Bu teknolojinin temelinde fiziksel sistemlerin sanal kopyalarının oluşturulması yatmaktadır. Sanallaştırma, bilişim kaynaklarının (işlemci, depolama, ağ, bellek, platform, sunucu, masaüstü, uygulama vb.) gerçekte var olan kaynağın değil de, gerçek kaynağa dayandırılarak tanımlanmış olan soyut halinin, kullanıcılara sunulması olarak tanımlanabilir. Böylece gerçek kaynak, göreceli olarak daha az kapasiteli çok sayıda sanal kaynak olarak kullandırılabilmektedir [3]. Sanal makinenin tanımını ilk defa Popek ve Goldberg yapmışlardır. Popek ve Goldberg bilgisayar mimarisinin sanal makineleri desteklemesi için gerekli olan koşulları araştırmışlardır. Popek ve Goldberg, sanal makineyi tanımlarken gerçek makinenin soyut ve etkili bir kopyası olduğunu ifade etmektedirler. Popek ve Goldberg‘i meşgul eden temel soru IBM 360/67‘nın sanal makine teknolojisini desteklerken DEC PDP-10‘nin neden desteklemediği olsa da, o dönemde Popek ve Goldberg tarafından ortaya atılan kriterler günümüz modern mimarilerinde halen kabul edilmektedir. Popek ve Goldberg‘ın teoremlerinin temeli, yönetici ve kullanıcı modları arasındaki farktır. Yönetici modu bir makineye 10 erişmeye tamamen izin vermektedir. Bu erişim tipik olarak işletim sistemlerinin çekirdekleri ve VMM tarafından yapılmaktadır. Diğer taraftan kullanıcı modu ise daha kısıtlıdır. Bu mod uygulamalar tarafından kullanılmaktadır [12]. Sanallaştırma teknolojisinin önemli kavramlarından birisi sanal makine monitörüdür. Bir sanal makine monitörü (VMM) aynı fiziksel makinenin güvenli bir şekilde farklı görevleri yerine getiren birden fazla sanal makine tarafından kullanılmasına imkân vermektedir. Özellikle, sanal makineler arasında izolasyonu sağlar ve donanım kaynaklarına erişimi yönetmektedir [13]. Şekil 3.1‘de sanal makine ile donanım arasındaki ilişki görsel olarak ifade edilmiştir. Şekil 3.1. Sanal makine monitörü Sanallaştırma sayesinde işlemci (CPU), bellek (RAM), sabit disk ve ağ adaptörleri gibi mevcut fiziksel kaynaklar mantıksal bölümlere ayırabilmektedir. Bu mantıksal bölümlerden her birisinin farklı bir bilgisayar gibi davranması sağlanmaktadır. Sanallaştırma teknolojisi hem masaüstü uygulamalarında hem de sunucu sistemlerde kullanılmaktadır. Özellikle son yıllarda sunucu tarafında sanallaştırma teknolojisinin kullanımı her geçen gün artmaktadır. 11 3.2. SanallaĢtırma Tarihi Sanallaştırma konusunda ilk çalışmalar çoklu programlama ve zaman paylaşımı fikirlerine dayanmaktadır. Bu çalışmalar ilk defa Oxford Üniversitesinde ortaya çıkmıştır. Oxford Üniversitesinde ortaya atılan bu fikirler1960‘lı yıllarda Manchester Üniversitesi tarafından yürütülen Atlas projesi ile hayata geçmiştir. Bu proje çalışmaları kapsamında ilk kez supervizör ve sanal bellek kavramları ortaya çıkmış oldu. Sanallaştırma konusunda çalışan diğer önemli bir aktör ise IBM firmasıdır. IBM‘in geliştirdiği M44/44X deneysel sistemlerde ilk kez sanal makine kavramı ile ilgili fikirler ortaya atılmaya başlanmıştır. Bu çalışmalar neticesinde IBM, Sistem/360 ile zaman paylaşımlı ortam sunmaya başlamıştır. Bu çalışmalar sırasında, 1966 yılında ilk kez IBM CP-40 ve IBM CP-67 ile tam sanallaştırma (full virtualization) gerçekleştirilmiştir. Daha sonra, IBM S/370 sistemi üzerinde çalışmaya başlamıştır ve ilk donanım destekli sanallaştırma (hardware-assisted virtualization) hayata geçirilirken, ilk sanal makine işletim sistemi olan VM/370 de ortaya çıkarılmıştır [14]. Mantıksal bölünme ise, 1980‘li yıllarda IBM ESA/390, Amdahl, Hitachi sistemleri ile sanallaştırma tarihinde yerini almıştır [3]. IBM firmasının yaptığı çalışmaların yanında yapılan başka çalışmalar da sanallaştırma tarihinde önemli rol oynamıştır; 1960'ların sonunda, CDC 7600 süper bilgisayarları için işletim sistemi olarak kullanılmak üzere Lawrence Livermore 4 Laboratuvarı tarafından geliştirilen Livermore anabilgisayar sistemi, Cray süper bilgisayarlarının eski türleri için 1970'lerin başlarında geliştirilen ve Amerika Birleşik Devletleri Enerji Bakanlığı tarafından nükleer araştırmalar için kullanılan Cray X-MP bilgisayarları üzerinde yer alan Cray anabilgisayar sistemi TCP/IP gibi yeni iletişim protokollerini desteklemek üzere Cray bilgisayarları için geliştirilen ancak kullanıcılar tarafından kabul görmeyen Yeni Livermore anabilgisayar sistemi ön plana çıkan çalışmalardır [3]. 12 1980‘li yılların sonlarına doğru BT altyapısında kullanılan sistemlerin fiyatları ucuzlamıştır. Bunun neticesinde merkezi sistemlerden dağıtık yapılara ve istemci/sunucu mimarisine doğru bir yönelim başlamıştır. Bu durum hem sunucu hem de istemci bilgisayar sistemlerinin sayısını ciddi oranda artırmıştır. 1995‘lere gelindiğinde birçok çalışma, aslında dağıtık yapı ve uygulamaları yönetmenin, kaynakları etkin olarak kullanmanın çok da kolay ve ekonomik olmadığını göstermiştir. Böylece tersine giden merkezileşme süreci başlamıştır; ancak bu kez de her fonksiyon için (LDAP, web, uygulama, dosya, vb.) ayrı bir sunucu kullanılmıştır. Esas olarak birer yazılım olan bu sunucuların tek tek yönetim kolaylığının sağlanması ve ayrıca bağımlılıklarının ayrıştırılması için farklı fiziki sistemlerde konumlandırılması yaygın bir uygulama halini aldı [3]. Bu yaklaşım ise, var olan donanım kaynaklarının büyük kısmının atıl duruma gelmesine neden olmuştur. Bakım masraflarındaki artışa ek olarak, her bir sunucunun verimi düşmüş ve tipik boşta kalma oranı %85-90'lara kadar yükselmiştir. 1990‘lı yılların sonunda ekonomik gelişmeler, maliyetlerin gözden geçirilmesini ve kaynakların daha verimli kullanılması ihtiyacını doğurmuş ve sanallaştırma tekrar gündeme gelmiştir. Bu kapsamda 1998‘de sanallaştırma konusunda çözümler sunan VMware firması kurulmuştur. VMware firmasının ilk ürünü olan VMware Workstation 1999‘da piyasaya çıkmıştır [15]. VMware sunucu pazarına ise 2001 yılında VMware GSX Server ve VMware ESX Server ürünleri ile girmiştir. 2003‗de VMware firması Virtual Center ve VMotion ve Virtual SMP teknolojilerini duyurmuştur. Windows ve Linux ortamında çalışan VMware, 2006 yılından itibaren Mac OS üzerinde de çalışabilecek ürünleri piyasaya çıkarmaya başlamıştır. Bunun yanında özellikle işlemci üreticileri genel eğilimi takip etmişlerdir. Intel ve AMD 2005-2006 yıllarında sanallaştırmayı destekleyecek ürünler piyasaya çıkarmaya başlamışlardır [16]. Yaygın kullanılan Intel IA-32 mimarisinin sanallaştırma konusundaki eksiklerinin tamamlanması, bu mimarideki uygulamaların sanallaştırılmasını da hızlandırdı. Aynı yıllarda, daha sonra tamamen açık kaynak olan Xen yazılımı, bir araştırma projesi olarak Cambridge Üniversitesi'nde 13 geliştirilmiştir. Xen‘in ilk ürünü 2003‘de pazara sunuldu. 2007‘de Citrix Systems, Xen‘i satın almış ve Xen projesi ile ortaya çıkan ürünleri Xensource olarak isimlendirmiştir. 2007‘de bu sektörün öncülerinden Citrix, IBM, Intel, HewlettPackard, Novell, Red Hat, Sun Microsystems ve Oracle'ın katılımıyla Xen projesi danışma kurulunu oluşturmuştur [3]. IBM de, sanallaştırma çalışmalarını 2001 yıllarında POWER mimarisi (pSeries ve iSeries) sistemlerine taşımıştır. IBM firmasının sanallaştırma için piyasaya çıkardığı ürün z/VM‘dir. z/VM işletim sistemi, tek hipervizörde çok sayıda sanal görüntü barındırabilmesinin yanı sıra, bir bilgisayarın birçok bilgisayar gibi görünmesini sağlayan sanallaştırma teknolojisi sahiptir. z/VM, bu özelliği ile kuruluşların BT altyapılarını birleştirip daha da optimize edebilmelerini sağlamaktadır. IBM, 2008‗de piyasaya çıkardığı Power/VM ve z/VM ürünleri ile sanallaştırma konusunda önemli bir aktör olduğunu göstermiştir [3]. Günümüzde Sun, VMware, Microsoft ve IBM gibi birçok firmanın çeşitli ürünleri mevcuttur. Bu ürünler ile birlikte ön plana çıkan bir diğer ürün ise Xen‘dir. Popüler birçok Linux dağıtımı Xen desteği ile gelmektedir. Özgür yazılım projeleri içerisindeki kod paylaşımı Xen‘nin hızlı bir şekilde gelişmesini sağlamıştır. Xen günümüzde VMware ve Microsoft ile birlikte sanallaştırma konusunda ön plana çıkan üç çözümden birisidir. 3.3. SanallaĢtırmanın Hedefleri ve Amaçları Bilim dünyasında buluşlar çoğu zaman rastlantılar sonucu ortaya çıkmaktadır. Ama bilgisayar teknolojisi için aynı durumdan bahsetmek zordur. Bilgisayar teknolojisinde ortaya çıkan teknolojilerinin büyük bir bölümü bir ihtiyacı gidermek veya bilinen bir sorunu çözmek amacıyla AR-GE çalışmaları sonucu ortaya çıkmaktadır. Bu durum sanallaştırma teknolojisi için de geçerlidir. Daha önceki bölümlerde de değindiğimiz gibi sanallaştırma teknolojisi bilinen bazı sorunları ve kısıtlamaları ortadan kaldırmak amacıyla önce teorik olarak geliştirilmiş ve kısa bir süre sonra da pratiğe uygulanmıştır. 14 Sanallaştırma teknolojisinin ortaya çıkmasının temel hedef ve amaçları aşağıda açıklanmıştır: 3.3.1. Kaynak optimizasyonu sağlamak Günümüzde sunucu teknolojileri oldukça gelişmiştir. Sıradan bir fiziksel sunucu kaynağının ortalama sadece %5-%15‘i kullanılabilmektedir [5]. Bu problem 1960‘lı yıllarda anabilgisayarların yaşadığı probleme benzemektedir. Bu dönemde anabilgisayar kaynaklarının çok büyük bir kısmı boşa harcanmaktaydı. Sanallaştırmanın temel amaçlarından birisi bu problemi çözmektir. Sanallaştırma teknolojisi bir fiziksel sunucuyu sanallaştırılmış uygulamalar olarak kullanıp donanım kaynaklarının boşa harcanmasına engel olmayı amaçlamaktadır. Kaynak optimizasyonu büyük ölçüde yönetim ve işletim maliyetlerini azaltmaktadır. Sanallaştırılmış sistemlerde fiziksel bir makine üzerine aynı anda birden fazla işletim sistemi kurmak ve çalıştırmak ayrıca her bir işletim sistemi üzerinde de ihtiyaca göre bir veya birden fazla servis veya uygulama çalıştırmak mümkündür. Bu yapı eldeki fiziksel kaynakların çok daha verimli kullanılmasına yardımcı olmaktadır. 3.3.2. Yönetimi kolaylaĢtırmak ve kaynak maliyetlerini azaltmak Günümüzde kullanılan fiziksel sunucu/iş istasyonu sayısının çokluğu nedeniyle, birçok organizasyon fiziksel mekân, güç ve soğutma gibi sorunlar ile uğraşmak zorunda kalmaktadır. Artan enerji ve yerleşke talebi hem çevre için hem de şirketler için olumsuz sonuçlar doğurmaktadır [5]. Sanallaştırılmış bir altyapı kullanma, çok daha az fiziksel makineye ihtiyaç duyacağı için şirketlerin birçok yönden ciddi anlamda tasarruf yapmasına yardımcı olmaktadır. Sanallaştırılmış sistemlerde ağ maliyetleri konusunda da ciddi tasarruflar sağlanmaktadır. Sanallaştırılmış bir sistem, fiziksel bir sisteme göre daha az ağ anahtarına (switch), huba, kablolamaya ve kabine ihtiyaç duymaktadır. Bunun 15 yanında ortamdaki fiziksel araçların azalmasından dolayı ağ alt yapısı daha az sorun çıkarmaktadır. Sanallaştırma merkezi bir yapı sağlamaktadır. Sanallaştırılmış sistemlerde var olan tüm sanal makineleri bir merkezden yönetmek ciddi anlamda kolaylık ve iş gücü tasarrufu sağlamaktadır. 3.3.3. ĠĢletme esnekliğini artırmak Bir işletme var olan sunucu kapasitesini artırmak istediğinde genellikle bu birçok firma için ciddi anlamda ek maliyet ve uzun bir süreç anlamına gelmektedir. Sunucu kapasitesini artırmak isteyen bir firmanın yapması gereken ilk işlem yeni sunucular için uygun bir ortam sağlamaktır. Sonraki süreçte ise bu makinelerin yapılandırılması gerekmektedir. Bu işlemler zaman almaktadır. Bu süreçte hem doğrudan hem de dolaylı olarak iş kaynakları israf edilmektedir. Diğer taraftan sanal makineler kolayca ayarlanabilmektedir. Sanal sunucu kurulumunda çoğu zaman ek donanım maliyeti, ekstra fiziksel alan gibi sorunlar yaşanmamaktadır. Sanal makine yönetim yazılımları sistem yöneticilerinin çok daha hızlı ve kolay bir biçimde sanal sunucuya bağlanıp her türlü ayarları yapmasına imkân vermektedir. 3.3.4. Güvenliği artırmak ve arıza süresini en aza indirgemek Fiziksel bir makinede bir sorun oluştuğunda, genellikle işletim sistemindeki tüm uygulama ve içerikler erişilemez hale gelmektedir. Ayrıca makinedeki sorunu çözmek için makinenin bir süre devre dışı kalması gerekmektedir. Sanal makineler ise birbirlerinden bağımsız yapılardır. Bir sanal makinede problem yaşandığında bu problem hiçbir şekilde diğer makineleri etkilememektedir. Çünkü bir fiziksel makinedeki sanal makineler aynı donanım üzerinde yer almalarına rağmen bunlar birbirlerinden tamamen izole edilmişlerdir. Bu sanal makinelerin güvenliğini artırmaktadır. 16 Sanal makinelerin bir diğer büyük avantajı donanıma bağımlı olmamasıdır. Bunun anlamı bir sanal sunucuda donanım kaynaklı bir hata oluştuğunda, sanal makine çok kısa bir süre içerisinde başka bir fiziksel sunucuya taşınabilmektedir. Çünkü fiziksel bir makinede yer alan her bir sanal makine aslında sıradan bir uygulama programına ait bir dosyadan farklı değildir. Yeni fiziksel makineye taşınan sanal makine çok kısa bir süre içerisinde tekrar hizmet vermeye başlayabilmektedir. 3.3.5. Daha güçlü bir yedekleme ve geri yükleme sistemi oluĢturmak Günümüz modern işletmeleri için maksimum çalışma süresi çok önemli bir kriterdir. Sistemin bir süre devre dışı kalması işletmeler için hem maddi kayıplara hem de marka değerinin düşmesine neden olmaktadır. Tüm sistemlerde zamanla mutlaka çeşitli hatalar oluşmaktadır. Bu noktada önemli olan sistemin tekrar hizmet vermeye başlama süresidir. Bu sürenin mümkün olduğu kadar kısa olması gerekmektedir. Bu süreyi belirleyen en önemli etkenlerden birisi sistem yedeğinin alınması veya alınan sistem yedeğinin geri yüklenmesi sürecidir. Sanallaştırılmış bir ortamda, yedekleme ve geri yükleme işlemleri fiziksel sunucuların yer aldığı bir ortama göre çok daha kolay ve hızlı yapılabilmektedir. Sanallaştırılmış sistemler kullanılan sanallaştırma yazılı ile birlikte çeşitli yedekleme programları gelmektedir. Bu programlar ile var olan sistemlerin yedeklerini almak veya alınan yedeği sisteme geri yüklemek oldukça kolay olabilmektedir. Ayrıca Vmware veya Xen gibi sanallaştırma yazılımlarının kullanıldığı ortamlarda yazılan bir betik yardımı ile yedekleme ve geri yükleme işlemleri yapılabilmektedir. 3.4. SanallaĢtırmanın Faydaları Günümüz koşullarında sanallaştırma teknolojisi ile kullanıcılar büyük avantajlar elde etmektedirler. Bu avantajlar genel olarak aşağıdaki başlıklar altında özetlenebilir. 17 Daha kolay yönetilebilirlik Sistem yöneticileri sanallaştırma kullanarak, tek bir fiziksel makine üzerinde yer alan makinelerinin tamamını görüntüleyebilmekte ve yönetebilmektedirler. Uyumluluk sorunlarını ortadan kaldırılması Yakın zamana kadar bir makine üzerinde Mac OS X, Linux ya da Windows çalıştırmak oldukça zahmetli bir işti. Hatta bu tarz çabalar çoğu zaman başarısızlık ile sonuçlanmaktaydı. Mac OS X, Linux ya da Windows işletim sistemlerinin farklı mimarilere sahip olmaları uyumluluk sorunlarına neden olmaktaydı. Günümüzde ise sanal makineler, birçok farklı işletim sistemi ve bu işletim sistemleri üzerinde çalışan farklı uygulamaları birbirlerinden etkilenmeden sorunsuz bir şekilde, tek bir fiziksel makine üzerinde çalıştırabilmektedir. Hata izolasyonu Aynı fiziksel makinede çalışan sistemlerin birbirinden etkilenmesi beklenen bir durum olmasına rağmen sanallaştırma teknolojisi fiziksel makine üzerinde çalışan her bir sanal sistemin diğerlerin habersiz ve izole edilmiş bir şekilde çalışmasını sağlamaktadır. Dolayısı ile bir sanal makinede oluşan bir sorun diğer sanal makineleri etkilemez. Sorunlar otomatik olarak izole edilir. Diğer tüm sistemler ve servisler çalışmaya devam ederken oluşan sorun sistem yöneticileri tarafından giderilebilmektedir. Kaynakların daha verimli kullanımı Birçok sanal makine tek bir fiziksel makine üzerinde çalışabilmektedir. Bu durum fiziksel kaynakların sadece tek bir hizmeti veya uygulamayı çalıştıran bir makineye göre çok daha verimli kullanılmasını sağlamaktadır. 18 Taşınabilirlik Sanal makine veri dosyaları fiziksel makine üzerinde bir dosya şeklinde saklanır. makineler, işlevsellik Bu sanal açısından herhangi bir değişiklik olmadan herhangi bir fiziksel makineden diğerine kolayca taşınabilmektedir. Ücretsiz test ortamı Çalışan bir sisteme yeni bir uygulama veya servis ekleneceği zaman öncelikle bu servisin test edilmesi gerekmektedir. Test edilen servisin çalışan sisteme zarar vermemesi son derece önemli bir konudur. Bu nedenle çoğu sistem yöneticisi elindeki kaynakları kullanarak bir test ortamı oluşturmaktadır. Fiziksel sunucular ile bir test ortamı oluşturmak oldukça maliyetli ve zahmetli bir iş iken sanallaştırılmış bir sistemde bu işlem son derece kolaydır. Sanallaştırılmış ortamda test edilmek istenen uygulamalar diğer sistemleri etkilemeden rahat bir şekilde test edilebilmektedirler. Hızlı kurulum Fiziksel bir makine üzerinde yer alan bir sanal makine sabit sürücü üzerinde bir dosya olarak temsil edilmektedir. Bu sanal bir sistemin hızlıca çoğaltılabileceği veya başka bir makineye hızlıca transfer edilebileceği anlamına gelmektedir. Şablon makine olarak bir sanal makine kullanıp, yeni sanal makineleri hızlı bir şekilde var olan şablon makineden kopyalamak mümkün hale gelmektedir. Düşük maliyetler Maliyetler daha az fiziksel donanım, daha az güç ve soğutma gereksinimleri, daha az fiziksel alan ve daha az personel gereksinimleri şeklinde azalır. 19 3.5. SanallaĢtırma Teknolojileri Günümüzde çok sayıda sanallaştırma çözümü mevcuttur. Hangi çözümün tercih edileceği yapılan işin hedeflerine bağlıdır. Bu çözümler arasındaki temel farklılık esneklik ve performans derecelerine bağlıdır [6]. Bu bölümde günümüzde şu anda aktif olarak kullanılan sanallaştırma teknolojilerine değinilecektir. 3.6. Donanımsal SanallaĢtırma Bir bilgisayar sisteminin kaynaklarını sanallaştırma fikri yıllardır üzerinde çalışılan bir konudur. Bu fikir işlemciler, bellek ve giriş-çıkış birimleri dâhil olmak üzere, bilgisayar sistemlerinin paylaştırılmasını ve kullanımının artırılmasını amaçlamaktadır. Donanım sanallaştırmada, tek bir fiziksel platform üzerinde birden fazla işletim sistemi ve yazılım paketlerinin çalışması sağlanır [17]. Donanım sanallaştırmada kurulan bireysel işletim sistemleri ile fiziksel donanım arasına yeni bir soyutlama katmanı eklenmektedir. Donanım sanallaştırma ile soyutlama katmanı aynı anda birden fazla işletim sisteminin bir dizi donanım ile etkileşimini sağlamaktadır [18]. Şekil 3.2‘de donanım sanallaştırma teknolojisinin çalışma mantığı açıklanmıştır. Şekil 3.2. Donanım sanallaştırma yapısı 20 Donanım sanallaştırma teknolojisinde sanal makine monitörü veya hypervisor olarak adlandırılan bir yazılım katmanı mevcuttur. Bu katman sanal olan her bir konuk işletim sisteminin fiziksel donanıma erişmesini sağlamaktadır. Bu sanal bir ortamın ara yüzüdür [17]. Donanımsal olarak sanallaştırılmış bir sisteme kaç tane sanal işletim sistemi kullanılabileceği tamamen fiziksel donanımın yapısına bağlıdır. Bunun yanında donanımsal sanallaştırmada kurulan sanal işletim sistemleri aynı olabileceği gibi (Windows 7 gibi), farklı da olabilir (Windows 7, Linux Ubuntu gibi). Donanımsal sanallaştırma için kullanılabilecek yazılımların listesi aşağıda verilmiştir: • VMware Virtual Center ve ESX(i) Server • Microsoft Hyper-V ve Virtual Server • Citrix XenSource • Open Source Xen • IBM zSeries • Linux KVM • Oracle VM 3.6.1. Tam sanallaĢtırma Tam sanallaştırma bir işletim sisteminin izole edilmiş bir sanal ortama (bir sanal makine gibi) kurulma sürecini ifade etmektedir. Fiziksel kaynaklar her bir sanal makine için taklit edilmektedir. Yani her bir sanal makine için sanal bir işlemci, ekran kartı, sabit disk gibi donanımsal kaynaklar oluşturulmaktadır. Diğer taraftan ise fiziksel kaynaklar bir veya daha fazla sanal makine arasında paylaştırılmaktadır [5]. Tam sanallaştırma kısmi sanallaştırmaya göre daha çok kaynak gereksinimi olduğu için daha düşük performans göstermektedir. 3.6.2. Kısmi sanallaĢtırma (Para-virtualization) Misafir işletim sistemi üzerinde yapılan modifikasyon ile sunucu üzerinde çalışan arayüz haberleşmesi sonucunda hız kazanımı sağlayan teknoloji ve sanallaştırma çeşididir. Daha fazla başarım için işlemci seviyesinde, Intel-VT ve AMD-V 21 teknolojileri kullanılmakta ve bazı sanallaştırma yazılımları bu teknolojilere gereksinim duymaktadır. Geleneksel olarak x86 mimarisinde donanım tabanlı sanallaştırma kullanmak mümkün değildir. Bunun nedeni x86 mimarisinde CPU süreç talimatlarının farklı olmasıdır. Kısmi sanallaştırma misafir işletim sisteminin hypervisor üzerinde çalışması için özellikle yapılandırılmasını (genellikle çekirdek seviyesinde) gerektirir. Bu değişiklik sanallaştırma verimliliğinin artmasını sağlamaktadır. Kısmi sanallaştırma çözümü oldukça etkili olmasına rağmen çok az işletim sistemi tarafından desteklenmesi bu teknolojinin dezavantajıdır [5]. 3.7. Yazılım SanallaĢtırma Sanallaştırma ile ilgili birçok kaynakta yazılım sanallaştırma, işletim sistemi sanallaştırma ve uygulama sanallaştırma kavramları iç içe geçmiştir. Bu kavramlar çoğu zaman birbirlerinin yerine kullanılmaktadır. Oysa bu kavramlar birbirlerinden farklıdır. İşletim sistemi sanallaştırma ve uygulama sanallaştırma yazılım sanallaştırmanın birer türüdür. Genel olarak yazılım sanallaştırma teknikleri istemci veya sunucu sistemlerde çoklu ve farklı işletim sistemlerinin tek makine üzerinde çalışmasına yöneliktir [20]. Şekil 3.3‘te yazılım sanallaştırma ile bir fiziksel makineye çoklu işletim sisteminin kurulumu yapısal olarak ifade edilmektedir. Şekil 3.3. Yazılım sanallaştırma 22 3.7.1. ĠĢletim sistemi sanallaĢtırma İşletim sistemi sanallaştırması günümüzde en yaygın kullanılan sanallaştırma tekniğidir. Sanallaştırmanın en temel en kolay mantığı bu yöntemde görülmektedir. Bu teknolojide standart bir fiziksel makine aynı anda Windows, Linux, Unix, Mac OS gibi işletim sistemlerini çalıştırabilmektedir. Ana makine üzerinde çalışan her bir makine sanal makine (virtual machine) olarak adlandırılmaktadır. Çalışan bu işletim sistemleri üzerinde herhangi bir modifikasyon yapılmasına gerek yoktur. Bu teknolojide her bir işletim sistemi kendi üzerine yüklü olan bir programı diğer işletim sistemlerinden bağımsız çalıştırabilmektedir. Çalışan uygulamaların tüm kontrolleri (programı çalıştırma, durdurma, kapatma, askıya alma vb.) misafir işletim sistemi üzerinden yapılmaktadır. Yapılan bu işlemlerden diğer misafir işletim sistemleri ve bu misafir işletim sistemleri üzerinde çalışan uygulamalar etkilenmezler. Bu teknolojide çalışan misafir işletim sistemlerinin doğrudan fiziksel donanım ile hiçbir etkileşimi yoktur. Burada çalışan her bir misafir işletim sistemi gerçek işletim sistemi üzerinde birer süreç olarak tanımlanır ve bu şekilde kontrol edilir [5]. Günümüzde, bu teknoloji için yazılmış birkaç tane yazılım mevcuttur. Microsoft firmasının Virtual PC, VMware firmasının VMware Server firmasının Virtual Box uygulamaları ön plana çıkan çözümlerdir. Şekil 3.4. İşletim sistemi sanallaştırma ve Oracle 23 Misafir işletim sistemi teknolojisinin çalışma mantığı Şekil 3.4‗te gösterilmektedir. Bu teknolojide fiziksel donanım üzerine bir işletim sistemi kurulmaktadır (Windows 7 veya Linux Ubuntu gibi). Bu işletim sistemi üzerine uygulama sanallaştırmayı destekleyen bir yazılım kurulmaktadır (Virtual Box, VMware Server gibi).Bu yazılımlar sanal makine monitörü olarak adlandırılmaktadır. Kurulan bu yazılım üzerine fiziksel donanımın desteklediği sayıda farklı işletim sistemi kurulabilmekte ve çalıştırılabilmektedir. Bu teknolojide ana işletim sistemi ile misafir işletim sistemleri arasındaki soyutlama katmanı hem ana işletim sisteminde hem de misafir işletim sistemlerinde ciddi performans kayıplarının yaşanmasına neden olmaktadır. Bu tekniğin en önemli avantajı donanımsal veya yazılımsal anlamda ek hiçbir özelliğe gereksinim duymamasıdır. Örneğin daha ilerleyen bölümlerde inceleyeceğimiz donanımsal sanallaştırmada işlemcinin belirli teknolojileri desteklemesi zorunlu olacaktır. İşletim sistemi sanallaştırma ile tam sanallaştırma teknolojileri birbirlerine yakınmış gibi gözükseler bile aslında birbirlerinden oldukça farklı teknolojilerdir. Tam sanallaştırma donanımın tümüyle sanallaştırılmasını ifade etmektedir. Her bir sanal ortam daha sonra kendi işletim sistemi ve daha önemlisi kendi çekirdeği altında çalıştırılır. İşletim sistemi sanallaştırma sanal ortamların oluşturulması sürecinde kendi çekirdeğini oluşturmaması yönü ile tam sanallaştırmadan farklıdır. Bunun yerine, işletim sistemi sanallaştırmada tek bir çekirdek altında, sanal ortamlar (konteyner olarak da bilinirler) çalıştırılır. İşletim sistemi sanallaştırma teknolojisinde her konteyner ortamı diğer konteynerlerden izole edilmektedir. Her bir konteyner bir fiziksel sunucu gibi gözükür ve davranır. Bir konteyner ortamı, fiziksel makinenin ona yüklediği iş yükünü kabul etmektedir. Sonuç olarak işletim sistemi sanallaştırma tam sanallaştırma kadar etkilidir. Ancak görüldüğü gibi, her bir çözüm için izlenen süreçler aslında farklıdır. 24 Günümüzde işletim sistemi sanallaştırma konusunda kullanabileceğimiz çok sayıda yazılım mevcuttur. Bu yazılımlardan yaygın olarak kullanılanlar aşağıda yer almaktadır: • Sun Solaris Containers • Parallels Virtuozzo • HP Secure Resource Partitions • Open Source Open VZ • Linux Jails [5] 3.7.2. Uygulama sanallaĢtırma Kullanıcı veya bilgisayar sayısı arttıkça uygulama dağıtımı yapmak ve bilgisayarları kontrol altında tutmak zorlaşmaktadır. Zorlukların üstesinden gelebilmek için uygulama sanallaştırma teknolojisi kullanarak, uygulamaları kullanıcıların bilgisayarlarına yüklemeden, güvenli bir şekilde ve hizmet olarak dağıtabilmek olanaklı hale gelmektedir. Bu teknoloji ile uygulama dağıtımında önemli bir maliyet ve insan gücü avantajı elde edilebilmektedir [21]. Şekil 3.5. Uygulama sanallaştırma yapısı 25 Uygulama sanallaştırması uygulamaların masaüstü/mobil kullanıcılara tek bir merkezden dağıtılmasıdır (Şekil 3.5). Sanallaştırılan uygulamaya ait tüm yük sunucu tarafından karşılanarak, kullanıcı ile sunucu arasında sadece ekran görüntüsü, klavye ve fare hareket bilgileri gönderilir ve alınır. Böylece ağ üzerinde düşük bant genişliği, yüksek verim sağlanır [21]. Bu sanallaştırma türü, uygulamaların istemcilere gerçek anlamda kurulmadan ağ üzerindeki ya da uzak (internet) noktalardan çalıştırılabilmesine olanak verir. Uygulama sanallaştırması bir uygulamanın ara katmanlar yardımıyla kendi platformu dışındaki diğer platformlarda da çalıştığını ya da birden çok platformda çalışabildiğini açıklayan bir kavramdır [1]. Uygulama sanallaştırmada uygulamalara ait verilerin ağ üzerinden ilgili makinelere ulaştırılması ağa ek yük getirmektedir. Bu nedenle özellikle ağ alt yapısının düzgün yapılandırılmadığı sistemlerde ilgili uygulamaların düzgün çalışması ile ilgili problemler yaşanabilmektedir. Uygulama sanallaştırmada Publishing ve Streaming adı verilen iki farkı yöntem kullanılmaktadır. Publishing yöntemi temel olarak uygulamanın ayrı bir sunucu üzerinde çalıştırılıp kullanıcı ekranına sadece uygulamanın ara yüzünün getirilmesidir. Böylece uygulama görüntülendiği istemcinin işlemci ve bellek kaynaklarını kullanmadığı gibi istemci bilgisayarın işletim sisteminden de bağımsızdır. Uygulama üzerinde çalıştığı sunucunun performansında çalışır. Uygulamayı kullanan istemcinin türünün (ince istemci, masaüstü bilgisayar vb.) performansa etkisi bulunmaz. Publishing yöntemi yaygın olarak Microsoft Terminal Services ve Citrix XenApp uygulamaları ile sunulmaktadır [21]. Streaming yönteminde uygulama bir paket haline getirilir ve kullanıcı uygulamayı çalıştırdığında, kullanıcı bilgisayarının işletim sistemi yerine önceden tanımlanmış olan sandbox adı verilen sanal işletim sistemi üzerinde çalıştırılır. Kullanıcı sistemi üzerinde herhangi bir registry (kayıt) ya da yapılandırma kaydı yazılmaz, uygulamanın standart dizinleri kullanıcı bilgisayarı üzerinde yaratılmaz. Bu mimari bir bilgisayara aynı anda yüklenemeyecek uygulamaların (Office 2007 ve Office 2010) problemsiz bir şekilde çalışmalarına olanak sağlamaktadır. Streaming 26 yönteminde uygulamalar istemci bilgisayarın işlemci ve belleğini kullanırlar. Bu nedenle ince istemcilerin kullanımı için uygun değildir. Uygulamaların performansı çalıştırıldıkları bilgisayarın donanımına göre değişiklik gösterir. Streaming yöntemini kullanan uygulamalar Citrix Xen App ve VMware ThinApp‘tır [21]. Günümüzde yaygın olarak kullanılan uygulama sanallaştırma çözümleri aşağıda verilmiştir. • Citrix XenApp (Presentation Server) • VMware ThinApp • Microsoft Softgrid • Symantec (Altiris) SVS • AppStream • Endeavors ThinApp bir programın bilgisayara kurulmadan direk olarak çalışmasını sağlamaktadır. Bu teknolojide programın kullanması gereken ortam değişkenleri, program dosyaları ve Windows kayıt defteri anahtarları gibi gerekli bileşenler sanal olarak sağlanmaktadır. Sağlanan sanal ortamın altında fiziksel ve sanal kaynakların bir bileşimi vardır. Bu sayede sanallaştırma katmanı uygulamayı tam olarak kurulmuş gibi göstermektedir. ThinApp ile özel olarak hazırlanmış programların yeni işletim sistemi sürümlerine göç ettirilmesi sağlanabilir ya da yüklemesi karmaşık olan programlar tek bir paket haline getirilebilmektedir. 3.8. Bellek SanallaĢtırma Sanallaştırılmış sistemlerde her bir sanal makine için belirli miktarda bellek ayrılmaktadır. Fakat bazı uygulamalar çalışırken ayrılan bellek miktarı yetersiz kalabilmektedir. Bellek sanallaştırma bilişim merkezindeki sunucuların belleklerinin tek bir havuzda toplanması ve birbirlerinin belleklerini kullanabilmeleri ile mümkün olmaktadır. Gerçekte bellek havuzunda ne kadar bellek olduğunu bilmeyen sunucu bilgisayarlar 27 birbirlerinin belleklerine belirli bir sanallaştırma arayüzü üzerinden erişebilir ve bellek gereksinimlerini değişen koşullara göre karşılayabilir [3]. Bellek sanallaştırma aynı fiziksel sunucu üzerinde yer alan sanal makinelerin bellek ihtiyacının fazla olduğu zamanlarda bellek kullanım sınırlarını kaldırmak amacıyla ortak bir bellek havuzu oluşturulması fikrine dayanır. Şekil 3.6‘de de gösterildiği gibi temel amaç çalışan bir veya birden fazla uygulamanın gerektiği zaman bellek havuzundan daha fazla bellek kullanması mantığına dayanır. Şekil 3.6. Bellek sanallaştırma yapısı Bu yeteneğin ağa uygulanması ile sayesinde, uygulamalar çalışırken çok büyük miktarda bellekten faydalanabilmektedir. Bu durum hem genel sistem hem de çalışan uygulama veya uygulamaların performansını ciddi anlamda artırmaktadır. 3.9. Ağ SanallaĢtırma Ağ sanallaştırması, ağdaki uygun kaynakların ve uygun bant genişliklerinin her birinin, birbirinden bağımsız ve belli sunuculara ya da cihazlara atanmış kanallara etkin bir şekilde paylaştırılmasıdır. Sanal ağ ortamlarının bileşenleri arasında ağ arayüz kartı (NIC), ağ anahtarı, ağ depolama araçları, sanal ağ taşıyıcıları ve ağ ortamları yer almaktadır [3]. Bu teknoloji de diğer sanallaştırma teknolojileri gibi 1960‘ların sonlarına doğru anabilgisayarlar için geliştirilmiştir [22]. 28 Ağ sanallaştırma donanım sanallaştırmaya benzemektedir. Bu teknolojide de fiziksel katmanın hemen üstüne yeni bir katman eklenmektedir. Şekil 3.7‘de gösterildiği gibi ağ sanallaştırma ile bir ağ birden fazla ağa bölünebilmektedir. Şekil 3.7. Ağ sanallaştırma yapısı Alternatif olarak geleneksel ağ aygıtlarını kullanmadan çeşitli yazılımlar kullanılarak sanal ağlar oluşturulabilmektedir. Ağ sanallaştırma aşağıdaki işlevleri sağlamaktadır: Ağ yönlendirme Ağdaki bir paketin hedef istemciye veya sunucuya erişmesi için gerekli yönlendirme işlemleri ağ yönlendiricileri tarafından yapılmaktadır [22]. Ağ adresi çeviricisi Bir ağ adresi gerçekte sunucular veya istemciler tarafından sayısal olarak kullanılır. Bir ağ adres çevirici katmanı ağ mesajlarını doğru istemci veya sunucu sistemlere göndermektedir. Bu bir ağ servis sağlayıcısının tek bir internet protokol adresi (IP adresi) sağlaması anlamına gelmektedir. Bu protokol bir ağdaki tüm sunucu ve istemcilerin dışarıdaki kaynaklardan mesaj alıp vermesini mümkün kılmaktadır [22]. 29 Ağ izolasyonu İstemci veya sunucuların sadece belirli özel sistemleri görmesine izin verilmektedir. Bu veri merkezinin solucan, virüs veya diğer zararlı yazılımlardan olumsuz etkilenme ihtimalini azaltır [22]. Ağ sanallaştırması vasıtası ile fiziksel donanımlarda azalma sağlanır. Donanımların azalmasına bağlı olarak enerji tasarrufu, esneklik, güvenirlik ve kolay yönetilebilirlik gibi birçok konuda ağın daha verimli bir şekilde çalışması sağlanır. 3.10. Depolama SanallaĢtırma 1950‘li yıllarda IBM‘in anabilgisayarı gibi başka ticari bilgisayarlar üretilmiştir. Bu bilgisayarlarda verileri saklamak için kullanılan disk depolama aygıtları bir kablo veya veri yolu ile doğrudan işlemciye veya RAM‘a bağlıydı. Bu bilgisayarlarda kullanılan bu yöntem mütevazı miktarda bilginin kalıcı olarak saklanmasını sağlamıştır. Daha sonraki on yıllar boyunca SCSI (the small computer system interface) gibi standart protokoller1 ortaya çıkmıştır. Bu protokoller farklı depoma aygıtlarının rahat bir biçimde bilgisayarlara bağlanmasını sağlamıştır. Bu yöntem CD-ROM, teyp sürücü gibi geleneksel manyetik aygıtlar arasında da kullanılmaya başlanmıştır [23]. Farklı depolama türlerinin gelişmesine ve hata toleransının düşmesine rağmen, bu aygıtların halen sadece tek bir sunucu veya istemci üzerinde kullanılması bu aygıtların önemli kısıtlamalarındandı. İlk depolama sanallaştırma dalgası önbellek denetleyicisi dizilerinde ortaya çıkmıştır. Çok sayıda manyetik disk bir araya getirilmiş ve bireysel disk arızalarında hataya dayanıklılık sağlamak için birlikte kullanılmışlardır. Bu sistem, RAID (bağımsız disklerin yedek dizisi) olarak tanınmıştır [23]. Bu yöntem performans veya veri güvenliği konusunda önemli gelişmeler sağlamıştır. Depolama sanallaştırma aynı fiziksel ortamda bulunup 1 Aygıtlar arasında iletişim kurmak için kullanılan dil 30 bulunmaması önemli olmayan birden fazla fiziksel depolama aygıtının büyük ve tek bir depolama aygıtı olarak görülmesi ve kullanılması mantığına dayanır. İstemciler ve sunucular, işleyecekleri dosyaların gerçekte nerede ve ne tür bir aygıt üzerinde tutulduğunu bilmezler (Şekil 3.8). Şekil 3.8. Depolama sanallaştırma Günümüzde NAS (network attached storage), SAN ve iSCSI (Internet SCSI) gibi çok sayıda depolama sanallaştırma teknolojisi vardır [5]. Depolama sanallaştırma konusunda kullanabilecek uygulamaların bir kısmı aşağıda verilmiştir: • F5 Acopia • NetApp V-Series • LeftHand SAN/iQ • HP StorageWorks 31 3.10.1. NAS (Network-attached storage) Ağa bağlı depolama (NAS, Network Attached Storage) ilk olarak depolama aygıtlarının ağda paylaşmasına imkân sağlamıştır. NAS en basit açıklaması ile ağa bağlı depolama aygıtıdır. NAS olarak kullanılan bir aygıt normal bir bilgisayar gibi giriş ve çıkış birimlerine (klavye, fare, monitör gibi) ihtiyaç duymaz. NAS aygıtları kendi içlerine gömülmüş bir işletim sistemi yardımı ile çalışırlar. Gereksinimlere göre NAS aygıtına bir veya daha fazla disk ekleyerek sahip olduğu depolama kapasitesi genişletilebilmektedir. İstemciler bir dosyaya erişmek istediklerinde disklere değil, NAS aygıtına bağlanmaları yeterli olacaktır. NAS aygıtları network üzerinde ip adresine sahip bir düğüm (node) olarak gözükmektedirler. Kota uygulama, yetkilendirme işlemleri NAS üzerinde yapılabilen temel birkaç işlemlerden bazılarıdır. 3.10.2. SAN (Storage area network) Depolama Ağ Sanayii Derneği (SNIA) SAN‘ı temel amacı bilgisayar sistemleri ve depolama elemanları arasında veri transferi sağlayan bir ağ olarak tanımlamaktadır SAN bir iletişim alt yapısı oluşturur. Bu yapı fiziksel iletişimi ve yönetim katmanını oluşturur. Bu yönetim katmanı bağlantıları, depolama aygıtlarını ve bilgisayar sistemlerini organize etmektedir. Böylece veri transferi güvenli ve sağlamdır [24]. SAN uygulamasında bir depolama aygıtı sadece bir sunucuya ait değildir. SAN uygulamasında bir depolama aygıtı ağdaki sunucu ve diğer depolama aygıtlarının ortak malıdır. Kısacası SAN, sunucuları depolama birimlerine, depolama birimlerini birbirlerine ve sunucuları birbirine bağlamaktadır. SAN fiziksel olarak ağdan ayrı olabileceği gibi ağ içerisinde bir alt ağ şeklinde de olabilir. SAN uygulamasının ağa dahil olması durumunda SAN‘nın ağa ek bir yük getireceği göz önünde bulundurulmalıdır. Depolama sanallaştırma temel olarak aşağıdaki işlevleri yerine getirir: 32 Dağıtık dosya sistemlerine izin verir Uzaktan depolama aygıtları sisteme direk bağlıymış gibi görünürler. Yerel sistem depolama aygıtlarının yeri veya türü konusunda bilgi sahibi değildir [22]. Dolayısı ile var olan bir depolama aygıtının uzak bir noktada olması veya türü önemsiz hale gelmektedir. Yapay depolama birimleri oluşturma Var olan depolama aygıtlarının tamamı veya bir kısmı bir araya gelerek daha büyük bir depolama aygıtı oluşturabilmektedir. Depolama birimleri dizileri oluşturma Uygulamalar ve veriler depolama sunucularının performansını artırmak için birkaç tane depolama aygıtının üzerine paylaştırılabilmektedir. Bunun yanında aynı bilgi birkaç tane farklı depolama aygıtının üzerine yazılabilmektedir. Hem performans artışı hem de veri güvenliği artırılmış olmaktadır [22]. Depolama aygıtları üzerinde daha fazla izin Depolama aygıtları tam olarak kullanılmak üzere depolama sağlayan birkaç dosya sistemlerine bölünür [22]. Farklı dosya sistemlerinin kullanımı var olan depolama aygıtı üzerinde kullanıcıya daha fazla erişim ve yönetim izni vermektedir. Uyumsuz sistemlerin, depolama aygıtlarını paylaşmalarına izin verir Windows, Linux, Mac OS ve UNIX gibi işletim sistemlerinin her biri verileri saklamak ve almak için farklı mimariler veya teknolojiler kullanmaktadırlar. Depolama sanallaştırma depolama aygıtlarında kullanılan tüm verilerin ve uygulamaların bu farklı sistemler tarafından kullanılmasına imkân tanır [25]. 33 3.11. Veri ve Veritabanı SanallaĢtırması Veri sanallaştırması kullanıcıların tamamen farklı bölgelerde yer alan çeşitli kaynaklara verinin ne olduğuna nerede olduğuna bakmaksızın erişimine imkân sağlar. Veritabanı sanallaştırma, aynı anda ve şeffaf bir şekilde konumu ne olursa olsun bir veritabanı yönetim sisteminin birden çok örneğinin kullanımına veya farklı veritabanı yönetim sistemini platformlarının kullanılmasına izin vermektedir [26]. Şekil 3.9‘te gösterildiği şekilde buradaki her bir fiziksel sunucunun gördüğü veritabanı algılanan veritabanıdır. Şekil 3.9. Veritabanı sanallaştırma Veritabanı sanallaştırması işlemi katmanlar üzerinde yapılan bir işlemdir. Bu işlem donanım kaynaklarının genişlemesine izin vermektedir. Böylece sistem üzerinde yer alan uygulamaların veya kaynakların kullanıcılar tarafından paylaşımı artmaktadır. Bunun yanında veritabanı sanallaştırması ölçeklendirilebilir hesaplamalara daha fazla izin vermektedir. Veritabanı sanallaştırması veritabanı yönetim sisteminin birçok örneğini kullanmaya izin vermektedir. Bu çalışmalar genelde veri kaynaklarına ulaşmada ve veri depolama sistemlerinde kullanılmaktadır. Var olan bilgisayar altyapısına çeviklik ve esneklik kazandırma, veritabanı başarımını arttırmak, bilgisayar kaynaklarını paylaşmak için havuz oluşturma, yönetimi ve idareyi kolaylaştırma, hata toleransını 34 arttırma, önemli ticari verilerin eş zamanlı yedeklenmesine imkân sağlama, birliğin toplamda yaptığı masrafı aza indirmek gibi amaçlarla kullanılır [3]. 3.12. SanallaĢtırma Standartları Yazılım dağıtım işlemi (yeniden) kurma ve sonra klonlama fiziksel ya da sanal makinelerde sık sık yapılmaktadır. Sanal makineler kullanıldığı zaman bu yaklaşım oldukça basit olabilmektedir. Örneğin gerekli tüm yazılım paketlerini içeren önceden yapılandırılmış bir disk imajı alma işlemi gibi [11]. Daha sonra herhangi bir şekilde işletim sistemi ve bu işletim sistemi üzerindeki yazılımlar yeniden kurulmak gerektiğinde imajı alınan sistem bir sanal makineye yüklenerek işlem hızlı bir şekilde tamamlanabilir. Sanallaştırılmış kaynaklar gerektiği zaman farklı donanımlarına taşınabilmektedir. Bunun yanında aynı fiziksel sunucu üzerinde farklı firmalar tarafından üretilen farklı özelliklere sahip sanallaştırma araçları ve uygulamaları çalıştırılabilmelidir. Sanallaştırma kavramının hızla benimsenmesi neticesinde sanal makineleri ve bu sanal makineler için oluşturulan uygulamaları bağımsız bir şekilde taşımak için bir standarda ihtiyaç duyulmuştur. Bunun neticesinde sanallaştırmada söz sahibi olan Dell, HP, IBM, Microsoft, VMware and XenSource gibi firmalar bir araya gelerek OVF (open virtualization format) standardını oluşturmuşlardır. Bu standart platform bağımsız işletim sistemleri veya uygulamalar geliştirilebilmekte ve kullanılmasına izin vermektedir. VMDK bir sanal makinedeki sadece bir sanal diski kodlayan bir dosya sistemidir. Bir VMDK sanal makinenin donanım bilgisi (işlemci, bellek, disk ve ağ bilgisi gibi) içermemektedir. Bir sanal makine birden fazla sanal disk veya VMDK içerebilmektedir [27]. 35 3.13. VMware SanallaĢtırma Yapısı VMware altyapısı endüstri standardı x86 sunucuları ve mevcut işlemci, bellek, disk ve ağ gibi mantıksal işlem kaynaklarını bir havuza dönüştürmektedir. İşletim sistemleri ve bu işletim sistemleri üzerinde çalışan uygulamalar güvenli ve taşınabilir sanal makinelere izole edilmiştir [28]. Sistem kaynakları, daha sonra, dinamik olarak anabilgisayar sınıfında kapasite sağlayan, ihtiyaç ve önceliklendirme kullanımı ve sunucu kaynaklarının kontrolü gibi kriterlere göre her bir makineye tahsis edilmektedir. Sanal makineler bir kaynak havuzunda yer alan herhangi bir fiziksel sunucu üzerinde çalışabilmektedir. Bu sanal makineler ihtiyaç durumunda sıfır kesinti ile sorunsuz bir şekilde bu sunucular arasında kaydırılabilmektedir. Şekil 3.10‘da Vmware sanallaştırma yapısı gösterilmiştir. En altta fiziksel kaynakların (depolama sistemleri, fiziksel ağ ve fiziksel sunucular) yer aldığı bu yapıda fiziksel kaynakların üzerine kurulan VMware programının çok sayıda katman içerdiği ve her bir katmanın farklı işlevleri yerine getirdiği görülmektedir. Şekil 3.10. VMware sanallaştırma yapısı 36 Geleneksel olarak, şirketler yüksek kullanılabilirlik, kaynak optimizasyonu ve güvenliği sağlamak için çeşitli işletim sistemi veya uygulamaları bir araya getirerek kullanmak zorunda kalmışlardır. VMware alt yapısında sanallaştırma katmanı çıplak metal yüklü ilk yazılım olduğu için, VMware tüm sanal makineler için bu yetenekleri sürekli sağlayabilmektedir. VMware alt yapısının nasıl çalıştığını daha iyi anlamak için sanal makinelerin tanımını ve yapısını incelemek gerekmektedir. Bir sanal makine fiziksel sunucuya benzemektedir. Fiziksel makine elektronik bileşenlerden oluşurken, sanal makine bir dizi dosyadan oluşmaktadır. Her bir sanal makine tam bir sistemi ifade etmektedir. Bu yüzden işletim sistemleri ve yazılımsal uygulamalar herhangi bir yapılandırmaya gerek olmadan fiziksel makinelerde olduğu gibi sanal makine üzerinde çalışmaktadırlar [28]. 3.13.1. VMware altyapı ve suite bileĢenleri VMware ile sanallaştırılan bir sistemde faklı işlevleri yerine getiren birkaç tane ürün vardır. VMware altyapısı genel olarak aşağıdaki ürünleri içermektedir: VMware VMFS ile ESX Server 3 ve Virtual SMP VMotion ile VirtualCenter 2, VMware DRS ve VMware HA Birleştirilmiş Yedekleme Vmware alt yapısında yer alan ürünler sanallaştırılmış bir sistemde Şekil 3.11‘de gösterildiği gibi çeşitli katmanlarda yer almaktadır. Bu bileşenlerin her biri çeşitli görevleri yerine getirmektedir. Bu bileşenler ve görevleri şöyledir: 37 Şekil 3.11. VMware Suite bileşenleri VMware ESX Server: VMware altyapısının yapı taşıdır. ESX Server, doğrudan donanım, ya da çıplak metal üzerine yüklenmektedir. Bu yazılım ana sistemdeki kaynakların sanal sistemler tarafından kullanılmasını sağlamaktadır. ESX Server aynı fiziksel sunucu üzerinde yan yana çalışan birden çok güvenilir ve taşınabilir sanal makinelerin barındırılması için sağlam bir sanallaştırma katmanı sağlamaktadır. Çıplak metal mimarisi ESX Server‘ın sistem üzerinde tam kontrol sağlamasını mümkün kılmaktadır. Böylece her bir sanal makineye kaynak tahsisi yapılabilmektedir [28]. VMware ESX Server üzerine kurulacağı donanımda bazı temel özellikler istemektedir. Bu nedenle VMware ESX Server yazılımının kurulacağı fiziksel makinenin gerekli özelliklere sahip olup olmadığını önceden incelemek önemlidir. 38 Aksi takdirde kurulum sürecinde hata oluşabilmekte ve kurulum yarıda kalabilmektedir. Tek bir ESX Server, 128 adet sanal makineye ev sahipliği yapabilmektedir [25]. Tipik iş yükleri göz önüne alındığında, her bir ana makine işlemci başına 10 sanal sisteme izin vermektedir. Her sanal makine VMware Sanal Simetrik Çoklu İşleme (SMP) kullanırken 16 GB bellek ve 4 işlemciyi kullanacak şekilde yapılandırılabilmektedir. VMware Virtual SMP: Günümüz fiziksel makineleri genellikle çok çekirdekli ve çok işlemcilidirler. Fiziksel makinelerde gerekli görüldüğünde işlemci daha güçlü bir işlemci ile değiştirilebilmektedir. Sanal sistemlerde de durum benzerdir. VMware Virtual SMP zorlu iş yükleri için çok-işlemcili sanal makineler sağlamaktadır. VMware Virtual SMP ana sunucu üzerinde bir sanal makinenin aynı anda birden fazla çekirdek veya işlemci kullanmasını sağlayarak sanal makine performansını artırmaktadır [28]. Şekil 3.12‘de de gösterildiği gibi aynı anabilgisayar üzerinde yer alan sanal makinelerin her biri ihtiyaç duyması halinde havuzdaki diğer çekirdekleri de kullanabilmektedir. Şekil 3.12. VMware virtual SMTP 39 Bir sanal makineye aşırı yük bindiğinde boşta olan diğer çekirdek veya işlemciler ilgili sanal makineye tahsis edilmekte ve işlemler tamamlandıktan sonra kullanılan çekirdek veya işlemciler tekrar her bir makinenin ihtiyacına göre dinamik olarak ilgili makineye yeniden tahsis edilmektedir. VMware VMFS: VMware VMFS, ESX ya da ESXi Server üzerinde bulunan sanal makinelerin bulunduğu disklerin dosya sistemidir. Sanal makineler tamamen ya ESX Server üzerinde yerel olarak depolanan veya merkezi paylaşılan SAN, NAS ve iSCSI depolama kullanılarak depolama yapılan sistemde sanal disk dosyaları olarak kapsüle edilmektedirler [28]. Sanal makinelerin paylaşılan SAN, NAS veya iSCSI depolama ve sanal makine dosya sistemi (VMFS) kullanan diğer ESX Server kurulumları için merkezi erişilebilir yapıda olması kurumsal ortamlarda daha tipiktir. Bu yapılandırma çok daha güçlüdür. Çünkü bu yapılandırma depolama birimlerinin paylaştırılmasını dolayısı ile farklı ESX yüklü makinedeki farklı sanal makinelerin aynı dosyaya erişmelerini sağlamaktadır. Bu yapı Şekil 3.13‘te görsel olarak ifade edilmiştir. Şekil 3.13. VMware VMFS Geleneksel dosya sistemleri (Windows işletim sistemindeki NTFS, Linux işletim sistemindeki EXT4 gibi) belirli bir zamanda bir tek sunucunun okuma-yazma için bir 40 dosyaya erişmesine izin vermektedir. VMFS, VMware ESX Server sanal makinelerin dosya depolama işlemlerini yüksek performanslı paylaşılan depolama alanı ile merkezileştirebilen VMFS küme dosya sistemini kullanarak yapmasını sağlamaktadır. VMware Virtual Center: VMware Virtual Center sanal ortamları yönetmek, ayarlamak ve yayınlamak için merkezi bir yönetim olanağı sağlamaktadır (Şekil 3.14). Şekil 3.14. VMware Virtual Center bileşeni Virtual Center BT çevrelerine merkezi yönetim, operasyonel otomasyon, kaynak optimize etme ve yüksek geçerlilik sağlamaktadır. Virtual Center Management ile yüzlerce ESX Server ve binlerce sanal makine yönetebilmektedir. Virtual Center ile sanallaştırılmış alt sağlanabilmektedir yapıda [28]. bulunan Sanal tüm makineler sanal makinelerin yapılandırılabilir, kontrolü başlatılabilir, durdurulabilir, silinebilir ve yerleri değiştirilebilmektedir. Bunun yanında Virtual Center Management sanal makinelerin klavye ve fare erişimini sağlamaktadır. Virtual Center Management bir sanal sisteme tarayıcı üzerinden de erişilmesini sağlamaktadır. 41 VMware Vmotion: Çalışan bir sanal makinenin veri kaybı olmaksızın ve hiç bir servis veya uygulama durdurulmadan bir fiziksel sunucudan diğer bir fiziksel sunucuya taşınması işlemidir. Taşıma esnasında sistem kesintisi olmaz. Sanal makinede çalışan işletim sistemi taşıma işleminin yapıldığından habersizdir [29]. Vmotion işlemi tüm sistemlerde yapılabilecek bir işlem değildir. VMotion işleminin yapılabilmesi için bazı şartların sağlanması gerekmektedir. Bunlar; Sistemdeki VMotion yapılacak ESX‘lerin aynı LUN (Local Unit Number)2‘u görmesi gerekir. Sistemdeki VMotion yapılacak fiziksel sunucuların CPU ailesi aynı olmalıdır. VMotion için bir Gb port bulundurulmalıdır. Bu portun sadece VMotion için kullanılması tavsiye edilmektedir. Gerekli ağ yapılandırılmaları oluşturulmalıdır. DRS (Distributed Resource Schuler): Farklı fiziksel sunucuların kaynaklarını ortak bir havuza toplayarak kaynakların daha etkin bir şekilde kullanılmasına imkân vermektedir. DRS, sanal sunucuları sistem kesintisi olmaksızın VMotion teknolojisini kullanarak diğer fiziksel sunuculara taşıyarak sistemin iş yükü dengesini düzenlemektedir. Şekil 3.15‘te bu teknolojinin yapısı görülmektedir. Şekil 3.15. VMware VMotion teknolojisi 2 Bir disk sunucusu için belirtilmiş özel bir adrestir. 42 DRS önceden tanımlanmış kurallar ve politikalara dayalı kaynak tahsisi kararları almaktadır. DRS sürekli sanal makinelerin mevcut kaynaklarının miktarını izlemekte ve gerektiğinde, değişen sanal makine gereksinimlerini karşılamak için tahsis değişiklikleri yapmaktadır [17]. Ayrıca DRS, HA (high availibility) özelliği ile birlikte çalışarak sistemin iş yükü karakteristiğini gözlemler ve fiziksel sunucu hatası durumunda sanal sunucuların fiziksel sunucularda paylaştırılarak yeniden başlatılmasına yardımcı olmaktadır [29]. DRS‘in gerçekleştirilebilmesi için DRS ile taşınacak sanal sunucu VMotion ile diğer ESX‘lere taşınabilmelidir. HA (High Availibility): VMware High Availability (HA) sanal makinelerde çalışan uygulamalar için kolay kullanım sanal etkin yüksek kullanılabilirlik sağlamaktadır. HA planlanmamış kesinti sürelerinin minimuma indirilmesidir. HA donanım hatasının giderilmesini sağlamaktadır. Sistemdeki ESX‘lerden bir veya birkaçında sorun yaşandığı zaman bu fiziksel sunucular üzerinde çalışan sanal sistemlerin otomatik olarak sistemdeki diğer ESX‘lere paylaştırılması işlemidir (DRS özelliği ile paylaştırılır) ve sistem yeniden başlatılır (Şekil 3.16). Sistem yeniden başladıktan sonra donanım hatasından dolayı yeni bir donanım üzerine taşınan sanal makine veya makineler taşındıkları yeni donanım üzerinde çalışmalarına sorun bir şekilde devam etmektedirler. Şekil 3.16. VMware HA (high availibility) teknolojisi 43 VMware Consolidated Backup: VMware Consolidate Backup sanal makineler için kullanımı kolay, merkezi yedekleme olanağı sağlamaktadır. Bu işlem için başka bir araca gerek yoktur. Araç olmaksızın merkezileştirilmiş dosya seviyesinde ve imaj bazında yedekleme sağlamaktadır. Bu teknolojide yedekleme işlemi direkt SAN‗a bağlanılarak yapıldığı için yerel ağdaki trafik meşgul edilmez. Dolayısıyla yedekleme işlemi istenilen herhangi bir zamanda yapılabilmektedir. VMware Consolidate Backup uygulamasının bazı eksiklikleri vardır. Var olan yedek üzerine yedek alamaması önemli bir eksikliktir. Eğer sistemde daha önce alınmış bir yedek varsa yedekleme işleminin yapılabilmesi için öncelikle bu dosyanın silinmesi gerekmektedir. Bunun yanında yedeği alınan her dosya için sürekli aynı ismi kullanmakta ve dosya isimlendirmesinde tarih ve saat bilgisi gibi önemli olabilecek bilgilere yer vermemektedir. 3.13.2. Yönetim araçları Sanallaştırılmış bir sistemde üzerinde durulması gereken önemli konulardan birisi yönetim araçlarıdır. Sanallaştırılmış sistemlerde yapılabilecek işlemler kurulan sanal makinelere ve bu sanal makinelerin yönetilmesini sağlayan yönetim araçlarının yeteneklerine bağlıdır. Kullanılan sanallaştırma platformuna bağlı olarak yönetim aracı de değişmektedir. VMware ile sanallaştırma yapılan sistemlerde yönetim aracı vSphere uygulamasıdır. Vmware vSphere: VMware vSphere merkezlerini basitleştirilmiş bir bulut BT organizasyonları bünyesindeki veri bilgi işlem altyapısına dönüştürmek için sanallaştırmayı kullanmaktadır. Bu durum BT organizasyonları için esnek ve güvenli altyapı imkânı sağlamaktadır [30]. vSphere, VMware ESXi ve VMware vCenter adlı iki bileşene sahiptir. ESXi sanal makineleri oluşturmak ve çalıştırmak için kullanılan sanallaştırma platformudur. ESXi ile sistem üzerinde yeni bir sanal makine oluşturulabilir (makineye ait, işlemci, bellek, disk oluşturulması gibi), bu makineye işletim sistemi kurulabilir ve kurulan 44 bu işletim sistemi için çeşitli yapılandırmalar yapılabilmektedir. Bu işlemlerden sonra oluşturulan sanal makine VMware ESXi üzerinde çalıştırılabilmektedir. ESXi üzerinde bulunan diğer bileşen ise vSphere Client adlı yönetim uygulamasıdır. vCenter Server ağ üzerinde hizmet veren ESXi sunucular için merkezi bir yönetici olarak kullanılan bir servistir. vCenter Server sanal makinelerdeki eylemleri yönlendirmekte ve sanal makineler için ev sahipliği yapmaktadır [30]. Bunun yanında vCenter, VMware ESXi üzerinde yer alan ana makinelere ait kaynakların bir havuzda toplanmasını ve yönetilmesini sağlamaktadır. vCenter Server fiziksel ve sanal altyapının, izlenmesini ve yönetilmesini sağlayan birçok özellik sunmaktadır. vCenter arka planda çalışan bir servistir. Ayrıca farklı eklenti veya bileşenler kullanılarak VSphere‘e yeni özellikler eklemek mümkündür. Şekil 3.17. vSphere teknolojisi Vsphere uygulama ve altyapı servisleri için ortam sunmaktadır (Şekil 3.17). Vsphere Uygulama servisleri ve altyapı servisleri olmak üzere iki ana bileşene sahiptir. Bu bileşenlerin üstünde vSphere vCenter Server ile yönetim işlemleri yapılabilmektedir. 45 vSphere client arayüzleri: ESXi üzerinde oluşturulan sanal makinelere direk erişim ve kontrol imkânı yoktur. Bu işlem için çeşitli araçlar veya yöntemler mevcuttur. vSphere Client, vSphere Web Client ve vSphere Komut Satırı arayüzü günümüzde aktif olarak kullanılan alternatiflerdir. Bu araçlardan harbisinin kendisine göre avantaj ve dezavantajları olmakla birlikte her üç yöntemde de var olan sanal makineleri yönetmek mümkündür. vSphere client: Bu bileşen sanal makineleri oluşturmak, yönetmek ve izlemek için gerekli ve birincil arabirimdir (Şekil 3.18). vSphere ayrıca sanal makineleri için konsol erişimi sağlamaktadır. Şekil 3.18. vSphere client arayüzü vSphere Client, kurulu ESXi ve vCenter Server sistemlerine ağ üzerinden erişimi olan bir Windows makineye yüklenmelidir. vSphere bağlanılan makineye göre bazı farklılıklar gösterebilmektedir. Tüm vCenter Server faaliyetleri vCenter Server sistem tarafından gerçekleştirilir. vCenter Server veya ESXi aynı anda birden fazla kullanıcının vSphere Client arayüzünü kullanarak aynı anda bağlanmasına izin vermektedir. 46 vSphere client arayüzü her bir sanal makine için ilgili sanal makineye ait kaynak tahsisi, performans, yapılan işlemler gibi bilgileri tutmaktadır. Ayrıca bu arayüzde her bir sanal makineye ait konsol ve erişim yetkileri mevcuttur. Konsol bölümünden sanal makineye erişilebilmekte ve uzak masaüstü bağlantısı gibi her türlü işlem yapılabilmektedir (Şekil 3.19). İzinler bölümünden ise sistemde tanımlı olan kullanıcılar için erişimi kapatma, sadece okuma izni verme ve okuma-yazma izni verme gibi işlemler yapılabilmektedir. Şekil 3.19. vSphere client arayüzü üzerinden konsol kullanımı vSphere web client: VSphere Web Client, vCenter Server kurulumu için ağ erişimi olan bir makinede yüklü bir web uygulamasıdır. Bu uygulama ile vSphere client uygulamasında olduğu gibi yeni makina ekleme, var olan makineyi silme, izleme, depolama durumlarını görebilme gibi vCenter üzerinde yapılan işlemlerin çok büyük bir kısmı yapılabilmektedir. 47 Şekil 3.20. vSphere web client arayüzü vSphere web client arayüzü oldukça sade ve işlevsel bir yapıya sahiptir (Şekil 3.20). Ayrıca web arayüzü grafiksel bileşenler açısından oldukça güçlü olmasına rağmen hızlı bir şekilde çalışabilmektedir. vSphere komut satırı arayüzü: vSphere komut satırı ESXi sistemleri yapılandırmak için kullanılan arayüzdür (Şekil 3.21). VSphere komut satırı arabirimi ilgili ESXi üzerindeki Storage vMotion işlemlerini gerçekleştirmek için de kullanılabilmektedir. Şekil 3.21. vSphere komut satırı arayüzü 48 vSphere komut satırı arayüzü ile işlem yapabilmek için gerekli komutları ve bu komutlara ait parametreleri bilmek gerekmektedir. vSphere komut satırında kullanılan komutların büyük bir kısmı Linux temelli işletim sistemlerde kullanılan komutlardır. 49 4. MATERYAL VE METOT Bu bölümde yapılan çalışma ile ilgili metot ve kullanılan materyallerden bahsedilmektedir. Bu çalışma kapsamında geliştirilen yedekleme uygulamasının yazılması sürecinde çeşitli yazılımlar ve donanımlar kullanılmıştır. Geliştirilen uygulama VMware ESXi Server uygulaması için yazıldığından dolayı öncelikle ESXi Server uygulamasının kurulu olduğu ve yapılandırıldığı bir sunucuya ve bu sunucuya bağlanmak ve üzerinde çeşitli işlemleri yapmak için bazı ek yazılımlara ihtiyaç duyulmuştur. Yedekleme uygulamasının geliştirilmesi sürecinde gerekli olan donanımlar ve yazılımlar aşağıda açıklanmıştır. 4.1. SanallaĢtırmada Kullanılan Donanımlar Fiziksel sunucu Sanallaştırılmış bir platform oluşturmak için öncelikle sanallaştırma yazılımı olan VMware ESXi Server 5.0 yazılımının kurulabileceği bir fiziksel sunucuya ihtiyaç vardır. VMware ESXi Server uygulaması donanım konusunda seçicidir. Bu uygulamanın kurulacağı sunucunun VMware‘in donanım uyumluluk listesinde (HCL - hardware compability list) bulunan sunuculardan birisi olması gerekmektedir. Aksi halde kurulum sürecinde sorunlar yaşanmakta ve kurulum çoğu zaman tamamlanamamaktadır. Çizelge 4.1. VMware ESXi Server 5.0 yazılımının kurulu olduğu fiziksel sunucu özellikleri Donanım Özellik Ana kart Fujitsu Siemens D2811-A1 İşlemci İntel Core 2 Quad Core Q 8300 2,5 Ghz Bellek Kingston 1333 Mhz (2x2 GB) Sabit disk Western Dijital 3,5‖ 320 GB 7200 RPM Güç kaynağı Corsair 500 Watt CMPSU-500CXV2EU CX Serisi 50 Bu çalışma kapsamında VMware ESXi Server uygulamasının kurulduğu fiziksel sunucu Çizelge 4.1. ‘deki özelliklere sahiptir. Bu çalışma kapsamında kullanılan sunucunun VMware‘in donanım uyumluluk listesinde (HCL - hardware compability list) yer alan standartlara uyması dışında ek bir özelliği yoktur. Dolayısı ile eldeki donanımın VMware‘in donanım uyumluluk listesinde olması şartı ile daha düşük veya daha yüksek konfigürasyonlu bir fiziksel sunucu da tercih edilebilir. Konfigürasyonun yüksek olması performans konusunda ve oluşturulabilecek sanal makine sayısı açısından avantaj sağlayacaktır. Uzak bağlantı bilgisayarı VMware ESXi Server uygulaması kurulduktan sonra bu uygulamanın kurulu olduğu makineye direk bağlanmak yerine harici bir makine kullanmak daha doğru bir yaklaşım olacaktır. VMware ESXi Server uygulamasının kurulu olduğu sunucuya farklı yöntemler ile bağlanmak mümkündür. Bu çalışma kapsamında bağlantı araçları olarak VMware vSphere Client ve Putty yazılımları tercih edilmiştir. vSphere Client ve Putty yazılımları özellikleri Çizelge 4.2‘de kullanılan dizüstü bilgisayar kullanılmıştır. Çizelge 4.2. vSphere Client ve Putty yazılımlarının kurulu olduğu dizüstü bilgisayar özellikleri Donanım Özellik Ana kart İntel Ibex Peak HM55 İşlemci İntel Core i3 M 380 2,53 Ghz Bellek 2x2 GB DDR3 1066 Mhz Sabit disk 500 GB Sata 5400 RPM İşletim Sistemi Windows 7 Enterprise 64 bit 51 4.2. SanallaĢtırmada Kullanılan Yazılımlar VMware ESXi Server VMware firmasının sanallaştırma ortamı sağlamak için piyasaya çıkardığı önemli ürünlerden birisidir. VMware ESXi Server‘ın şu anda en güncel sürümü 5.0 sürümüdür. VMware ESXi Server direk çıplak donanım üzerine kurulmaktadır. VMware ESXi donanım üzerine kurulduktan sonra bu donanım üzerine çok sayıda aynı veya farklı işletim sisteminin kurulmasını sağlamaktadır. Bu çalışma kapsamında VMware ESXi Server 5.0 sürümü fiziksel sunucu üzerine kurulmuş ve test ortamı olarak kullanılmıştır. VMware ESXi Server grafiksel bir arayüze sahip olmadığı için bu yazılım üzerinde sanal makine oluşturmak ve bu makineleri yönetmek için başka erişim ve yönetim araçlarına ihtiyaç vardır. VMware vSphere Client vSphere Client VMware ESXi Server üzerinde sanal makineler oluşturmak, yönetmek ve izlemek için kullanılan temel uygulamadır. vSphere ayrıca sanal makineleri için konsol erişimi sağlamakta ve böylece sanal makinelerin kontrolünü sağlamaktadır. vSphere Client, kurulu ESXi ve vCenter Server sistemlerine ağ üzerinden erişimi olan bir Windows makineye yüklenmelidir. Bu çalışma kapsamında vSphere Client Microsoft Windows 7 Enterprise 64 bit bir işletim sistemi üzerine kurulmuş ve çalıştırılmıştır. Putty VMware ESXi Server yazılıma konsol üzerinden erişim sağlamak amacıyla Putty adlı yazılım kullanılmıştır. Putty sistem yöneticilerinin, yereldeki ya da uzaktaki sunuculara bağlanmak için kullandıkları, kurulum gerektirmeyen, küçük boyutlu ve ücretsiz bir yazılımdır. Putty ile bağlantı yaptığınız sunucunuzu terminal üzerinden çeşitli komutlar ile yönetebilirsiniz. Putty sayesinde kolayca SSH bağlantısı yapılabilmektedir. Çalışma sürecinde Putty programı kullanılarak VMware ESXi Server komut arayüzüne bağlantı sağlanmış ve uygulamalar geliştirilmiştir. 52 Vi editörü Konsol üzerinden işlem yaparken çeşitli dosyalar üzerinde işlem yapmak için (dosyayı açma, yazı yazma gibi) metin editörlerine ihtiyaç duyulmaktadır. Vi Linux işletim sistemlerinde yaygın olarak kullanılan gelişmiş bir editördür. Vi editörü VMware ESXi Server ile birlikte standart olarak gelen bir uygulamadır. Vi uygulamasını çalıştırmak için komut satırından vi yazmak yeterlidir. Sanal makineler Çalışma kapsamında VMware ESXi Server üzerinde Cent OS 6.02, Ubuntu 11.10 32 bit ve Microsoft Windows Server 2008 olmak üzere üç adet sanal makine kurulmuştur. İşlemler bu üç sanal makine üzerinde yapılmıştır. Şekil 4.1. VMware ESXi Server üzerinde oluşturulan sanal işletim sistemleri 53 4.3. Test Ortamının Yapısı Yapılan çalışmada teknik özellikleri Çizelge 4.1‘de verilen fiziksel makinenin üzerine VMware ESXi Server 5.0 yazılımı kurulmuştur. VMware ESXi Server 5.0 direk makine üzerine kurulması gereken bir uygulama olduğu için fiziksel makine üzerinde herhangi bir işletim sistemine gerek duyulmamıştır. VMware ESXi Server üzerinde sanal işletim sistemleri kurmak ve bunları yönetmek için VMware vSphere Client adlı uygulama kullanılmıştır. VMware vSphere Client üzerinden VMware ESXi Server uygulamasının kurulu olduğu makineye bağlantı yapılmış ve bu sunucu üzerinde üç adet sanal makine kurulmuştur. Bu makinelerin temel amacı VMware ESXi Server üzerinde sanal makine oluşturma uygulamasını gerçekleştirmek, bu makineleri VMware vSphere Client yazılımı ile yönetmek ve en önemlisi bu sanal makineler üzerinde yedekleme işlemi yapabilmektir. VMware ESXi Server üzerinde uygulama geliştirmek için bu sunucuya konsol erişimi sağlanmalıdır. Bu işlem için Putty adlı uzak bağlantı yazılımı kullanılmıştır. Bağlantı yapılan VMware ESXi Server üzerinde Vi editörü ile yedekleme betiği geliştirilmiştir. Uygulama esnasında kullanılan donanım, araç ve uygulamaların temel özellikleri ve işlevleri aşağıda açıklanmıştır. 4.4. Yedekleme Uygulamasında Kullanılan Diğer Teknolojiler Fiziksel makinelere yüklenen işletim sistemleri için çeşitli görevleri yerine getirecek uygulamalar yazılmaktadır. Bu uygulamalar için piyasada çok sayıda programlama dili mevcuttur. İlgili ihtiyacı gidermek için bu işletim sistemi ile uyumlu dillerden birisi seçilebilmekte ve istenen uygulama yazılabilmektedir. Sanal işletim sistemlerinde de çeşitli ihtiyaçları gidermek için uygulamalara ihtiyaç vardır. Fakat sanallaştırılmış sistemlerin yapısı fiziksel sistemlerden farklıdır. Sanallaştırılmış sistemlerde hem sanal işletim sistemi için hem de sanallaştırmayı sağlayan platform için uygulama geliştirmek mümkündür. Örneğin sanallaştırma platformu olarak VMware yazılımının kullanıldığı bir ortamda VMware üzerinde çalışan Windows, Linux, Mac OS gibi işletim sistemleri için yazılım geliştirmek 54 mümkündür. Burada kullanılan programlama dilleri C, PHP, Java, C++, Python gibi standart programlama dilleridir (Şekil 4.2). Şekil 4.2. VMware platformu üzerinde sanallaştırılmış sistemler için uygulama geliştirme araçları Sanallaştırılmış sistemlerde sanallaştırma platformunun kendisi için de uygulama geliştirmek mümkündür. Hatta sanal sistemlerde çoğu zaman işletim sistemi için uygulama geliştirmek yerine sanallaştırma platformu için uygulama geliştirmek daha kullanışlı bir yöntemdir. Sanallaştırma platformu için yazılan uygulama ile sanal platform üzerinde çalışan çeşitli sanal işletim sistemlerinin veya bu işletim sistemleri üzerinde çalışan servislerin haberleşmesini sağlamak kolaylaşmaktadır. 4.4.1. SanallaĢtırılmıĢ vMware ortamı için yazılım geliĢtirme VMware ortamında yazılım geliştirmek için kullanılabilecek üç temel araç mevcuttur. Bunlar; VmCom VmPerl Kabuk programlama yöntemleridir. 55 VMware Scripting APIs adlı uygulama ile VMware kullanılarak sanallaştırılmış sistemler için uygulama geliştirilebilmektedir. VMware Scripting APIs VmCom ve VmPerl olmak üzere iki temel bileşene sahiptir (Şekil 4.3). Şekil 4.3. VMware ortamında programlama VmCom Microsoft Visual Basic, Microsoft Visual Basic Scripting Edition (ayrıca VBScripting olarak bilinmektedir), Microsoft Visual C++ ve JScript gibi diller için bir bileşen nesne modeli (COM) ara yüzüdür. VmCom Scripting API Microsoft Windows işletim sistemleri üzerine kurulabilmektedir. Bu bileşen ile sanallaştırılmış Windows işletim sistemleri için uygulamalar geliştirilebilmektedir. VmPerl, Perl betik dili kullanan bir uygulama programlama arabirimidir (API). Microsoft Windows veya Linux işletim sistemine sahip makinelerde VmPerl Scripting API yüklenebilir ve çeşitli uygulamalar geliştirebilmektedir. Ayrıca bu API yeni sanal makineler oluşturmak veya var olan sanal makineleri silmek için kullanılabilmektedir. Bunun yanında API sanal makineler hakkında bilgi (yapılandırma ayarları gibi) toplanmasına veya bu bilgilerin bir sanal makineye gönderilmesini sağlamaktadır. Ayrıca API ile ana makineden sanal makine üzerindeki konuk işletim sistemine veya konuk işletim sisteminden ana makineye çeşitli komutlar gönderilebilmektedir. VMware üzerinde yazılım geliştirmenin bir diğer yöntemi ise kabuk programlamadır. VMware tarafından piyasaya çıkarılan ürünlerin bir kısmının yönetim konsolu Linux 56 tabanlıdır. Bir VMware ürünü olan ESX‘de Linux tabanlı bir yönetim konsolu bulunmaktadır. Servis konsolu adı verilen bu Linux işletim sistemi ile betikler yazılabilmekte ve yazılan çalıştırılabilmektedir. Bunun yanında üçüncü parti uygulamalar, bu servis konsolu üzerinden sisteme kurulabilmektedir. RedHat Linux Enterprise 5 tabanlı bir yapı üzerine kurulan bu yönetim konsolu ile Linux ortamında kullanılan temel komutların hemen hemen tamamı ESX‘te kullanılabilmektedir. Dolayısı ile Linux altında geliştirilen kabuk programlama işleminin bir benzeri VMware altında yapılabilmektedir. Linux kabuk programlama kullanılarak hazırlanan bir betik VMware altında çoğu zaman sorunsuz bir şekilde çalıştırılabilmektedir. 4.4.2. VMware Scripting APIs’ye giriĢ VmCom ve VmPerl için arabirimler farklı olmasına rağmen, her iki bileşen işlevsel olarak eşdeğerdir. İşletim sistemine bağlı olarak, aynı görevleri yerine getirmek için VmCom veya VmPerl kullanılabilmektedir. VMware görev otomasyonu ve basit, tek amaçlı kullanıcı arayüzleri sağlamak için VmCom ve VmPerl tasarlamıştır. Scripting API gelişmiş etkileşimli kullanıcı arabirimleri oluşturmak için uygun değildir. Örneğin, VMware Scripting API, VMware üzerinde çalışan sunucular veya sanal makineler üzerinde yerel ve uzaktaki sunucular arasında güç işlemleri (sistemi askıya alma veya sıfırlama başlatma, durdurma) için kullanılabilmektedir [31]. 4.4.3. Linux kabuk programlama Kabuk, kullanıcı ile bilgisayar sistemi arasındaki bir yazılım katmanıdır. Kabuk, kullanıcının hareketlerini yorumlayıp, işletim sistemini ve uygulamaları isteklerden haberdar etmektedir. Kabuk, bir komut yorumlayıcıdır (command interpreter) ve komutları direk olarak işlemeden önce onları yorumlamaktadır. Kabuk programları, (shsh, csh csh ve tsch tsch) aslında oldukça gelişmiş birer programlama dilini çözümleyebilecek yeteneğe sahiptirler. Genel amaçlı işler için pek kullanışlı olmamakla birlikte ileri düzeydeki UNIX kullanıcıları ve sistem 57 yöneticilerinin oldukça sık kullanılacakları özelliklere sahiptirler. Şekil 4.4‘te ekrana Merhaba Dünya! İfadesini yazdıran basit bir kabuk programın kodları gözükmektedir. Şekil 4.4. VMware ESXi Server ortamında geliştirmiş basit bir kabuk programı 4.5. Yedekleme Ġçin GeliĢtirilen Uygulama Çalışma kapsamında VMware ESXi Server sanallaştırma yazılımı için bir yedekleme uygulaması geliştirilmiştir. Uygulama ESXi Server üzerinde kabuk programlama kullanılarak geliştirilmiştir. Uygulamanın geliştirilmesi sürecinde ek herhangi bir ek uygulama veya araca ihtiyaç duyulmamıştır. Yedekleme uygulaması VMware ESXi Server üzerinde yer alan tüm sanal işletim sistemlerini platform bağımsız bir şekilde yedekleyebilmekte ve istenilen zamanda tekrar alınan yedekten geri yükleyebilmektedir. Geliştirilen program ESXi Server üzerinde zamanlanmış görev olarak ayarlanabilmekte ve arka planda çalışabilmektedir. 58 5. SANALLAġTIRILMIġ SĠSTEMLER ĠÇĠN YEDEKLEME UYGULAMASI GELĠġTĠRME Günümüzdeki BT (Bilişim Teknolojileri) organizasyonlarının büyük bir kısmı halen 90‘lı yıllarda ortaya çıkan teknolojiler ile çalışmaktadırlar. Bu teknolojiler BT organizasyonlarında yüksek maliyetler, yavaş tepki süreleri, tutarsız yönetilen altyapı gibi sorunların ortaya çıkmasına neden olmaktadır. Sanallaştırma bu sorunların büyük bir kısmını çözmede tek başına yeterlidir. Bundan dolayı birçok firma sanallaştırma konusunda çeşitli ürünler geliştirmiştir. VMware sanallaştırma ortamlarını optimize etmek ve BT yönetimi için (masaüstünden veri merkezine kadar) en yaygın kullanılan yazılımlardan birisidir. VMware ilk olarak 1999 yılında x86 bilgisayar platformu için sanallaştırma teknolojisini tanıtmıştır. VMware altyapısı, üzerinde çalıştığı donanımı işletim sisteminden soyutlamaktadır. Bu durum diğer bölümlerde değinildiği gibi organizasyonlara ciddi avantajlar getirmektedir. Özellikle son yıllarda hem dünyada hem de ülkemizde birçok kurum veya kuruluş sanallaştırmaya yönelmiştir. Bu kurumlardan birisi de Çankırı Karatekin Üniversitesidir. 2007 yılında kurulan Çankırı Karatekin Üniversitesi kısa bir süre içerisinde büyük bir gelişme göstermiştir. Hem üniversite alt yapısı gelişmiş hem de öğrenci sayısı artmıştır. Geleceğin önemli üniversitelerinden birisi olmak isteyen Çankırı Karatekin Üniversitesi BT altyapısını da bu vizyon çerçevesinde kurmuştur. Üniversite bünyesinde var olan veya yeni alınan tüm sunucular sanallaştırılmıştır. Fiziksel sunucu olarak IBM, sanallaştırma çözümü olarak ise VMware adlı ticari yazılım tercih edilmiştir. Bu çalışmada sanallaştırılmış sunucular için yedekleme uygulaması Çankırı Karatekin Üniversitesi sunucu altyapısı üzerinde yapılmıştır. 59 5.1. Yedekleme Uygulamasının Yapıldığı Altyapı Uygulamanın yapıldığı Çankırı Karatekin Üniversitesi BT altyapısında IBM sunucular kullanılmaktadır. Bu sunucular VMware Enterprise 4.0 yazılımı kullanılarak sanallaştırılmışlardır. Sanallaştırılmış sistemde 4 Adet IBM xSeries 3650 sunucu ve IBM DS3400 Storage kullanılmıştır. Sistemin depolama kapasitesi 5,4 Tb‘tır. Bu kapasite 36 Tb 'a kadar genişleme imkânına sahiptir. Sanallaştırma yazılımı olarak VMware Enterprise 4.0 kullanılan sistem üzerinde halen 36 sunucu sorunsuz çalışmaktadır. Sanallaştırılmış sunucuların büyük kısmında Microsoft Windows tabanlı işletim sistemleri kullanılmaktadır. Bunun yanında farklı ihtiyaçlar için Microsoft Windows tabanlı işletim sistemleri dışında başka işletim sistemleri de (genellikle Linux) kullanılmaktadır. Uygulamanın geliştirildiği sunucu alt yapının sanallaştırmasında kullanılan IBM xSeries 3650 sunucu temel olarak aşağıdaki özelliklere sahiptir (Çizelge 5.1). Çizelge 5.1. Uygulamanın geliştirildiği Çankırı Karatekin Üniversitesinde kullanılan IBM xSeries 3650 sunucu temel özellikleri Form Faktörü / yükseklik İşlemci İşlemci sayısı L2 ön bellek Bellek Genişletme yuvaları Disk yuvası Maksimum dahili depolama Network arayüzü Güç kaynağı (std/max Hot-swap bileşenler RAID desteği İşletim sistemi desteği Rack/2U Dual Core: Intel Xeon Processor 5160—up to 3.0 GHz and 1333 MHz front-side bus Quad-Core: Intel Xeon Processor X5355, 2.66 GHz and 1333 MHz front-side bus Standart 1, maksimum 2 2x4MB 1GB standart, 48GB‘a kadar Fully Buffered DIMMs 667 MHz frekans hızına sahip 12 DIMM slot 4xPCI-E veya 2xPCI-X ve 2xPCI-Express Toplam 8, hot-swap 8 1.8 Terabyte hot-swap SAS Dahili dual Gigabit Ethernet 2x835W‘a kadar Güç kaynağı, fan ve sabit disk sürücüleri Dahili RAID-0, -1, -10, İsteğe Bağlı RAID–5, –6 Microsoft Server 2003, Windows 2000/Advanced Server Red Hat Linux, SUSE Linux Novell NetWare VMware ESX Server 2.5 ve üstü 60 Sunucu alt yapısında kullanılan IBM DS3400 depolama aygıtının temel özellikleri verilmiştir (Çizelge 5.2). Çizelge 5.2. Uygulamanın geliştirildiği Çankırı Karatekin Üniversitesinde kullanılan IBM DS3400 depolama aygıtının temel özellikleri RAID kontrolcüsü Kontroller başına düşen ön bellek Ana bilgisayar arabirimi Sürücü arabirimi Desteklenen sürücüler RAID seviyesi Depolama bölümleri Desteklenen maksimum sürücü sayısı Fan ve güç kaynağı Kabin desteği Yönetim yazılımı SUN desteği Dual aktif 1 GB‘a yükseltme seçeneği ile 512 MB battery-backed ön bellek Her kontrolcü için 2 anabilgisayar portu, Fibre Channel (FC) 4 Gbps auto-sensing 1 Gbps/2 Gbps Serial Attached SCSI (SAS) 10,000 rpm‘de 3 Gbps SAS sürücü ve 15,000 rpm hız RAID-0, -1, -3, -5, -10 2, 4, 16 48 SAS sürücü (üç EXP3000 Genişletme Üniteleri kullanılarak) Dual-redundant, hot-swap 19" standart endüstriyel kabin IBM System Storage DS3000 Storage Manager IBM FC switches Çankırı Karatekin Üniversitesinin alt yapısı temel olarak Şekil 5.1‘deki gibi ifade edilebilir. Şekil 5.1. Çankırı Karatekin Üniversitesi sanallaştırılmış altyapısı 61 Fiziksel sunucu olarak IBM xSeries 3650 sunucu ve depolama aygıtı olarak ise IBM DS3400 Storage kullanılmaktadır. Bu sunucuların üzerine VMware Enterprise 4.0 yazılımı kurulmuştur. Kurulan bu yazılım üzerinde çeşitli uygulamaları veya servisleri çalıştıran sunucular mevcuttur. Sanallaştırılmış sistemi yönetmek için ise vSphere adlı yazılım kullanılmaktadır. vSphere, VMware ESXi ve VMware vCenter adlı iki bileşene sahiptir. 5.2. SanallaĢtırılmıĢ Sunucular Ġçin Yedekleme Uygulaması Günümüzde veri, kurumların en önemli ve vazgeçilmez kaynaklarından biridir. BT altyapısında yapılan yatırımların büyük bir kısmı veri saklama, kullanma ve yönetme amacıyla yapılmaktadır. Depolanan verilerin, herhangi bir nedenle zarar görmesi, kurumların çalışma süreçlerinde ciddi zararlara yol açabilmektedir. Yaşanabilecek bir felaket durumu sonrasında, kaybolan verilerin yedeklerinin olmaması veya yedeklerin geri yüklenememesi, kuruma ciddi zararlar verebilmektedir. Kurumlar için her geçen gün önemi artan ve hayati bir öneme sahip olan verilerin, yedeklenmemesi büyük risk oluşturmaktadır. Bu nedenle kurumlarda çalışma süreçlerine bağlı olarak, yedekleme sistemleri kurulmalı ve yedekleme işlemleri günlük olarak takip edilmelidir. Yedekleme, en genel anlamıyla, bir bilgisayar sistemini işlevsel kılan temel birimlerin, üzerinde çalışan yazılımların ve depolanan verilerin, arıza, hata, hasar durumlarında çalışmaların kesintiye uğramasını veya verilerin geri dönülemez biçimde kaybolmasını engellemek amacıyla birden fazla kopya hâlinde bulundurulmasını sağlayan işlemler bütünüdür. Kısaca eldeki verilerin bir kopyasının alınması işlemidir. Yedekleme işlemi hem kişisel bilgisayarlarda hem de sunucu sistemlerde düzenli olarak yapılması gereken bir işlemdir. Yedekleme sistemlerinde, sunucu ve depolama birimleri üzerindeki verilerin; tam (full), artırımlı (incremental) ve farklı (differential) biçimlerde, manuel ya da belirlenen aralıklarda otomatik olarak alınabilmesi ve bu yedeklerin, tam ya da kısmi 62 kurtarma işlemlerinde, veri kaybına uğramadan elde edilebilmesi mümkündür. Bu işlemlerin hem yerel hem de geniş alan ağı üzerinde yapılabilmesi ve oluşan sorunların sistem yöneticisine e-posta, sms gibi yollarla iletilebilmesi de son derece önemlidir [32]. VMware Consolidated Backup adlı yazılım ile WMware altında çalışan sanal makineler için yedekleme yapılabilmektedir. Bu uygulama kullanıcı işlemlerini veya çalışan servisleri kesintiye uğratmadan yedekleme işlemi yapılmasını sağlamaktadır. VMware Consolidated Backup merkezi bir yedekleme ortamı sağlayarak verilerin yedeklenmesini sağlamaktadır. Bu bölümde Vmware üzerinde yer alan sanal makinelerin yedekleme ve yedekten geri yükleme işlemini yapan uygulama hakkında bilgi verilmektedir. Yedekleme uygulaması kabuk programlama kullanılarak ESXi Server 5.0 ortamında geliştirilmiştir. Programın çalışma mantığı temel olarak iki aşamadan oluşmaktadır: Sanal işletim sisteminin veya işletim sistemlerinin yedeğini almak Alınan yedeği istenilen zamanda sisteme geri yüklemek Yedek alma işlemi yedekleme.sh adlı dosyanın çalıştırılması ile alınmaktadır. Yedekleme işleminde temel olarak dört aşama mevcuttur. Öncelikle tüm sanal sunucuların üzerinde çalıştığı ESXi Server uygulamasının yapılandırma dosyasının yedeği alınmaktadır. Bu işlem tamamlandıktan sonra sanal makineler listelenmekte ve sistemdeki tüm makinelerin veya listelenen makinelerden bir tanesinin yedeklenmesine başlanmaktadır. Bunun için öncelikle çalışan sanal işletim sisteminin anlık görüntüsü alınmaktadır. Bu işlemden sonra yedeği alınacak olan makinenin önce yapılandırma dosyası (makineAdi.vmx) sonra ise sistem ve veri dosyalarının yer aldığı sanal disk (makineAdi.vmdk) klonlanmaktadır. Sanal makineye ait yapılandırma dosyasında sanal makineye ait temel bilgiler tutulmaktadır. Yedekleme işlemine ait akış diyagramı Şekil 5.2‘de, yedekleme işlemine ait şematik yapı ise Şekil 5.3‘te verilmiştir. 63 Şekil 5.2. Yedekleme uygulamasına ait akış şeması 64 Şekil 5.3. Yedekleme işleminin şematik olarak gösterilmesi Aşağıda yedekleme.sh dosyasında yer alan bazı örnek kodlar verilmiştir. Bu kodlar sanal makine numarasına bakarak ilgili numaraya ait bir sanal makinenin var olup olmadığını kontrol etmektedir. Belirlenen sanal makine numarasına ait bir makinenin bulunması durumunda öncelikle sanal makine yapılandırma dosyası için dizin yapısı oluşturulmaktadır. Yedekleme dizini oluşturulduktan sonra yedeği alınacak sanal makineye ait yapılandırma dosyası belirlenen dizine yedeklenmektedir. 65 if [ "$smNo" != "" ]; then echo Yedeği alınan makine: $smAd echo Sanal makine yapılandırması yedekleniyor... smYapilandirmaDosyaYolu=$(echo ${smNoVeYapilandirmaYolu#*;} | sed -e 's/\[\(.*\)\]\(.*\)/\1;\2/') smYapilandirmaKaynakAdresi=${smYapilandirmaDosyaYolu%;*} smYapilandirmaDosyasi=${smYapilandirmaDosyaYolu#*;} echo /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/${smYapilandirmaDos yasi%/*} dizini oluşturuluyor... mkdir -p /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/${smYapilandirmaDos yasi%/*} echo /vmfs/volumes/$smYapilandirmaKaynakAdresi/$smYapilandirmaDosyasi yapılandırma dosyası echo /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/$smYapilandirmaDosy asi kopyalanıyor... cp /vmfs/volumes/$smYapilandirmaKaynakAdresi/$smYapilandirmaDosyasi /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/$smYapilandirmaDosy asi Geliştirilen yedekleme uygulamasının yaptığı ikinci temel işlev ise yedeği alınmış bir sanal makinenin ihtiyaç halinde yedeğini sisteme geri yüklemektir. Yedeğin geri yüklenmesi geriYukle.sh dosyasının çalıştırılması ile yapılmaktadır. Geri yükleme işleminde yapılan temel işlem ise var olan sanal işletim sisteminin yapılandırma dosyasını ve diskini istenilen sanal makineye geri yüklemektir. Bu işlem yapılırken çalışan sanal makinenin kapatılması zorunludur. Bu nedenle geriYukle.sh uygulaması çalıştırıldığında öncelikle geri yüklemesi yapılacak olan sanal makineyi kapatmaktadır. Aşağıdaki örnek kodlar geriYukle.sh uygulamasında çalışan sanal makineleri kapatmaktadır. 66 read kapatmaIslemiDegeri # Tüm makineleri kapatacak olan fonksiyonun tanımlanması tumMakineleriKapatFonk() { i=2 for i in `vim-cmd vmsvc/getallvms | cut -d ' ' -f1 | sed "1 d"` do echo $i ID numarasına sahip makine kapatılıyor.... vim-cmd vmsvc/power.off $i done } # Sadece istenilen makineyi kapatacak fonksiyonun tanımlanması istenilenMakineyiKapatmaFonk() { echo "Lütfen kapatılmasını istediğiniz makinenin Vmid'sini giriniz." read kapatilacakMakineID vim-cmd vmsvc/power.off $kapatilacakMakineID } # Girilen değere göre çalıştırılacak seçeneği belirleme (tümü veya biri) if [ $kapatmaIslemiDegeri -eq 1 ] then tumMakineleriKapatFonk elif [ $kapatmaIslemiDegeri -eq 0 ] then istenilenMakineyiKapatmaFonk else exit 1 fi Burada kapatma işlemi yapılmadan önce kullanıcıya iki farklı seçenek sunulmaktadır. Bu seçeneklerden birincisi (varsayılan seçenek) tüm sanal makineleri kapatmaktadır. Diğer seçenekte ise hangi makinenin kapatılması isteniyorsa 67 kullanıcının ilgili makineye ait Vmid değerini girmesi istenmektedir. Bu seçenekte sadece Vmid değeri girilen makine kapatılmaktadır. Makineler kapatıldıktan sonra geri yüklenmek istenen makine kısa bir süre içerisinde yüklenebilmektedir. Aşağıdaki kodlar sanal makinenin geri yükleneceği dizinleri (eğer yoksa) oluşturmakta ve ardından yapılandırma dosyalarının yer aldığı .vmx ve tüm dosya ve dizinlerin yer aldığı .vmdk uzantılı disk dosyalarını belirlenen disk alanına kopyalamaktadır. tarih=$(date +"%d-%m-%Y") diskAdi="$tarih.vmdk" yapilandirmaDosyaAdi="$tarih.vmx" echo DISK ADI: $diskAdi # Yapılandırma dosyasınının yedeklenmesi cp $yapilandirmaDosyasi /vmfs/volumes/datastore/$makineAdi/$yapilandirmaDosyaAdi # Yedek sanal diskin çalışacak makine dizinine klonlanması vmkfstools -i $sanalDisk /vmfs/volumes/datastore/$makineAdi/$diskAdi Geliştirilen uygulama ESX/ESXi 3.5/4.x/5.x üzerinde çalışan sanal makineler için yedekleme işlemi yapmaktadır. Bu uygulama VMware Consolidated Backup uygulamasında olduğu gibi çalışan sanal makineleri kesintiye uğratmadan yedeklerini alabilmektedir. Uygulama ESX/ESXi 3.5/4.x/5.x üzerinde test edilmiştir. Geliştirilen yedekleme uygulaması yedekleme ortamı olarak yerel depolama, SAN ve NSF (network file system) ortamlarına yedek alabilmektedir. Bu uygulama manuel olarak çalıştırılabileceği gibi zamanlanmış görev olarak da çalıştırılabilmektedir. 5.2.1. Gereksinimler Hazırlana uygulamanın çalıştırılması için ESX/ESXi 3.5/4.x+/5.x üzerinde çalışan bir sanal makineye ve ESX/ESXi ana makinesine SSH üzerinden erişim iznine ihtiyaç vardır. 68 5.2.2. Uygulama içeriği Hazırlanan yedekleme uygulamasında dört adet dosya mevcuttur. BENI OKU.txt dosyasında uygulama ile ilgili temel bilgiler ve gerekli açıklamalar mevcuttur. Programı kullanmadan önce BENI OKU.txt dosyasını incelemek kullanıcı için yararlı olabilir. yedekleme.sh dosyası yedekleme işlemini yapan uygulamaya ait kodları içermektedir. Yedekleme işlemi bu dosyada yazılan kodlara göre yapılmaktadır. yapilandirma.conf dosyası yedekleme işlemine ait çeşitli değerleri yedekleme.sh dosyasından almak yerine harici bir dosyadan alınmasını sağlamak amacıyla hazırlanmıştır. Yedeği alınacak makine bu dosyadaki bilgiler dikkate alınarak yedeklenmektedir. Farklı makineler için uygulamanın çalıştırılması durumunda direk yedekleme.sh dosyası yerine yapilandirma.conf dosyasından verilerin okunması daha sağlıklı olmaktadır. geriYukle.sh dosyası ise alınmış bir yedeğin tekrardan sisteme geri yüklenmesini sağlayan komutları içermektedir. Bu dosyanın çalıştırılması ile sanal makinelerden birisi veya birkaçı hızlı bir şekilde daha önceki durumuna geri dönebilmektedir. 5.2.3. Kurulum Geliştirilen yedekleme uygulamasına ait dosyaları içeren YED-PROG.tar.gz adlı sıkıştırılmış dosyanın ESX veya ESXi sistemine yüklenmesi gerekmektedir. YED_PROG.tar.gz dosyasında uygulamanın çalışması için gerekli olan dosyalar ve açıklama içeren bir dosya mevcuttur. YED-PROG.tar.gz dosyasını ESX veya ESXi sistemine yüklemek için scp veya WinSCP programlarından birisi tercih edilebilir. Sisteme yüklenen bu dosyaların arşivden çıkarılmaları gerekmektedir. Bunun için bu dosyaların bulunduğu dizine geçildikten sonra (cd /dosya_yolu) 69 tar -zxvf YED-PROG.tar.gz komutu ile dosyalar arşivden çıkarılmalıdır. cd YEDPROG komutu ile dosyaların bulunduğu dizine geçilmelidir. Yedekleme.sh uygulamasının çalışması için bu dosya çalıştırma iznine sahip olmalıdır. Bunun için chmod 777 yedekleme.sh veya chmod +x yedekleme.sh komutlarından birisi ile bu dosyaya çalıştırma izni verilmelidir. 5.2.4. Yedek alma yedekleme.sh dosyasına gerekli çalıştırma izni verildikten sonra ./yedekleme.sh komutu ile yedekleme.sh uygulaması çalıştırılmaktadır. Program ilk çalıştırıldığında aşağıdaki gibi bir ekran gelmektedir (Şekil 5.2). Şekil 5.4. Yedekleme uygulaması arayüzü Bu ekranda program ile ilgili temel bilgiler, programın genel kullanım biçimi ve kullanılabilecek seçenekler ile ilgili bilgiler mevcuttur. Uygulamanın doğru bir şekilde çalışabilmesi için yapılandirma.conf dosyasındaki değişkenlere ait bilgilerin doğru bir şekilde girilmesi gerekmektedir. yapilandirma.conf dosyasında uygulamanın çalıştırılması aşamasında gerekli olan değişkenler tanımlanmıştır. Bu değişkenler; 70 yedeklerinTutulacagiAdres yedeklemeDizini yedegiAlinacakMakineler beklemeSuresi baslamaZamani şeklindedir. Eğer yapilandirma.conf dosyasındaki bilgiler doğru bir şekilde girildiyse klavyeden e tuşuna basılarak yedekleme işlemi başlatılabilmektedir (Şekil 5.3). Şekil 5.5. Yedekleme programının çalışması Yedekleme işlemi ESXi Server uygulamasının performansına ve yedeği alınan işletim sisteminin disk büyüklüğüne bağlı olarak değişkenlik gösterebilmektedir. Yedekleme işlemi başlatıldığında yedekleme uygulaması yapilandirma.conf dosyasında girilen dizin yollarına ve sistem tarihine bağlı olarak gerekli olan dizinleri oluşturmaktadır. İlgili dizinler oluşturulduktan sonra sanal makinelere ait tüm verilerin tutulduğu makineAdi.vmx ve makineAdi.vmdk dosyaları üzerinde yedekleme işlemleri yapılmaktadır. Yedekleme işlemlerinin sonucunda oluşan dosya ve dizin yapısı VMware ESXi server yazılımı içerisinde dahili olarak gelen DataStore Browser adlı araç ile 71 görülebilmektedir. Şekil 5.4‘te yedeği alınan her bir sanal makinenin dizin yapısı görülmektedir. Yedekleme işleminde yedeği alınan sanal makinenin adının sonuna zaman bilgisinin (tarih_saat) eklendiği görülmektedir. Şekil 5.6. Yedek dizinleri Yedeği alınan her bir sanal makine için yukarıdaki ilgili dizinin altında makineAdi.vmx ve makineAdi.vmdk isimlerinde iki adet dosya oluşturulmaktadır (Şekil 5.5). Şekil 5.7. Yedekleme işlemi sonucunda oluşan dosyalar makineAdi.vmx dosyasında yedeği alınan makine ile ilgili çeşitli yapılandırma, sanal donanım ve parametre bilgileri mevcuttur. makineAdi.vmdk dosyası ise yedeği alınan makineye ait tüm sistem, veri dosya ve dizinleri içermektedir. Her iki dosya da yedeğin geri yüklenmesi esnasında gereklidir. 72 5.2.5. Yedeği alınmıĢ bir makineye yedeğin geri yüklenmesi Yedeği alınmış bir makineye yedeği geri yüklemek için geriYukle.sh dosyasının çalıştırılması gerekmektedir. yedekleme.sh dosyasında olduğu gibi geriYukle.sh dosyasına da çalıştırma izninin verilmesi gerekmektedir. Bunun için; chmod 777 geriYukle.sh veya chmod +x geriYukle.sh komutlarından birisi ile geriYukle.sh dosyasına çalıştırılma izni verilmelidir. Bu aşamadan sonra yapılması gereken temel işlem ./geriYukle.sh komutu ile geriYukle.sh programını çalıştırılmaktır. Program ilk çalıştırıldığında Şekil 5.6‘daki gibi bir ekran gelmektedir. Şekil 5.8. geriYukle.sh uygulamasına ait arayüz Bu ekranda programın kullanımı ve seçenekleri ile ilgili bilgiler mevcuttur. Geri yükleme uygulamasının giriş ekranında program ile ilgili temel bilgiler sunulmaktadır. Kişi bu bilgileri okuduktan sonra devam etmek için klavyeden e tuşuna basmalıdır. Bu aşamadan sonra program yedeği geri yüklenmek istenen sanal 73 makinenin adını sormaktadır. Burada girilen isim ESXi Server üzerinde var olan sanal makinenin adı olmalıdır. Ayrıca kabuk programlama büyük küçük harf ayrımına duyarlıdır. Bu nedenle makine ismindeki karakterlere dikkat edilmelidir. Makine adı yazılıp enter tuşuna basıldığında uygulama girilen isme sahip bir sanal makinenin olup olmadığını kontrol etmektedir. İlgili makinenin bulunması halinde uygulama kullanıcıyı son defa bilgilendirmektedir. Kullanıcının bu bilgileri onaylaması durumunda yedeğin geri yüklenmesi işlemi başlamaktadır. Program geri yükleme işlemini yapmadan var olan sanal makinenin yedeğini almaktadır. Daha sonra açık olan makine kapatılmakta ve yedekleme işlemi başlamaktadır. Geri yükleme işleminin süresi ESXi Server sunucunun donanımına, performansına ve geri yüklenecek olan sanal makinenin disk büyüklüğüne bağlı olarak değişkenlik göstermektedir. VMware Consolidated Backup ve sanallaştırılmış ortamlarda kullanılan diğer yedekleme yazılımlarının büyük bir kısmı bazı ihtiyaçları karşılamada yetersiz kalabilmektedir. VMware Consolidated Backup yazılımın ön plana çıkan eksiklikleri şunlardır: VMware Consolidated Backup proxy sunucu üzerine kurulmalıdır. VMware Consolidated Backup yedekleme işlemi sürecinde meydana gelebilecek herhangi bir hatayı sistem yöneticisine mail veya SMS ile bildirmemektedir. Dolayısı ile yedekleme sürecinde oluşan bir hata ancak günlük dosyalarından takip edilebilmektedir. Consolidated Backup yazılımının çalışabilmesi için gerekli bazı koşullar vardır. Bunlar genel olarak; HBA ile direkt veya iSCI ile SAN bağlantısı, yedeği alınacak olan sanal sunucuların imajlarının bulunduğu LUN‘un Consolidated Backup yazılımının yüklü olduğu sunucuya gösterilmesidir. Bu koşullar eksik olduğunda yedekleme işlemi yapılamayacaktır. Yedekleme işlemi alınırken yedek dosyasına zaman bilgisi eklenmemektedir. Consolidated Backup rotasyon desteğine sahip değildir. Bu nedenle bir sunucunun var olan eski yedeği silinip yeni yedeği alınmak istendiğinde bu 74 işlem otomatik yapılamamaktadır. Bu işlem için öncelikle var olan yedeğin manuel olarak silinmesi gerekmektedir. Bu çalışmada, sanallaştırma teknolojisi ile ilgili temel bilgiler, bu teknolojinin neden ve nasıl kullanılabileceği Üniversitesindeki geliştirilmiştir. sunucu Bu gibi bilgiler altyapısı uygulama verilmiş kullanılarak sanallaştırılmış ve bir Çankırı yedekleme ortamlardaki Karatekin uygulaması sunucuların yedeklenmesini sağlamaktadır. Bu uygulama mevcut yedekleme yazılımlarındaki ortak eksikliklerin tespit edilerek giderilmesini sağlamayı amaçlamaktadır. Geliştirilen uygulama VMware ESXi Server ortamı dikkate alınarak yazılmıştır. 5.3. Yedekleme Sistemlerinin KarĢılaĢtırılması Sanallaştırılmış sunucuların yedeklenmesinde kullanılabilecek çeşitli çözümler mevcuttur. Bu çözümlerin hemen hemen tamamı kapalı kodlu ve ticaridir. Ticari yedekleme çözümlerinde VMware Data Recovery, Veeam Backup ve Acronis vmProtect ön plana çıkan ürünlerdir. Tez çalışması kapsamında geliştirilen yedekleme uygulaması ve ön plana çıkan ticari yedekleme ürünlerinin temel özellikleri Çizelge 5.3‘te verilmiştir. Ayrıca bu ürünlerin performanslarını karşılaştırmak için test ortamında yer alan ESXi Server üzerinde çalışan Cent OS 6.02, Ubuntu 11.10 32 bit ve Microsoft Windows Server 2008 sanal işletim sistemlerinin yedekleri aynı ortama ayrı ayrı alınmıştır. Yedekleme işleminde öncelikle VMware Data Recovery 2.0 programı ile sanal ortamdaki üç sanal işletim sisteminin yedekleri alınmış ve bunun için harcanan toplam süre tespit edilmiştir. Bunun yanında yedekleme işleminden sonra kontrol amaçlı yedekler geri yüklenmiş ve işletim sistemleri çalıştırılmıştır. Aynı test ortamı diğer yedekleme çözümleri için de sağlanarak her bir program ile ayrı ayrı yedek alınmıştır. Tüm ürünler için harcanan toplam süre tespit edilmiştir. Yedekleme sürecinde tüm ürünler yedekleme işlemlerini başarılı bir şekilde tamamlamışlardır. Yedekleme işlemlerine ait toplam süreler Çizelge 5.3‘te yedekleme süresi satırında verilmiştir. 75 Çizelge 5.3. Sanal işletim sistemlerinin yedeklenmesinde kullanılabilecek ticari çözümlere ve geliştirilen yedekleme uygulamasına ait temel özellikler Ürün Özellik VMware Data Veeam Acronis Geliştirilen Recovery 2.0 Backup 6.1 vmProtect 7 Uygulama Ücretli (Tek başına Fiyat satılmıyor) Soket sayısı x Soket sayısı x 749 $ 499 $ Ücretsiz Türkçe dil desteği - - - + Grafiksel arayüz + + + - Açık kod - - - + ESXi Server Harici ortama Harici ortama ESXi Server üzerine kurulum kurulum kurulum üzerine kurulum - + + + + + + + + + + + 14 dakika 22 dakika 28 dakika 17 dakika Kurulum Tipi Zamanlanmış görev olarak çalışma Yedekten geri yükleme Yedekleme işleminde makineler açık Yedekleme Süresi Yedekleme işleminde VMware Data Recovery 2.0 (deneme sürümü), Veeam Backup 6.1 (deneme sürümü), Acronis vmProtect 7 (deneme sürümü) kapsamında geliştirilen yedekleme uygulaması kullanılmıştır. ve bu çalışma Veeam Backup, Acronis vmProtect programları temel özellikleri Çizelge 4.1‘de verilen bilgisayar üzerine kurulmuş ve çalıştırılmıştır. VMware Data Recovery ve bu çalışma kapsamında geliştirilen yedekleme uygulaması ise ESXi Server 5.0 üzerine kurularak çalıştırılmıştır. 76 6. SONUÇ VE ÖNERĠLER Bu bölümde sanallaştırılmış sunucular için yapılan yedekleme uygulaması ile ilgili sonuçlara ve önerilere yer verilmiştir. Sonuçlar Geliştirilen uygulama ile test ortamındaki Cent OS 6.02, Ubuntu 11.10 32 bit ve Microsoft Windows Server 2008 sanal işletim sistemlerinin yedekleri belirlenen disk alanına yaklaşık 17 dakikada alınmıştır. Bu işlem VMware Data Recovery 2.0 programı ile 14, Acronis vmProtect 7 programı ile 28 dakika ve Veeam Backup 6.1 programı ile 22 dakikada yapılmıştır. Alınan yedekler sanal makinelere geri yüklenmiştir. Geri yükleme işleminden sonra sanal makinelerin yüklenen yedekler ile çalışmaya devam ettikleri görülmüştür. Geliştirilen bu yedekleme uygulamasında yedekleme işlemi için sanal makinelerin kapatılmasına gerek yoktur. Ayrıca yedekleme uygulamasının direk olarak ESXi Server üzerinde çalışması harici bir uygulamaya göre sistemin daha hızlı ve performanslı çalışmasını sağlamaktadır. Test ortamındaki sanal makinelerin yedeklenme süresi direk ESXi Server üzerine kurulan VMware Data Recovery 2.0 programı ile 14 dakika, geliştirilen uygulamada ile 17 dakika iken; harici sistemlere kurulan Acronis vmProtect 7 programı ile 28 dakika ve Veeam Backup 6.1 programı ile 22 dakikadır. Günümüzde sanallaştırılmış sunucuların yedeklenmesi için kullanılan yazılımların büyük bir kısmı ticari çözümlerdir. Bu çözümlerin büyük bir kısmı birçok kurum veya kuruluş bütçesi için pahalı sayılabilecek ücretler ile satılmaktadır. Geliştirilen uygulama ile bir kurum veya kuruştaki sanal sunucular ücretsiz bir şekilde yedeklenebilmektedir. Sanallaştırılmış sistemler için piyasada var olan yedekleme yazılımlarının hemen hemen tamamı kapalı kaynak kodlu yazılımlardır. Dolayısı ile bu yazılımların var olan BT altyapısındaki özel durumlara uyarlanamaması sistem yöneticileri için ciddi bir problemdir. Bu çalışma kapsamında geliştirilen yedekleme uygulaması açık kaynak koldu ve Türkçe olması ve 77 dolayısı ile özelleştirilebilir yapıda olması ile sistem yöneticilerine yedekleme konusunda etkili ve ücretsiz bir alternatif sunmaktadır. Mevcut yedekleme programlarında en önemli eksikliklerden birisi rotasyon desteğidir. Bir bilgisayar sisteminde düzenli olarak üretilen verilerin bir süre sonra en eskilerinin silinip yerine yeni verilerin yazılması işlemine rotasyon denilmektedir. Geliştirilen yedekleme uygulaması rotasyon desteği sunmaktadır. Dolayısı ile sistem yöneticileri yedeğini tutmak istedikleri sunucu veya sunucular için ihtiyaçlarına göre geriye dönük yedekleme zamanı belirleyebileceklerdir. Geliştirilen yedekleme uygulaması sunucuların yedeklenmesi sürecinde herhangi bir problemin ortaya çıkması ve dolayısı ile yedekleme işleminin başarılı bir şekilde tamamlanamaması durumunda sistem yöneticisine eposta ile bilgi vermektedir. Bunun için bir eposta sunucusuna ihtiyaç vardır. Böylece sistem yöneticisi sistem ile ilgili bir hatanın oluştuğu durumlarda uyarılmaktadır. Yedekleme uygulamasının kurulabilmesi ve çalıştırılabilmesi için herhangi özel donanıma, programa, araca ve yapılandırmaya ihtiyaç yoktur. Program direk olarak ESXi Server üzerinde çalışmaktadır. Yedekleme uygulaması için yedeği alınacak makinelerin sayısı önemli değildir. Geliştirilen yedekleme uygulaması yapılandırmaya bağlı olarak sistemdeki tüm sanal makinelerin veya sadece programı kullanan kişi tarafından belirtilen makine veya makinelerin yedeklerini alabilmektedir. Geliştirilen uygulama ESXi Server üzerinde zamanlanmış görev olarak çalışabilmektedir. Bunun için yapilandirma.conf dosyasındaki calismaAraligi adlı değişkene günlük, haftalik veya aylik değerlerinden birisi atanmalıdır. Bu durumda program belirlenen zaman aralıkları ile çalışmakta ve yedekleme işlemini yapmaktadır. Bu özellik sistem yöneticilerinin işini son derece kolaylaştırmaktadır. Bu çalışma kapsamında geliştirilen yedekleme uygulaması sanallaştırılmış sistemlerde yedekleme konusunda var olan sorunların bir kısmına çözüm getirmekle 78 birlikte geleceğin en önemli teknolojilerinden birisi olarak görülen sanallaştırma için daha fazla çalışmanın yapılması gerekmektedir. Çalışma kapsamında elde edilen sonuçlar da dikkate alınarak aşağıdakiler önerilmektedir. Öneriler Yedekleme uygulaması direk ESXi Server üzerinde çalıştığı için programın çalışması esnasında bazı güvenlik sorunlarının ortaya çıkma ihtimali vardır. Dolayısı ile geliştirilen yedekleme uygulamasının sistem güvenliği açısından incelenmesi yararlı olacaktır. Günümüzde sanallaştırma konusunda biraz daha arka planda kalan Microsoft, IBM, Xen gibi firmaların bu eksikliklerini kısa sürede giderecekleri ve sanallaştırma konusunda birçok yeni teknoloji ile pazar paylarını artırmaya çalışacakları kabul gören bir görüştür. Bu nedenle sanallaştırma konusunda VMware teknolojilerinin yanında Microsoft, IBM, Xen gibi firmaların sanallaştırma çözümleri konusunda benzer çalışmalar yapmak yararlı bir yaklaşım olabilir. Geliştirilen yedekleme uygulamasına günlükleme (log) desteğinin eklenmesi yararlı olacaktır. Böylece sistem yöneticileri yedekleme uygulaması ile ilgili herhangi bir sorun yaşadıklarında bu sorunu daha hızlı şekilde tespit etme imkânına sahip olabileceklerdir. 79 KAYNAKLAR 1. Gürol, M., Yavuzalp, N. , ―Okullarda ve eğitim kurumlarında sanallaştırma Teknolojileri‖ , 5th International Computer & Instructional Technologies Symposium, Elazığ, 1-2, (2011). 2. İnternet: IBM Redbooks ―Fundamentals of Grid Computing‖ http://www.redbooks.ibm.com/redpapers/pdfs/redp3613.pdf (2012). 3. İnternet: TBD Kamu Bilgi İşlem Merkezleri Yöneticileri Birliği (TBD KamuBİB), ―Sanallaştırma‖, TBD Kamu-BİB Kamu Bilişim Platformu XII, http://www.tbd.org.tr/usr_img/cd/kamubib12/raporlarPDF/RP1-2010.pdf, 7,1316, 2010. 4. İnternet: VMware ―History of Virtualization‖ http://www.vmware.com/virtualization/history.html (2012). 5. Menken, G., ―Introduction‖, Virtualization: The Complete Cornerstone Guide to Virtualization Best Practices: Concepts, Terms, and Techniques for Successfully Planning, Implementing and Managing Enterprise IT Virtualization Technology, Emereo Pty Ltd., 8-10,21,57-58, 75-76-77,116 2008. 6. Braastad, E., ―Management of high availability services using virtualization‖, Master Thesis, Oslo Onıversıty Of Oslo Department Of Informatics, Oslo, 2-4,10 (2006). 7. Eriksson, J., ―Virtualization, Isolation and Emulation in a Linux Environment‖, Master‘s Thesis in Computing Science, Oslo Umea University Department of Compuing Science, Umea, 2-3 (2009). 8. Adams, K., Agesen, O., ―A Comparison of Software and Hardware Techniques for x86 Virtualization ‖ , Operating Systems Review., 40(5) : 2-13 (2006). 9. Rose, R., ―Survey of System Virtualization Techniques ‖ , Oregon State University., (2004). 10. İnternet: IBM ―Grid Computing Nedir?‖ http://www-05.ibm.com/tr/solutions/edu/grid.html (2012). 11. Freitag, S., Yahyapour, R., Jankowski, G., Januszewski, R., ―Virtualization Management for Grids and SOA ‖ , CoreGRIDNetwork of Excellence FP6004265., 2-3,5 (2008). 12. Popek, G. J., Goldberg, R. P.,―Formal Requirements for Virtualizable Third Generation Architectures‖, Communications of the ACM, New York, 17 (7), 412-421 (1974). 80 13. Ongaro, D., Cox, A.L., Rixner, S.,‖ Scheduling I/O in virtual machine monitors‖, VEE 2008: Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, New York, 1-2 (2008). 14. R. J. Creasy, "The origin of the VM/370 time-sharing system", IBM Journal of Research & Development, Vol. 25, No. 5, Eylül 1981. 15. Jason Nieh ve Özgür Can Leonard, "Examining VMware", Dr. Dobb‘s Journal, Ağustos 2000. 16. İnternet: Wikipedia ―x86 http://en.wikipedia.org/wiki/X86_virtualization (2012). virtualization?‖ 17. Buyya, R., Broberg, J., ―Foundatıons‖, Goscinski, A., Cloud Computing: Principles and Paradigms, John Wiley & Sons, Inc., New Jersey, 10,25 2011. 18. İnternet: HP ―Virtualization and Service Automation‖ https://h10078.www1.hp.com/bto/download/SGVSA-Ch1_4AA2-3160ENW.pdf (2012). 19. Hrebicek, J., Schimak, G., Denzer, R., ―Introduction‖, Environmental Software Systems, Springer, 8-10,21,57-58, 76-77 2008. 20. Schwartze, C., Kralisch, S., Flügel, W., Geospatial Virtual Appliances Using Open Source Software. In: Environmental Software Systems Frameworks of eEnvironment. 9th IFIP WG 5.11 International Symposium, ISESS 2011, Brno 349-356 (2011). 21. İnternet: Nebula Bilişim ―Uygulama Sanallaştırma‖ http://www.nebulabilisim.com.tr/urunler/uygulama-sanallastirma (2012). 22. Kusnetzky, D., ―Network Virtualization:Controlling the View of the Network‖, Virtualization: A Manager‘s Guide. Mike Hendrickson, O’Reilly Media, 23-24 2011. 23. Luca, D. A., Bhide, M., ―Storage Virtualization‖, Storage Virtualization for Dummies. Mike Hendrickson, Wiley Publishing, Inc., Indiana 7-8 2010. 24. İnternet: IBM ―Introduction to Storage Area Networks‖ http://www.redbooks.ibm.com/redbooks/pdfs/sg245470.pdf (2012). 25. İnternet: Ağcıyız.net ―SAN Temelleri‖ http://www.agciyiz.net/index.php/servisve-uygulamalar/storage-area-network/ (2012). 26. İnternet: Windows Security ―Virtualization‖ http://www.windowsecurity.com/whitepapers/Virtualization.html%20/ (2012). 81 27. İnternet: VMware ―What is OVF?‖ http://www.vmware.com/technicalresources/virtualization-topics/virtual-appliances/ovf (2012). 28. İnternet: VMware ―Building the Virtualized enterprise with VMware Infrastructure?‖ http://www.vmware.com/pdf/vmware_infrastructure_wp.pdf (2012). 29. İnternet: Virtualist Sanallaştırma ―Sanallaştırma ile Az Kaynakla Çok İş Yapın‖ http://www.virtualist.com.tr/content/icerik.php?id=1 (2012). 30. İnternet: VMware ―vCenter Server and Host Management‖ http://pubs.vmware.com/vsphere-50/topic/com.vmware.ICbase/PDF/vsphereesxi-vcenter-server-50-host-management-guide.pdf (2012). 31. İnternet: VMware ―VMware Scripting http://www.vmware.com/pdf/Scripting_API_215.pdf (2012). API‖ 32. İnternet: Go İletişim ―Veri Depolama Çözümleri‖ http://www.goiletisim.com/goiletisim-yedekleme-sistemleri.html (2012). 82 EKLER 83 EK-1. Yedekleme.sh dosyasındaki kodlar #!/bin/sh clear echo "==================== VMware EXSi Server Yedekleme Uygulaması - Sürüm 1.0 ====================" echo "" echo "-------------------- Yazar : Fevzi Daş - fevzidas@gazi.edu.tr --------------------" echo "" echo "-------------------- Son güncelleme : Mart 2012 --------------------" echo "" echo "" echo "==================== AÇIKLAMALAR ===================" echo "1-) Bu uygulama VMware ESXi Server üzerinde çalışan işletim sistemlerinin yedeklerini almak" echo "amacıyla kabuk programlama kullanılarak yazılmıştır." echo "" echo "2-) Programın kullanılması ve üzerinde değişiklik yapılması serbesttir." echo "" echo "3-) Uygulamanın doğru bir şekilde çalışması için yapilandirma.conf, baslamamaili.sh ve" echo "bitisMaili.sh dosyasındaki bilgilerin doğru bir şekilde girilmesi gerekmektedir." ‡ echo "" echo "================================================================================ ==============" echo "================================================================================ ==============" echo "" echo Devam etmek için klavyeden e tuşuna basınız. read durum if [ $durum != e ] then echo "Uygulama kapatılıyor..." exit 1 fi # yapilandirma.conf içerisindeki değişkenler çekilmektedir. source /vmfs/volumes/4f4cb683-4444cd0f-c379-0019996f90f9/program/yapilandirma.conf # Yedekleme işleminin başladığını bildiren mail source /vmfs/volumes/4f4cb683-4444cd0f-c379-0019996f90f9/program/baslamaMaili.sh #yedeklerinTutulacagiAdres=4f4cb683-4444cd0f-c379-0019996f90f9/program #yedeklemeDizini=YEDEKKK #yedegiAlinacakMakineler="MyUbuntu" #beklemeSuresi=10s #baslamaZamani=$(date) echo Yedekleme dizini oluşturuluyor... /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini #Yedeklerin tutulacağı dizinin belirlenen adreste oluşturulması mkdir -p /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini echo ESXi Server yapılandırması yedekleniyor... vim-cmd hostsvc/firmware/backup_config cp /scratch/downloads/*.tgz /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/ 84 EK-1. (Devam) Yedekleme.sh dosyasındaki kodlar for sm in $yedegiAlinacakMakineler;do smAd=$sm smNoVeYapilandirmaYolu=$( vim-cmd vmsvc/getallvms | awk '{ if ($2 == smAd) print $1 ";" $3 $4}' smAd=$sm) smNo=${smNoVeYapilandirmaYolu%;*} if [ "$smNo" != "" ]; then echo Yedeği alınan makine: $smAd echo Sanal makine yapılandırması yedekleniyor... smYapilandirmaDosyaYolu=$(echo ${smNoVeYapilandirmaYolu#*;} | sed -e 's/\[\(.*\)\]\(.*\)/\1;\2/') smYapilandirmaKaynakAdresi=${smYapilandirmaDosyaYolu%;*} smYapilandirmaDosyasi=${smYapilandirmaDosyaYolu#*;} echo /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/${smYapilandirmaDosyasi%/*} dizini oluşturuluyor... mkdir -p /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/${smYapilandirmaDosyasi%/*} echo /vmfs/volumes/$smYapilandirmaKaynakAdresi/$smYapilandirmaDosyasi yapılandırma dosyası echo /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/$smYapilandirmaDosyasi kopyalanıyor... cp /vmfs/volumes/$smYapilandirmaKaynakAdresi/$smYapilandirmaDosyasi /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/$smYapilandirmaDosyasi echo Anlık görüntü alınıyor... vim-cmd vmsvc/snapshot.create $smNo "Yedek" echo Anlık görüntünün tamamlanması için kalan süre: $beklemeSuresi sleep $beklemeSuresi echo Disk dosyası listesi alınıyor... echo $smDiskYolu smDiskDosyaYolu=$(vim-cmd vmsvc/get.filelayout $smNo | grep -i snapshotFile -A2000 | sed -n -e 's/\"\[\(.*\)\]\s\(.*\.vmdk\)\"\,/\1;\2/pg') echo $(echo $smDiskDosyaYolu | wc -l) Disk dosyası bulundu\(s\)... for smDiskDosyaYolu in $smDiskDosyaYolu; do smDiskDosyasiKaynakAdresi=${smDiskDosyaYolu%;*} smDiskDosyasi=${smDiskDosyaYolu#*;} if [ -e /vmfs/volumes/$smDiskDosyasiKaynakAdresi/$smDiskDosyasi ]; then if [ ! -d /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/${smDiskDosyasi%/*} ]; then mkdir -p /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/${smDiskDosyasi%/*} fi echo /vmfs/volumes/$smDiskDosyasiKaynakAdresi/$smDiskDosyasi dosyası /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/$smDiskDosyasi dosyasına klonlanıyor.. vmkfstools -d 2gbsparse -i /vmfs/volumes/$smDiskDosyasiKaynakAdresi/$smDiskDosyasi /vmfs/volumes/$yedeklerinTutulacagiAdres/$yedeklemeDizini/$smDiskDosyasi fi 85 EK-1. (Devam) Yedekleme.sh dosyasındaki kodlar done echo "Anlık görüntü(ler) kaldırılıyor..." vim-cmd vmsvc/snapshot.removeall $smNo else echo HATA: $smAd için tanımlama numarası bulunamadı. fi done bitisZamani=$(date +"%d-%m-%Y %r") echo Yedekleme başlangıç zamanı: $baslamaZamani echo Yedekleme bitiş zamanı : $bitisZamani #echo Kalan zaman: $(($baslamaZamani - $bitisZamani)) # Yedekleme işleminin tamamlandığını bildiren mail source /vmfs/volumes/4f4cb683-4444cd0f-c379-0019996f90f9/program/bitisMaili.sh 86 EK-2. GeriYukle.sh dosyasındaki kodlar #!/bin/sh clear echo "==================== VMware EXSi Server Yedekleme Uygulaması - Sürüm 1.0 ====================" echo "=================== Yedek Geri Yükleme Uygulaması ====================" echo "-------------------- Yazar : Fevzi Daş - fevzidas@gazi.edu.tr --------------------" echo "" echo "-------------------- Son güncelleme : Mart 2012 --------------------" echo "" echo "" echo "==================== AÇIKLAMALAR ===================" echo "1-) Bu uygulama VMware ESXi Server üzerinde çalışan işletim sistemlerinin var olan yedeklerini" echo "geri yüklemek amacıyla yazılmıştır." echo "" echo "2-) Programın kullanılması ve üzerinde değişiklik yapılması serbesttir." echo "" echo "3-) Uygulamanın doğru bir şekilde çalışması için yapilandirma.conf dosyasındaki" echo "bilgilerin doğru bir şekilde girilmesi gerekmektedir." ‡ echo "" echo "================================================================================ ==============" echo "================================================================================ ==============" echo "" echo "Devam etmek için klavyeden e tuşuna basınız." echo "Çıkmak için klavyeden herhangi bir tuşa basınız." read durum # Devam etme durumu if [ $durum != e ] then echo "Uygulama kapatılıyor..." exit 1 fi # Yedeklerin tutulduğu dosya ve dizin adreslerinin girilmesi echo "Yedeklerin tutulduğuzu dizininin adresini giriniz. (Örnek:datastore/yedeklerim)" read yedeklerinBulunduguDizin yedeklerinBulunduguTamYol=/vmfs/volumes/$yedeklerinBulunduguDizin tarihSay=0 # Daha önce (sistem tarihine göre) oluşturulmuş yedeklerin listelenmesi for tarihler in `ls` do if [ -d $tarihler ] then tarihSay=$((tarihSay+1)) echo $tarihSay : $tarihler fi done # Geri yüklenecek tarihin seçilmesi echo "Lütfen geri yüklemek istediğiniz tarihi seçiniz." read yedekSec cd $yedekSec echo "Sisteminizde aşağıdaki makinere ait yedekler bulunmuştur." 87 EK-2. (Devam) GeriYukle.sh dosyasındaki kodlar # Seçilen tarihte yedekeleri alınmış makinelerin isimlerine göre listelenmesi makineSay=0 for makineler in `ls` do if [ -d $makineler ] then makineSay=$((makineSay+1)) echo $makineSay : $makineler fi done # Geri yüklenecek olan makineye ait dizine gidilmesi echo "Geri yüklenmesini istediğiniz makine adını giriniz." read makineAdi cd $makineAdi # Yükleme dosyalarının kontrol edilmesi sanalDisk="$makineAdi.vmdk" yapilandirmaDosyasi="$makineAdi.vmx" if [ -f $yapilandirmaDosyasi ] && [ -f $sanalDisk ] then echo "DURUM: Yedek dosyaları hazır! Geri yükleme işlemi yapabilirsiniz." else echo "HATA! Geri yükleme işleminin yapılacağı dosyalarda sorun(lar) tespit edilmiştir." fi # AÇIK OLAN MAKİNELERİN KAPATILMASI echo "" echo "DİKKAT!" echo "Sisteminizde\n yer alan sanal makineler listeleniyor." echo "Sisteminizde aşağıdaki makineler bulunmuştur." vim-cmd vmsvc/getallvms #vim-cmd vmsvc/power.getstate 4 echo "Devam etmek istiyor musunuz) e:Evet read devamEdilsinmi if [ $devamEdilsinmi == h ] then exit 1 fi h:Hayır" echo "===================== DİKKAT ====================" echo "" echo "Yedeğin geri yükleneceği makinenin işlem sırasında kapatılması gerekmetedir." echo "Bu uygulama varsayılan olarak geri yükleme işleminden önce çalışan tüm makineleri kapatmaktadır." echo "Sistemdeki tüm makineleri kapatmak yerine eğer kapatılacak makineyi kendiniz seçmek istiyorsanız lütfen 0 tuşuna basınız." echo "Tüm makineleri kapatmak için 1 tuşuna basınız." echo "" echo "Çıkmak için 0 ve 1 dışında herhangi bir tuşa basınız." echo "" # Makine veya makinelerin nasıl kapatılacağı ile ilgili seçeneğin istenmesi read kapatmaIslemiDegeri # Tüm makineleri kapatacak olan fonksiyonun tanımlanması tumMakineleriKapatFonk() { i=2 for i in `vim-cmd vmsvc/getallvms | cut -d ' ' -f1 | sed "1 d"` do 88 EK-2. (Devam) GeriYukle.sh dosyasındaki kodlar echo $i ID numarasına sahip makine kapatılıyor.... vim-cmd vmsvc/power.off $i done } # Sadece istenilen makineyi kapatacak fonksiyonun tanımlanması istenilenMakineyiKapatmaFonk() { echo "Lütfen kapatılmasını istediğiniz makinenin ID'sini giriniz." read kapatilacakMakineID vim-cmd vmsvc/power.off $kapatilacakMakineID } # Girilen değere göre çalıştırılacak seçeneği belirleme (tüm makineler veya bir makine ) if [ $kapatmaIslemiDegeri -eq 1 ] then tumMakineleriKapatFonk elif [ $kapatmaIslemiDegeri -eq 0 ] then istenilenMakineyiKapatmaFonk else exit 1 fi tarih=$(date +"%d-%m-%Y_%H-%M-%S") diskAdi="$tarih.vmdk" yapilandirmaDosyaAdi="$tarih.vmx" # Yapılandırma dosyasınının yedeklenmesi cp $yapilandirmaDosyasi /vmfs/volumes/4f4cb683-4444cd0f-c3790019996f90f9/$makineAdi/$yapilandirmaDosyaAdi # Yedek sanal diskin çalışacak makine dizinine klonlanması vmkfstools -i $sanalDisk /vmfs/volumes/4f4cb683-4444cd0f-c379-0019996f90f9/$makineAdi/$diskAdi # Var olan diskin ve yapılandırma dosyasının silinmesi #rm /vmfs/volumes/4f4cb683-4444cd0f-c379-0019996f90f9/$makineAdi/$yapilandirmaDosyasi #rm /vmfs/volumes/4f4cb683-4444cd0f-c379-0019996f90f9/$makineAdi/$sanalDisk # Çalışacak makineden oluşturulan yapılandırma dosyasının ve sanal diskin isimlerinin değişmesi mv /vmfs/volumes/4f4cb683-4444cd0f-c379-0019996f90f9/$makineAdi/$yapilandirmaDosyaAdi /vmfs/volumes/4f4cb683-4444cd0f-c379-0019996f90f9/$makineAdi/TEZ.vmx mv /vmfs/volumes/4f4cb683-4444cd0f-c379-0019996f90f9/$makineAdi/$diskAdi /vmfs/volumes/4f4cb6834444cd0f-c379-0019996f90f9/$makineAdi/TEZ.vmdk # Makinelerin geri başlatılması makineleriAcFonk() { m=2 for m in `vim-cmd vmsvc/getallvms | cut -d ' ' -f1 | sed "1 d"` do echo "Makine(ler) başlatılıyor...." echo $m ID numarasına sahip makine başlatılıyor... if [ `vim-cmd vmsvc/power.on $m` ] then vim-cmd vmsvc/power.on $m else echo $m ID numarasına sahip makine zaten açık durumdadır. fi done } makineleriAcFonk 89 EK-3. Yapilandirma.conf dosyasındaki kodlar # Bu dosyada ESXi Serverüzerinde yer alan makinelerin anlık yedeklerinin alınabilmesi için #gerekli olan değişkenler yer almaktadır. #Yedekleme işlemi için aşağıdaki değerlerin girilmesi gerekmektedir. yedeklerinTutulacagiAdres=<datastore/yedeklerim> yedeklemeDizini=$(date +"%d-%m-%Y_%H-%M-%S") yedegiAlinacakMakineler="MyUbuntu" beklemeSuresi=40s baslamaZamani=$$(date +"%d-%m-%Y %H-%M-%S") 90 ÖZGEÇMĠġ KiĢisel Bilgiler Soyadı, adı : DAŞ, Fevzi Uyruğu : T.C. Doğum tarihi ve yeri : 23.06.1983 Kars Medeni hali : Bekar Telefon : 0 (505) 201 57 65 e-mail : fevzidas@karatekin.edu.tr Eğitim Derece Eğitim Birimi Mezuniyet tarihi Lisans Başkent Üniversitesi/ BÖTE 2008 Lise Ankara Sokullu Mehmet Paşa Lis. 2003 ĠĢ Deneyimi Yıl Yer Görev 2008-2010 Özel Baştem Anadolu Mes. Lis. Bilgisayar Öğretmeni 2009-2011 AS Adam Bil. Tek. (kurucu) Proje Müdürü 2011- Çankırı Karatekin Üniversitesi Bilgisayar Uzmanı Yabancı Dil İngilizce Yayınlar 1. Unal, S., Daş, F. & Gulbahar, Y. (2008). ―Analysis Of Traditional Education Environment‘s Ability To Carry To Web Based Environment‖. 8 th International Educational Technology Conference, Eskişehir, Turkey 91 2. Gürbüz, R., Daş, F., Topaloğlu, İ., Yavuz Kuruyer, M. (2012). ―Mekatronik Eğitiminde Kullanılmak Üzere Basınç-Kayıp Sisteminin Veri-Edinim Kontrol Kartı Ve Bilgisayar Kullanarak Kontrolü‖, Proje Tabanlı Mekatronik Eğitimi Çalıştayı, Çankırı, Türkiye 3. Gürbüz, R., Topaloğlu, İ., Yavuz Kuruyer, M., Daş, F. (2012). ―Mekatronik Eğitiminde Laboratuar Uygulamalarında Kullanılmak Üzere Masaüstü Çekme Cihazı Tasarımı‖, Proje Tabanlı Mekatronik Eğitimi Çalıştayı, Çankırı, Türkiye 4. Gürbüz, R., Yavuz Kuruyer, M., Topaloğlu, İ., Daş, F. (2012). ―Mekatronik Eğitiminde Kullanılmak Üzere Hidrolik Pozisyonlama Eğitim Seti Tasarımı‖ (2012), Proje Tabanlı Mekatronik Eğitimi Çalıştayı, Çankırı, Türkiye