سديم مفتوح. رؤوس أقلام

سديم مفتوح. رؤوس أقلام

أهلاً بكم. تمت كتابة هذا المقال لأولئك الذين ما زالوا ممزقين بين اختيار منصات المحاكاة الافتراضية وبعد قراءة مقال من سلسلة "لقد قمنا بتثبيت proxmox وكل شيء على ما يرام ، 6 سنوات من الجهوزية ليست فجوة واحدة." ولكن بعد تثبيت حل أو آخر ، يطرح السؤال ، كيفية إصلاحه هنا ، بحيث تكون المراقبة أكثر قابلية للفهم وهنا ، للتحكم في النسخ الاحتياطية ... ثم يحين الوقت وتدرك أنك تريد شيئًا أكثر فاعلية ، أو تريد أن يصبح كل شيء واضحًا داخل نظامك ، وليس هذا الصندوق الأسود ، أو تريد استخدام شيء أكثر من برنامج Hypervisor ومجموعة من الأجهزة الافتراضية . في هذه المقالة ، سيكون هناك بعض الأفكار والممارسات بناءً على منصة Opennebula - لقد اخترتها بسبب ذلك. لا تتطلب الموارد والبنية ليست معقدة للغاية.

وهكذا ، كما نرى ، يعمل العديد من موفري السحابة على kvm ويقومون بتسخير خارجي للتحكم في الأجهزة. من الواضح أن كبار المضيفين يكتبون روابطهم الخاصة للبنية التحتية السحابية ، مثل YANDEX على سبيل المثال. يستخدم شخص ما openstack ويجعل ارتباطًا على هذا الأساس - SELECTEL ، MAIL.RU. ولكن إذا كان لديك أجهزتك الخاصة وفريق عمل صغير من المتخصصين ، فعادة ما يختارون شيئًا من الأجهزة الجاهزة - VMWARE و HYPER-V ، فهناك تراخيص مجانية وتراخيص مدفوعة ، ولكن هذا لا يتعلق بذلك الآن. دعنا نتحدث عن المتحمسين - هؤلاء هم أولئك الذين لا يخشون تقديم شيء جديد وتجربته ، على الرغم من حقيقة أن الشركة أوضحت بوضوح "من سيخدمها بعدك" ، "هل سنطرحها للبيع بعد ذلك؟ مخيف ". ولكن بعد كل شيء ، يمكنك أولاً تطبيق هذه الحلول في منصة اختبار ، وإذا أحبها الجميع ، فيمكنك حينئذٍ طرح مسألة التطوير الإضافي والاستخدام في بيئات أكثر جدية.

هنا أيضًا رابط للتقرير. www.youtube.com/watch؟v=47Mht_uoX3A من مشارك نشط في تطوير هذه المنصة.

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

وهكذا ، فلنبدأ. بصفتي مسؤول النظام ، فإن النقاط التالية مهمة بالنسبة لي ، والتي بدونها من غير المحتمل أن أستخدم هذا الحل.

1. التثبيت التكرار

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

2 يراقب

سنراقب العقدة نفسها ، kvm و opennebula. لحسن الحظ ، إنه جاهز بالفعل. هناك الكثير من الخيارات حول مراقبة مضيفي Linux ، نفس zabbix أو مصدر العقدة - من يحبها بشكل أفضل - في الوقت الحالي أحدده بحيث يتم مراقبة مقاييس النظام (درجة الحرارة حيث يمكن قياسها ، اتساق مجموعة القرص) ، من خلال zabbix ، ولكن بالنسبة للطلبات من خلال المصدر في بروميثيوس. لمراقبة kvm ، على سبيل المثال ، يمكنك تنفيذ مشروع github.com/zhangjianweibj/prometheus-libvirt-exporter.git ووضع الإطلاق من خلال systemd ، فهو يعمل جيدًا ويعرض مقاييس kvm ، وهناك أيضًا لوحة معلومات جاهزة grafana.com/grafana/dashboards/12538.

على سبيل المثال ، هذا ملفي:

/etc/systemd/system/libvirtd_exporter.service
[Unit]
Description=Node Exporter

[Service]
User=node_exporter
ExecStart=/usr/sbin/prometheus-libvirt-exporter --web.listen-address=":9101"

[Install]
WantedBy=multi-user.target

ولذا لدينا مصدر واحد ، نحتاج إلى مصدر ثانٍ لمراقبة السديم المفتوح نفسه ، لقد استخدمت هذا github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

يمكن أن تضاف إلى العادية node_exporter لمراقبة النظام على النحو التالي.

في ملف node_exporter ، نغير البداية بهذه الطريقة:

