د سر درد پرته KVM سرور ته د OpenVZ 6 کانټینر لیږدولو څرنګوالی

هر هغه څوک چې لږترلږه د دوی په ژوند کې یو ځل د بشپړ KVM مجازی کولو سره سرور ته د OpenVZ کانټینر لیږدولو ته اړتیا لري د ځینې ستونزو سره مخ شوي:

  • ډیری معلومات په ساده ډول زاړه دي او د OS لپاره اړونده وو چې د EOL دورې یې اوږده تیره کړې وه
  • مختلف معلومات تل د مختلف عملیاتي سیسټمونو لپاره چمتو کیږي، او د مهاجرت پر مهال ممکنه تېروتنې هیڅکله په پام کې نه نیول کیږي
  • ځینې ​​​​وختونه تاسو باید د ترتیباتو سره معامله وکړئ چې هرکله او بیا نه غواړئ د مهاجرت وروسته کار وکړئ

کله چې تاسو 1 سرور لیږدئ، تاسو کولی شئ تل په الوتنه کې یو څه حل کړئ، مګر کله چې تاسو ټول کلستر لیږدئ؟

پدې مقاله کې به زه هڅه وکړم چې تاسو ته ووایم چې څنګه د OpenVZ کانټینر په سمه توګه KVM ته د لږترلږه وخت او ټولو ستونزو لپاره ګړندي حل سره لیږدول کیدی شي.

یو کوچنی تعلیمي پروګرام: OpenVZ څه شی دی او KVM څه شی دی؟

موږ به په اصطلاحاتو کې ژور نه ځو، مګر په عمومي اصطلاحاتو کې به ووایو:

OpenVZ - د عملیاتي سیسټم په کچه مجازی کول، تاسو حتی کولی شئ دا په مایکروویو کې ځای پر ځای کړئ، ځکه چې په کوربه ماشین کې د CPU لارښوونو او مجازی کولو ټیکنالوژیو ته اړتیا نشته.

KVM - بشپړ مجازی کول، د CPU ټول ځواک کارول او د هر څه مجازی کولو توان لري، په هره طریقه، په اوږدوالي او کراس ډول پرې کول.

د مشهور باور برخلاف چې د کوربه توب چمتو کونکو ترمنځ OpenVZ به ډیر وپلورل شي ، مګر KVM به ونه پلورل شي - خوشبختانه د وروستي لپاره ، KVM اوس د خپل ورور څخه بد نه پلورل کیږي.

موږ به څه واخلو؟

د لیږد لپاره د ازموینې مضامینو په توګه، موږ باید د عملیاتي سیسټمونو ټول ځنګل وکاروو چې په OpenVZ کې شتون لري: CentOS (6 او 7 نسخې)، اوبنټو (14، 16 او 18 LTS)، Debian 7.

داسې انګیرل کیده چې د OpenVZ ډیری کانټینرونه دمخه یو ډول LAMP چلوي، او ځینې حتی یو څه خورا ځانګړي سافټویر درلود. ډیری وختونه، دا د ISP مدیر، VestaCP کنټرول پینل سره تشکیلات وو (او ډیری وختونه، د کلونو لپاره نوي شوي ندي). د دوی د لیږد غوښتنې هم باید په پام کې ونیول شي.

مهاجرت د لیږد شوي کانټینر IP پتې ساتلو پرمهال ترسره کیږي؛ موږ به فرض کړو چې هغه IP چې کانټینر یې درلود په VM کې خوندي شوی او پرته له ستونزو به کار وکړي.

د لیږد دمخه، راځئ ډاډ ترلاسه کړو چې موږ هرڅه په لاس کې لرو:

  • د OpenVZ سرور، کوربه ماشین ته بشپړ روټ لاسرسی، د کانټینرونو د بندولو/ماؤنټ/پیل/ړنګولو وړتیا
  • د KVM سرور، کوربه ماشین ته بشپړ روټ لاسرسی، د هغه څه سره چې دا معنی لري. داسې انګیرل کیږي چې هرڅه دمخه تنظیم شوي او د تګ لپاره چمتو دي.

راځئ چې لیږد پیل کړو

مخکې لدې چې موږ لیږد پیل کړو ، راځئ هغه شرایط تعریف کړو چې تاسو سره به د ګډوډۍ مخنیوي کې مرسته وکړي:

KVM_NODE - د KVM کوربه ماشین
VZ_NODE - د OpenVZ کوربه ماشین
CTID - OpenVZ کانتینر
VM - د KVM مجازی سرور

د مهاجرت لپاره چمتو کول او د مجازی ماشینونو رامینځته کول.

1 ګام

له هغه ځایه چې موږ اړتیا لرو کانټینر کوم ځای ته انتقال کړو، موږ به یې جوړ کړو VM د ورته ترتیب سره KVM_NODE.
مهم! تاسو اړتیا لرئ په عملیاتي سیسټم کې VM رامینځته کړئ چې دا مهال په CTID کې روان دی. د مثال په توګه، که اوبنټو 14 په CTID کې نصب شوی وي، نو اوبنټو 14 باید په VM کې نصب شي. کوچنۍ نسخې مهمې ندي او د دوی توپیر دومره مهم نه دی، مګر لوی نسخې باید ورته وي.

د VM رامینځته کولو وروسته ، موږ به کڅوړې په CTID او VM کې تازه کړو (د OS تازه کولو سره مغشوش نه شئ - موږ دا تازه نه کوو ، موږ یوازې کڅوړې تازه کوو او که چیرې دا راشي ، د OS نسخه په اصلي کې دننه. نسخه).

د CentOS لپاره دا پروسه بې ضرره ښکاري:

# yum clean all
# yum update -y

او د اوبنټو او دیبیان لپاره لږ زیان نلري:

# apt-get update
# apt-get upgrade

2 ګام

نصب کړئ CTID, VZ_NODE и VM افادیت rsync:

CentOS:

# yum install rsync -y

Debian، Ubuntu:

# apt-get install rsync -y

موږ هلته یا هلته بل څه نه نصب کوو.

3 ګام

موږ ودروو CTID په VZ_NODE ډله

vzctl stop CTID

د انځور پورته کول CTID:

vzctl mount CTID

/vz/root/ فولډر ته لاړ شئCTID او اجرا کول

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 بشپړولو وروسته، له کروټ څخه وځئ (د ctrl+d په فشارولو سره) او اجرا کړئ

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

5 ګام

راځئ چې څو مرحلې ترسره کړو چې د OpenVZ څخه لیږدولو وروسته به موږ سره د VM پیلولو کې مرسته وکړي.
سره په سرورونو کې سیسټم راځئ چې یو کمانډ اجرا کړو چې موږ سره به منظم کنسول ته ننوتلو کې مرسته وکړي ، د مثال په توګه ، د 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; }

په ټولو سرورونو کې، که د اپاچي لپاره mod_fcgid نصب شوی وي، موږ به د حقونو سره یو کوچنی حل ترسره کړو، که نه نو د mod_fcgid کارولو سایټونه به د 500 غلطۍ سره خراب شي:

chmod +s `which suexec` && apachectl restart

او وروستی شی د اوبنټو او دیبیان توزیع لپاره ګټور دی. دا OS ممکن د یوې غلطۍ سره ابدي بوټ سره ټکر شي

ډیر ګړندی کول. د throttling اعدام لږ څه

ناخوښه، مګر په اسانۍ سره ټاکل شوی، د OS نسخه پورې اړه لري.

په Debian 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 اعدام لږ څه د نږدې ټولو اوبنټو او ډیبیان توزیع لپاره مناسب.

موږ ترسره کوو

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

او لپاره Ubuntu 14, Debian 7 برسېره پردې، موږ ترسره کوو:

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

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

موږ څه کړي دي؟ موږ میسجبس بحال کړ، کوم چې د Debian/Ubuntu چلولو لپاره ورک و، او modules_dep یې لرې کړ، کوم چې د OpenVZ څخه راغلی او د ډیری کرنل ماډلونو بارولو کې یې مداخله کړې.

6 ګام

موږ VM ریبوټ کوو ، په VNC کې وګورئ چې بار کول څنګه پرمخ ځي او په مثالي توګه ، هرڅه به پرته له ستونزو بار شي. که څه هم دا ممکنه ده چې ځینې ځانګړي ستونزې به د مهاجرت وروسته راڅرګند شي، هغه د دې مادې له دائرې څخه بهر دي او د دوی د رامنځته کیدو سره سم به سم شي.

زه هیله لرم چې دا معلومات ګټور وي! 🙂

سرچینه: www.habr.com

Add a comment