Proxmox’un 4 sürümünde OpenVZ yok artık. Bunun yerine LXC (Linux Container) geliyor. Aslında OpenVZ Debian’dan kaldırıldı . Peki Proxmox 3 makinemiz var, bunun içindeki sanal makineleri (VM) yeni kurduğumuz farklı bir makinedeki Proxmox 4 üzerine nasıl taşıyacağız?
Önemli: Proxmox 4 ve Proxmox 3 küme (cluster) yapılamıyor. Bu nedenle ilk akla gelen, “ikisini aynı kümeye koyup migrate yaparım” cevabı işe yaramıyor.Aşağıda uyguladığım tecrübeye göre işlem adımlarını kısa kısa yazmaya çalıştım.
1. Bölüm: Sanal makineyi Proxmox 4 üzerinde çalıştırmak
Proxmox kurulumu standart olarak (“ileri, ileri” şeklinde) yapılmıştır. Sürümü aşağıda gösterdim:
1 2 |
root@sanal1:/var/lib/vz# pveversion pve-manager/4.2-11/2c626aa1 (running kernel: 4.4.8-1-pve) |
Önce, taşıyacağımız sanal makineyi durdurup dump edelim. Yani disk imajının yedeğini alalım. Bu işlemi yapmak için Proxmox 3 üzerinde, ilgili local depolama alanına web arayüzünden içerik izni (yedekleme, imaj,template, vb.) vermeniz gerekebilir.
1 |
vzctl stop 110 && vzdump 110 -storage local |
Proxmox 3 üzerinde yedeklediğimiz bu imajı, yeni kurduğumuz Proxmox 4 makinesine kopyalayalım. İstediğiniz herhangi bir metodu kullanabilirsiniz. Aşağıda SCP örneği var:
1 |
scp /var/lib/vz/dump/vzdump-openvz-110-2016_06_05-18_45_32.tar root@proxMox4_Sunucusu:/var/lib/vz/dump/ |
Yeni makina üzerine aldığımız disk imajını, proxmox üzerine restore yapalım. Bu aşamada yine Proxmox 4 web arayüzü üzerinden, ilgili local depolama alanına içerik izni (images, yedek, vb.) vermeniz gerekebilir. Artık vz... komutlarını kullanmıyoruz, konteynırlarımızı pct komutu ile yönetiyoruz.
1 |
pct restore 110 /var/lib/vz/dump/vzdump-openvz-110-2016_06_05-18_45_32.tar |
Restore işlemi bitince, Proxmox web arayüzünde bu yeni makinayı göreceğiz. Ancak network ayarları gelmemiş olacak. Bunu da önceki makinanın aynısı olacak şekilde yapabiliriz. Bu kısma kadar olan kısımda şu kaynaktan faydalandım: https://pve.proxmox.com/wiki/Convert_OpenVZ_to_LXC. Makinanın konsoluna erişmek için, şu şekilde giriş yapabiliriz:
1 |
pct enter 110 |
2. Bölüm: Proxmox 4 üzerindeki RAW diski, LVM biçimine çevirmek
Proxmox 4 sürümü ile birlikte artık varsayılan depolama LVM biçiminde geliyor. Sanal makineler için bir Logical Volume oluşturuyor. Fayasını zararını bilmiyorum. Ama RAW (veya qcow, vmdk, vb.) biçimindeki dosya kopyalamanın rahatlığı yok. Aşağıda bu durumun daha iyi görülebilmesi için birkaç komut çıktısı yerleştirdim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
root@sanal1:/var/lib/vz# df -h Filesystem Size Used Avail Use% Mounted on udev 10M 0 10M 0% /dev tmpfs 19G 9.4M 19G 1% /run /dev/dm-0 95G 63G 27G 71% / tmpfs 48G 37M 48G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 48G 0 48G 0% /sys/fs/cgroup cgmfs 100K 0 100K 0% /run/cgmanager/fs tmpfs 100K 0 100K 0% /run/lxcfs/controllers /dev/fuse 30M 16K 30M 1% /etc/pve root@sanal1:/var/lib/vz# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data pve twi-aotz-- 995.38g 0.09 0.45 root pve -wi-ao---- 96.00g swap pve -wi-ao---- 8.00g vm-100-disk-1 pve Vwi-aotz-- 8.00g data 11.04 vm-110-disk-1 pve -wi-ao---- 10.00g root@sanal1:/var/lib/vz# vgdisplay --- Volume group --- VG Name pve System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 12 VG Access read/write VG Status resizable MAX LV 0 Cur LV 5 Open LV 4 Max PV 0 Cur PV 1 Act PV 1 VG Size 1.09 TiB PE Size 4.00 MiB Total PE 285535 Alloc PE / Size 284064 / 1.08 TiB Free PE / Size 1471 / 5.75 GiB VG UUID QQHsIT-yGUk-FQbt-Ok8T-bLQB-O4so-t0pVkS |
İlk önce yazdığım, df komutunun çıktısını görünce, afalladım. 1TB diskim olan makinede bu diskler görünmüyordu. Peki nasıl yönetecektim ben bu sanal diskleri? önce Proxmox 4’ün varsayılan davranışını görmek için bir test sanal makinesi (VMID: 100) oluşturdum. Sonra lvs komutu ile baktığımda, 100 numaralı makine için bir LV oluştuğunu gördüm. vgdisplay ile baktığımda da diskimin (volume group ~ VG) tamamını görebildiğimi öğrendim. Bundan sonrası kolay. önce bir LV oluşturacağız, sonra elimizdeki RAW dosyasını blok biçiminde ilgili LV’ye yazacağız.
Öncelikle biraz inceleyelim. Aşağıda ilgili komutun çıktısında gördüğümüz ve görmemiz gereken şekli gösterilmiştir. local isimli depolama, Proxmox’un / (root) klasörü. Varsayılan olarak burayı 100G yaptı ve VG için de 1TB disk alan ayırdı kendisi. local-lvm isimli depolama ise, VM imajının LVM üzerinde duracağını belirtiyor.
1 2 3 4 5 6 |
pct config 110 # disk boyutuna bak. ### Mevcut durum: rootfs: local:110/vm-110-disk-1.raw,size=10G ### Olması gereken durum: rootfs: local-lvm:vm-110-disk-1,size=10G |
Yeni LV’yi oluşturalım. Bu aşamada disk boyutuna dikkat etmemiz gerekiyor. Önceki sanal diskin aynı boyutunda veya daha büyük boyutlu olması gerekiyor. Dikkat edilecek bir başka nokta da thin provisioning olayı. Thin oluşturulan disk bölümleri çok daha esnek olabiliyor. Mesela 100GB disk içinde 10 tane makinaya 50GB disk alanı verebilirsiniz. Proxmox 4 üzerinde varsayılan olarak thin provisioning aktif geliyor. bunun için, “data” isimli bir thin pool oluşturmuşlar. Yeni oluşturulacak olan thin LV’ler bu pool içinde oluşturulmalıdır. “Yok ben thin istemem” derseniz, –thin parametresini kullanmayacaksınız ve -V yerine -L koyacaksınız. Ancak thick için kullanılabilecek çok fazla alan yok varsayılan kurulumda.
1 2 3 4 5 6 7 8 9 10 |
root@sanal1:/var/lib/vz/images# lvcreate -V 10G --thin -n vm-110-disk-1 pve/data Logical volume "vm-110-disk-1" created. root@sanal1:/var/lib/vz/images# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data pve twi-aotz-- 995.38g 0.09 0.46 root pve -wi-ao---- 96.00g swap pve -wi-ao---- 8.00g vm-100-disk-1 pve Vwi-aotz-- 8.00g data 11.04 vm-110-disk-1 pve Vwi-a-tz-- 10.00g data 0.00 |
lvs çıktısında tüm LV’leri görebiliyoruz. Burada Attr kısmından bunların thin LV mi, thin pool mu olduğunu anlayabiliyoruz. Üstteki lvcreate komutunun parametrelerini de birazcık açıklayalım:
1 2 3 4 5 6 |
-V 10G thin olsun. boyutu 10G olsun. --thin yukarıda da yazmıştık, thin olsun. pve mevcut VG'nin adı. -n yeni bir LV oluştur (new) /dev/pve/vm-110-disk-1 yeni LV'nin adı /pve/data lvs çıktısında gördüğümüz "data" isimli pool içinde oluştur. |
Bu kısmı sağlıklı bir şekilde yapabildiysek, şimdi RAW disk imaj dosyasını blok şeklinde yeni LV’ye yazalım:
1 |
dcfldd if=/var/lib/vz/images/110/vm-110-disk-1.raw of=/dev/pve/vm-110-disk-1 |
dcfldd komutu, dd komutu ile aynı işi yapıyor. Ancak arayüzü biraz daha güzel ve daha hızlı kopyalıyor. Proxmox makinesinde apt-get ile yükleyebilirsiniz. Ya da sadece komutun başındaki dcfldd yerine dd yazabilirsiniz. Şimdi sanal makinanın root filesystem’ini LV üzerine yönlendirelim:
1 2 3 |
pct stop 110 pct set 110 -rootfs local-lvm:vm-110-disk-1,size=10G pct start 110 |
Makina açıkken bu tarz işlemlere izin vermediği için, durdurduktan sonra bızıklıyoruz. Bu aşamada, makinenin tam istedğimiz gibi çalıştığını görebiliriz. Eski disk te halen makinada takılı duruyor. Proxmox arayüzüne girice de iki diski de görebilirsiniz. Ama RAW dosya artık kullanılmıyor. rootfs olarak yeni LV gözüküyor. İstenirse Proxmox arayüzünden veya /etc/pve/nodes/sanal1/lxc/110.conf dosyasından ilgili satır silinerek, eski RAW dosyası makineden kaldırılabilir.
Bu kadar.