የOpenVZ 6 ኮንቴይነር ወደ KVM አገልጋይ እንዴት ያለ ራስ ምታት ማስተላለፍ እንደሚቻል

የOpenVZ መያዣን በህይወቱ ቢያንስ አንድ ጊዜ ሙሉ የKVM ቨርቹዋል ወደሆነ አገልጋይ ማስተላለፍ የፈለገ ማንኛውም ሰው አንዳንድ ችግሮች አጋጥሞታል፡

  • አብዛኛው መረጃ በቀላሉ ጊዜ ያለፈበት እና የEOL ዑደትን ለረጅም ጊዜ ላለፉ OSes ጠቃሚ ነው።
  • ለተለያዩ ኦፕሬቲንግ ሲስተሞች የተለያዩ መረጃዎች ሁልጊዜ ይሰጣሉ፣ እና በስደት ጊዜ ሊፈጠሩ የሚችሉ ስህተቶች በጭራሽ አይታሰቡም።
  • አንዳንድ ጊዜ ከስደት በኋላ መስራት የማይፈልጉትን አወቃቀሮችን ማስተናገድ አለቦት

1 አገልጋይ ስታስተላልፍ ሁል ጊዜ በበረራ ላይ የሆነ ነገር ማስተካከል ትችላለህ ነገር ግን ሙሉ ዘለላ ስታስተላልፍ?

በዚህ ጽሑፍ ውስጥ የ OpenVZ መያዣን ወደ KVM በትንሽ ጊዜ እና ለችግሮች ፈጣን መፍትሄ እንዴት በትክክል ማዛወር እንደሚቻል ልነግርዎ እሞክራለሁ ።

አነስተኛ የትምህርት ፕሮግራም-OpenVZ ምንድን ነው እና KVM ምንድን ነው?

ወደ ቃላቶች ጠልቀን አንገባም፣ ነገር ግን በጥቅሉ እንናገራለን፡-

OpenVZ - በስርዓተ ክወናው ደረጃ ላይ ያለው ቨርችዋል, በማይክሮዌቭ ውስጥ እንኳን ማሰማራት ይችላሉ, ምክንያቱም በአስተናጋጅ ማሽን ላይ የሲፒዩ መመሪያዎች እና ምናባዊ ቴክኖሎጂዎች ስለሌለ.

KVM - ሙሉ ቨርቹዋል፣ ሁሉንም የሲፒዩ ሃይል በመጠቀም እና ማንኛውንም ነገር ቨርቹዋል ማድረግ የሚችል፣ በማንኛውም መንገድ፣ ርዝመቱን እና አቋራጩን መቁረጥ።

ከታዋቂ እምነት በተቃራኒ OpenVZ አቅራቢዎች መካከል ከመጠን በላይ ይሸጣሉ ፣ ግን KVM አይሆንም - እንደ እድል ሆኖ ፣ ለኋለኛው ፣ KVM አሁን ከወንድሙ የከፋ አይደለም ።

ምን እንሸከማለን?

የዝውውር ፈተናዎች እንደመሆናችን መጠን በ OpenVZ፡ CentOS (6 እና 7 ስሪቶች)፣ በኡቡንቱ (14፣ 16 እና 18 LTS)፣ በዴቢያን 7 የሚገኙትን የስርዓተ ክወናዎች ደን በሙሉ መጠቀም ነበረብን።

አብዛኞቹ የOpenVZ ኮንቴይነሮች አንድ ዓይነት LAMP እያሄዱ እንደነበሩ ይታሰብ ነበር፣ እና አንዳንዶቹ ደግሞ በጣም የተለየ ሶፍትዌር ነበራቸው። ብዙ ጊዜ፣ እነዚህ ከአይኤስፒአናጀር፣ ከ VestaCP የቁጥጥር ፓነል (እና ብዙ ጊዜ፣ ለዓመታት ያልዘመነ) ውቅሮች ነበሩ። የዝውውር ጥያቄዎቻቸውም ግምት ውስጥ መግባት አለባቸው።

ፍልሰት የሚካሄደው የተላለፈውን ኮንቴይነር አይፒ አድራሻ በመጠበቅ ነው፡ ኮንቴይነሩ የነበረው አይፒ በቪኤም ላይ ተቀምጦ ያለችግር ይሰራል ብለን እንገምታለን።

ከማስተላለፋችን በፊት ሁሉም ነገር በእጃችን እንዳለን እናረጋግጥ፡-

  • ክፍት ቪዜድ አገልጋይ፣ ወደ አስተናጋጅ ማሽን ሙሉ ስርወ መዳረሻ፣ መያዣዎችን የማቆም/ለመሰካት/መጀመር/መሰረዝ ችሎታ
  • KVM አገልጋይ፣ ወደ አስተናጋጅ ማሽን ሙሉ ስርወ መዳረሻ፣ ከሚያመለክተው ሁሉ ጋር። ሁሉም ነገር አስቀድሞ የተዋቀረ እና ለመሄድ ዝግጁ እንደሆነ ይገመታል.

