Bii o ṣe le gbe eiyan OpenVZ 6 si olupin KVM laisi orififo

Ẹnikẹni ti o nilo lati gbe eiyan OpenVZ kan si olupin kan pẹlu agbara agbara KVM ni kikun ni o kere ju lẹẹkan ninu igbesi aye wọn ti ni awọn iṣoro diẹ:

  • Pupọ julọ alaye naa jẹ igba atijọ ati pe o wulo fun awọn OS ti o ti kọja akoko EOL gigun
  • O yatọ si alaye ti wa ni nigbagbogbo pese fun orisirisi awọn ọna šiše, ati awọn ti ṣee ṣe aṣiṣe nigba ijira ti wa ni ko kà
  • Nigba miiran o ni lati koju pẹlu awọn atunto ti gbogbo bayi ati lẹhinna ko fẹ lati ṣiṣẹ lẹhin ijira

Nigbati o ba gbe olupin 1 lọ, o le ṣatunṣe ohunkan nigbagbogbo lori fifo, ṣugbọn nigbati o ba gbe gbogbo iṣupọ kan?

Ninu nkan yii Emi yoo gbiyanju lati sọ fun ọ bi o ṣe le jade ni deede ohun elo OpenVZ kan si KVM pẹlu akoko idinku kekere ati ojutu iyara si gbogbo awọn iṣoro.

Eto ẹkọ kekere kan: kini OpenVZ ati kini KVM?

A kii yoo jinlẹ si imọ-ọrọ, ṣugbọn a yoo sọ ni awọn ofin gbogbogbo:

OpenVZ - agbara agbara ni ipele eto iṣẹ, o le paapaa gbe lọ sori makirowefu kan, nitori ko si iwulo fun awọn ilana Sipiyu ati awọn imọ-ẹrọ agbara lori ẹrọ agbalejo.

KVM - agbara agbara ni kikun, lilo gbogbo agbara ti Sipiyu ati ti o lagbara lati ṣe afihan ohunkohun, ni ọna eyikeyi, gige ni gigun ati wiwọn.

Ní ìyàtọ̀ sí ìgbàgbọ́ gbogbogbòò, nínú àyíká awọn olupese alejo gbigbalejo Wọ́n ti ta OpenVZ jù, àmọ́ KVM kò ta. Ó ṣe tán fún èyí tó gbẹ̀yìn, KVM ti tà jù báyìí gẹ́gẹ́ bí àbúrò rẹ̀.

Kini a yoo gbe lọ?

В качестве подопытных для переноса пришлось использовать весь лес операционных систем, которые доступны на OpenVZ: CentOS (6 и 7 версии), Ubuntu (14, 16 и 18 LTS), Debian 7.

O ti ro pe pupọ julọ awọn apoti OpenVZ ti nṣiṣẹ tẹlẹ diẹ ninu iru LAMP, ati diẹ ninu paapaa ni sọfitiwia kan pato. Nigbagbogbo, iwọnyi jẹ awọn atunto pẹlu ISPmanager, igbimọ iṣakoso VestaCP (ati nigbagbogbo julọ, kii ṣe imudojuiwọn fun awọn ọdun). Awọn ibeere gbigbe wọn gbọdọ tun ṣe akiyesi.

Iṣilọ ni a ṣe pẹlu aabo Awọn adirẹsi IP Fún àpótí tó ṣeé gbé kiri, a máa rò pé àdírẹ́sì IP àpótí náà wà lórí VM, yóò sì ṣiṣẹ́ láìsí ìṣòro.

Ṣaaju gbigbe, jẹ ki a rii daju pe a ni ohun gbogbo ni ọwọ:

  • Olupin OpenVZ, iwọle kikun root si ẹrọ agbalejo, agbara lati da duro / gbe / bẹrẹ / paarẹ awọn apoti
  • Olupin KVM, iwọle ni kikun si ẹrọ agbalejo, pẹlu gbogbo eyiti o tumọ si. O ti ro pe ohun gbogbo ti wa ni tunto ati setan lati lọ.

Jẹ ki a bẹrẹ gbigbe

Ṣaaju ki a to bẹrẹ gbigbe, jẹ ki a ṣalaye awọn ofin ti yoo ṣe iranlọwọ fun ọ lati yago fun iporuru:

KVM_NODE - KVM ogun ẹrọ
VZ_NODE - OpenVZ ẹrọ ogun
CTID - OpenVZ eiyan
VM - KVM foju olupin

Ngbaradi fun ijira ati ṣiṣẹda foju ero.

Igbesẹ 1

Niwon a nilo lati gbe eiyan si ibikan, a yoo ṣẹda VM pẹlu kan iru iṣeto ni lati KVM_NODE.
Pataki! Создавать VM нужно именно на той операционной системе, которая сейчас крутится на CTID. Например, если на CTID установлена Ubuntu 14, то и на VM нужно ставить Ubuntu 14. Минорные версии не важны и их несовпадение не столь критично, а вот мажорные — должны быть одинаковыми.

Lẹhin ṣiṣẹda VM, a yoo ṣe imudojuiwọn awọn idii lori CTID ati lori VM (kii ṣe idamu pẹlu imudojuiwọn OS - a ko ṣe imudojuiwọn rẹ, a ṣe imudojuiwọn awọn idii nikan ati, ti o ba de, ẹya OS laarin akọkọ version).

