Hvernig á að flytja OpenVZ 6 gám yfir á KVM miðlara án höfuðverks

Allir sem hafa þurft að flytja OpenVZ gám yfir á netþjón með fullri KVM sýndarvæðingu að minnsta kosti einu sinni á ævinni hefur lent í nokkrum vandamálum:

  • Flestar upplýsingarnar eru einfaldlega úreltar og áttu við um stýrikerfi sem höfðu lengi staðist EOL hringrásina
  • Mismunandi upplýsingar eru alltaf gefnar fyrir mismunandi stýrikerfi og hugsanlegar villur við flutning eru aldrei teknar til greina
  • Stundum þarftu að takast á við stillingar sem annað slagið vilja ekki virka eftir flutning

Þegar þú flytur 1 server geturðu alltaf lagað eitthvað á flugu, en þegar þú flytur heilan klasa?

Í þessari grein mun ég reyna að segja þér hvernig á að flytja OpenVZ ílát rétt yfir í KVM með lágmarks niður í miðbæ og skjót lausn á öllum vandamálum.

Lítið fræðsluforrit: hvað er OpenVZ og hvað er KVM?

Við munum ekki fara djúpt í hugtök, en munum segja almennt:

OpenVZ — sýndarvæðing á stýrikerfisstigi, þú getur jafnvel sett hana á örbylgjuofn, þar sem engin þörf er á örgjörvaleiðbeiningum og sýndarvæðingartækni á hýsingarvélinni.

KVM - fullgild sýndarvæðing, sem notar allan kraft örgjörvans og fær um að virkja hvað sem er, hvernig sem er, klippa það langsum og þversum.

Öfugt við almenna trú að meðal hýsingaraðila muni OpenVZ verða ofselt, en KVM mun ekki - sem betur fer fyrir hið síðarnefnda er KVM nú ekki verra en bróðir þess.

Hvað munum við bera yfir?

Sem tilraunamenn fyrir flutninginn þurftum við að nota allan skóginn af stýrikerfum sem eru fáanleg á OpenVZ: CentOS (6 og 7 útgáfur), Ubuntu (14, 16 og 18 LTS), Debian 7.

Gert var ráð fyrir að flestir OpenVZ gámana væru nú þegar í gangi einhvers konar LAMPA og sumir voru jafnvel með mjög sérstakan hugbúnað. Oftast voru þetta stillingar með ISPmanager, VestaCP stjórnborði (og oftast ekki uppfært í mörg ár). Einnig þarf að taka tillit til flutningsbeiðna þeirra.

Flutningur fer fram á meðan IP-tölu yfirfærða gámsins varðveitt; við gerum ráð fyrir að IP-talan sem gámurinn hafði sé vistuð á VM og virki án vandræða.

Áður en þú flytur, skulum við ganga úr skugga um að við höfum allt við höndina:

  • OpenVZ netþjónn, fullur rótaraðgangur að hýsingarvélinni, getu til að stöðva/tengja/ræsa/eyða gámum
  • KVM þjónn, fullur rótaraðgangur að hýsingarvélinni, með öllu sem það gefur til kynna. Gert er ráð fyrir að allt sé þegar stillt og tilbúið til notkunar.

Byrjum að flytja

Áður en við byrjum flutninginn skulum við skilgreina hugtök sem hjálpa þér að forðast rugling:

KVM_NODE - KVM gestgjafi vél
VZ_NODE - OpenVZ hýsingarvél
CTID - OpenVZ gámur
VM - KVM sýndarþjónn

Að undirbúa flutning og búa til sýndarvélar.

Skref 1

Þar sem við þurfum að flytja ílátið eitthvert, munum við búa til VM með svipaða uppsetningu og KVM_NODE.
Mikilvægt! Þú þarft að búa til VM á stýrikerfinu sem er í gangi á CTID. Til dæmis, ef Ubuntu 14 er sett upp á CTID, þá verður Ubuntu 14 að vera sett upp á VM. Minni útgáfur eru ekki mikilvægar og misræmi þeirra er ekki svo mikilvægt, en helstu útgáfur ættu að vera þær sömu.

Eftir að VM er búið til munum við uppfæra pakkana á CTID og á VM (ekki að rugla saman við uppfærslu stýrikerfisins - við uppfærum það ekki, við uppfærum aðeins pakkana og, ef það kemur, stýrikerfisútgáfan innan aðal útgáfa).

Fyrir CentOS lítur þetta ferli skaðlaust út:

# yum clean all
# yum update -y

Og ekki síður skaðlaust fyrir Ubuntu og Debian:

# apt-get update
# apt-get upgrade

Skref 2

Settu upp á CTID, VZ_NODE и VM gagnsemi rsync:

CentOS:

# yum install rsync -y

Debian, Ubuntu:

# apt-get install rsync -y

Við erum ekki að setja neitt annað upp hvorki þar né þar.

Skref 3

Við stoppum CTID á VZ_NODE teymið

vzctl stop CTID

Að setja myndina upp CTID:

vzctl mount CTID

Farðu í /vz/root/ möppunaCTID og framkvæma

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

Undir rótinni skaltu búa til skrá /root/exclude.txt - hún mun innihalda lista yfir undantekningar sem munu ekki komast á nýja netþjóninn

/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

Við tengjumst KVM_NODE og ræstu okkar VMþannig að það virki og sé aðgengilegt yfir netið.

Nú er allt tilbúið til flutnings. Farðu!

Skref 4

Enn á töfum, við framkvæmum

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

rsync skipunin mun framkvæma flutninginn, við vonum að lyklarnir séu skýrir - flutningurinn fer fram með varðveislu tákntengla, aðgangsréttinda, eigenda og hópa og dulkóðun er óvirk til að auka hraða (þú gætir notað hraðari dulmál, en þetta er ekki svo mikilvægt fyrir þetta verkefni), auk þess sem þjöppun er óvirk.

Eftir að hafa lokið rsync skaltu hætta úr chroot (með því að ýta á ctrl+d) og keyra

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

Skref 5

Við skulum framkvæma nokkur skref sem munu hjálpa okkur að ræsa VM eftir flutning frá OpenVZ.
Á netþjónum með Systemd við skulum framkvæma skipun sem mun hjálpa okkur að skrá okkur inn á venjulega leikjatölvu, til dæmis í gegnum VNC netþjónsskjá

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

Á netþjónum CentOS 6 и CentOS 7 Vertu viss um að setja upp ferskan kjarna:

yum install kernel-$(uname -r)

Hægt er að hlaða þjóninum af honum, en eftir flutninginn gæti hann hætt að virka eða verið eytt.

Á server CentOS 7 þú þarft að setja smá lagfæringu fyrir PolkitD, annars mun þjónninn hrynja að eilífu:

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

Á öllum netþjónum, ef mod_fcgid fyrir Apache var sett upp, munum við framkvæma smá lagfæringu með réttindum, annars munu síður sem nota mod_fcgid hrynja með villu 500:

chmod +s `which suexec` && apachectl restart

Og það síðasta er gagnlegt fyrir Ubuntu og Debian dreifingar. Þetta stýrikerfi gæti hrunið í eilíft stígvél með villu

lykkja of hratt. inngjöf framkvæmd smá

óþægilegt, en auðvelt að laga, fer eftir stýrikerfisútgáfunni.

Á Debian 9 lagfæringin lítur svona út:

við framkvæmum

dbus-uuidgen

ef við fáum villu

/usr/local/lib/libdbus-1.so.3: útgáfa `LIBDBUS_PRIVATE_1.10.8′ fannst ekki

athugaðu tilvist 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

ef allt er í lagi þá gerum við það

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

Ef það hjálpar ekki skaltu prófa seinni valkostinn.

Önnur lausnin á vandamálinu með inngjöf framkvæmd smá Hentar fyrir næstum allar Ubuntu og Debian dreifingar.

Við framkvæmum

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

Og fyrir ubuntu 14, Debian 7 Að auki framkvæmum við:

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

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

Hvað höfum við gert? Við endurheimtum messagebus, sem vantaði til að keyra Debian/Ubuntu, og fjarlægðum modules_dep, sem kom frá OpenVZ og truflaði hleðslu margra kjarnaeininga.

Skref 6

Við endurræsum VM, athugum í VNC hvernig hleðslan gengur og helst mun allt hlaðast án vandræða. Þó að það sé mögulegt að einhver sérstök vandamál komi upp eftir flutninginn eru þau utan gildissviðs þessarar greinar og verða leiðrétt þegar þau koma upp.

Ég vona að þessar upplýsingar séu gagnlegar! 🙂

Heimild: www.habr.com

Bæta við athugasemd