Bisan kinsa nga nanginahanglan nga ibalhin ang usa ka sudlanan sa OpenVZ sa usa ka server nga adunay hingpit nga virtualization sa KVM labing menos kausa sa ilang kinabuhi nakasugat og pipila ka mga problema:
- Kadaghanan sa impormasyon kay karaan na ug may kalabotan sa mga OS nga dugay nang milabay sa EOL cycle
- Ang lainlaing impormasyon kanunay nga gihatag alang sa lainlaing mga operating system, ug ang posible nga mga sayup sa panahon sa paglalin wala gikonsiderar
- Usahay kinahanglan nimo nga atubangon ang mga pagsiguro nga matag karon ug unya dili gusto nga magtrabaho pagkahuman sa paglalin
Kung gibalhin nimo ang 1 server, mahimo nimo kanunay nga ayohon ang usa ka butang sa langaw, apan kung gibalhin nimo ang tibuuk nga kumpol?
Niini nga artikulo sulayan nako nga isulti kanimo kung giunsa ang husto nga pagbalhin sa usa ka sudlanan sa OpenVZ sa KVM nga adunay gamay nga downtime ug dali nga solusyon sa tanan nga mga problema.
Usa ka gamay nga programa sa edukasyon: unsa ang OpenVZ ug unsa ang KVM?
Dili kita moadto sa lawom nga terminolohiya, apan isulti sa kinatibuk-ang termino:
OpenVZ — virtualization sa lebel sa operating system, mahimo pa nimo kini i-deploy sa usa ka microwave, tungod kay wala’y kinahanglan alang sa mga panudlo sa CPU ug mga teknolohiya sa virtualization sa host machine.
KVM - bug-os nga virtualization, gamit ang tanan nga gahum sa CPU ug makahimo sa pag-virtualize sa bisan unsang butang, bisan unsang paagi, pagputol kini sa gitas-on ug crosswise.
Sukwahi sa gituohan sa kadaghanan, sa palibot mga tighatag og hosting Ang OpenVZ sobra na ang nabaligya, apan ang KVM dili. Maayo na lang kay ang KVM karon sobra na ang nabaligya sama sa iyang igsoon.
Unsa ang atong dad-on?
Ang tibuok kalasangan sa mga operating system nga anaa sa OpenVZ kinahanglan gamiton isip mga subject sa pagsulay alang sa pagbalhin: CentOS (6 ug 7 nga mga bersyon), Ubuntu (14, 16 ug 18 LTS), Debian 7.
Gituohan nga kadaghanan sa mga sudlanan sa OpenVZ nagdagan na sa usa ka matang sa LAMP, ug ang uban adunay pipila ka piho nga software. Kasagaran, kini ang mga pag-configure sa ISPmanager, VestaCP control panel (ug kasagaran, wala gi-update sa daghang tuig). Ang ilang mga hangyo sa pagbalhin kinahanglan usab nga tagdon.
Ang migrasyon gihimo uban ang pagpreserbar Mga IP address Para sa usa ka portable container, atong hunahunaon nga ang IP address sa container gitipigan sa VM ug mogana nga walay problema.
Sa dili pa ibalhin, atong siguroon nga anaa na ang tanan:
- OpenVZ server, bug-os nga root access sa host machine, abilidad sa paghunong/mount/start/delete containers
- KVM server, bug-os nga root access sa host machine, uban sa tanan nga gipasabot niini. Gituohan nga ang tanan na-configure na ug andam na nga moadto.
Magsugod ta sa pagbalhin
Sa dili pa kita magsugod sa pagbalhin, atong ipasabot ang mga termino nga makatabang kanimo sa paglikay sa kalibog:
KVM_NODE - KVM host machine
VZ_NODE - OpenVZ host machine
CTID - OpenVZ nga sudlanan
VM - KVM virtual server
Pag-andam alang sa paglalin ug paghimo og mga virtual machine.
lakang 1
Tungod kay kinahanglan namong ibalhin ang sudlanan sa usa ka dapit, maghimo kami VM nga adunay susama nga configuration sa KVM_NODE.
Importante! Kinahanglan kang maghimo og VM sa samang operating system nga kasamtangang nagdagan sa CTID. Pananglitan, kon ang CTID nagdagan Ubuntu 14, nan kinahanglan nimo nga i-install kini sa VM usab Ubuntu 14. Ang gagmay nga mga bersyon dili importante ug ang ilang kalainan dili kaayo kritikal, apan ang dagkong mga bersyon kinahanglan nga parehas.
Pagkahuman sa paghimo sa VM, among i-update ang mga pakete sa CTID ug sa VM (dili malibog sa pag-update sa OS - dili namon kini gi-update, gi-update ra namon ang mga pakete ug, kung kini moabut, ang bersyon sa OS sa sulod sa panguna bersyon).
Sa CentOS Kini nga proseso morag dili makadaot:
# yum clean all
# yum update -yUg dili usab kini makadaot alang sa Ubuntu, Debian:
# apt-get update
# apt-get upgradelakang 2
Pag-instalar sa CTID, VZ_NODE и VM utility rsync:
CentOS:
# yum install rsync -yDebian, Ubuntu:
# apt-get install rsync -yWala kami mag-install ug bisan unsa pa didto o didto.
lakang 3
Naghunong kami CTID sa VZ_NODE team
vzctl stop CTIDPag-mount sa imahe CTID:
vzctl mount CTIDAdto sa /vz/root/ folderCTID ug ipatuman
mount --bind /dev dev && mount --bind /sys sys && mount --bind /proc proc && chroot .Ubos sa gamut, paghimo og file /root/exclude.txt - kini adunay lista sa mga eksepsiyon nga dili makuha sa bag-ong server
/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-ens3Sumpaysumpaya sa KVM_NODE ug ilunsad ang atong VMaron kini molihok ug ma-access sa network.
Karon ang tanan andam na alang sa pagbalhin. Lakaw!
lakang 4
Ubos gihapon sa spell, nag-perform mi
rsync --exclude-from="/root/exclude.txt" --numeric-ids -avpogtStlHz --progress -e "ssh -T -o Compression=no -x" / root@KVM_NODE:/Ang rsync nga sugo mohimo sa pagbalhin, nanghinaut kami nga ang mga yawe klaro - ang pagbalhin gihimo uban ang pagpreserbar sa mga symlink, mga katungod sa pag-access, mga tag-iya ug mga grupo, ug ang pag-encrypt gibabagan alang sa mas paspas nga tulin (mahimo nimong gamiton ang mas paspas nga cipher, apan kini dili kaayo importante alang niini nga buluhaton), ingon man ang compression gipugngan.
Human makompleto ang rsync, exit gikan sa chroot (pinaagi sa pagpindot sa ctrl+d) ug i-execute
umount dev && umount proc && umount sys && cd .. && vzctl umount CTIDlakang 5
Himoon nato ang pipila ka mga lakang nga makatabang kanato sa paglansad sa VM human sa pagbalhin gikan sa OpenVZ.
Sa mga server nga adunay Systemd atong ipatuman ang usa ka sugo nga makatabang kanato sa pag-log in sa usa ka regular nga console, pananglitan, pinaagi sa VNC server screen
mv /etc/systemd/system/getty.target.wants/getty@tty2.service /etc/systemd/system/getty.target.wants/getty@tty1.serviceSa mga server CentOS 6 и CentOS 7 Siguroha ang pag-instalar og bag-ong kernel:
yum install kernel-$(uname -r)Ang server mahimong ma-load gikan niini, apan pagkahuman sa pagbalhin mahimo’g kini mohunong sa pagtrabaho o matangtang.
Sa server CentOS 7 kinahanglan nimo nga mag-aplay og gamay nga pag-ayo alang sa PolkitD, kung dili ang server mag-crash hangtod sa hangtod:
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; }Sa tanan nga mga server, kung ang mod_fcgid para sa Apache na-install, maghimo kami usa ka gamay nga pag-ayo nga adunay mga katungod, kung dili ang mga site nga naggamit sa mod_fcgid ma-crash sa sayup 500:
chmod +s `which suexec` && apachectl restartUg sa katapusan, kini mahimong mapuslanon alang sa Ubuntu, Debian mga distribusyon. Kini nga OS mahimong mag-crash sa usa ka permanente nga boot nga adunay usa ka error
paspas kaayo ang pag-loop. throttling execution gamay
dili maayo, apan dali nga naayo, depende sa bersyon sa OS.
sa Debian 9 ang pag-ayo ingon niini:
atong ipatuman
dbus-uuidgenkon kita makakuha og sayop
/usr/local/lib/libdbus-1.so.3: bersyon `LIBDBUS_PRIVATE_1.10.8′ wala makit-an
susiha ang presensya sa 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.16kung maayo ang tanan, buhaton namo kini
cd /lib/x86_64-linux-gnu
rm -rf libdbus-1.so.3
ln -s libdbus-1.so.3.14.15 libdbus-1.so.3Kung dili kini makatabang, sulayi ang ikaduha nga kapilian.
Ang ikaduha nga solusyon sa problema sa throttling execution gamay angay alang sa halos tanan Ubuntu и Debian mga distribusyon.
Atong ipatuman
bash -x /var/lib/dpkg/info/dbus.postinst configureUg alang Ubuntu 14, Debian 7 Dugang pa, among gihimo:
adduser --system --home /nonexistent --no-create-home --disabled-password --group messagebus
rm -rf /etc/init.d/modules_dep.sh Unsa may among gibuhat? Among gipahiuli ang messagebus, nga nawala para sa pagsugod. Debian/Ubuntu ug gitangtang ang modules_dep, nga gikan sa OpenVZ ug nakapugong sa pagkarga sa daghang kernel modules.
lakang 6
Gi-reboot namon ang VM, gisusi sa VNC kung giunsa ang pag-uswag sa pag-load ug, labing maayo, ang tanan mag-load nga wala’y mga problema. Bisan kung posible nga ang pipila ka mga piho nga mga problema motungha pagkahuman sa paglalin, kini wala pa sa sulud sa kini nga artikulo ug matul-id kung kini motungha.
Nanghinaut ko nga kini nga impormasyon mapuslanon! 🙂
Source: www.habr.com
