tez yazım kılavuzu - Gazi Üniversitesi Açık Arşiv

advertisement
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
Download