Ki jan yo transfere veso OpenVZ 6 nan sèvè KVM san tèt fè mal

Nenpòt moun ki te bezwen transfere yon veso OpenVZ nan yon sèvè ak Virtualization KVM konplè omwen yon fwa nan lavi yo te rankontre kèk pwoblèm:

  • Pifò nan enfòmasyon yo tou senpleman demode e yo te enpòtan pou OS ki te pase sik EOL depi lontan
  • Yo toujou bay enfòmasyon diferan pou sistèm opere diferan, epi erè posib pandan migrasyon yo pa janm konsidere
  • Pafwa ou gen fè fas ak konfigirasyon ki chak kounye a epi Lè sa a, pa vle travay apre migrasyon

Lè ou transfere 1 sèvè, ou ka toujou ranje yon bagay sou vole, men lè ou transfere yon grap antye?

Nan atik sa a mwen pral eseye di w ki jan yo kòrèkteman imigre yon veso OpenVZ nan KVM ak yon ti tan D 'ak yon solisyon rapid pou tout pwoblèm.

Yon ti pwogram edikasyon: ki sa ki OpenVZ ak ki sa ki KVM?

Nou pa pral antre nan fon nan tèminoloji, men nou pral di an tèm jeneral:

OpenVZ — Virtualization nan nivo sistèm operasyon an, ou ka menm deplwaye li sou yon mikwo ond, paske pa gen okenn nesesite pou CPU enstriksyon ak teknoloji Virtualization sou machin lame a.

KVM - Virtualizasyon plen véritable, lè l sèvi avèk tout pouvwa CPU a epi ki kapab virtualize anyen, nenpòt fason, koupe li longè ak travèse.

Kontrèman ak kwayans popilè ke nan mitan founisè hosting OpenVZ ap vin oversold, men KVM pa pral - erezman pou lèt la, KVM se kounye a oversand pa pi mal pase frè li.

Kisa nou pral pote sou?

Kòm sijè tès pou transfè a, nou te oblije itilize tout forè sistèm opere ki disponib sou OpenVZ: CentOS (vèsyon 6 ak 7), Ubuntu (14, 16 ak 18 LTS), Debian 7.

Li te sipoze ke pi fò nan resipyan OpenVZ yo te deja kouri kèk kalite LAMP, ak kèk menm te gen kèk lojisyèl trè espesifik. Pi souvan, sa yo te konfigirasyon ak ISPmanager, panèl kontwòl VestaCP (epi souvan, pa mete ajou pou ane). Demann transfè yo dwe pran an konsiderasyon tou.

Migrasyon fèt pandan y ap prezève adrès IP veso ki transfere a; nou pral asime IP ke veso a te sove sou VM a epi li pral travay san pwoblèm.

Anvan transfere, se pou nou asire w ke nou gen tout bagay nan men:

  • Sèvè OpenVZ, aksè konplè rasin nan machin lame a, kapasite pou sispann / monte / kòmanse / efase veso yo
  • Sèvè KVM, aksè konplè rasin nan machin lame a, ak tout sa li implique. Li sipoze ke tout bagay deja configuré ak pare yo ale.

Ann kòmanse transfere

Anvan nou kòmanse transfè a, ann defini tèm ki pral ede w evite konfizyon:

KVM_NODE - KVM lame machin
VZ_NODE - OpenVZ lame machin
CTID - OpenVZ veso
VM - KVM sèvè vityèl

Preparasyon pou migrasyon ak kreye machin vityèl.

Etap 1

Depi nou bezwen deplase veso a yon kote, nou pral kreye VM ak yon konfigirasyon ki sanble ak KVM_NODE.
Enpòtan! Ou bezwen kreye yon VM sou sistèm operasyon an ki kounye a ap kouri sou CTID. Pou egzanp, si Ubuntu 14 enstale sou CTID a, Lè sa a, Ubuntu 14 dwe enstale sou VM a. Vèsyon minè yo pa enpòtan ak diferans yo pa tèlman kritik, men vèsyon pi gwo yo ta dwe menm.

Apre kreye VM a, nou pral mete ajou pakè yo sou CTID la ak sou VM a (pa dwe konfonn ak aktyalizasyon OS la - nou pa mete ajou li, nou sèlman mete ajou pakè yo epi, si li rive, vèsyon OS nan prensipal la. vèsyon).

