Kif tittrasferixxi l-kontenitur OpenVZ 6 għal server KVM mingħajr uġigħ ta 'ras

Kull min kellu bżonn jittrasferixxi kontenitur OpenVZ għal server b'virtwalizzazzjoni KVM sħiħa mill-inqas darba f'ħajtu ltaqa' ma' xi problemi:

  • Il-biċċa l-kbira tal-informazzjoni hija sempliċement skaduta u kienet rilevanti għall-OS li ilhom għaddew iċ-ċiklu EOL
  • Informazzjoni differenti hija dejjem ipprovduta għal sistemi operattivi differenti, u żbalji possibbli matul il-migrazzjoni qatt ma jiġu kkunsidrati
  • Xi drabi trid tittratta konfigurazzjonijiet li kull tant żmien ma jridux jaħdmu wara l-migrazzjoni

Meta tittrasferixxi server 1, tista 'dejjem tiffissa xi ħaġa fuq il-fly, imma meta tittrasferixxi cluster sħiħ?

F'dan l-artikolu ser nipprova ngħidlek kif temigra b'mod korrett kontenitur OpenVZ għal KVM b'ħin ta 'waqfien minimu u soluzzjoni rapida għall-problemi kollha.

Programm edukattiv żgħir: x'inhu OpenVZ u x'inhu KVM?

Mhux se nidħlu fit-terminoloġija, imma ngħidu f’termini ġenerali:

OpenVZ — virtwalizzazzjoni fil-livell tas-sistema operattiva, tista 'saħansitra tużaha fuq microwave, peress li m'hemmx bżonn ta' struzzjonijiet CPU u teknoloġiji ta 'virtwalizzazzjoni fuq il-magna ospitanti.

KVM - virtwalizzazzjoni sħiħa, bl-użu tal-qawwa kollha tas-CPU u kapaċi li virtwalizza kull ħaġa, b'kull mod, qtugħ fit-tul u crosswise.

Kuntrarjament għat-twemmin popolari li fost il-fornituri ta 'hosting OpenVZ se jsir bejgħ żżejjed, iżda KVM mhux se - fortunatament għal dan tal-aħħar, KVM issa huwa bejgħ żżejjed mhux agħar minn ħuha.

X'se nġorru?

Bħala suġġetti tat-test għat-trasferiment, kellna nużaw il-foresta kollha tas-sistemi operattivi li huma disponibbli fuq OpenVZ: CentOS (6 u 7 verżjonijiet), Ubuntu (14, 16 u 18 LTS), Debian 7.

Kien preżunt li ħafna mill-kontenituri OpenVZ kienu diġà qed jaħdmu xi tip ta 'LAMP, u xi wħud saħansitra kellhom xi softwer speċifiku ħafna. Ħafna drabi, dawn kienu konfigurazzjonijiet mal-ISPmanager, pannell tal-kontroll VestaCP (u ħafna drabi, mhux aġġornati għal snin). It-talbiet tagħhom għat-trasferiment għandhom jitqiesu wkoll.

Il-migrazzjoni titwettaq filwaqt li jiġi ppreservat l-indirizz IP tal-kontenitur trasferit; se nassumu li l-IP li kellu l-kontenitur jiġi ffrankat fuq il-VM u se jaħdem mingħajr problemi.

Qabel ma tittrasferixxi, ejja niżguraw li għandna kollox f'idejna:

  • Server OpenVZ, aċċess sħiħ għall-għeruq għall-magna ospitanti, kapaċità li twaqqaf/immonta/tibda/tħassar kontenituri
  • Server KVM, aċċess sħiħ għall-għeruq għall-magna ospitanti, b'dak kollu li jimplika. Huwa preżunt li kollox huwa diġà kkonfigurat u lest biex imur.

Ejja nibdew nittrasferixxu

Qabel ma nibdew it-trasferiment, ejja niddefinixxu termini li jgħinuk tevita l-konfużjoni:

KVM_NODE - Magna ospitanti KVM
VZ_NODE - Magna ospitanti OpenVZ
CTID - Kontenitur OpenVZ
VM - Server virtwali KVM

Tħejjija għall-migrazzjoni u ħolqien ta 'magni virtwali.

Pass 1

Peress li għandna bżonn nimxu l-kontenitur x'imkien, aħna noħolqu VM b'konfigurazzjoni simili għal KVM_NODE.
Importanti! Għandek bżonn toħloq VM fuq is-sistema operattiva li bħalissa qed taħdem fuq CTID. Pereżempju, jekk Ubuntu 14 huwa installat fuq is-CTID, allura Ubuntu 14 għandu jiġi installat fuq il-VM.Verżjonijiet minuri mhumiex importanti u d-diskrepanza tagħhom mhix daqshekk kritika, iżda verżjonijiet ewlenin għandhom ikunu l-istess.

Wara li noħolqu l-VM, aħna se naġġornaw il-pakketti fuq is-CTID u fuq il-VM (ma tridx tiġi konfuża mal-aġġornament tal-OS - aħna ma naġġornawhx, naġġornaw biss il-pakketti u, jekk tasal, il-verżjoni tal-OS fi ħdan il-prinċipali verżjoni).

Għal CentOS dan il-proċess jidher li ma jagħmilx ħsara:

# yum clean all
# yum update -y

U mhux inqas li ma jagħmilx ħsara għal Ubuntu u Debian:

# apt-get update
# apt-get upgrade

Pass 2

Installa fuq CTID, VZ_NODE и VM utilità rsync:

CentOS:

# yum install rsync -y

Debian, Ubuntu:

# apt-get install rsync -y

M'aħniex ninstallaw xi ħaġa oħra la hemm u lanqas hemm.

Pass 3

Nagħmlu waqfa CTID fuq VZ_NODE tim

vzctl stop CTID

Immuntar tal-immaġni CTID:

vzctl mount CTID

Mur fil-folder /vz/root/CTID u tesegwixxi

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

Taħt l-għerq, oħloq fajl /root/exclude.txt - se jkun fih lista ta’ eċċezzjonijiet li mhux se jaslu għas-server il-ġdid

/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

Aħna nikkonnettjaw ma ' KVM_NODE u tniedi tagħna VMsabiex taħdem u tkun aċċessibbli fuq in-netwerk.

Issa kollox lest għat-trasferiment. Mur!

Pass 4

Għadu taħt l-espliċitura, aħna jwettqu

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

Il-kmand rsync se jwettaq it-trasferiment, nittamaw li ċ-ċwievet huma ċari - it-trasferiment jitwettaq bil-preservazzjoni ta 'symlinks, drittijiet ta' aċċess, sidien u gruppi, u l-encryption hija diżattivata għal veloċità akbar (tista 'tuża xi cipher aktar mgħaġġel, iżda dan mhux daqshekk importanti għal dan il-kompitu), kif ukoll il-kompressjoni hija diżattivata.

Wara li tlesti rsync, oħroġ minn chroot (billi tagħfas ctrl + d) u eżegwixxi

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

Pass 5

Ejja nwettqu diversi passi li jgħinuna nniedu l-VM wara li nittrasferixxu minn OpenVZ.
Fuq servers ma Systemd ejja nwettqu kmand li jgħinna nilloggjaw f'console regolari, pereżempju, permezz ta' skrin ta' server VNC

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

Fuq servers CentOS 6 и CentOS 7 Kun żgur li tinstalla għadma ġdida:

yum install kernel-$(uname -r)

Is-server jista 'jitgħabba minnu, iżda wara t-trasferiment jista' jieqaf jaħdem jew jitħassar.

Fuq is-server CentOS 7 għandek bżonn tapplika soluzzjoni żgħira għal PolkitD, inkella s-server jikkraxxja għal dejjem:

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

Fuq is-servers kollha, jekk mod_fcgid għal Apache ġie installat, aħna se nwettqu soluzzjoni żgħira bid-drittijiet, inkella s-siti li jużaw mod_fcgid se jiġġarrfu bi żball 500:

chmod +s `which suexec` && apachectl restart

U l-aħħar ħaġa hija utli għad-distribuzzjonijiet ta 'Ubuntu u Debian. Dan l-OS jista 'jiġġarraf fi boot etern bi żball

looping malajr wisq. throttling eżekuzzjoni ftit

spjaċevoli, iżda faċilment iffissat, skond il-verżjoni OS.

Fuq Debian 9 it-tiswija tidher bħal din:

inwettqu

dbus-uuidgen

jekk ikollna żball

/usr/local/lib/libdbus-1.so.3: verżjoni `LIBDBUS_PRIVATE_1.10.8′ ma nstabitx

iċċekkja l-preżenza ta' 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

jekk kollox hu fl-ordni, nagħmluh

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

Jekk ma tgħinx, ipprova t-tieni għażla.

It-tieni soluzzjoni għall-problema bil throttling eżekuzzjoni ftit Adattat għal kważi d-distribuzzjonijiet kollha ta 'Ubuntu u Debian.

Aħna nwettqu

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

U għal Ubuntu 14, Debian 7 Barra minn hekk aħna nwettqu:

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

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

X’għamilna? Irrestawrajna messagebus, li kien nieqes biex iħaddem Debian/Ubuntu, u neħħejna modules_dep, li ġew minn OpenVZ u interferixxa mat-tagħbija ta 'ħafna moduli tal-kernel.

Pass 6

Aħna nibdew mill-ġdid il-VM, niċċekkjaw fil-VNC kif it-tagħbija qed timxi 'l quddiem u, idealment, kollox jitgħabba mingħajr problemi. Għalkemm huwa possibbli li jidhru xi problemi speċifiċi wara l-migrazzjoni, huma lil hinn mill-ambitu ta 'dan l-artikolu u se jiġu kkoreġuti hekk kif jinqalgħu.

Nispera li din l-informazzjoni tkun utli! 🙂

Sors: www.habr.com

Żid kumment