Cara nransfer wadhah OpenVZ 6 menyang server KVM tanpa ngelu

Sapa wae sing kudu nransfer wadhah OpenVZ menyang server kanthi virtualisasi KVM lengkap paling ora sepisan sajrone urip, nemoni sawetara masalah:

  • Umume informasi mung ketinggalan jaman lan cocog kanggo OS sing wis suwe ngliwati siklus EOL
  • Informasi sing beda-beda tansah diwenehake kanggo sistem operasi sing beda-beda, lan kemungkinan kesalahan nalika migrasi ora bakal dianggep
  • Kadhangkala sampeyan kudu ngatasi konfigurasi sing saben-saben ora pengin digarap sawise migrasi

Nalika sampeyan nransfer 1 server, sampeyan bisa tansah ndandani soko ing fly, nanging nalika nransfer kabeh kluster?

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

Program pendidikan cilik: apa OpenVZ lan apa KVM?

Kita ora bakal jero terminologi, nanging bakal ujar kanthi istilah umum:

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

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

Beda karo kapercayan populer yen ing antarane panyedhiya hosting OpenVZ bakal dadi oversold, nanging KVM ora bakal - untunge kanggo sing terakhir, KVM saiki oversold ora luwih ala tinimbang sedulure.

Apa sing bakal kita tindakake?

Minangka subyek tes kanggo transfer kasebut, kita kudu nggunakake kabeh alas sistem operasi sing kasedhiya ing OpenVZ: CentOS (versi 6 lan 7), Ubuntu (14, 16 lan 18 LTS), Debian 7.

Dianggep umume kontaner OpenVZ wis mbukak sawetara LAMP, lan sawetara uga duwe piranti lunak khusus. Paling asring, iki konfigurasi karo ISPmanager, panel kontrol VestaCP (lan paling asring, ora dianyari kanggo taun). Panjaluk transfer kasebut uga kudu digatekake.

Migrasi ditindakake nalika njaga alamat IP wadhah sing ditransfer; kita bakal nganggep manawa IP sing ana ing wadhah kasebut disimpen ing VM lan bakal bisa digunakake tanpa masalah.

Sadurunge nransfer, ayo priksa manawa kita duwe kabeh:

  • 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 gawe katut. Dianggep kabeh wis dikonfigurasi lan siap diluncurake.

Ayo dadi miwiti nransfer

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

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 kanggo KVM_NODE.
Penting! Sampeyan kudu nggawe VM ing sistem operasi sing lagi mlaku ing CTID. Contone, yen Ubuntu 14 diinstal ing CTID, banjur Ubuntu 14 kudu diinstal ing VM. Versi cilik ora penting lan bedane ora kritis, 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, kita mung nganyari paket lan, yen teka, versi OS ing utama. versi).

Kanggo CentOS proses iki katon ora mbebayani:

# yum clean all
# yum update -y

Lan ora kurang mbebayani kanggo Ubuntu lan Debian:

# apt-get update
# apt-get upgrade

langkah 2

Instal 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 kana utawa ana.

langkah 3

Kita mandheg CTID ing VZ_NODE tim

vzctl stop CTID

Pasang gambar CTID:

vzctl mount CTID

Pindhah menyang folder /vz/root/CTID lan nglakokakΓ©

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

Ing root, nggawe file /root/exclude.txt - bakal ngemot dhaptar pengecualian sing ora bakal entuk 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

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

Saiki kabeh wis siyap kanggo transfer. Tindak!

langkah 4

Isih ing mantra, kita nindakake

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

Prentah rsync bakal nindakake transfer kasebut, muga-muga tombol kasebut jelas - transfer ditindakake kanthi njaga symlink, hak akses, pamilik lan klompok, lan enkripsi dipateni kanthi cepet (sampeyan bisa nggunakake cipher sing luwih cepet, nanging iki ora dadi penting kanggo tugas iki), uga komprèsi dipatèni.

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

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

langkah 5

Ayo nindakake sawetara langkah sing bakal mbantu kita miwiti VM sawise transfer saka OpenVZ.
Ing server karo Systemd ayo nglakokake perintah sing bakal mbantu kita mlebu menyang konsol biasa, contone, liwat layar server VNC

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

Ing server CentOS 6 ΠΈ CentOS 7 Priksa manawa sampeyan nginstal kernel seger:

yum install kernel-$(uname -r)

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

Ing server CentOS 7 sampeyan kudu ngetrapake perbaikan cilik kanggo PolkitD, yen ora, server bakal nabrak ing salawas-lawase:

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 kanggo Apache diinstal, kita bakal nindakake perbaikan cilik kanthi hak, yen ora, situs sing nggunakake mod_fcgid bakal nabrak kanthi kesalahan 500:

chmod +s `which suexec` && apachectl restart

Lan bab pungkasan migunani kanggo distribusi Ubuntu lan Debian. OS iki bisa nabrak boot langgeng 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 ngarsane 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 supaya, kita nindakaken

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.

Solusi kapindho kanggo masalah karo eksekusi throttling sethitik Cocog kanggo meh kabeh distribusi Ubuntu lan Debian.

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 kita lakoni? Kita mbalekake messagebus, sing ilang kanggo mbukak Debian/Ubuntu, lan mbusak modules_dep, sing teka saka OpenVZ lan ngganggu ngisi akeh modul kernel.

langkah 6

Kita urip maneh VM, mriksa ing VNC carane loading wis progressing lan, saenipun, kabeh bakal mbukak tanpa masalah. Sanajan ana kemungkinan sawetara masalah tartamtu bakal katon sawise migrasi, nanging ora ana ing ruang lingkup artikel iki lan bakal didandani nalika muncul.

Mugi informasi iki migunani! πŸ™‚

Source: www.habr.com

Add a comment