Pou CentOS pwosesis sa a sanble inofansif:

# yum clean all
# yum update -y

E pa mwens inofansif pou Ubuntu ak Debian:

# apt-get update
# apt-get upgrade

Etap 2

Enstale sou CTID, VZ_NODE и VM sèvis piblik rsync:

CentOS:

# yum install rsync -y

Debian, Ubuntu:

# apt-get install rsync -y

Nou pa enstale anyen ankò ni la ni la.

Etap 3

Nou fè yon kanpe CTID sou VZ_NODE ekip

vzctl stop CTID

Monte imaj la CTID:

vzctl mount CTID

Ale nan /vz/root/ katab laCTID epi egzekite

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

Anba rasin lan, kreye yon fichye /root/exclude.txt - li pral genyen yon lis eksepsyon ki pap rive nan nouvo sèvè a.

/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

Nou konekte ak KVM_NODE epi lanse nou VMpou li travay epi aksesib sou rezo a.

Koulye a, tout bagay pare pou transfè. Ale!

Etap 4

Toujou anba eple a, nou fè

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

Kòmandman rsync la pral fè transfè a, nou espere ke kle yo klè - transfè a fèt ak prezèvasyon lyen senbolik, dwa aksè, pwopriyetè ak gwoup, ak chifreman enfim pou pi gwo vitès (ou ta ka itilize kèk chifreman pi vit, men sa a pa tèlman enpòtan pou travay sa a), osi byen ke konpresyon se enfim.

Apre w fin ranpli rsync, sòti nan chroot (pa peze ctrl + d) epi egzekite

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

Etap 5

Ann fè plizyè etap ki pral ede nou lanse VM a apre transfere soti nan OpenVZ.
Sou serveurs ak Systemd Ann egzekite yon lòd ki pral ede nou konekte nan yon konsole regilye, pou egzanp, atravè yon ekran sèvè VNC.

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

Sou serveurs Santos 6 и Santos 7 Asire w ou enstale yon nwayo fre:

yum install kernel-$(uname -r)

Sèvè a ka chaje soti nan li, men apre transfè a li ka sispann travay oswa yo dwe efase.

Sou sèvè Santos 7 ou bezwen aplike yon ti ranje pou PolkitD, otreman sèvè a pral aksidan pou tout tan:

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

Sou tout serveurs, si mod_fcgid pou Apache te enstale, nou pral fè yon ti ranje ak dwa, otreman sit ki itilize mod_fcgid pral aksidan ak erè 500:

chmod +s `which suexec` && apachectl restart

Ak dènye bagay la itil pou distribisyon Ubuntu ak Debian. OS sa a ka fè aksidan nan yon bòt etènèl ak yon erè

bouk twò vit. throttling ekzekisyon yon ti kras

dezagreyab, men fasil fiks, tou depann de vèsyon an OS.

Sou Debian 9 ranje a sanble sa a:

nou pote soti

dbus-uuidgen

si nou jwenn yon erè

/usr/local/lib/libdbus-1.so.3: vèsyon `LIBDBUS_PRIVATE_1.10.8′ pa jwenn

tcheke prezans 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

si tout bagay nan lòd, nou fè li

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

Si li pa ede, eseye dezyèm opsyon an.

Dezyèm solisyon a pwoblèm nan ak throttling ekzekisyon yon ti kras Apwopriye pou prèske tout distribisyon Ubuntu ak Debian.

Nou pote soti

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

Ak pou Ubentu 14, Debian 7 Anplis de sa nou fè:

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

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

Kisa nou fè? Nou retabli messagebus, ki te manke pou kouri Debian/Ubuntu, epi retire modules_dep, ki te soti nan OpenVZ e ki te entèfere ak chaje anpil modil nwayo.

Etap 6

Nou rdemare VM a, tcheke nan VNC ki jan loading la ap pwogrese epi, depreferans, tout bagay pral chaje san pwoblèm. Malgre ke li posib ke kèk pwoblèm espesifik ap parèt apre migrasyon an, yo depase sijè ki abòde lan atik sa a epi yo pral korije jan yo leve.

Mwen espere enfòmasyon sa a itil! 🙂

Sous: www.habr.com

Add nouvo kòmantè