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.
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.)
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.
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)