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.
Kuntrarju għat-twemmin popolari, fl-ambjent fornituri ta' hosting OpenVZ huwa mibjugħ iżżejjed, iżda KVM le. Fortunatament għal dan tal-aħħar, KVM issa huwa mibjugħ iżżejjed daqs ħuh.
X'se nġorru?
Il-foresta kollha ta' sistemi operattivi disponibbli fuq OpenVZ kellha tintuża bħala suġġetti ta' test għat-trasferiment: CentOS (verżjonijiet 6 u 7), 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 bil-preservazzjoni indirizzi IP Għal kontenitur portabbli, se nassumu li l-indirizz IP tal-kontenitur jinżamm 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! Jeħtieġ li toħloq VM fuq l-istess sistema operattiva li bħalissa qed taħdem fuq is-CTID. Pereżempju, jekk is-CTID qed jaħdem Ubuntu 14, allura trid tinstallah fuq VM ukoll Ubuntu 14. Il-verżjonijiet minuri mhumiex importanti u d-diskrepanza tagħhom mhijiex daqshekk kritika, iżda l-verżjonijiet ewlenin iridu jkunu 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 -yU mhux inqas ta’ ħsara għal Ubuntu, Debian:
# apt-get update
# apt-get upgradePass 2
Installa fuq CTID, VZ_NODE и VM utilità rsync:
CentOS:
# yum install rsync -yDebian, Ubuntu:
# apt-get install rsync -yM'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 CTIDImmuntar tal-immaġni CTID:
vzctl mount CTIDMur 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-ens3Aħ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 CTIDPass 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/getty@tty2.service /etc/systemd/system/getty.target.wants/getty@tty1.serviceFuq 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 restartU fl-aħħar nett, se jkun utli għal Ubuntu, Debian distribuzzjonijiet. Din l-OS tista' tiġġarraf f'boot permanenti b'ż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-uuidgenjekk 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.16jekk 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.3Jekk 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 kulħadd Ubuntu и Debian distribuzzjonijiet.
Aħna nwettqu
bash -x /var/lib/dpkg/info/dbus.postinst configureU 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 l-messagebus, li kien nieqes għall-istartjar. Debian/Ubuntu u neħħa modules_dep, li kien ġej minn OpenVZ u ma ħalliex ħafna moduli tal-kernel jitgħabbew.
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
