Giunsa pagbalhin ang OpenVZ 6 nga sudlanan sa KVM server nga wala’y labad sa ulo

Bisan kinsa nga nanginahanglan nga ibalhin ang usa ka sudlanan sa OpenVZ sa usa ka server nga adunay hingpit nga virtualization sa KVM labing menos kausa sa ilang kinabuhi nakasugat og pipila ka mga problema:

  • Kadaghanan sa impormasyon kay karaan na ug may kalabotan sa mga OS nga dugay nang milabay sa EOL cycle
  • Ang lainlaing impormasyon kanunay nga gihatag alang sa lainlaing mga operating system, ug ang posible nga mga sayup sa panahon sa paglalin wala gikonsiderar
  • Usahay kinahanglan nimo nga atubangon ang mga pagsiguro nga matag karon ug unya dili gusto nga magtrabaho pagkahuman sa paglalin

Kung gibalhin nimo ang 1 server, mahimo nimo kanunay nga ayohon ang usa ka butang sa langaw, apan kung gibalhin nimo ang tibuuk nga kumpol?

Niini nga artikulo sulayan nako nga isulti kanimo kung giunsa ang husto nga pagbalhin sa usa ka sudlanan sa OpenVZ sa KVM nga adunay gamay nga downtime ug dali nga solusyon sa tanan nga mga problema.

Usa ka gamay nga programa sa edukasyon: unsa ang OpenVZ ug unsa ang KVM?

Dili kita moadto sa lawom nga terminolohiya, apan isulti sa kinatibuk-ang termino:

OpenVZ — virtualization sa lebel sa operating system, mahimo pa nimo kini i-deploy sa usa ka microwave, tungod kay wala’y kinahanglan alang sa mga panudlo sa CPU ug mga teknolohiya sa virtualization sa host machine.

KVM - bug-os nga virtualization, gamit ang tanan nga gahum sa CPU ug makahimo sa pag-virtualize sa bisan unsang butang, bisan unsang paagi, pagputol kini sa gitas-on ug crosswise.

Sukwahi sa popular nga pagtuo nga taliwala sa mga hosting providers OpenVZ mahimong oversold, apan KVM dili - swerte alang sa ulahi, KVM karon oversold dili mas grabe pa kay sa iyang igsoon nga lalake.

Unsa ang atong dad-on?

Isip mga subject sa pagsulay alang sa pagbalhin, kinahanglan namong gamiton ang tibuok kalasangan sa mga operating system nga anaa sa OpenVZ: CentOS (6 ug 7 nga bersyon), Ubuntu (14, 16 ug 18 LTS), Debian 7.

Gituohan nga kadaghanan sa mga sudlanan sa OpenVZ nagdagan na sa usa ka matang sa LAMP, ug ang uban adunay pipila ka piho nga software. Kasagaran, kini ang mga pag-configure sa ISPmanager, VestaCP control panel (ug kasagaran, wala gi-update sa daghang tuig). Ang ilang mga hangyo sa pagbalhin kinahanglan usab nga tagdon.

Gihimo ang paglalin samtang gipreserbar ang IP address sa gibalhin nga sudlanan; atong hunahunaon nga ang IP nga naa sa sulud natipig sa VM ug molihok nga wala’y mga problema.

Sa dili pa ibalhin, atong siguroon nga anaa na ang tanan:

  • OpenVZ server, bug-os nga root access sa host machine, abilidad sa paghunong/mount/start/delete containers
  • KVM server, bug-os nga root access sa host machine, uban sa tanan nga gipasabot niini. Gituohan nga ang tanan na-configure na ug andam na nga moadto.

Magsugod ta sa pagbalhin

Sa dili pa kita magsugod sa pagbalhin, atong ipasabot ang mga termino nga makatabang kanimo sa paglikay sa kalibog:

KVM_NODE - KVM host machine
VZ_NODE - OpenVZ host machine
CTID - OpenVZ nga sudlanan
VM - KVM virtual server

Pag-andam alang sa paglalin ug paghimo og mga virtual machine.

lakang 1

Tungod kay kinahanglan namong ibalhin ang sudlanan sa usa ka dapit, maghimo kami VM nga adunay susama nga configuration sa KVM_NODE.
Importante! Kinahanglan ka nga maghimo usa ka VM sa operating system nga karon nagdagan sa CTID. Pananglitan, kung ang Ubuntu 14 gi-install sa CTID, nan ang Ubuntu 14 kinahanglan nga i-install sa VM. Ang mga menor de edad nga bersyon dili hinungdanon ug ang ilang kalainan dili kaayo kritikal, apan ang mga dagkong bersyon kinahanglan parehas.

Pagkahuman sa paghimo sa VM, among i-update ang mga pakete sa CTID ug sa VM (dili malibog sa pag-update sa OS - dili namon kini gi-update, gi-update ra namon ang mga pakete ug, kung kini moabut, ang bersyon sa OS sa sulod sa panguna bersyon).

