Tha duilgheadasan air a bhith aig neach sam bith a dh’ fheumadh inneal OpenVZ a ghluasad gu frithealaiche le làn-shealladh KVM co-dhiù aon uair nam beatha:
- Tha a’ mhòr-chuid den fhiosrachadh dìreach seann-fhasanta agus bha e buntainneach dha OSes a bha air a dhol seachad air cearcall EOL o chionn fhada
- Tha fiosrachadh eadar-dhealaichte an-còmhnaidh air a thoirt seachad airson diofar shiostaman obrachaidh, agus cha tèid beachdachadh air mearachdan a dh’ fhaodadh a bhith ann rè imrich
- Aig amannan feumaidh tu dèiligeadh ri rèiteachaidhean nach eil a-nis agus an uairsin ag iarraidh a bhith ag obair às deidh imrich
Nuair a ghluaiseas tu frithealaiche 1, faodaidh tu an-còmhnaidh rudeigin a chàradh air an itealan, ach nuair a ghluaiseas tu brabhsair slàn?
San artaigil seo feuchaidh mi ri innse dhut mar as urrainn dhut inneal OpenVZ a ghluasad gu KVM gu ceart le glè bheag de ùine downt agus fuasgladh sgiobalta air a h-uile duilgheadas.
Prògram foghlaim beag: dè a th ’ann an OpenVZ agus dè a th’ ann an KVM?
Cha tèid sinn gu domhainn a-steach do bhriathrachas, ach canaidh sinn san fharsaingeachd:
OpenVZ - virtualization aig ìre an t-siostaim obrachaidh, faodaidh tu eadhon a chuir a-steach air microwave, leis nach eil feum air stiùireadh CPU agus teicneòlasan virtualization air an inneal aoigheachd.
KVM - virtualization làn-chuimseach, a’ cleachdadh cumhachd an CPU gu lèir agus comasach air rud sam bith a dhèanamh mas fhìor, dòigh sam bith, ga ghearradh fad is farsaing.
An aghaidh creideas mòr-chòrdte, san àrainneachd solaraichean aoigheachd Tha OpenVZ air a reic ro mhòr, ach chan eil KVM. Gu fortanach don fhear mu dheireadh, tha KVM a-nis air a reic ro mhòr dìreach cho math ri a bhràthair.
Dè a bheir sinn thairis?
В качестве подопытных для переноса пришлось использовать весь лес операционных систем, которые доступны на OpenVZ: CentOS (6 и 7 версии), Ubuntu (14, 16 и 18 LTS), Debian 7.
Bhathar a 'gabhail ris gu robh a' mhòr-chuid de na soithichean OpenVZ mu thràth a 'ruith seòrsa de LAMP, agus bha eadhon bathar-bog sònraichte aig cuid. Mar as trice, b 'e rèiteachadh a bh' annta leis an ISPmanager, pannal smachd VestaCP (agus mar as trice, gun ùrachadh airson bliadhnaichean). Feumar aire a thoirt do na h-iarrtasan gluasaid aca cuideachd.
Tha imrich air a dhèanamh le glèidhteachas Seòlaidhean IP Airson soitheach so-ghiùlain, gabhaidh sinn ris gu bheil seòladh IP an t-soithich air a chumail air an VM agus gun obraich e gun duilgheadasan.
Mus gluais sinn, dèan cinnteach gu bheil a h-uile càil againn ri làimh:
- Frithealaiche OpenVZ, ruigsinneachd làn freumh air an inneal aoigheachd, comas stad / cur suas / tòiseachadh / cuir às do shoithichean
- Frithealaiche KVM, ruigsinneachd làn freumh air an inneal aoigheachd, leis a h-uile càil a tha e a’ ciallachadh. Thathas den bheachd gu bheil a h-uile dad air a rèiteachadh mu thràth agus deiseil airson a dhol.
Feuch an tòisich sinn air gluasad
Mus tòisich sinn air a’ ghluasad, mìnichidh sinn teirmean a chuidicheas tu gus troimh-chèile a sheachnadh:
KVM_NODE - inneal aoigheachd KVM
VZ_NODE - Inneal aoigheachd OpenVZ
CTID - OpenVZ container
VM - frithealaiche brìgheil KVM
Ag ullachadh airson imrich agus a 'cruthachadh innealan mas-fhìor.
ceum 1
Leis gu feum sinn an soitheach a ghluasad an àiteigin, cruthaichidh sinn VM le rèiteachadh coltach ris KVM_NODE.
Cudromach! Создавать VM нужно именно на той операционной системе, которая сейчас крутится на CTID. Например, если на CTID установлена Ubuntu 14, то и на VM нужно ставить Ubuntu 14. Минорные версии не важны и их несовпадение не столь критично, а вот мажорные — должны быть одинаковыми.
Às deidh dhuinn an VM a chruthachadh, bheir sinn ùrachadh air na pacaidean air an CTID agus air an VM (gun a bhith troimh-chèile le bhith ag ùrachadh an OS - cha bhith sinn ga ùrachadh, cha bhith sinn ag ùrachadh ach na pacaidean agus, ma ruigeas e, an dreach OS taobh a-staigh a’ phrìomh dreach).
airson CentOS этот процесс выглядит безобидно:
# yum clean all
# yum update -yИ не менее безобидно для Ubuntu, Debian:
# apt-get update
# apt-get upgradeceum 2
Stàlaich air CTID, VZ_NODE и VM goireasachd rsync:
CentOS:
# yum install rsync -yDebian, Ubuntu:
# apt-get install rsync -yChan eil sinn a 'stàladh rud sam bith eile an sin no an sin.
ceum 3
Bidh sinn a 'dèanamh stad CTID air VZ_NODE sgioba
vzctl stop CTIDA 'stàladh an ìomhaigh CTID:
vzctl mount CTIDRach don phasgan /vz/root/CTID agus a chur an gnìomh
mount --bind /dev dev && mount --bind /sys sys && mount --bind /proc proc && chroot .Fon fhreumh, cruthaich faidhle /root/exclude.txt - bidh liosta ann de dh'eisgeachdan nach fhaigh chun an fhrithealaiche ùr
/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-ens3Ceangail ri KVM_NODE agus cuir air bhog ar VMgus am bi e ag obair agus gu bheil e ruigsinneach thairis air an lìonra.
A-nis tha a h-uile dad deiseil airson gluasad. Rach!
ceum 4
Fhathast fo gheasaibh, bidh sinn a 'coileanadh
rsync --exclude-from="/root/exclude.txt" --numeric-ids -avpogtStlHz --progress -e "ssh -T -o Compression=no -x" / root@KVM_NODE:/Nì an àithne rsync an gluasad, tha sinn an dòchas gu bheil na h-iuchraichean soilleir - thèid an gluasad a dhèanamh le bhith a’ gleidheadh symlinks, còraichean-slighe, sealbhadairean agus buidhnean, agus tha crioptachadh à comas airson astar nas luaithe (dh’ fhaodadh tu cipher nas luaithe a chleachdadh, ach chan eil seo cho cudromach airson na h-obrach seo), a bharrachd air teannachadh ciorramach.
Às deidh dhut rsync a chrìochnachadh, fàg bho chroot (le putadh ctrl + d) agus cuir an gnìomh
umount dev && umount proc && umount sys && cd .. && vzctl umount CTIDceum 5
Nach dèan sinn grunn cheumannan a chuidicheas sinn a 'cur air bhog an VM an dèidh gluasad bho OpenVZ.
Air frithealaichean le Siostam leig dhuinn òrdugh a chuir an gnìomh a chuidicheas sinn gus logadh a-steach gu consol àbhaisteach, mar eisimpleir, tro scrion frithealaiche VNC
mv /etc/systemd/system/getty.target.wants/getty@tty2.service /etc/systemd/system/getty.target.wants/getty@tty1.serviceAir frithealaichean CentOS 6 и CentOS 7 Dèan cinnteach gun stàlaich thu kernel ùr:
yum install kernel-$(uname -r)Faodar am frithealaiche a luchdachadh bhuaithe, ach às deidh an gluasad faodaidh e stad a bhith ag obair no a dhubhadh às.
Air frithealaiche CentOS 7 feumaidh tu fuasgladh beag a chuir an sàs airson PolkitD, air neo tuitidh am frithealaiche gu bràth:
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; }Air a h-uile frithealaiche, ma chaidh mod_fcgid airson Apache a chuir a-steach, nì sinn fuasgladh beag le còraichean, air neo ma thuislich làraichean a chleachdas mod_fcgid le mearachd 500:
chmod +s `which suexec` && apachectl restartИ последнее, пригодится для Ubuntu, Debian дистрибутивов. Эта ОС может упасть в вечный бут с ошибкой
a’ lùbadh ro luath. cur gu bàs beagan
mì-thlachdmhor, ach furasta a shuidheachadh, a rèir an dreach OS.
air a ' Debian 9 tha an rèiteachadh a’ coimhead mar seo:
tha sinn a' coileanadh
dbus-uuidgenma gheibh sinn mearachd
/usr/local/lib/libdbus-1.so.3: dreach `LIBDBUS_PRIVATE_1.10.8′ cha deach a lorg
thoir sùil air làthaireachd 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.16ma tha a h-uile càil ann an òrdugh, bidh sinn ga dhèanamh
cd /lib/x86_64-linux-gnu
rm -rf libdbus-1.so.3
ln -s libdbus-1.so.3.14.15 libdbus-1.so.3Mura cuidich e, feuch an dàrna roghainn.
Tha an dàrna fuasgladh air an duilgheadas le cur gu bàs beagan подходит практически для всех Ubuntu и Debian дистрибутивов.
Bidh sinn a 'coileanadh
bash -x /var/lib/dpkg/info/dbus.postinst configureAgus airson Ubuntu 14, Debian 7 A bharrachd air an sin, bidh sinn a’ coileanadh:
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 и мешал загрузки многих модулей ядра.
ceum 6
Bidh sinn ag ath-thòiseachadh an VM, thoir sùil air VNC mar a tha an luchdachadh a’ dol air adhart agus, na b’ fheàrr, thèid a h-uile càil a luchdachadh gun duilgheadas. Ged a tha e comasach gun nochd cuid de dhuilgheadasan sònraichte às deidh an imrich, tha iad taobh a-muigh raon an artaigil seo agus thèid an ceartachadh mar a thig iad am bàrr.
Tha mi an dòchas gu bheil am fiosrachadh seo feumail! 🙂
Source: www.habr.com