ExecStart=/usr/sbin/node_exporter --web.listen-address=":9102" --collector.textfile.directory=/var/lib/opennebula_exporter/textfile_collector

إنشاء دليل mkdir -p / var / lib / opennebula_exporter

سكربت bash الموضح أعلاه ، أولاً نتحقق من العمل من خلال وحدة التحكم ، إذا كان يظهر ما نحتاج إليه (إذا أعطى خطأً ، ثم نضع xmlstarlet) ، فقم بنسخه إلى /usr/local/bin/opennebula_exporter.sh

أضف مهمة cron لكل دقيقة:

*/1 * * * * (/usr/local/bin/opennebula_exporter.sh > /var/lib/opennebula_exporter/textfile_collector/opennebula.prom)

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

سديم مفتوح. رؤوس أقلام

(يمكنك أن ترى أنه هنا قمت بإفراط في استخدام وحدة المعالجة المركزية ، ذاكرة الوصول العشوائي)

بالنسبة لأولئك الذين يحبون ويستخدمون Zabbix ، هناك github.com/OpenNebula/addon-zabbix

في مراقبة كل شيء ، الشيء الرئيسي هو. بالطبع ، بالإضافة إلى ذلك ، باستخدام أدوات مراقبة الآلة الافتراضية المضمنة وتحميل البيانات إلى الفوترة ، كل شخص لديه رؤيته الخاصة ، حتى بدأوا في القيام بذلك عن كثب.

لتسجيل الدخول ، وخاصة في حين لم تبدأ. الخيار الأسهل هو إضافة td-agent لتحليل المجلد / var / lib / one بالتعبيرات العادية. على سبيل المثال ، يتطابق ملف sunstone.log مع nginx regexp والملفات الأخرى التي تعرض تاريخ الوصول إلى النظام الأساسي - ما هي الميزة الإضافية؟ حسنًا ، على سبيل المثال ، يمكننا بشكل صريح تتبع عدد "الخطأ والخطأ" وتتبع مكان وجود عطل ما ومستوى ذلك بسرعة.

3. النسخ الاحتياطية

هناك أيضًا مشاريع مدفوعة الأجر - على سبيل المثال سبتمبر wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon: OpenNebula_Backup. هنا يجب أن نفهم أن النسخ الاحتياطي لصورة الجهاز ، في هذه الحالة ، ليس على الإطلاق ، لأن أجهزتنا الافتراضية يجب أن تعمل بتكامل كامل (نفس سياق الملف الذي يصف إعدادات الشبكة ، واسم vm والإعدادات المخصصة لـ تطبيقاتك). لذلك ، هنا نحدد ماذا وكيف سنقوم بالنسخ الاحتياطي. في بعض الحالات ، من الأفضل عمل نسخ مما هو موجود في الجهاز الافتراضي نفسه. وربما تحتاج إلى نسخ قرص واحد فقط احتياطيًا من هذا الجهاز.

على سبيل المثال ، قررنا أن تبدأ جميع الأجهزة بالصور الثابتة ، وبالتالي بعد القراءة docs.opennebula.io/5.12/operation/vm_management/img_guide.html

لذلك أولاً يمكننا تحميل الصورة من جهازنا vm:

onevm disk-saveas 74 3 prom.qcow2
Image ID: 77

Смотрим, под каким именем он сохранился

oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
   
И далее копируем куда нам необходимо. Конечно, так себе способ. Просто хотел показать, что используя инструменты opennebula можно строить подобные решения.

وجدت أيضا على النت تقرير مثير للاهتمام وهناك المزيد مثل هذا المشروع المفتوح، ولكن هنا فقط تحت تخزين qcow2.

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

4. سهولة الاستخدام

في هذه الفقرة ، سوف أصف المشاكل التي واجهتها. على سبيل المثال ، وفقًا للصور ، كما نعلم ، هناك ثبات - عندما يتم تثبيت هذه الصورة على جهاز افتراضي ، تتم كتابة جميع البيانات على هذه الصورة. وإذا كانت غير ثابتة ، فسيتم نسخ الصورة إلى التخزين وتكتب البيانات إلى ما تم نسخه من الصورة الأصلية - هذه هي طريقة عمل الفراغات في القالب. لقد تسبب في مشاكل لنفسه مرارًا وتكرارًا من خلال نسيان تحديد استمرار وتم نسخ صورة بحجم 200 غيغابايت ، والمشكلة هي أنه لا يمكن إلغاء هذا الإجراء بالتأكيد ، يجب عليك الذهاب إلى العقدة وقتل عملية "cp" الحالية.

