ProxMox Sanallaştırma Platformu

Citrix Xenserver’dan vazgeçince tavsiye ve denemeler üzerine ProxMox PVE‘de karar kıldık. Kurulumu ve kullanımı kolay (tek bir web ara yüzünden herşeyi yapabiliyorsunuz); Hem KVM ile tam sanallaştırma, hem de  CV (Container Virtualization; Linux’a özel hızlı ama fazla esnek olmayan bir yapı… detaylar için openvz.org )
Kurulum: Sitesinden ISO dosyasını indirip, CD’ye yakıp bir kaç TByte diski, 16GB falan belleği olan bir makinayı bununla açınız. Gerisi kolay… (diske kendini, bir Debian türevi olan kendi işletim sistemiyle birlikte kuracaktır.
Kullanım: Firefox veya Chrome ile https://sunucunuz:8006 adresine gidip root/root_şifresi ile web yönetim paneline girin. Gerisi kolay… Web yönetiminde sanal makinalarınızın konsollarına erişebilmek için Java gerekecektir. Ancak OpenJDK ile çalışmıyor! İstemcilere mutlaka ORACLE-Java yüklenmesi gerekiyor.
Debain türevi istemcide OpenJDK’yı kaldırmak ve yerine Oracle Java  [78] kurmak icin:

 # apt-get purge openjdk*
 # add-apt-repository ppa:webupd8team/java
 # apt-get install oracle-java[78]-installer
 # apt-get updateupdate-java-alternatives -s java-[78]-oracle

İlk akla gelen sorular:

Sanal makinaların diskleri nerede?  /var/lib/vz/images/ altında, makina tanıtım kodu (numarası) ile aynı olan dizin altında…
Sanal makinaların ayarları nerede? /etc/pve/nodes/PROXMOX-SUNUCUSU/qemu-server/*.conf …
Bu ayar dosyalarını vi ile editleyebilir miyim? Ne yaptığınızı biliyorsanız, evet!
Otomatik VM yedekleme var mı? Var! ProxMox’a bir NFS mount noktası gösterdiğinizde (bizde heybe3.bcc.bilkent.edu.tr:/proxmox_vm_backups on /mnt/pve/Backup_Storage) ( ProxMox yönetim panelinde “Datacenter –> Storage –> Add –> NFS Share –> Server = Nfs Server –> Export = Export adı –> “Content = Backups” ) artık otomatik yedekleme için kullanılacak NFS sunucusu ve paylaşılan dizin belirlenmiş olur. Ardından “Datacenter” –> “Backup” –> seçimi ardından otomatik yedeklemesi yapılacak makinaları ve yedekleme gün-saatlerini seçebilirsiniz.  Geriye dönük kaç günlük yedeklerin tutulacağını ise “Datacenter” –> Storage ->> “Backup_Storage” –> çift klik –> “Max Backups” ile tanımlayabilirsiniz.

proxmox_backup

Fiziksel Linux Makinaları ProxMox’a Taşıma

Yöntem-1 (Taşınacak makina uzunca süre kapalı kalacaktır)

ProxMox ortamında diski fiziksel makinanın diskinden 300-500 MB daha büyük olan bir sanal makina yaratın.

Bu sanal makinaya bir Live-CD takın (bu CD’nin ISO dosyası daha önce ProxMox sunucusunda “local storage”a upload edilmiş olmalıdır. Sol menüden “Storage List” -> “local” -> “Upload”). Sanal bir makinaya CD takmak için: Sol menüden ilgili makinayı tıkla -> “Hardware” -> CD/DVD Drive çift tıkla -> “Use CD/DVD disk image” -> ISO Image dosyasını seç.

Sanal makinayı CD/DVD’den boot et. Gerekirse sanal makina için “Options” altında “Boot order” bilgisini değiştir.

Sanal makinanın IP ayarlarını yapın:

# ifconfig eth0 139.179.39.119 netmask 255.255.255.0 broadcast 139.179.39.255
# route add default gw 139.179.39.1           gibi

Fiziksel makinayı kapatıp bir Live-Linux CD/USB kullanarak açın ve uygun IP ayarlarını yapın:

# ifconfig eth0 139.179.125.120 netmask 255.255.255.0 broadcast 139.179.125.255
# route add default gw 139.179.125.1       gibi

Fiziksel makinanın diskini, fiziksel makinada vereceğiniz dd komutuyla sanal makinanın diskine kopyalayın (100 Mbit/sn bir bağlantıda saatler sürebilir) (/dev/sda mı  yoksa /dev/hda mı kullanılacağını her iki makinada çalıştıracağınız “fdisk -l” komutlarıyla görebilirsiniz. Büyük olasılıkla “/dev/sda” olacaktır.

# dd if=/dev/sda | ssh root@139.179.39.119 dd of=/dev/sda

Kopyalama bittiğinde sanal makinayı kapatıp, CD’yı çıkarıp ( sol menüden makinayi tıklayıp -> Hardware -> “CD/DVD Drive” çift tıklayıp -> “Do not use any media”  ya da “Options” altında “Boot order” değiştirerek) makinanın diskten açmasını sağlayınız. Disk kopyalama sırasında IP adresiyle ilgili ayarlar da kopyalanmış olacağından bu yeni sanal makinanın konsolunu kullanarak IP adresi ve diğer TCP/IP parametrelerini olması gerektiği şekilde değiştirmeyi unutmayınız.

Yöntem-2 (Taşınacak makina bir-iki dakika servis dışı kalabilir)

ProxMox ortamında diski fiziksel makinanın diskinden 300-500 MB daha büyük olan bir sanal makina yaratın.

Bu sanal makinaya, sanallaştırılacak makina ile tıpa-tıp aynı Linux distrosunu yükleyin.

Sanallaştırılacak makinaya, yoksa rsync paketini yükleyin. ( apt-get install rsync )

Sanallaştırılacak makinada “rsync” servisini açın ( /etc/default/rsync –> RSYNC_ENABLE=true )

Sanallaştırılacak makinada /etc/rsyncd.conf dosyasını aşağıdaki örneğe göre yaratın ya da günceleyin: (139.179.39.0/24 IP adres bloğunu sanal makinanızın yer aldığı IP bloğu ile değiştirmeyi unutmayın)

[all]
exclude = /etc/network/interfaces /boot /etc/grub / dev /proc /sys /run /mnt /lost+found /media
read only = yes
numeric ids = yes
uid = 0
gid = 0
hosts allow = 139.179.39.0/24

Yeni sanal makinada aşağıdaki komutu çalıştırın (139.179.125.120: sanallaştıtılacak makinanın IP adresi):

rsync -av 139.179.125.120::all  /

rsync tamamlandığında, sanallaştırılacak makinada apache, mysql gibi servisleri durdurup rsync komutu tekrarlayın.

Hemen ardından yeni sanal makinayı restart edin. Sorun yoksa DNS ayarlarında gerekli değişiklikleri yapıp sanallaştırılan makina için tanımlı IP adreslerini yeni makinaya göre değiştirin. Fiziksel makinayı kapatıp tüm servislerin yeni sanal makina tarafından verildiğine emin olun.

Fiziksel Windows Makinaları ProxMox’a Taşıma

(Taşınacak makina kapalı kalmaz.)

Bu yöntem, sanallaştırılacak Windows makinanın disklerinin IDE, ATA, SATA olmasına göre başarılı olmayabiliyor. Şu anda hangi durumda başarılı; hangi durumda başarısız olduğunu anlayamadım. Başarısız olma durumunda sanal makina açılacakmış gibi başlayıp sürekli reboot ediyor. Recovery mode da flan açılmıyor. Literatürde sözu edilen embedide.reg registry ayar eklentileri de bende işe yaramadı. Bir Windows-7 makinayı bu yöntemle başarıyla aktardım ama bir XP makinayı aktaramadım.

ProxMox ortamında diski fiziksel Windows makinanın diskinden 300-500 MB daha büyük olan bir sanal makina yaratın.

Windows makinaya SelfImage-121 yazılımını kurun.

ProxMox sunucusunda az önce yarattığınız sanal makinanın sanal diskinin adını öğreniniz. Bunun için ProxMox ekranında sol tarafta makinayı seçip “Hardware” tab’i altında “Hard Disk” olarak listelenen satırda “local:115/vm-115-disk-1.qcow2,format=qcow2,size=50G” gibi bir satır göreceksiniz. Bu satırdan size lazım olan karakter dizisi “115/vm-115-disk-1.qcow2” kısmıdır. Bu dizin/dosya adını not edip ProxMox sunucunuzda açacağınız bir root konsolundan aşağıdaki komutu giriniz:

qemu-nbd  -t  /var/lib/vz/images/115/vm-115-disk-1.qcow2  -p  1024

Sanallaştıtılacak WinPC’de selfimage programını başlatıp, “Input” bölümünde “Harddisk (Entire disk)” seçip “Output” bölümünde “NBD” (Network Block Device) seçiniz  ve “Port” olarak “1024” giriniz. “Host” olarak ProxMox sunucunuzun adını ya da IP adresini giriniz.

selfimage

Ardından “Start” tıklayıp beklemeye başlayınız. Diskinizin büyüklüğüne ve ağ hızınıza bağlı olarak uzun saatler beklemek durumunda kalabilirsiniz.

SelfImage işini bitirdiğinde ProxMox sunucu konsolunda ^C ile qemu-nbd komutunu sonlandırıp sanal makinanızı çalıştırın. Ben bu işlemi Windows-7 bir fiziksel makina ile denediğimde sanal Windows-7 makina açıldığında bir dizi chkdsk işleminden sonra başarıyla açıldı.