Kumaha cara nransper wadah OpenVZ 6 ka server KVM tanpa nyeri sirah

Saha waé anu peryogi pikeun mindahkeun wadah OpenVZ ka server kalayan virtualisasi KVM pinuh sahenteuna sakali dina kahirupanna parantos ngalaman sababaraha masalah:

  • Seuseueurna inpormasi ngan saukur luntur sareng relevan pikeun OS anu parantos lami ngalangkungan siklus EOL
  • Inpormasi anu béda-béda sok disayogikeun pikeun sistem operasi anu béda, sareng kamungkinan kasalahan nalika migrasi henteu pernah dianggap
  • Kadang-kadang anjeun kedah ngurus konfigurasi anu unggal ayeuna teras henteu hoyong damel saatos hijrah

Lamun anjeun nransper 1 server, Anjeun salawasna bisa ngalereskeun hal on laleur nu, tapi mun anjeun mindahkeun hiji sakabéh klaster?

Dina tulisan ieu kuring bakal nyobian nyarioskeun ka anjeun kumaha leres migrasi wadah OpenVZ ka KVM kalayan downtime minimal sareng solusi anu gancang pikeun sadaya masalah.

Program atikan leutik: naon OpenVZ sareng naon KVM?

Kami moal lebet kana terminologi, tapi bakal nyarios sacara umum:

OpenVZ - virtualization dina tingkat sistem operasi, anjeun malah bisa nyebarkeun eta dina microwave a, saprak aya teu kudu parentah CPU jeung téhnologi virtualization dina mesin host.

KVM - virtualization full-fledged, ngagunakeun sagala kakuatan CPU jeung sanggup virtualizing nanaon, sagala cara, motong eta lengthwise na crosswise.

Sabalikna sareng kapercayaan populér yén diantara panyadia hosting OpenVZ bakal janten oversold, tapi KVM moal - untungna pikeun anu terakhir, KVM ayeuna oversold henteu langkung parah tibatan lanceukna.

Naon anu bakal urang bawa?

Salaku subjék tés pikeun mindahkeun, urang kedah nganggo sakumna leuweung sistem operasi anu sayogi dina OpenVZ: CentOS (versi 6 sareng 7), Ubuntu (14, 16 sareng 18 LTS), Debian 7.

Dianggap yén kalolobaan wadah OpenVZ parantos ngajalankeun sababaraha jinis LAMP, sareng sababaraha ogé ngagaduhan parangkat lunak anu khusus. Seringna, ieu mangrupikeun konfigurasi sareng ISPmanager, panel kontrol VestaCP (sareng paling sering, henteu diropéa mangtaun-taun). Paménta transferna ogé kedah dipertimbangkeun.

Migrasi dilaksanakeun bari ngajaga alamat IP tina wadah anu ditransfer; urang bakal nganggap yén IP anu wadahna disimpen dina VM sareng bakal tiasa dianggo tanpa masalah.

Sateuacan mindahkeun, hayu urang pastikeun yén urang gaduh sagalana dina leungeun:

  • server OpenVZ, aksés root pinuh kana mesin host, kamampuhan pikeun ngeureunkeun / Gunung / ngamimitian / ngahapus peti
  • server KVM, aksés root pinuh kana mesin host, kalayan sagala rupa nu eta ngakibatkeun. Hal ieu dianggap yén sagalana geus ngonpigurasi sarta siap balik.

Hayu urang mimitian mindahkeun

Sateuacan urang ngamimitian mindahkeun, hayu urang ngartikeun istilah anu bakal ngabantosan anjeun ngahindarkeun kabingungan:

KVM_NODE - mesin host KVM
VZ_NODE - Mesin host OpenVZ
CTID - wadahna OpenVZ
VM - server virtual KVM

Nyiapkeun pikeun migrasi sareng nyiptakeun mesin virtual.

lengkah 1

Kusabab urang kudu mindahkeun wadahna wae, urang bakal nyieun VM kalawan konfigurasi sarupa KVM_NODE.
Penting! Anjeun kedah nyiptakeun VM dina sistem operasi anu ayeuna dijalankeun dina CTID. Salaku conto, upami Ubuntu 14 dipasang dina CTID, teras Ubuntu 14 kedah dipasang dina VM. Versi minor henteu penting sareng bédana henteu kritis, tapi versi utama kedah sami.

Saatos nyiptakeun VM, kami bakal ngamutahirkeun bungkusan dina CTID sareng VM (henteu bingung sareng ngamutahirkeun OS - kami henteu ngamutahirkeun, kami ngan ukur ngapdet bungkusan sareng, upami sumping, versi OS dina bagian utama. versi).

Pikeun CentOS prosés ieu katingalina henteu bahaya:

# yum clean all
# yum update -y

Sareng henteu langkung bahaya pikeun Ubuntu sareng Debian:

# apt-get update
# apt-get upgrade

lengkah 2

Pasang dina CTID, VZ_NODE и VM utilitas rsync:

CentOS:

# yum install rsync -y

Debian, Ubuntu:

# apt-get install rsync -y

Simkuring teu masang nanaon sejenna boh aya atanapi aya.

lengkah 3

Urang eureun CTID dina VZ_NODE tim

vzctl stop CTID

Pamasangan gambar CTID:

vzctl mount CTID

Pindah ka folder /vz/root/CTID jeung laksana

mount --bind /dev dev && mount --bind /sys sys && mount --bind /proc proc && chroot .

Dina akar, jieun file /root/exclude.txt - éta bakal ngandung daptar pengecualian anu moal dugi ka server énggal

/boot
/proc
/sys
/tmp
/dev
/var/lock
/etc/fstab
/etc/mtab
/etc/resolv.conf
/etc/conf.d/net
/etc/network/interfaces
/etc/networks
/etc/sysconfig/network*
/etc/sysconfig/hwconf
/etc/sysconfig/ip6tables-config
/etc/sysconfig/kernel
/etc/hostname
/etc/HOSTNAME
/etc/hosts
/etc/modprobe*
/etc/modules
/net
/lib/modules
/etc/rc.conf
/usr/share/nova-agent*
/usr/sbin/nova-agent*
/etc/init.d/nova-agent*
/etc/ips
/etc/ipaddrpool
/etc/ips.dnsmaster
/etc/resolv.conf
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-ens3

Urang sambungkeun ka KVM_NODE sarta ngajalankeun kami VMsupados tiasa dianggo sareng tiasa diaksés dina jaringan.

Ayeuna sagalana geus siap pikeun mindahkeun. indit!

lengkah 4

Masih dina mantra, urang ngalakukeun

rsync --exclude-from="/root/exclude.txt" --numeric-ids -avpogtStlHz --progress -e "ssh -T -o Compression=no -x" / root@KVM_NODE:/

Paréntah rsync bakal ngalaksanakeun transfer, kami ngarepkeun yén konci éta jelas - transfer dilaksanakeun kalayan pelestarian symlinks, hak aksés, pamilik sareng grup, sareng enkripsi ditumpurkeun pikeun laju anu langkung ageung (anjeun tiasa nganggo sababaraha cipher anu langkung gancang, tapi ieu teu jadi penting pikeun tugas ieu), kitu ogé komprési ditumpurkeun.

Saatos réngsé rsync, kaluar tina chroot (ku mencét ctrl + d) sareng laksanakeun.

umount dev && umount proc && umount sys && cd .. && vzctl umount CTID

lengkah 5

Hayu urang ngalakukeun sababaraha léngkah anu bakal nulungan urang ngajalankeun VM sanggeus mindahkeun tina OpenVZ.
Dina server kalawan Systemd hayu urang laksanakeun paréntah anu bakal ngabantosan urang asup kana konsol biasa, contona, ngaliwatan layar server VNC

mv /etc/systemd/system/getty.target.wants/[email protected] /etc/systemd/system/getty.target.wants/[email protected]

Dina server CentOS 6 и CentOS 7 Pastikeun masang kernel seger:

