التبديل من الأجهزة الظاهرية إلى حاويات LXC: الأسباب والمزايا والتعليمات الجاهزة للاستخدام

ما سوف نتحدث عنه:

- لماذا قررنا التبديل إلى حاويات LXC؟
- كيفية إنشاء حاوية وتشغيل مضيف يستند إلى Bitrix عليه؟

لمن ستكون مفيدة:

لكل من يريد تجربة حل جديد ، مع استخدام موارد أقل.

فوائد LXC على الأجهزة الافتراضية


لقد تحولنا إلى الحاويات عندما واجهنا نقصًا في موارد الخادم ، وصعوبة التمييز بين حقوق الوصول للمشاريع المختلفة ، وتعارضات البرامج في جهاز افتراضي واحد. فيما يلي بعض الفوائد الرئيسية لـ LXC على الأجهزة الافتراضية:

  1. أقل فقدان أداء وحدة المعالجة المركزية ، وعمليات القرص وذاكرة الوصول العشوائي. تقريبا كل شيء متاح في الحاوية يعمل بسرعة الخادم.
  2. لا حاجة لتخصيص ذاكرة الوصول العشوائي لنظام التشغيل kernel وذاكرة الفيديو ومخازن القرص المؤقتة ، إلخ
  3. بداية سريعة. في الواقع ، يتم إطلاق تلك التطبيقات الضرورية لتشغيل الحاوية فقط.
  4. يدعم تشغيل التطبيقات الفردية في الحاوية ، بدلاً من النظام الكامل. ملائمًا ، يمكنك إصدار عمليات الوصول عن طريق إضافة مستخدم (بدلاً من chroot) ببساطة ، نظرًا لأن لدينا مشروعًا واحدًا في الحاوية (كان هناك العديد من الأجهزة الظاهرية).
  5. القدرة على إدارة موارد كل حاوية.
  6. انقل الحاويات بين الخوادم بسرعة وسهولة.

نحن نستخدم رسينك. فقط قم بإنشاء حاوية بنفس الاسم على الخادم الجديد وانسخ:

rsync -alvz :/var/lib/lxd/container/test/ /var/lib/lxd/container/test/ 

نحن بحاجة إلى توضيح الفقرة الخامسة والتحدث عن إدارة الموارد. يجب أن نزود الحاوية بكمية كافية من الموارد للعمل ، وفي نفس الوقت تأكد من أن الحاوية لن تستهلك موارد غير ضرورية ، وبالتالي تتداخل مع عمل بقية النظام.

يمكنك عرض إحصائيات استهلاك الموارد حسب الأمر: اختبار معلومات lxc

 Remote: unix:// : x86_64 : 2018/12/04 14:27 UTC Status: Running Type: persistent : default Pid: 28317 IPs: eth0: inet 172.27.2.204 vethF91F2U Resources: : 56 CPU usage:   ( ): 20583 Memory usage: Memory (current): 1.03GB Memory (peak): 3.11GB Network usage: eth0:  : 17.45GB  : 9.93GB 

وفقًا لهذه الإحصاءات ، يمكنك تتبع عدد الموارد التي تستهلكها الحاوية ، وإذا لزم الأمر ، يمكنك الحد من استهلاكها باستخدام أوامر خاصة:

  • lxc config set test tests.memory 2048M # اضبط حد الذاكرة.
  • lxc config set test tests.cpu 1،2،3،8 # ربط الحاوية إلى النوى وحدة المعالجة المركزية.
  • التكوين lxc مجموعة اختبار cpu.allowance 10 ٪ # الحد من استهلاك وحدة المعالجة المركزية.
  • lxc config set test root size 50GB # حدد مقدار مساحة القرص المستخدمة بواسطة الحاوية (يعمل فقط مع ZFS أو btrfs).
  • lxc config get test tests.memory - عرض قيمة الحد المعينة

نتيجة لذلك ، تتيح لك الحاويات التقاط عشرات الحاويات على سطح مكتب قياسي للغاية ، مع الحفاظ على الأداء الكافي.

نقوم بتهيئة الخادم ونقل المضيف القياسي باستخدام Bitrix من الجهاز الظاهري إلى الحاوية


1. إعداد الخادم

1.1 قم بتثبيت أحدث إصدار من خادم Ubuntu 18.04 على الخادم. لديها بالفعل LXD. LXD هي وظيفة إضافية إلى LXC ، وهو برنامج مشرف يعمل على تبسيط التفاعل مع نظام النقل بالحاويات.
1.2 apt install bridge-utils # install bridge-utils
1.3 lxd init # تهيئة lxd
1.4 ملف تعريف lxc الافتراضي تعديل # تحرير ملف التعريف:

 devices: eth0: name: eth0 nictype: bridged parent: br0 type: nic root: path: / pool: default type: disk name: default 

