தலைவலி இல்லாமல் OpenVZ 6 கொள்கலனை KVM சேவையகத்திற்கு மாற்றுவது எப்படி

தங்கள் வாழ்நாளில் ஒருமுறையாவது OpenVZ கொள்கலனை முழு KVM மெய்நிகராக்கம் கொண்ட சர்வருக்கு மாற்ற வேண்டிய எவரும் சில சிக்கல்களை எதிர்கொண்டனர்:

  • பெரும்பாலான தகவல்கள் காலாவதியானவை மற்றும் நீண்ட காலமாக EOL சுழற்சியைக் கடந்த OS களுக்குப் பொருத்தமானவை
  • வெவ்வேறு இயக்க முறைமைகளுக்கு வெவ்வேறு தகவல்கள் எப்போதும் வழங்கப்படுகின்றன, மேலும் இடம்பெயர்வின் போது ஏற்படக்கூடிய பிழைகள் ஒருபோதும் கருதப்படாது
  • சில நேரங்களில் நீங்கள் ஒவ்வொரு முறையும் இடம்பெயர்ந்த பிறகு வேலை செய்ய விரும்பாத உள்ளமைவுகளைச் சமாளிக்க வேண்டியிருக்கும்

நீங்கள் 1 சேவையகத்தை மாற்றும் போது, ​​நீங்கள் எப்பொழுதும் பறந்து செல்லும் போது ஏதாவது ஒன்றைச் சரிசெய்யலாம், ஆனால் முழு கிளஸ்டரையும் மாற்றும்போது?

இந்த கட்டுரையில், OpenVZ கொள்கலனை KVM க்கு எவ்வாறு சரியாக நகர்த்துவது மற்றும் அனைத்து சிக்கல்களுக்கும் விரைவான தீர்வைக் கூற முயற்சிப்பேன்.

ஒரு சிறிய கல்வித் திட்டம்: OpenVZ என்றால் என்ன மற்றும் KVM என்றால் என்ன?

நாங்கள் சொற்களில் ஆழமாக செல்ல மாட்டோம், ஆனால் பொதுவான சொற்களில் கூறுவோம்:

OpenVZ - இயக்க முறைமை மட்டத்தில் மெய்நிகராக்கம், நீங்கள் அதை மைக்ரோவேவில் கூட பயன்படுத்தலாம், ஏனெனில் ஹோஸ்ட் கணினியில் CPU வழிமுறைகள் மற்றும் மெய்நிகராக்க தொழில்நுட்பங்கள் தேவையில்லை.

KVM - முழு அளவிலான மெய்நிகராக்கம், CPU இன் அனைத்து ஆற்றலையும் பயன்படுத்தி, எதையும், எந்த வகையிலும், அதை நீளமாகவும் குறுக்காகவும் வெட்டி, மெய்நிகராக்கும் திறன் கொண்டது.

ஹோஸ்டிங் வழங்குநர்களிடையே OpenVZ அதிகமாக விற்கப்படும் என்ற பிரபலமான நம்பிக்கைக்கு மாறாக, KVM ஆகாது - அதிர்ஷ்டவசமாக பிந்தையவர்களுக்கு, KVM இப்போது அதன் சகோதரரை விட மோசமாக விற்கப்படவில்லை.

எதை எடுத்துச் செல்வோம்?

பரிமாற்றத்திற்கான சோதனைப் பாடங்களாக, OpenVZ: CentOS (6 மற்றும் 7 பதிப்புகள்), Ubuntu (14, 16 மற்றும் 18 LTS), Debian 7 இல் கிடைக்கும் இயக்க முறைமைகளின் முழு வனத்தையும் நாங்கள் பயன்படுத்த வேண்டியிருந்தது.

பெரும்பாலான OpenVZ கொள்கலன்கள் ஏற்கனவே சில வகையான LAMP ஐ இயக்கி வருவதாகவும், சில குறிப்பிட்ட மென்பொருட்களைக் கொண்டிருந்ததாகவும் கருதப்படுகிறது. பெரும்பாலும், இவை ISPmanager, VestaCP கட்டுப்பாட்டுப் பலகத்துடன் உள்ளமைவுகளாகும் (பெரும்பாலும், பல ஆண்டுகளாக புதுப்பிக்கப்படவில்லை). அவர்களின் இடமாற்ற கோரிக்கைகளும் கணக்கில் எடுத்துக்கொள்ளப்பட வேண்டும்.

மாற்றப்பட்ட கொள்கலனின் ஐபி முகவரியைப் பாதுகாக்கும் போது இடம்பெயர்வு மேற்கொள்ளப்படுகிறது; கொள்கலனில் இருந்த ஐபி VM இல் சேமிக்கப்பட்டுள்ளது மற்றும் சிக்கல்கள் இல்லாமல் வேலை செய்யும் என்று நாங்கள் கருதுவோம்.