ማስተላለፍ እንጀምር

ዝውውሩን ከመጀመራችን በፊት፣ ግራ መጋባትን ለማስወገድ የሚረዱዎትን ቃላት እንገልፅ፡-

KVM_NODE - KVM አስተናጋጅ ማሽን
VZ_NODE - OpenVZ አስተናጋጅ ማሽን
ሲቲአይዲ - ክፍትVZ መያዣ
VM - KVM ምናባዊ አገልጋይ

ለስደት መዘጋጀት እና ምናባዊ ማሽኖችን መፍጠር.

1 ደረጃ

መያዣውን ወደ አንድ ቦታ ማንቀሳቀስ ስለሚያስፈልገን እንፈጥራለን VM ጋር ተመሳሳይ ውቅር ጋር KVM_NODE.
አስፈላጊ! አሁን በሲቲአይዲ ላይ እየሰራ ባለው ኦፕሬቲንግ ሲስተም ላይ ቪኤም መፍጠር አለብህ። ለምሳሌ ኡቡንቱ 14 በሲቲአይዲ ላይ ከተጫነ ኡቡንቱ 14 በቪኤም ላይ መጫን አለበት ትንሽ እትሞች አስፈላጊ አይደሉም እና ልዩነታቸውም ያን ያህል ወሳኝ አይደለም ነገር ግን ዋናዎቹ ስሪቶች አንድ አይነት መሆን አለባቸው።

ቪኤምን ከፈጠርን በኋላ በሲቲአይዲ እና በVM ላይ ያሉትን ጥቅሎች እናዘምነዋለን (ስርዓተ ክወናውን ከማዘመን ጋር ላለመምታታት - እኛ አናዘምነውም ፣ ጥቅሎችን ብቻ እናዘምነዋለን እና ከደረሰም የስርዓተ ክወናው ስሪት በዋናው ውስጥ ስሪት)።

ለ 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 ወደ መደበኛ ኮንሶል ለመግባት የሚረዳን ትእዛዝ እንፈጽም ለምሳሌ በቪኤንሲ አገልጋይ ስክሪን

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

በሁሉም አገልጋዮች ላይ mod_fcgid for Apache ከተጫነ ከመብቶች ጋር ትንሽ ማስተካከያ እናደርጋለን፣ አለበለዚያ mod_fcgid የሚጠቀሙ ጣቢያዎች በስህተት 500 ይወድቃሉ፡

chmod +s `which suexec` && apachectl restart

እና የመጨረሻው ነገር ለኡቡንቱ እና ለዴቢያን ስርጭቶች ጠቃሚ ነው. ይህ ስርዓተ ክወና ከስህተት ጋር ዘለአለማዊ ቡት ላይ ሊወድቅ ይችላል።

በጣም በፍጥነት ማዞር. ስሮትልንግ አፈፃፀም ትንሽ

በስርዓተ ክወናው ስሪት ላይ በመመስረት ደስ የማይል, ግን በቀላሉ ተስተካክሏል.

ደቢያን 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

ካልረዳ, ሁለተኛውን አማራጭ ይሞክሩ.

ለችግሩ ሁለተኛው መፍትሄ በ ስሮትልንግ አፈፃፀም ትንሽ ለሁሉም የኡቡንቱ እና የዴቢያን ስርጭቶች ተስማሚ።

እኛ እንሰራለን

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

እና ለ ኡቡንቱ 14, ደቢያን 7 በተጨማሪ እኛ እንፈጽማለን-

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

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

ምን አደረግን? ዴቢያን/ኡቡንቱ ለማሄድ የጎደለውን የመልእክት አውቶቡስ ወደነበረበት መልሰን ከOpenVZ የመጣውን እና ብዙ የከርነል ሞጁሎችን መጫን ላይ ጣልቃ የገባውን ሞጁሎች_depን አስወግደናል።

6 ደረጃ

VMን እንደገና እናስጀምረዋለን ፣ ጭነቱ እንዴት እየሄደ እንደሆነ VNC ን እንፈትሻለን እና በጥሩ ሁኔታ ሁሉም ነገር ያለችግር ይጫናል ። ምንም እንኳን ከስደት በኋላ አንዳንድ የተለዩ ችግሮች ሊታዩ ቢችሉም, ከዚህ ጽሑፍ ወሰን ውጭ ናቸው እና ሲነሱ ይስተካከላሉ.

ይህ መረጃ ጠቃሚ እንደሆነ ተስፋ አደርጋለሁ! 🙂

ምንጭ: hab.com

አስተያየት ያክሉ