yum install kernel-$(uname -r)

Pangladén tiasa dimuat tina éta, tapi saatos transfer éta tiasa lirén damel atanapi dihapus.

Dina server CentOS 7 Anjeun kedah nerapkeun perbaikan leutik pikeun PolkitD, upami henteu server bakal nabrak salamina:

getent group polkitd >/dev/null && echo -e "e[1;32mpolkitd group already existse[0m" || { groupadd -r polkitd && echo -e "e[1;33mAdded missing polkitd groupe[0m" || echo -e "e[1;31mAdding polkitd group FAILEDe[0m"; }

getent passwd polkitd >/dev/null 
&& echo -e "e[1;32mpolkitd user already existse[0m" || { useradd -r -g polkitd -d / -s /sbin/nologin -c "User for polkitd" polkitd && echo -e "e[1;33mAdded missing polkitd usere[0m" || echo -e "e[1;31mAdding polkitd user FAILEDe[0m"; }

rpm -Va polkit* && echo -e "e[1;32mpolkit* rpm verification passede[0m" || { echo -e "e[1;33mResetting polkit* rpm user/group ownership & permse[0m"; rpm --setugids polkit polkit-pkla-compat; rpm --setperms polkit polkit-pkla-compat; }

Dina sadaya server, upami mod_fcgid pikeun Apache dipasang, urang bakal ngalakukeun perbaikan leutik sareng hak, upami henteu situs anu nganggo mod_fcgid bakal nabrak sareng kasalahan 500:

chmod +s `which suexec` && apachectl restart

Sareng anu terakhir mangpaat pikeun distribusi Ubuntu sareng Debian. OS ieu tiasa ngadat kana boot langgeng sareng kasalahan

looping gancang teuing. palaksanaan throttling saeutik

teu pikaresepeun, tapi gampang dibereskeun, gumantung kana versi OS.

on Debian 9 fix Sigana mah kieu:

urang laksanakeun

dbus-uuidgen

lamun urang meunang kasalahan

/usr/local/lib/libdbus-1.so.3: versi `LIBDBUS_PRIVATE_1.10.8′ teu kapanggih

pariksa ayana LIBDBUS

ls -la /lib/x86_64-linux-gnu | grep dbus
libdbus-1.so.3 -> libdbus-1.so.3.14.15 
libdbus-1.so.3.14.15 <-- нужен этот
libdbus-1.so.3.14.16

lamun sagalana aya dina urutan, urang ngalakukeun eta

cd /lib/x86_64-linux-gnu
rm -rf libdbus-1.so.3
ln -s libdbus-1.so.3.14.15  libdbus-1.so.3

Upami éta henteu ngabantosan, cobian pilihan kadua.

Solusi kadua pikeun masalah jeung palaksanaan throttling saeutik Cocog sareng ampir sadaya distribusi Ubuntu sareng Debian.

Urang ngalaksanakeun

bash -x /var/lib/dpkg/info/dbus.postinst configure

Sareng pikeun Ubuntu 14, Debian 7 Salaku tambahan urang ngalaksanakeun:

adduser --system --home /nonexistent --no-create-home --disabled-password --group messagebus

rm -rf /etc/init.d/modules_dep.sh 

Naon anu urang lakukeun? Kami malikkeun messagebus, anu leungit pikeun ngajalankeun Debian / Ubuntu, sareng ngahapus modules_dep, anu asalna tina OpenVZ sareng ngaganggu ngamuat seueur modul kernel.

lengkah 6

Urang reboot VM, pariksa di VNC kumaha loading ieu progressing na, ideally, sagalana bakal muka tanpa masalah. Sanajan kasebut nyaéta dimungkinkeun yén sababaraha masalah husus bakal muncul sanggeus migrasi, aranjeunna saluareun ruang lingkup artikel ieu sarta bakal dilereskeun sakumaha aranjeunna timbul.

Kuring miharep informasi ieu mangpaat! 🙂

sumber: www.habr.com

Tambahkeun komentar