fun CentOS этот процесс выглядит безобидно:

# yum clean all
# yum update -y

И не менее безобидно для Ubuntu, Debian:

# apt-get update
# apt-get upgrade

Igbesẹ 2

Fi sori ẹrọ lori CTID, VZ_NODE и VM ohun elo rsync:

CentOS:

# yum install rsync -y

Debian, Ubuntu:

# apt-get install rsync -y

A ko fi ohunkohun miiran boya nibẹ tabi nibẹ.

Igbesẹ 3

A ṣe idaduro CTID on VZ_NODE egbe

vzctl stop CTID

Iṣagbesori aworan CTID:

vzctl mount CTID

Lọ si folda /vz/root/CTID ati ṣiṣe

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

Labẹ gbongbo, ṣẹda faili kan /root/exclude.txt - yoo ni atokọ ti awọn imukuro ti kii yoo gba si olupin tuntun

/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 sopọ mọ KVM_NODE ki o si lọlẹ wa VMki o ṣiṣẹ ati ki o wa lori nẹtiwọki.

Bayi ohun gbogbo ti šetan fun gbigbe. Lọ!

Igbesẹ 4

Si tun labẹ awọn lọkọọkan, a ṣe

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

Aṣẹ rsync yoo ṣe gbigbe, a nireti pe awọn bọtini naa han gbangba - gbigbe naa ni a ṣe pẹlu titọju awọn aami, awọn ẹtọ iwọle, awọn oniwun ati awọn ẹgbẹ, ati fifi ẹnọ kọ nkan jẹ alaabo fun iyara nla (o le lo diẹ ninu awọn cipher yiyara, ṣugbọn eyi kii ṣe pataki pupọ fun iṣẹ-ṣiṣe yii), bakanna bi funmorawon jẹ alaabo.

Lẹhin ti pari rsync, jade kuro ni chroot (nipa titẹ ctrl+d) ki o si ṣiṣẹ

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

Igbesẹ 5

Jẹ ki a ṣe awọn igbesẹ pupọ ti yoo ṣe iranlọwọ fun wa lati ṣe ifilọlẹ VM lẹhin gbigbe lati OpenVZ.
Lori awọn olupin pẹlu Eto eto jẹ ki a ṣe aṣẹ kan ti yoo ṣe iranlọwọ fun wa wọle si console deede, fun apẹẹrẹ, nipasẹ iboju olupin VNC kan

mv /etc/systemd/system/getty.target.wants/getty@tty2.service /etc/systemd/system/getty.target.wants/getty@tty1.service

Lori awọn olupin CentOS 6 и CentOS 7 Rii daju lati fi ekuro titun kan sori ẹrọ:

yum install kernel-$(uname -r)

Olupin naa le jẹ fifuye lati ọdọ rẹ, ṣugbọn lẹhin gbigbe o le da iṣẹ duro tabi paarẹ.

Lori olupin CentOS 7 o nilo lati lo atunṣe kekere kan fun PolkitD, bibẹẹkọ olupin yoo jamba lailai:

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

Lori gbogbo awọn olupin, ti mod_fcgid fun Apache ti fi sii, a yoo ṣe atunṣe kekere kan pẹlu awọn ẹtọ, bibẹẹkọ awọn aaye lilo mod_fcgid yoo jamba pẹlu aṣiṣe 500:

chmod +s `which suexec` && apachectl restart

И последнее, пригодится для Ubuntu, Debian дистрибутивов. Эта ОС может упасть в вечный бут с ошибкой

looping ju sare. throttling ipaniyan kekere kan

unpleasant, ṣugbọn awọn iṣọrọ ti o wa titi, da lori awọn OS version.

Ni Debian 9 atunṣe naa dabi eyi:

a gbe jade

dbus-uuidgen

ti a ba gba aṣiṣe

/usr/local/lib/libdbus-1.so.3: ẹya `LIBDBUS_PRIVATE_1.10.8′ ko ri

ṣayẹwo niwaju 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

ti ohun gbogbo ba wa ni ibere, a ṣe

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

Ti ko ba ṣe iranlọwọ, gbiyanju aṣayan keji.

Awọn keji ojutu si isoro pẹlu throttling ipaniyan kekere kan подходит практически для всех Ubuntu и Debian дистрибутивов.

A gbe jade

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

Ati fun Ubuntu 14, Debian 7 Ni afikun, a ṣe:

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 и мешал загрузки многих модулей ядра.

Igbesẹ 6

A tun atunbere VM, ṣayẹwo ni VNC bi ikojọpọ ti nlọsiwaju ati pe, ni pipe, ohun gbogbo yoo gbe laisi awọn iṣoro. Bó tilẹ̀ jẹ́ pé ó ṣeé ṣe kó jẹ́ pé àwọn ìṣòro kan pàtó máa fara hàn lẹ́yìn tí wọ́n ṣí kiri, wọ́n ré kọjá ààlà àpilẹ̀kọ yìí, a óò sì tún wọn ṣe bí wọ́n bá ti dìde.

Mo nireti pe alaye yii wulo! 🙂

orisun: www.habr.com

Ra alejo gbigba igbẹkẹle fun awọn aaye pẹlu aabo DDoS, awọn olupin VPS VDS 🔥 Ra gbigbalejo oju opo wẹẹbu ti o gbẹkẹle pẹlu aabo DDoS, awọn olupin VPS VDS | ProHoster