1.5 lxc launch ubuntu: 04/18 test # قم بإنشاء حاوية تسمى test. سيقوم بتنزيل الصورة وإنشاءها وإطلاقها. هذا يكمل التكوين وإنشاء الحاوية ، ثم تابع لتكوين الحاوية ونقل المضيف إليها.

2. تكوين حاوية المضيف وترحيل الموقع

2.1 lxc exec test / bin / bash # انتقل إلى الحاوية التي تم إنشاؤها.
2.2 ppt add-apt-repository ppa: ondrej / php # إضافة مستودع.
2.3 apt update # تحديث المستودع.
2.4 عرضة للتثبيت
php7.1 {fpm، bcmath، bz2، cli، common، curl، dev، enchant، fpm، gd، gmp، imap، intl، json،
ldap ، mbstring ، mcrypt ، mysql ، odbc ، opcache ، phpdbg ، pspell ، readline ، recode ، soap ،
مرتب ، xml ، xmlrpc ، xsl ، zip} # تثبيت php وجميع الوحدات اللازمة ل bitrix.
2.5 ملائمة تثبيت nginx # تثبيت nginx.
2.6 vim /etc/netplan/50-cloud-init.yaml # Make ip static:

 network: version: 2 ethernets: eth0: addresses: [172.27.2.108/16] gateway4: 172.27.0.1 nameservers: addresses: [172.27.1.1] dhcp4: false 

2.7 انسخ تكوينات php و nginx من الجهاز الظاهري لدينا ، تحقق من أن كل شيء يبدأ ويعمل.
2.8 ننقل الموقع بأكمله من الجهاز الظاهري لدينا. على سبيل المثال:

rsync -alvz old Virtual: / var / www / / var / www /

3. إنشاء حاوية منفصلة لقاعدة البيانات

3.1 كرر الخطوات 1 و 5 و 2.1 و 2.6 لتسمية الحاوية على سبيل المثال test-db.
3.2 apt تثبيت mysql خادم # تثبيت قاعدة البيانات
3.3 apt install pv # قم بتثبيت PV لمعرفة التقدم عند تحميل قاعدة البيانات.

4. إعداد خادم قاعدة بيانات جديد

للبدء ، نجمع المعلومات من الخادم القديم:

4.1 نحن بحاجة للمستخدم والانتقال من قاعدة البيانات المطلوبة.
4.2 mysql -u test -p'test '-e "show إنشاء testDB database؛" # اكتشف كيف تم إنشاء قاعدة البيانات (ما نحتاج إلى تسليط الضوء عليه):

 mysql: [Warning] Using a password on the command line interface can be insecure. +----------+--------------------------------------------------------------------------+ | Database | Create Database | +----------+--------------------------------------------------------------------------+ | demoshop | <b>CREATE DATABASE `demoshop` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ |</b> +----------+--------------------------------------------------------------------------+ 

4.3 mysqldump -ER -single-transaction --quick testDB | gzip> testDB.sql.gz # قم بتشغيل هذا الأمر على الخادم حيث توجد قاعدة بياناتنا. وقالت انها سوف تفريغ وضغطه في الأرشيف.

سنذهب إلى قاعدة بياناتنا الجديدة وننفذ الإجراءات التالية:

4.4 rsync -alvz DB القديمة: / root / testDB.sql.gz / root / # نقل الأرشيف مع التفريغ إلى الحاوية الخاصة بنا.
4.5 mysql # دعنا نذهب إلى قاعدة البيانات الخاصة بنا
4.5.1 إنشاء مستخدم "مستخدم" @ "٪" معرف بواسطة كلمة مرور ؛ # إنشاء نفس المستخدم وكلمة المرور.
4.5.2 من الفقرة 4.2 ، ندخل الأمر: CREATE DATABASE `DBName` / *! 40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci * / ؛
4.5.3 منح جميع الامتيازات على اسم DB. * إلى 'user' @ '٪' معرف بواسطة 'pass' ؛ # سنقدم الحقوق لقاعدة البيانات الخاصة بنا.
4.6 نخرج من قاعدة البيانات ونقوم بتشغيل وحدة التحكم في الحاوية: pv testDB.sql.gz | zcat | mysql testDB # املأ التفريغ في قاعدة البيانات الخاصة بنا

5. التحقق

5.1 تغيير معلمات الاتصال بقاعدة البيانات ، أشر إلى عنوان IP الجديد لقاعدة البيانات الخاصة بنا.
5.2 بعد ذلك ، يجب فتح الموقع عبر IP أو DNS ، ويعتمد على التكوين الخاص بك.

استنتاج


وبالتالي ، تساعدنا حاويات LXC على تقليل استهلاك موارد خادم الاختبار وتخصيص المزيد من المضيفين على خادم واحد ، مع الحفاظ على القدرة على إدارة الموارد المستهلكة لكل مضيف بشكل ملائم. لديك الآن إرشادات جاهزة توضح مدى سهولة تنفيذها.

Source: https://habr.com/ru/post/ar458658/


All Articles