Alang sa CentOS kini nga proseso morag dili makadaot:

# yum clean all
# yum update -y

Ug dili kaayo makadaot alang sa Ubuntu ug Debian:

# apt-get update
# apt-get upgrade

lakang 2

Pag-instalar sa CTID, VZ_NODE и VM utility rsync:

CentOS:

# yum install rsync -y

Debian, Ubuntu:

# apt-get install rsync -y

Wala kami mag-install ug bisan unsa pa didto o didto.

lakang 3

Naghunong kami CTID sa VZ_NODE team

vzctl stop CTID

Pag-mount sa imahe CTID:

vzctl mount CTID

Adto sa /vz/root/ folderCTID ug ipatuman

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

Ubos sa gamut, paghimo og file /root/exclude.txt - kini adunay lista sa mga eksepsiyon nga dili makuha sa bag-ong server

/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

Sumpaysumpaya sa KVM_NODE ug ilunsad ang atong VMaron kini molihok ug ma-access sa network.

Karon ang tanan andam na alang sa pagbalhin. Lakaw!

lakang 4

Ubos gihapon sa spell, nag-perform mi

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

Ang rsync nga sugo mohimo sa pagbalhin, nanghinaut kami nga ang mga yawe klaro - ang pagbalhin gihimo uban ang pagpreserbar sa mga symlink, mga katungod sa pag-access, mga tag-iya ug mga grupo, ug ang pag-encrypt gibabagan alang sa mas paspas nga tulin (mahimo nimong gamiton ang mas paspas nga cipher, apan kini dili kaayo importante alang niini nga buluhaton), ingon man ang compression gipugngan.

Human makompleto ang rsync, exit gikan sa chroot (pinaagi sa pagpindot sa ctrl+d) ug i-execute

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

lakang 5

Himoon nato ang pipila ka mga lakang nga makatabang kanato sa paglansad sa VM human sa pagbalhin gikan sa OpenVZ.
Sa mga server nga adunay Systemd atong ipatuman ang usa ka sugo nga makatabang kanato sa pag-log in sa usa ka regular nga console, pananglitan, pinaagi sa VNC server screen

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

Sa mga server CentOS 6 и CentOS 7 Siguroha ang pag-instalar og bag-ong kernel:

yum install kernel-$(uname -r)

Ang server mahimong ma-load gikan niini, apan pagkahuman sa pagbalhin mahimo’g kini mohunong sa pagtrabaho o matangtang.

Sa server CentOS 7 kinahanglan nimo nga mag-aplay og gamay nga pag-ayo alang sa PolkitD, kung dili ang server mag-crash hangtod sa hangtod:

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; }

Sa tanan nga mga server, kung ang mod_fcgid para sa Apache na-install, maghimo kami usa ka gamay nga pag-ayo nga adunay mga katungod, kung dili ang mga site nga naggamit sa mod_fcgid ma-crash sa sayup 500:

chmod +s `which suexec` && apachectl restart

Ug ang katapusan nga butang mapuslanon alang sa mga pag-apod-apod sa Ubuntu ug Debian. Kini nga OS mahimong ma-crash sa usa ka walay katapusan nga boot nga adunay usa ka sayup

paspas kaayo ang pag-loop. throttling execution gamay

dili maayo, apan dali nga naayo, depende sa bersyon sa OS.

sa Debian 9 ang pag-ayo ingon niini:

atong ipatuman

dbus-uuidgen

kon kita makakuha og sayop

/usr/local/lib/libdbus-1.so.3: bersyon `LIBDBUS_PRIVATE_1.10.8′ wala makit-an

susiha ang presensya sa 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

kung maayo ang tanan, buhaton namo kini

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

Kung dili kini makatabang, sulayi ang ikaduha nga kapilian.

Ang ikaduha nga solusyon sa problema sa throttling execution gamay Angayan alang sa hapit tanan nga mga pag-apod-apod sa Ubuntu ug Debian.

Atong ipatuman

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

Ug alang Ubuntu 14, Debian 7 Dugang pa, among gihimo:

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

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

Unsa may atong nabuhat? Among gipahiuli ang messagebus, nga kulang sa pagdagan sa Debian/Ubuntu, ug gitangtang ang modules_dep, nga gikan sa OpenVZ ug nakabalda sa pagkarga sa daghang kernel modules.

lakang 6

Gi-reboot namon ang VM, gisusi sa VNC kung giunsa ang pag-uswag sa pag-load ug, labing maayo, ang tanan mag-load nga wala’y mga problema. Bisan kung posible nga ang pipila ka mga piho nga mga problema motungha pagkahuman sa paglalin, kini wala pa sa sulud sa kini nga artikulo ug matul-id kung kini motungha.

Nanghinaut ko nga kini nga impormasyon mapuslanon! 🙂

Source: www.habr.com

Idugang sa usa ka comment