Mae unrhyw un sydd wedi gorfod trosglwyddo cynhwysydd OpenVZ i weinydd gyda rhithwiroli KVM llawn o leiaf unwaith yn eu bywyd wedi cael rhai problemau:
- Mae'r rhan fwyaf o'r wybodaeth yn hen ffasiwn ac roedd yn berthnasol i OSes a oedd wedi pasio'r cylch EOL ers tro
- Darperir gwybodaeth wahanol bob amser ar gyfer systemau gweithredu gwahanol, ac nid yw gwallau posibl yn ystod mudo byth yn cael eu hystyried
- Weithiau mae'n rhaid i chi ddelio â chyfluniadau nad ydynt bob hyn a hyn am weithio ar ôl mudo
Pan fyddwch chi'n trosglwyddo 1 gweinydd, gallwch chi bob amser drwsio rhywbeth ar y hedfan, ond pan fyddwch chi'n trosglwyddo clwstwr cyfan?
Yn yr erthygl hon byddaf yn ceisio dweud wrthych sut i fudo cynhwysydd OpenVZ i KVM yn gywir heb fawr o amser segur ac ateb cyflym i bob problem.
Rhaglen addysgol fach: beth yw OpenVZ a beth yw KVM?
Ni fyddwn yn mynd yn ddwfn i derminoleg, ond byddwn yn dweud yn gyffredinol:
OpenVZ - rhithwiroli ar lefel y system weithredu, gallwch hyd yn oed ei ddefnyddio ar ficrodon, gan nad oes angen cyfarwyddiadau CPU a thechnolegau rhithwiroli ar y peiriant gwesteiwr.
KVM - rhithwiroli cyflawn, gan ddefnyddio holl bŵer y CPU ac sy'n gallu rhithwiroli unrhyw beth, unrhyw ffordd, gan ei dorri'n hyd ac yn groesffordd.
Yn groes i'r gred boblogaidd, yn yr amgylchedd darparwyr cynnal Mae OpenVZ wedi'i orwerthu, ond nid yw KVM. Yn ffodus i'r olaf, mae KVM bellach wedi'i orwerthu cystal â'i frawd.
Beth fyddwn ni'n ei gario drosodd?
В качестве подопытных для переноса пришлось использовать весь лес операционных систем, которые доступны на OpenVZ: CentOS (6 и 7 версии), Ubuntu (14, 16 и 18 LTS), Debian 7.
Tybiwyd bod y rhan fwyaf o'r cynwysyddion OpenVZ eisoes yn rhedeg rhyw fath o LAMP, ac roedd gan rai feddalwedd penodol iawn hyd yn oed. Yn fwyaf aml, roedd y rhain yn gyfluniadau gyda'r ISPmanager, panel rheoli VestaCP (ac yn fwyaf aml, heb ei ddiweddaru ers blynyddoedd). Rhaid ystyried eu ceisiadau trosglwyddo hefyd.
Cynhelir mudo gyda chadwraeth Cyfeiriadau IP Ar gyfer cynhwysydd cludadwy, byddwn yn tybio bod cyfeiriad IP y cynhwysydd yn cael ei gadw ar y VM a bydd yn gweithio heb broblemau.
Cyn trosglwyddo, gadewch i ni wneud yn siŵr bod gennym bopeth wrth law:
- Gweinydd OpenVZ, mynediad gwraidd llawn i'r peiriant gwesteiwr, y gallu i stopio / gosod / cychwyn / dileu cynwysyddion
- Gweinydd KVM, mynediad gwraidd llawn i'r peiriant gwesteiwr, gyda phopeth y mae'n ei awgrymu. Tybir bod popeth eisoes wedi'i ffurfweddu ac yn barod i fynd.
Gadewch i ni ddechrau trosglwyddo
Cyn i ni ddechrau trosglwyddo, gadewch i ni ddiffinio termau a fydd yn eich helpu i osgoi dryswch:
KVM_NODE - peiriant cynnal KVM
VZ_NODE - Peiriant gwesteiwr OpenVZ
CTID - OpenVZ cynhwysydd
VM - gweinydd rhithwir KVM
Paratoi ar gyfer mudo a chreu peiriannau rhithwir.
Cam 1
Gan fod angen i ni symud y cynhwysydd i rywle, byddwn yn creu VM gyda chyfluniad tebyg i KVM_NODE.
Pwysig! Создавать VM нужно именно на той операционной системе, которая сейчас крутится на CTID. Например, если на CTID установлена Ubuntu 14, то и на VM нужно ставить Ubuntu 14. Минорные версии не важны и их несовпадение не столь критично, а вот мажорные — должны быть одинаковыми.
Ar ôl creu'r VM, byddwn yn diweddaru'r pecynnau ar y CTID ac ar y VM (na ddylid ei gymysgu â diweddaru'r OS - nid ydym yn ei ddiweddaru, dim ond y pecynnau rydyn ni'n eu diweddaru ac, os yw'n cyrraedd, y fersiwn OS o fewn y prif fersiwn).
I CentOS этот процесс выглядит безобидно:
# yum clean all
# yum update -yИ не менее безобидно для Ubuntu, Debian:
# apt-get update
# apt-get upgradeCam 2
Gosod ar CTID, VZ_NODE и VM cyfleustodau rsync:
CentOS:
# yum install rsync -yDebian, Ubuntu:
# apt-get install rsync -yNid ydym yn gosod unrhyw beth arall yn y fan a'r lle.
Cam 3
Rydyn ni'n stopio CTID ar VZ_NODE tîm
vzctl stop CTIDMowntio'r ddelwedd CTID:
vzctl mount CTIDEwch i'r ffolder /vz/root/CTID a gweithredu
mount --bind /dev dev && mount --bind /sys sys && mount --bind /proc proc && chroot .O dan y gwraidd, creu ffeil /root/exclude.txt - bydd yn cynnwys rhestr o eithriadau na fydd yn cyrraedd y gweinydd newydd
/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-ens3Cysylltwch â KVM_NODE a lansio ein VMfel ei fod yn gweithio ac yn hygyrch dros y rhwydwaith.
Nawr mae popeth yn barod i'w drosglwyddo. Ewch!
Cam 4
Dal o dan y swyn, rydym yn perfformio
rsync --exclude-from="/root/exclude.txt" --numeric-ids -avpogtStlHz --progress -e "ssh -T -o Compression=no -x" / root@KVM_NODE:/Bydd y gorchymyn rsync yn cyflawni'r trosglwyddiad, rydym yn gobeithio bod yr allweddi'n glir - mae'r trosglwyddiad yn cael ei wneud gyda chadwraeth symlinks, hawliau mynediad, perchnogion a grwpiau, ac mae amgryptio wedi'i analluogi ar gyfer mwy o gyflymder (gallwch ddefnyddio rhai seiffr cyflymach, ond nid yw hyn mor bwysig ar gyfer y dasg hon) , yn ogystal â cywasgu yn anabl.
Ar ôl cwblhau rsync, gadewch o chroot (trwy wasgu ctrl + d) a gweithredu
umount dev && umount proc && umount sys && cd .. && vzctl umount CTIDCam 5
Gadewch i ni berfformio sawl cam a fydd yn ein helpu i lansio'r VM ar ôl trosglwyddo o OpenVZ.
Ar weinyddion gyda Systemd gadewch i ni weithredu gorchymyn a fydd yn ein helpu i fewngofnodi i gonsol arferol, er enghraifft, trwy sgrin gweinydd VNC
mv /etc/systemd/system/getty.target.wants/getty@tty2.service /etc/systemd/system/getty.target.wants/getty@tty1.serviceAr weinyddion CentOS 6 и CentOS 7 Byddwch yn siwr i osod cnewyllyn ffres:
yum install kernel-$(uname -r)Gellir llwytho'r gweinydd ohono, ond ar ôl y trosglwyddiad gall roi'r gorau i weithio neu gael ei ddileu.
Ar y gweinydd CentOS 7 mae angen i chi gymhwyso atgyweiriad bach ar gyfer PolkitD, fel arall bydd y gweinydd yn chwalu am byth:
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; }Ar bob gweinydd, os gosodwyd mod_fcgid ar gyfer Apache, byddwn yn perfformio atgyweiriad bach gyda hawliau, fel arall bydd gwefannau sy'n defnyddio mod_fcgid yn chwalu gyda gwall 500:
chmod +s `which suexec` && apachectl restartИ последнее, пригодится для Ubuntu, Debian дистрибутивов. Эта ОС может упасть в вечный бут с ошибкой
dolennu yn rhy gyflym. throtling dienyddio ychydig
annymunol, ond yn hawdd sefydlog, yn dibynnu ar y fersiwn OS.
Ar Debian 9 mae'r atgyweiriad yn edrych fel hyn:
rydym yn cyflawni
dbus-uuidgenos cawn gamgymeriad
/usr/local/lib/libdbus-1.so.3: fersiwn `LIBDBUS_PRIVATE_1.10.8′ heb ei ganfod
gwirio presenoldeb 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.16os yw popeth mewn trefn, rydyn ni'n ei wneud
cd /lib/x86_64-linux-gnu
rm -rf libdbus-1.so.3
ln -s libdbus-1.so.3.14.15 libdbus-1.so.3Os nad yw'n helpu, rhowch gynnig ar yr ail opsiwn.
Yr ail ateb i'r broblem gyda throtling dienyddio ychydig подходит практически для всех Ubuntu и Debian дистрибутивов.
Rydym yn cyflawni
bash -x /var/lib/dpkg/info/dbus.postinst configureAc ar gyfer Ubuntu 14, Debian 7 Yn ogystal, rydym yn perfformio:
adduser --system --home /nonexistent --no-create-home --disabled-password --group messagebus
rm -rf /etc/init.d/modules_dep.sh Что мы сделали? Восстановили messagebus, которого не хватало для запуска Debian/Ubuntu и удалили modules_dep, который пришел от OpenVZ и мешал загрузки многих модулей ядра.
Cam 6
Rydym yn ailgychwyn y VM, yn gwirio yn VNC sut mae'r llwytho yn dod yn ei flaen ac, yn ddelfrydol, bydd popeth yn llwytho heb broblemau. Er ei bod yn bosibl y bydd rhai problemau penodol yn ymddangos ar ôl yr ymfudiad, maent y tu hwnt i gwmpas yr erthygl hon a byddant yn cael eu cywiro wrth iddynt godi.
Rwy'n gobeithio bod y wybodaeth hon yn ddefnyddiol! 🙂
Ffynhonnell: hab.com