أحد العيوب المهمة هو أنه لا يمكنك التراجع عن الإجراءات ببساطة باستخدام واجهة المستخدم الرسومية. أو بالأحرى ، ستلغيها وترى أنه لا شيء يحدث وتبدأ من جديد ، وتلغي ، وفي الواقع ستكون هناك عمليتا cp بالفعل لنسخ الصورة.

ثم يتعلق الأمر بفهم سبب ترقيم opennebula لكل مثيل جديد بمعرف جديد ، على سبيل المثال ، في نفس proxmox أنشأ vm بمعرف 101 ، وحذفه ، ثم أعد إنشاء معرف 101. لن يحدث هذا في opennebula ، كل جديد سيتم إنشاء المثيل بمعرف جديد وهذا له منطقه الخاص - على سبيل المثال ، مسح البيانات القديمة أو عمليات التثبيت غير الناجحة.

الشيء نفسه ينطبق على التخزين ، والأهم من ذلك كله أن هذه المنصة تهدف إلى التخزين المركزي. هناك إضافات لاستخدام المحلي ، لكن في هذه الحالة لا يتعلق الأمر بذلك. أعتقد أنه في المستقبل سيكتب شخص ما مقالًا حول كيفية تمكنه من استخدام التخزين المحلي على العقد واستخدامه بنجاح في الإنتاج.

5. البساطة القصوى

بالطبع ، كلما تقدمت ، قل عدد الذين سيفهمونك.

في حالة موقفي - 3 عقد مع تخزين nfs - كل شيء يعمل بشكل جيد. ولكن إذا أجرينا تجارب لإيقاف الطاقة ، فعلى سبيل المثال ، عندما نقوم بتشغيل لقطة وإيقاف تشغيل طاقة العقدة ، فإننا نحفظ الإعدادات في قاعدة البيانات ، حيث توجد لقطة ، ولكنها في الحقيقة ليست كذلك (حسنًا ، نفهم جميعًا أننا كتبنا في البداية قاعدة البيانات حول هذا الإجراء في SQL ولكن العملية نفسها لم تكن ناجحة). الميزة هي أنه عند إنشاء لقطة ، يتم تكوين ملف منفصل ويكون هناك "أصل" ، لذلك ، في حالة حدوث مشاكل وحتى إذا لم يعمل من خلال واجهة المستخدم الرسومية ، يمكننا التقاط ملف qcow2 واستعادته بشكل منفصل docs.opennebula.io/5.8/operation/vm_management/vm_instances.html

على الشبكات ، للأسف ، ليس كل شيء بهذه البساطة. حسنًا ، على الأقل هو أسهل مما هو عليه في Openstack ، لقد استخدمت vlan (802.1Q) فقط - إنه يعمل بشكل جيد ، ولكن إذا أجريت تغييرات على الإعدادات من شبكة القوالب ، فلن يتم تطبيق هذه الإعدادات على الأجهزة التي تعمل بالفعل ، أي أنت بحاجة إلى حذف وإضافة خريطة شبكة ، ثم سيتم تطبيق الإعدادات الجديدة.

إذا كنت لا تزال ترغب في المقارنة مع Openstack ، فيمكنك قول هذا ، في opennebula لا يوجد تعريف واضح للتقنيات التي يجب استخدامها لتخزين البيانات وإدارة الشبكة والموارد - يقرر كل مسؤول بنفسه ما هو أكثر ملاءمة له.

6. الإضافات والتركيبات الإضافية

بعد كل شيء ، كما نفهم ، لا يمكن للمنصة السحابية إدارة kvm فحسب ، بل أيضًا إدارة vmware esxi. لسوء الحظ ، لم يكن لدي تجمع مع Vcenter ، إذا حاول أي شخص الكتابة.

لدعم مقدمي الخدمات السحابية الآخرين ، تم ذكر ذلك docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html
AWS ، AZURE.

حاولت أيضًا ربط Vmware Cloud من selectel ، لكن لم يحدث شيء - بشكل عام ، سجلت نتيجة لوجود العديد من العوامل ، وليس من المنطقي الكتابة إلى الدعم الفني لمزود الاستضافة.

أيضًا ، يوجد الآن في الإصدار الجديد مفرقعة نارية - هذا هو إطلاق microvm ، مثل ربط kvm عبر docker ، والذي يوفر مزيدًا من التنوع والأمان وتحسينات الأداء نظرًا لعدم وجود حاجة لإهدار الموارد في محاكاة الأجهزة. أرى فقط ميزة فيما يتعلق بعمال الإرساء أنه لا يأخذ عددًا إضافيًا من العمليات ولا توجد مآخذ مشغولة عند استخدام هذه المحاكاة ، أي من الممكن تمامًا استخدامه كموازن تحميل (ولكن ربما يكون من المفيد كتابة مقالة منفصلة حول هذا الأمر حتى تكمل جميع الاختبارات بالكامل).