மாற்றுவதற்கு முன், எங்களிடம் எல்லாவற்றையும் வைத்திருப்பதை உறுதி செய்வோம்:

  • OpenVZ சர்வர், ஹோஸ்ட் மெஷினுக்கான முழு ரூட் அணுகல், கொள்கலன்களை நிறுத்த/மவுன்ட்/ஸ்டார்ட்/நீக்கும் திறன்
  • கேவிஎம் சர்வர், ஹோஸ்ட் மெஷினுக்கான முழு ரூட் அணுகல், அது குறிக்கும் அனைத்தும். எல்லாம் ஏற்கனவே கட்டமைக்கப்பட்டுள்ளது மற்றும் செல்ல தயாராக உள்ளது என்று கருதப்படுகிறது.

இடமாற்றம் செய்ய ஆரம்பிக்கலாம்

பரிமாற்றத்தைத் தொடங்கும் முன், குழப்பத்தைத் தவிர்க்க உதவும் விதிமுறைகளை வரையறுப்போம்:

KVM_NODE - KVM ஹோஸ்ட் இயந்திரம்
VZ_NODE - OpenVZ ஹோஸ்ட் இயந்திரம்
சி.டி.ஐ.டி - OpenVZ கொள்கலன்
VM - கேவிஎம் மெய்நிகர் சேவையகம்

இடம்பெயர்வுக்குத் தயாராகிறது மற்றும் மெய்நிகர் இயந்திரங்களை உருவாக்குகிறது.

1 விலக

கொள்கலனை எங்காவது நகர்த்த வேண்டும் என்பதால், நாங்கள் உருவாக்குவோம் VM ஒத்த உள்ளமைவுடன் KVM_NODE.
முக்கியம்! தற்போது CTID இல் இயங்கும் இயங்குதளத்தில் VM ஐ உருவாக்க வேண்டும். எடுத்துக்காட்டாக, CTID இல் Ubuntu 14 நிறுவப்பட்டிருந்தால், Ubuntu 14 VM இல் நிறுவப்பட்டிருக்க வேண்டும். சிறிய பதிப்புகள் முக்கியமல்ல, அவற்றின் முரண்பாடுகள் அவ்வளவு முக்கியமானவை அல்ல, ஆனால் முக்கிய பதிப்புகள் ஒரே மாதிரியாக இருக்க வேண்டும்.

VM ஐ உருவாக்கிய பிறகு, CTID மற்றும் VM இல் உள்ள தொகுப்புகளை புதுப்பிப்போம் (OS ஐ புதுப்பிப்பதில் குழப்பமடைய வேண்டாம் - நாங்கள் அதை புதுப்பிக்கவில்லை, நாங்கள் தொகுப்புகளை மட்டுமே புதுப்பிப்போம், அது வந்தால், OS பதிப்பை பிரதானமாக மாற்றுவோம். பதிப்பு).

CentOS க்கு இந்த செயல்முறை பாதிப்பில்லாதது:

# yum clean all
# yum update -y

உபுண்டு மற்றும் டெபியனுக்கு குறைவான பாதிப்பில்லாதது:

# apt-get update
# apt-get upgrade

2 விலக

நிறுவவும் சி.டி.ஐ.டி, VZ_NODE и VM பயன்பாடு rsync:

CentOS:

# yum install rsync -y

டெபியன், உபுண்டு:

# apt-get install rsync -y

நாங்கள் அங்கு அல்லது அங்கு வேறு எதையும் நிறுவவில்லை.

3 விலக

நாங்கள் நிறுத்துகிறோம் சி.டி.ஐ.டி மீது VZ_NODE அணி

vzctl stop CTID

படத்தை ஏற்றுதல் சி.டி.ஐ.டி:

vzctl mount CTID

/vz/root/ கோப்புறைக்குச் செல்லவும்சி.டி.ஐ.டி மற்றும் செயல்படுத்தவும்

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

ரூட்டின் கீழ், ஒரு கோப்பை உருவாக்கவும் /root/exclude.txt - இது புதிய சேவையகத்தைப் பெறாத விதிவிலக்குகளின் பட்டியலைக் கொண்டிருக்கும்.

/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

இணைக்கவும் KVM_NODE மற்றும் எங்கள் துவக்கவும் VMஅதனால் அது வேலை செய்கிறது மற்றும் நெட்வொர்க்கில் அணுக முடியும்.

இப்போது எல்லாம் பரிமாற்றத்திற்கு தயாராக உள்ளது. போ!

4 விலக

இன்னும் மந்திரத்தின் கீழ், நாங்கள் செய்கிறோம்

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

