Cara nransfer wadhah OpenVZ 6 menyang server KVM tanpa ngelu

Sapa wae sing kudu mindhah wadhah OpenVZ menyang server kanthi virtualisasi KVM lengkap wis nemoni sawetara masalah:

  • Umume informasi mung ketinggalan jaman lan cocog kanggo OS sing wis suwe ngliwati siklus EOL
  • OS sing beda-beda tansah nyedhiyakake informasi sing beda-beda lan ora nate nimbang kemungkinan kesalahan migrasi
  • Kadhangkala sampeyan kudu ngatasi konfigurasi sing ora pengin digunakake sawise migrasi.

Nalika migrasi 1 server, sampeyan bisa tansah ndandani soko ing fly, nanging apa yen migrasi kabeh kluster?

Ing artikel iki aku bakal nyoba kanggo pitutur marang kowe carane mlaku migrasi wadhah OpenVZ kanggo KVM karo downtime minimal lan solusi cepet kanggo kabeh masalah.

Sepisanan cepet: apa OpenVZ lan apa KVM?

Ayo ora menyang terminologi, nanging mung ngomong ing istilah umum:

OpenVZ - virtualisasi ing tingkat sistem operasi, bisa disebarake malah ing open gelombang mikro, wiwit ana ora perlu kanggo instruksi CPU lan teknologi virtualization ing mesin inang.

KVM - virtualisasi lengkap, nggunakake kekuwatan lengkap CPU lan bisa nggawe virtualisasi apa wae, kanthi cara apa wae, nglereni dawa lan silang.

Beda karo kapercayan umum, ing lingkungan panyedhiya hosting OpenVZ wis oversold, nanging KVM ora. Untunge kanggo sing terakhir, KVM saiki wis oversold kaya sedulure.

Apa sing arep kita transfer?

Kabeh sistem operasi sing kasedhiya ing OpenVZ kudu digunakake minangka subjek uji coba kanggo transfer kasebut: CentOS (6 lan 7 versi), Ubuntu (14, 16 lan 18 LTS), Debian 7.

Dianggep umume kontaner OpenVZ wis duwe LAMP sing mlaku, lan sawetara uga duwe piranti lunak khusus. Paling asring, iki padha konfigurasi karo panel kontrol ISPmanager, VestaCP (lan paling asring, ora dianyari kanggo taun). Sampeyan perlu kanggo njupuk menyang akun panjalukan kanggo transfer.

Migrasi ditindakake kanthi pelestarian alamat IP Kanggo wadhah portabel, kita bakal nganggep yen alamat IP wadhah kasebut disimpen ing VM lan bakal bisa digunakake tanpa masalah.

Sadurunge nransfer, ayo priksa manawa kabeh wis ana:

  • Server OpenVZ, akses root lengkap menyang mesin inang, kemampuan kanggo mungkasi / gunung / miwiti / mbusak wadhah
  • server KVM, akses ROOT lengkap kanggo mesin inang, karo kabeh sing entails. Dianggep kabeh wis dikonfigurasi lan siap digunakake.

Ayo dadi miwiti transfer

Sadurunge miwiti transfer, ayo nemtokake istilah sing bakal mbantu supaya ora kebingungan:

KVM_NODE - mesin host KVM
VZ_NODE - mesin inang OpenVZ
CTID - Wadhah OpenVZ
VM - server virtual KVM

Nyiapake migrasi lan nggawe mesin virtual.

langkah 1

Awit kita kudu mindhah wadhah nang endi wae, kita bakal nggawe VM karo konfigurasi padha ing KVM_NODE.
Penting! Sampeyan kudu nggawe VM ing sistem operasi sing padha sing lagi mlaku ing CTID. Contone, yen CTID lagi mlaku Ubuntu 14, mula sampeyan kudu nginstal ing VM uga Ubuntu 14. Versi cilik ora penting lan bedane ora pati penting, nanging versi utama kudu padha.

Sawise nggawe VM, kita bakal nganyari paket ing CTID lan ing VM (ora bakal bingung karo nganyari OS - kita ora nganyari, mung nganyari paket lan, yen perlu, versi OS ing versi utama).

Kanggo CentOS Proses iki katon ora mbebayani:

# yum clean all
# yum update -y

Lan ora kurang mbebayani kanggo Ubuntu, Debian:

# apt-get update
# apt-get upgrade

langkah 2

Kita nginstal ing CTID, VZ_NODE и VM sarana rsync:

CentOS:

# yum install rsync -y

Debian, Ubuntu:

# apt-get install rsync -y

Kita ora nginstal apa-apa ing kene utawa ing kana.

langkah 3

We sing nggawe mandeg CTID ing VZ_NODE tim

vzctl stop CTID

Pasang gambar CTID:

vzctl mount CTID

Pindhah menyang folder /vz/root/CTID lan kita nindakake

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

Ing chroot, nggawe file /root/exclude.txt — bakal ngemot dhaptar pangecualian sing ora bakal kalebu ing server anyar

/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

Ayo nyambung menyang KVM_NODE lan miwiti kita VMsupaya bisa dianggo lan bisa diakses liwat jaringan.

Saiki kabeh wis siyap kanggo transfer. Ayo budal!

langkah 4

Isih ing pengaruh, kita nindakake

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

Printah rsync bakal nindakake transfer, kita ngarep-arep sing tombol cetha - transfer wis digawa metu karo pengawetan saka symlinks, hak akses, nduweni lan klompok, lan enkripsi dipatèni kanggo kacepetan luwih (bisa nggunakake sawetara cipher luwih cepet, nanging iki ora dadi penting ing framework saka tugas iki), uga komprèsi dipatèni.

Sawise rsync rampung, metu saka chroot (kanthi mencet ctrl + d) lan eksekusi

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

langkah 5

Ayo nindakake sawetara tumindak sing bakal mbantu kita miwiti VM sawise migrasi saka OpenVZ.
Ing server karo Systemd ayo mbukak printah sing bakal bantuan kita mlebu menyang console biasa, ngomong, liwat layar server VNC

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

Ing server CentOS 6 и CentOS 7 manawa kanggo nginstal kernel seger:

yum install kernel-$(uname -r)

Server bisa diundhuh saka iku, nanging sawise transfer bisa mandheg utawa dibusak.

Ing server CentOS 7 sampeyan kudu aplikasi fix cilik kanggo PolkitD, yen server bakal tiba menyang boot langgeng:

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

Ing kabeh server, yen mod_fcgid diinstal kanggo Apache, kita bakal nindakake perbaikan cilik kanthi hak, yen situs sing nggunakake mod_fcgid bakal nabrak kanthi kesalahan 500:

chmod +s `which suexec` && apachectl restart

Lan pungkasanipun, badhe migunani kangge Ubuntu, Debian distribusi. OS iki bisa nabrak boot permanen kanthi kesalahan

looping cepet banget. eksekusi throttling sethitik

ora nyenengake, nanging gampang diatasi, gumantung saka versi OS.

Ing Debian 9 fix katon kaya iki:

kita nindakake

dbus-uuidgen

yen kita entuk kesalahan

/usr/local/lib/libdbus-1.so.3: versi `LIBDBUS_PRIVATE_1.10.8′ ora ditemokake

mriksa 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

yen kabeh iku ok, kita nglakokaké

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

Yen ora mbantu, coba pilihan kapindho.

Pilihan kapindho kanggo ngatasi masalah karo eksekusi throttling sethitik cocok kanggo meh kabeh wong Ubuntu и Debian distribusi.

Kita nindakake

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

Lan kanggo Ubuntu 14, Debian 7 Kajaba iku, kita nindakake:

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

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

Apa sing wis ditindakake? Kita mulihake messagebus, sing ilang nalika miwiti maneh. Debian/Ubuntu lan mbusak modules_dep, sing asale saka OpenVZ lan nyegah akeh modul kernel supaya ora dimuat.

langkah 6

Urip maneh VM, priksa VNC carane loading lan saenipun - kabeh bakal mbukak tanpa masalah. Senajan, mbok menawa, sawetara masalah tartamtu bakal katon sawise migrasi - nanging padha ngluwihi orane katrangan saka artikel iki lan tetep nalika padha katon.

Mugi informasi iki bakal migunani! 🙂

Source: www.habr.com

Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS 🔥 Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster