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

أولاً ، دعونا نتعامل مع المصطلحات والتعاريف.
المصطلحات والتعاريف
الهدف هو النتيجة النهائية التي يمكن قراءتها من قبل الإنسان والتي يمكن ملاحظتها والقابلة للقياس والتي يجب تحقيقها. لتحقيق كل هدف ، هناك إستراتيجية واحدة أو أكثر. الإستراتيجية هي تنفيذ لوغاريتم قادر على إيجاد حل لغرض معين.
الإجراء هو مهمة أولية تقوم بتغيير الحالة الحالية لمورد مدار مستهدف من مجموعة OpenStack ، مثل: ترحيل جهاز ظاهري (الترحيل) ، وتغيير حالة طاقة العقدة (change_node_power_state) ، وتغيير حالة خدمة nova (change_nova_service_state) ، وتغيير النكهة (تغيير حجم) ، وتسجيل رسالة NOP (نوب) ، وعدم وجود إجراءات لمدة معينة من الوقت - توقف مؤقت (النوم) ، ونقل القرص (volume_migrate).
خطة العمل (خطة العمل) - دفق محدد من الإجراءات المنفذة بترتيب معين لتحقيق هدف محدد. تحتوي خطة العمل أيضًا على تقدير الأداء العالمي مع مجموعة من مؤشرات الأداء. يتم إنشاء خطة العمل بواسطة Watcher أثناء تدقيق ناجح ، ونتيجة لذلك وجدت الإستراتيجية المستخدمة حلاً لتحقيق الهدف. تتكون خطة العمل من قائمة الإجراءات المتسلسلة.
التدوين هو طلب تحسين الكتلة. يتم إجراء التحسين من أجل تحقيق هدف واحد في كتلة معينة. لكل تدقيق ناجح ، تنشئ Watcher خطة عمل.
نطاق التدقيق هو مجموعة من الموارد التي يتم إجراء التدقيق خلالها (منطقة (مناطق) التوفر ، مجمعات العقدة ، عقد الحوسبة الفردية أو عقد التخزين ، وما إلى ذلك). يتم تعريف نطاق التدقيق في كل قالب. إذا لم يتم تحديد نطاق التدقيق ، يتم تدقيق المجموعة بالكامل.
قالب التدقيق - مجموعة محفوظة من الإعدادات لبدء التدقيق. هناك حاجة إلى قوالب لتشغيل عمليات التدقيق بنفس الإعدادات عدة مرات. يجب أن يحتوي القالب بالضرورة على الغرض من التدقيق ، في حالة عدم الإشارة إلى الاستراتيجيات ، يتم اختيار أنسب الاستراتيجيات الموجودة.
الكتلة هي مجموعة من الأجهزة المادية التي توفر موارد الحوسبة والتخزين والشبكة وتتم إدارتها بواسطة نفس عقدة التحكم في OpenStack.
نموذج بيانات الكتلة (CDM) هو تمثيل منطقي للحالة الحالية وطوبولوجيا الموارد التي تديرها الكتلة.
مؤشر الكفاءة (مؤشر الكفاءة) - مؤشر يشير إلى كيفية تنفيذ الحل الذي تم إنشاؤه باستخدام هذه الاستراتيجية. مؤشرات الأداء خاصة بهدف معين وتستخدم بشكل شائع لحساب الفعالية العالمية لخطة العمل النهائية.
مواصفات الكفاءة هي مجموعة من الميزات المحددة المرتبطة بكل هدف ، والتي تحدد مؤشرات الأداء المختلفة التي يجب أن توفرها الاستراتيجية التي تضمن تحقيق الهدف المقابل في قرارها. في الواقع ، سيتم فحص كل حل تقترحه الاستراتيجية للتأكد من توافقه مع المواصفات قبل حساب فعاليته العالمية.
"محرك التهديف" هو ملف قابل للتنفيذ قام بتعريف بيانات الإدخال بوضوح ، وبيانات المخرجات المحددة بوضوح ، ويقوم بمهمة رياضية بحتة. وبالتالي ، لا يعتمد الحساب على البيئة التي يتم تنفيذها فيها - بل سيعطي نفس النتيجة في أي مكان.
Watcher Planner هو جزء من محرك قرار Watcher. تقبل هذه الوحدة النمطية مجموعة الإجراءات التي تم إنشاؤها بواسطة الاستراتيجية وتقوم بإنشاء خطة سير عمل تحدد كيفية تخطيط هذه الإجراءات المختلفة في الوقت المناسب ولكل إجراء ، ما هي المتطلبات الأساسية.
أهداف واستراتيجيات مراقب
هدف وهمية -
هدف احتياطي يستخدم لأغراض الاختبار.
الاستراتيجيات ذات الصلة: استراتيجية الدمية ، استراتيجية الدمية باستخدام محركات التهديف عينة واستراتيجية الدمية مع تغيير حجم. استراتيجية الدمية هي استراتيجية وهمية تستخدم لاختبار التكامل من خلال Tempest. لا توفر هذه الاستراتيجية أي تحسين مفيد ؛ الغرض الوحيد منها هو استخدام اختبارات Tempest.
إستراتيجية وهمية باستخدام نماذج تسجيل الدرجات - تشبه الإستراتيجية الإستراتيجية السابقة ، وهي تختلف فقط في استخدام نموذج "محرك التقييم" ، الذي يعتمد على استخدام أساليب التعلم الآلي.
إستراتيجية وهمية مع تغيير الحجم - الإستراتيجية مماثلة للإستراتيجية السابقة ، فهي تختلف فقط في استخدام تغيير النكهة (الترحيل وتغيير الحجم).
لا تستخدم في الإنتاج.
توفير الطاقة - تقليل استهلاك الطاقة. إستراتيجية لهذا الهدف: توفير إستراتيجية توفير الطاقة بالاقتران مع إستراتيجية توحيد عبء العمل على VM (توحيد الخوادم) قادرة على أداء وظائف إدارة الطاقة الديناميكية (DPM) ، والتي توفر الطاقة عن طريق دمج أعباء العمل ديناميكيًا حتى أثناء فترات الحمل المنخفض للموارد: يتم نقل الأجهزة الافتراضية إلى عدد أقل من العقد ، ويتم قطع العقد غير الضرورية. بعد الدمج ، تقدم الاستراتيجية قرارًا لتشغيل / إيقاف تشغيل العقد وفقًا للمعايير المحددة: "min_free_hosts_num" - عدد العقد المجانية المضمنة التي تنتظر التحميل ، و "free_used_percent" - النسبة المئوية للعُقد المضمّنة المجانية إلى عدد العقد المشغولة بواسطة الآلات.
لكي تعمل الإستراتيجية
، يجب
تشغيل Ironic وتكوينه للعمل مع تشغيل / إيقاف تشغيل الطاقة على العقد.خيارات الاستراتيجية
يجب أن يكون هناك عقدتان على الأقل في السحابة. الطريقة المستخدمة هي تغيير حالة الطاقة للعقدة (change_node_power_state).
الاستراتيجية لا تتطلب مجموعة من المقاييس.دمج الملقم - تقليل عدد العقد حساب (دمج). يحتوي على استراتيجيتين: دمج خادم دون اتصال الأساسي واستراتيجية توحيد عبء العمل على VM.
تعمل إستراتيجية دمج الملقمات دون اتصال الأساسية على تقليل إجمالي عدد الخوادم المستخدمة وكذلك تقليل عدد عمليات الترحيل.
تتطلب الإستراتيجية الأساسية المقاييس التالية:
معلمات الاستراتيجية: migration_attempts - عدد المجموعات للبحث عن مرشحي إيقاف التشغيل المحتملين (الافتراضي ، صفر ، بدون قيود) ، الفترة الزمنية بالثواني للحصول على تجميع ثابت من مصدر بيانات القياس (700 افتراضياً).
الأساليب المستخدمة: الترحيل ، تغيير حالة خدمة nova (change_nova_service_state).
تعتمد استراتيجية توحيد عبء العمل على نظام VM على خوارزمية الاستدلال التي تناسب الأول ، والتي تركز على حمل وحدة المعالجة المركزية المقاسة وتحاول تقليل العقد التي تحتوي على حمل كبير جدًا أو قليل جدًا ، مع مراعاة قيود سعة الموارد. توفر هذه الاستراتيجية حلاً يؤدي إلى استخدام أكثر كفاءة لموارد نظام المجموعة باستخدام الخطوات الأربع التالية:
- مرحلة التفريغ - معالجة الموارد المفرطة الاستخدام ؛
- مرحلة التوحيد - معالجة الموارد غير المستخدمة ؛
- تحسين الحلول - تقليل عدد عمليات الترحيل ؛
- تعطيل العقد حساب غير المستخدمة.
تتطلب الاستراتيجية المقاييس التالية:
المقاييس التالية اختيارية ، ولكن تحسين دقة الاستراتيجية إذا كانت متوفرة:
معلمات الاستراتيجية: الفترة - الفترة الزمنية بالثواني للحصول على تجميع ثابت من مصدر البيانات المترية (3600 بشكل افتراضي).
يستخدم نفس الأساليب مثل الاستراتيجية السابقة. مزيد من التفاصيل
هنا .
موازنة عبء العمل - موازنة عبء العمل بين عقد حساب. والهدف من ذلك هو ثلاث استراتيجيات: استراتيجية ترحيل توازن عبء العمل ، وتثبيت عبء العمل ، واستراتيجية توازن سعة التخزين.
تعمل استراتيجية ترحيل موازنة عبء العمل على بدء عمليات ترحيل الجهاز الظاهري استنادًا إلى عبء العمل على الأجهزة الظاهرية المضيفة. يتم اتخاذ قرار النقل كلما تجاوزت نسبة استخدام وحدة المعالجة المركزية أو ذاكرة الوصول العشوائي (RAM) للعقدة الحد المحدد. في هذه الحالة ، يجب على الجهاز الظاهري المنقول تقريب العقدة من متوسط عبء العمل لجميع العقد.
متطلبات
- استخدام المعالجات المادية ؛
- على الأقل عقدتان للحوسبة المادية ؛
- مكوّن Ceilometer المثبت والمكوّن هو حساب عامل التسقيف الذي يعمل على كل عقدة حسابية ، وواجهة برمجة تطبيقات Ceilometer ، بالإضافة إلى جمع المقاييس التالية:
خيارات الاستراتيجية:
الطريقة المستخدمة هي الهجرة.
تثبيت عبء العمل - استراتيجية تهدف إلى تثبيت عبء العمل باستخدام الترحيل المباشر. تعتمد الاستراتيجية على خوارزمية الانحراف المعياري وتحدد ما إذا كان هناك احتقان في الكتلة وتستجيب لها عن طريق تحريك ترحيل الجهاز لتثبيت الكتلة.
متطلبات
- استخدام المعالجات المادية ؛
- على الأقل عقدتان للحوسبة المادية ؛
- مكوّن Ceilometer المثبت والمكوّن هو حساب عامل التسقيف الذي يعمل على كل عقدة حسابية ، وواجهة برمجة تطبيقات Ceilometer ، بالإضافة إلى جمع المقاييس التالية:
إستراتيجية توازن سعة التخزين (إستراتيجية تم تنفيذها منذ كوينز) - تقوم الإستراتيجية بنقل الأقراص اعتمادًا على حمولة تجمعات Cinder. يتم اتخاذ قرار النقل عندما يتجاوز استخدام التجمّع العتبة المحددة. يجب أن يجعل القرص المتجول البركة أقرب إلى متوسط التحميل لجميع تجمعات Cinder.
المتطلبات والقيود
- تجمعات Cinder اثنين على الأقل؛
- القدرة على ترحيل الأقراص.
- جامع نموذج البيانات الكتلة.
خيارات الاستراتيجية:
الطريقة المستخدمة هي ترحيل القرص (volume_migrate).
Noyyy Neighbour - تحديد وترحيل "جار صاخب" - جهاز ظاهري منخفض الأولوية يؤثر سلبًا على أداء جهاز ظاهري ذي أولوية عالية من وجهة نظر IPC ، مما يؤدي إلى زيادة استخدام ذاكرة التخزين المؤقت على المستوى الأخير. الإستراتيجية الخاصة: Noisy Neighbor (معلمة الإستراتيجية المستخدمة هي cache_threshold (القيمة الافتراضية هي 35) ، يبدأ الترحيل عندما ينخفض الأداء إلى القيمة المحددة. لكي تعمل الإستراتيجية ، فإن
مقاييس LLC (Last Level Cache) المضمّنة
، وأحدث خادم إنتل مع دعم CMT وأيضًا مجموعة من المقاييس التالية:
طراز بيانات الكتلة (افتراضي): أداة تجميع نماذج بيانات نظام نوفا. الطريقة المطبقة هي الهجرة.
العمل لهذا الغرض من خلال Dashboard لم يتم تنفيذه بالكامل في Queens.
التحسين الحراري - تحسين ظروف درجة الحرارة. تعد درجة حرارة المخرج (هواء العادم) أحد أنظمة القياس عن بعد الحرارية المهمة لقياس حالة الحمل الحراري / عبء الخادم. لهذا الغرض ، هناك إستراتيجية واحدة - إستراتيجية تعتمد على درجة حرارة المخرج ، والتي تتخذ قرارات بشأن نقل أعباء العمل إلى العقد ذات ظروف درجة الحرارة المواتية (أدنى درجة حرارة عند الخروج) عندما تصل درجة الحرارة عند إخراج المضيفين الأصليين إلى عتبة مخصصة.
لكي تنجح الإستراتيجية ، فأنت بحاجة إلى خادم مع تثبيت Intel Power Node Manager
3.0 أو إصدار أحدث ، وكذلك جمع المقاييس التالية:
خيارات الاستراتيجية:
الطريقة المستخدمة هي الهجرة.
تدفق الهواء الأمثل - تحسين وضع التهوية. الإستراتيجية الخاصة - تدفق الهواء الموحد باستخدام الترحيل المباشر. تبدأ الإستراتيجية ترحيل الجهاز الظاهري عندما يتجاوز تدفق الهواء من مروحة الخادم الحد المحدد.
للعمل ، تتطلب الاستراتيجية:
- الأجهزة: الحوسبة العقد <مع دعم NodeManager 3.0 ؛
- على الأقل عقدتان حسابيتان ؛
- يمكن لمكونات واجهة المستخدم الخاصة بحساب ceilometer-agent و API لـ Ceilometer التي تم تثبيتها وتهيئتها على كل عقدة حسابية الإبلاغ بنجاح عن مقاييس مثل تدفق الهواء وطاقة النظام ودرجة حرارة الدخول:
لكي تنجح الإستراتيجية ، فأنت بحاجة إلى خادم مزود بإصدار Intel Power Node Manager 3.0 أو إصدار لاحق وتثبيته.
القيود: هذا المفهوم ليس مخصصًا للإنتاج.
يُقترح استخدام هذه الخوارزمية مع عمليات تدقيق مستمرة ، حيث يتم التخطيط لجهاز ظاهري واحد فقط لكل تكرار.
الهجرات الحية ممكنة.
خيارات الاستراتيجية:
الطريقة المستخدمة هي الهجرة.
صيانة الأجهزة -
صيانة الأجهزة. الإستراتيجية المتعلقة بهذا الهدف هي ترحيل المنطقة. الإستراتيجية هي أداة لترحيل الأجهزة والأقراص الافتراضية تلقائيًا وبأدنى حد ممكن في حالة صيانة الأجهزة. تبني الإستراتيجية خطة عمل وفقًا للأوزان: سيتم التخطيط لمجموعة من الإجراءات التي لها وزن أكبر قبل الإجراءات الأخرى. يوجد خياران للتكوين: أوزان الإجراء (action_weights) والموازنة.
القيود: من الضروري ضبط جداول الإجراءات والموازنة.
خيارات الاستراتيجية:
عناصر مجموعة من حساب العقد:
عناصر مجموعة من عقد التخزين:
عناصر الكائنات ذات الأولوية:
الأساليب المستخدمة - ترحيل الأجهزة الافتراضية ، وترحيل الأقراص.
Unclassified هو هدف داعم يستخدم لتسهيل تطوير استراتيجية. لا تحتوي على مواصفات ويمكن استخدامها كلما لم يتم ربط الاستراتيجية حتى الآن بالهدف الحالي. يمكن أيضًا استخدام هذا الهدف كمرحلة انتقالية. الاستراتيجية ذات الصلة هي المحرك.
إنشاء هدف جديد
يحتوي Watcher Decision Engine على واجهة توصيل "هدف خارجي" تسمح لك بدمج هدف خارجي يمكن تحقيقه باستخدام الاستراتيجية.
قبل إنشاء هدف جديد ، يجب عليك التأكد من أن أيًا من الأهداف الحالية يلبي احتياجاتك.
إنشاء مكون إضافي جديد
لإنشاء هدف جديد ، يجب عليك: توسيع الفئة المستهدفة ، وتطبيق طريقة الفئة
get_name () لإرجاع معرف فريد للهدف الجديد الذي ترغب في إنشائه. يجب أن يتطابق هذا المعرف الفريد مع اسم نقطة الإدخال التي تعلنها لاحقًا.
بعد ذلك ، تحتاج إلى تطبيق
get_display_name () طريقة
الفصل لإرجاع اسم العرض المترجم للهدف الذي تريد
إنشاؤه ( لا تستخدم المتغير لإرجاع السلسلة المترجمة حتى يمكن تجميعها تلقائيًا بواسطة أداة الترجمة.).
قم
بتطبيق أسلوب فئة
get_transabl_display_name () لإرجاع مفتاح الترجمة (اسم العرض باللغة الإنجليزية فعليًا) للهدف الجديد. يجب أن تطابق قيمة الإرجاع السلسلة المترجمة إلى get_display_name ().
قم
بتطبيق get_efficacy_specification () طريقة لإرجاع مواصفات الأداء
لغرضك . إرجاع الأسلوب get_efficacy_specification () مثيل Unclassified () الذي يوفره Watcher. مواصفات الأداء هذه مفيدة في عملية تطوير هدفك لأنها تلبي المواصفات الفارغة.
→
مزيد من التفاصيل هنامراقب الهندسة المعمارية (مزيد من المعلومات
هنا ).

المكونات
Watcher API - أحد المكونات التي تنفذ واجهة برمجة تطبيقات REST التي يوفرها Watcher. آليات التفاعل: CLI ، البرنامج المساعد Horizon ، Python SDK.
Watcher DB - قاعدة بيانات مراقب.
Watcher Applier - أحد المكونات التي تنفذ تنفيذ خطة العمل التي أنشأها مكون قرار محرك المكون.يعد Watcher Decision Engine مكونًا مسؤولًا عن حساب مجموعة من إجراءات التحسين المحتملة لتحقيق هدف التدقيق. إذا لم يتم تحديد استراتيجية ، فإن المكون يختار بشكل مستقل أكثرها مناسبة.Watcher Metrics Publisher هو مكون يجمع ويحسب بعض المقاييس أو الأحداث وينشرها عند نقطة نهاية CEP. قد يتم توفير وظيفة الميزة أيضًا بواسطة ناشر Ceilometer.محرك معالجة الأحداث المعقدة (CEP)- محرك لمعالجة الأحداث المعقدة. لأسباب تتعلق بالأداء ، قد يكون هناك العديد من مثيلات CEP Engine التي تعمل في نفس الوقت ، كل منها يعالج نوعًا معينًا من القياس / الحدث. في نظام Watcher ، يطلق CEP نوعين من الإجراءات: - كتابة الأحداث / المقاييس المقابلة في قاعدة بيانات السلاسل الزمنية ؛ - إرسال الأحداث ذات الصلة إلى مكون Watcher Decision Engine عندما يمكن أن يؤثر هذا الحدث على نتيجة استراتيجية التحسين الحالية ، لأن نظام Openstack ليس نظامًا ثابتًا.ويتم التفاعل بين المكونات وفقا لبروتوكول AMQP.→ تكوين مراقبمخطط التفاعل مع مراقب

نتائج اختبار مراقب
- Optimization — Action plans 500 ( Queens, ), , , .
- Action details , ( Queens, ).
- Dummy () , .
- Unclassified , .
- Workload Balancing ( Storage Capacity balance) , . .
- Workload Balancing ( Workload Balance Migration Strategy) , .
- Workload Balancing ( Workload Stabilization Strategy) .
- Noisy Neighbor , .
- Hardware maintenance , ( , ).
- nova.conf ( default compute_monitors = cpu.virt_driver) .
- Server Consolidation ( Basic) .
- Server Consolidation ( VM workload consolidation) . . , , .
- Watcher ( — Optimization, - ):
[watcher_strategies.basic]
datasource = ceilometer, gnocchi - Saving Energy . , - Ironic, baremetal service.
- Thermal Optimization . , Server Consolidation ( VM workload consolidation) ( )
- تفشل عمليات تدقيق تحسين تدفق الهواء.
تواجه أخطاء إكمال التدقيق التالية أيضًا. تتبع في سجلات قرار engine.log (لم يتم تعريف حالة الكتلة).→ مناقشة الخطأ هنااستنتاج
كانت نتيجة بحثنا الذي استمر لمدة شهرين الاستنتاج الذي لا لبس فيه بأنه من أجل الحصول على نظام موازنة حمل متكامل ، يجب علينا العمل عن كثب على وضع اللمسات الأخيرة على الأدوات اللازمة لمنصة Openstack.لقد أثبتت Watcher أنها منتجًا جادًا وسريع التطور ولديه إمكانات هائلة ، وللاستخدام الكامل لها ، ستكون هناك حاجة إلى الكثير من العمل الجاد.ولكن المزيد عن ذلك في المقالات القادمة من الدورة.