rsync கட்டளை பரிமாற்றத்தைச் செய்யும், விசைகள் தெளிவாக இருக்கும் என்று நாங்கள் நம்புகிறோம் - சிம்லிங்க்குகள், அணுகல் உரிமைகள், உரிமையாளர்கள் மற்றும் குழுக்களைப் பாதுகாப்பதன் மூலம் பரிமாற்றம் மேற்கொள்ளப்படுகிறது, மேலும் அதிக வேகத்திற்கு குறியாக்கம் முடக்கப்பட்டுள்ளது (நீங்கள் சில வேகமான சைஃபர்களைப் பயன்படுத்தலாம், ஆனால் இந்த பணிக்கு இது அவ்வளவு முக்கியமல்ல) , அத்துடன் சுருக்கம் முடக்கப்பட்டுள்ளது.

rsync முடிந்ததும், chroot இலிருந்து வெளியேறவும் (ctrl+d ஐ அழுத்தி) இயக்கவும்

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

5 விலக

OpenVZ இலிருந்து மாற்றிய பின் VM ஐத் தொடங்க உதவும் பல படிகளைச் செய்வோம்.
உடன் சேவையகங்களில் systemd ஒரு வழக்கமான கன்சோலில் உள்நுழைய உதவும் கட்டளையை இயக்குவோம், எடுத்துக்காட்டாக, VNC சர்வர் திரை மூலம்

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

சேவையகங்களில் CentOS 6 и CentOS 7 புதிய கர்னலை நிறுவ மறக்காதீர்கள்:

yum install kernel-$(uname -r)

அதிலிருந்து சேவையகத்தை ஏற்றலாம், ஆனால் பரிமாற்றத்திற்குப் பிறகு அது வேலை செய்வதை நிறுத்தலாம் அல்லது நீக்கப்படலாம்.

சர்வரில் CentOS 7 நீங்கள் PolkitD க்கு ஒரு சிறிய தீர்வைப் பயன்படுத்த வேண்டும், இல்லையெனில் சேவையகம் என்றென்றும் செயலிழக்கும்:

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

அனைத்து சேவையகங்களிலும், Apache க்கான mod_fcgid நிறுவப்பட்டிருந்தால், உரிமைகளுடன் ஒரு சிறிய திருத்தத்தைச் செய்வோம், இல்லையெனில் mod_fcgid ஐப் பயன்படுத்தும் தளங்கள் பிழை 500 உடன் செயலிழக்கும்:

chmod +s `which suexec` && apachectl restart

கடைசி விஷயம் உபுண்டு மற்றும் டெபியன் விநியோகங்களுக்கு பயனுள்ளதாக இருக்கும். இந்த OS பிழையுடன் நித்திய துவக்கத்தில் செயலிழக்கக்கூடும்

மிக வேகமாக சுழல்கிறது. throttling execution சிறிது

OS பதிப்பைப் பொறுத்து விரும்பத்தகாத, ஆனால் எளிதாக சரி செய்யப்பட்டது.

மீது டெபியன் 9 சரிசெய்தல் இதுபோல் தெரிகிறது:

நாங்கள் மேற்கொள்கிறோம்

dbus-uuidgen

நமக்கு பிழை ஏற்பட்டால்

/usr/local/lib/libdbus-1.so.3: பதிப்பு `LIBDBUS_PRIVATE_1.10.8′ கிடைக்கவில்லை

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

எல்லாம் ஒழுங்காக இருந்தால், நாங்கள் அதை செய்கிறோம்

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

இது உதவவில்லை என்றால், இரண்டாவது விருப்பத்தை முயற்சிக்கவும்.

பிரச்சனைக்கு இரண்டாவது தீர்வு throttling execution சிறிது கிட்டத்தட்ட அனைத்து உபுண்டு மற்றும் டெபியன் விநியோகங்களுக்கும் ஏற்றது.

நாங்கள் மேற்கொள்கிறோம்

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

மற்றும் உபுண்டு 9, டெபியன் 7 கூடுதலாக, நாங்கள் செய்கிறோம்:

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

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

நாம் என்ன செய்தோம்? டெபியன்/உபுண்டுவை இயக்குவதற்கு காணாமல் போன மெசேஜ்பஸ்ஸை மீட்டெடுத்தோம், மேலும் ஓபன்விஸிலிருந்து வந்த modules_dep ஐ அகற்றி, பல கர்னல் தொகுதிகளை ஏற்றுவதில் குறுக்கீடு செய்தோம்.

6 விலக

நாங்கள் VM ஐ மறுதொடக்கம் செய்கிறோம், ஏற்றுதல் எவ்வாறு முன்னேறுகிறது என்பதை VNC இல் சரிபார்த்து, எல்லாமே பிரச்சனையின்றி ஏற்றப்படும். இடம்பெயர்வுக்குப் பிறகு சில குறிப்பிட்ட சிக்கல்கள் தோன்றுவது சாத்தியம் என்றாலும், அவை இந்தக் கட்டுரையின் எல்லைக்கு அப்பாற்பட்டவை, அவை எழும்போது சரி செய்யப்படும்.

இந்த தகவல் பயனுள்ளதாக இருக்கும் என்று நம்புகிறேன்! 🙂

ஆதாரம்: www.habr.com

கருத்தைச் சேர்