LXC'den (Linux Containers) ProxMox'a sanal makina taşıma

Gerekli Ön Bilgiler

LXC sunucusunda sanal makinaların bulunduğu dizin: /var/lib/lxc/

LXC sanal makinalarının disk görüntüsü dizini: /var/lib/lxc/sanal_makina/rootfs

LXC sanal makinalarının konfigürasyon bilgileri: /var/lib/lxc/sanal_makina/config (örneğin sanal makinanın IP adresi bu dosyada “lxc.network.ipv4 = 139.179.139.122/24” şeklinde görülebilir)

ProxMox sunucusunda VM sanal makinaların disk görüntü dizini: /var/lib/vz/images

ProxMox sunucusunda CT sanal makinaların disk görüntü dizini: /var/lib/vz/private

Taşıma İşlemi

LXC sunucusuna root yetkisiyle bağlanıp  taşımak istediğiniz makinanın disk görüntüsünün yer aldığı dizinin büyüklüğünü öğrenin:

root@lxc: du -sh /var/lib/lxc/sanal_makina

Sonra söz konusu makinanın halen sahip olduğu IP adresini öğrenin:

root@lxc: grep network.ipv4  /var/lib/lxc/sanal_makina/config

ProxMox sunucusunda yukarda belirlediğiniz disk kapasitesinden az olmamak; hatta %10 falan daha fazlası (ya da gereği kadar) büyüklükte diski olan bir CT (Container tipi sanal makina) yaratın.

proxmox_createCT

Sunucuda daha önce kullanılmamış bir “VM ID”, uygun bir “Hostname” ve yeni makinada kullanılacak root şifresini girin. (Sanal makina taşındıktan sonra /etc/passwd ve /etc/shadow dosyaları da taşınmış olacağından, bu şifre taşınan eski makinanın root şifresi olarak değişecektir.)

proxmox_createCT2

Ardından yeni CT (container) makinanız için bir şablon (Template) seçmelisiniz. Şablon seçiminden sonra bellek, swap alanı ve disk boylarını belirleyip makinayı yaratınız. İhtiyacınız olan şablon listede yoksa, ProxMox “Server View” menüsünden “local” seçip “Templates” tabını tıklayınız. Uygun bir şablon seçip ProxMox sunucunuza indirilmesini (ProxMox sitesinden) sağlayınız. Artık   bu yeni şablon CT yaratma aşamasında listelenen şablonlar arasında görünecektir.
proxmox_createCT3

 Yeni makinanızı bu aşamada açmayınız. 

ProxMox sunucunuza root olarak bağlanın. Yeni CT makinanızın disk görüntüsünün olduğu dizine geçin:

# root@proxmox:  cd /var/lib/vz/private/204

Aşağıdaki komutla LXC sunucusundaki disk görüntü dizini ile ProxMox sunucusundaki disk görüntüsü dizinini senkronize edin:

rsync -avze ssh --exclude etc/inittab
                --exclude etc/network/interfaces
                --exclude dev/
                --exclude sys/
                --exclude proc/
                root@lxc_sunucu:/var/lib/lxc/sanal_makina/rootfs/ .

Aslında bu senkronizasyon sırasında LXC’deki makina kapalı olsa iyi olur ama bunu istemezseniz çok da dert değil.

Senkron işlemi tamamlanınca ProxMox sunucusundaki yeni makinayı açınız. ProxMox konsoluyla login olup olamadığınızı deneyin (LXC ortamındaki hesap ya da hesapları kullanarak). Yeni IP adresiyle deneyebildiğiniz kadar servislerin çalışıp çalışmadığını kontrol edin. Bir çek servis host adresiyle kurulmuş olduğu için genellikle eski makinaya yönelecektir ama gene de taşımanın başarılı olup olmadığı konusunda fikir verecektir.

Şimdi LXC sunucudaki makinada apache, lighthttpd, mysql, pgsql gibi servisleri durdurup yukardaki rsync komutunu tekrarlayınız. Böylece ilk rsync sırasında dosyalarda oluşmuş olabilecek değişiklikler de yeni makinaya yansımış olacaktır.

DNS sunucunuzda, LXC makinasında çalışmakta olan servislerle ilgili DNS kayıtlarını yenileyiniz ve LXC’deki makinayı tamamen kapatınız. DNS propagasyonu yüzünden eski sunucuya yönelecek olan erişimler sorun çıkaracaksa başka önlemler almak gerekecektir. (PHP ile redirect falan gibi şeyler)