7. تجربة المستخدم الإيجابية وتصحيح الأخطاء

أردت مشاركة ملاحظاتي حول العمل ، وصفت جزءًا منه أعلاه ، أريد أن أكتب أكثر. في الواقع ، ربما لست الشخص الوحيد الذي اعتقد في البداية أن هذا ليس النظام الصحيح وعمومًا كل شيء هو عكاز - كيف يتعاملون معه؟ ولكن بعد ذلك يأتي الفهم وأن كل شيء منطقي تمامًا. بالطبع ، لا يمكنك إرضاء الجميع ، وتحتاج بعض الأشياء إلى التحسين.

على سبيل المثال ، عملية بسيطة لنسخ صورة قرص من مخزن بيانات إلى آخر. في حالتي ، هناك عقدتان مع nfs ، أرسل الصورة - يمر النسخ عبر الواجهة الأمامية المفتوحة ، على الرغم من أننا جميعًا معتادون على حقيقة أنه يجب نسخ البيانات مباشرة بين المضيفين - في نفس البرنامج الافتراضي ، hyper-v ، نحن معتادون على هذا ، ولكن هنا لآخر. هناك نهج مختلف وأيديولوجية مختلفة ، وفي الإصدار 2 تمت إزالة زر "الترحيل إلى مخزن البيانات" - يتم نقل الجهاز نفسه فقط ، ولكن ليس التخزين. يعني التخزين المركزي.

علاوة على ذلك ، هناك خطأ شائع لأسباب مختلفة "خطأ في نشر الجهاز الظاهري: تعذر إنشاء مجال من /var/lib/one//datastores/103/10/deployment.5" فيما يلي أهم شيء يجب النظر إليه.

  • حقوق الصورة لمستخدم واحد فقط ؛
  • أذونات مستخدم oneadmin لتشغيل libvirtd ؛
  • هل مخزن البيانات مركب بشكل صحيح؟ اذهب وتحقق من المسار على العقدة نفسها ، ربما يكون هناك شيء ما قد سقط ؛
  • توجد شبكة تم تكوينها بشكل غير صحيح ، أو بالأحرى على الواجهة الأمامية ، في إعدادات الشبكة حيث أن br0 هي الواجهة الرئيسية لشبكة محلية ظاهرية ، ويتم كتابة Bridge0 على العقدة - يجب أن تكون هي نفسها.

يقوم مخزن بيانات النظام بتخزين البيانات الوصفية لجهاز vm الخاص بك ، إذا قمت بتشغيل جهاز vm مع صورة ثابتة ، فإن الجهاز الافتراضي يحتاج إلى الوصول إلى التكوين الذي تم إنشاؤه في البداية على وحدة التخزين حيث أنشأت جهاز vm - وهذا مهم للغاية. لذلك ، عند نقل vm إلى مخزن بيانات آخر ، تحتاج إلى إعادة التحقق من كل شيء.

8. التوثيق ، المجتمع. مزيد من التطوير

والباقي ، توثيق جيد ، مجتمع ، والأهم من ذلك ، أن يستمر المشروع في العيش في المستقبل.

هنا ، بشكل عام ، كل شيء موثق جيدًا ، وحتى وفقًا لمصدر رسمي ، لن تكون هناك مشكلة في تحديد وإيجاد إجابات للأسئلة.

المجتمع نشط. تنشر العديد من الحلول الجاهزة التي يمكنك استخدامها في عمليات التثبيت الخاصة بك.

في الوقت الحالي ، تغيرت بعض السياسات في الشركة منذ 5.12 forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 سيكون من المثير للاهتمام أن نرى كيف يتطور المشروع. في البداية ، أشرت على وجه التحديد إلى بعض البائعين الذين يستخدمون حلولهم وما تقدمه الصناعة. بالطبع ، لا توجد إجابة واضحة عما يجب أن تستخدمه لك. ولكن بالنسبة للمؤسسات الأصغر ، قد لا يكون الحفاظ على السحابة الخاصة الصغيرة مكلفًا كما يبدو. الشيء الرئيسي هو أن تعرف بالضبط ما تحتاجه.

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

هناك محادثة جيدة t.me/opennebula تساعد بنشاط ولا ترسل للبحث عن حل للمشكلة في Google. ينضم.

المصدر: www.habr.com

إضافة تعليق