موازنة الأحمال
- 9 دقائق
إن التوسع من خلال جلب أجهزة ظاهرية جديدة وتوصيلها بالإنترنت عندما تزداد نسبة استخدام الشبكة هو استراتيجية فعالة لإجراء التحجيم لتلبية الطلب. تُشكل سرعة تزويد الأجهزة الظاهرية عنصرًا أساسيًا في تزويد المرونة. إلا أن جلب الخوادم الإضافية وتوصيلها بالإنترنت لا يكون «مفيدًا» ما لم يتم توزيع نسبة استخدام الشبكة بين تلك الخوادم. بوجه عام، يساعد هذا النظام على معالجة الحمل المتزايد. لذلك تُعد موازنة التحميل حاسمة للمرونة، حيث إنها قادرة على ضبط عدد الموارد المُخصصة لإحدى المهام بشكل ديناميكي.
تنشأ الحاجة إلى موازنة التحميل من متطلبين أساسيين. أولاً، يتم تحسين معدل النقل عن طريق المعالجة المتوازية. إذا كان هناك خادم واحد قادر معالجة 5000 طلب في وحدة زمنية واحدة، فإن الـ 10 خوادم التي تمت موازنة تحميلها على نحو مثالي يمكنها معالجة 50,000 طلب في الوحدة الزمنية الواحدة. ثانيًا، تؤدي الموارد التي تتم موازنة تحميلها إلى قابلية وصول عالية. بدلاً من إعادة توجيه طلب إلى خادم يواجه مشكلة بالفعل في معالجة الأحمال، فإن أداة موازنة التحميل يمكنها توجيه الطلب إلى خادم يتميز بقدر حمل أخف. بالإضافة إلى ذلك، إذا انقطع اتصال الخادم عن الإنترنت، واستطاعت أداة موازنة التحميل اكتشاف ذلك، فإنه يمكنها توجيه الطلبات إلى خوادم أخرى.
ما المقصود بموازنة التحميل؟
شكل معروف من أشكال موازنة التحميل هو DNS الترتيب الدوري، والذي تستخدمه العديد من خدمات الويب الكبيرة لتوزيع الطلبات بين عدة خوادم. على وجه التحديد، هناك العديد من خوادم الواجهة الأمامية التي تتشارك اسم DNS، وكل منها له عنوان IP فريد خاص بها. لموازنة عدد الطلبات على كل خادم من خوادم الويب، تقوم الشركات الكبيرة مثل Google بإبقاء وتجميع مجموعة من عناوين IP لكل إدخال DNS. عندما يقدم أحد العملاء طلباً (على سبيل المثال، لموقع www.google.com)، فإن DNS الخاص بـ Google يحدد عنواناً واحداً من العناوين المتوفرة ضمن هذه المجموعة ويرسلها إلى العميل. تتمثل أبسط استراتيجية تم تعيينها لإرسال عناوين IP في استخدام قائمة انتظار مُرتبة دوريًا، حيث يتم إرسال قائمة عناوين بعد كل استجابة DNS.
قبل ظهور خدمة السحابة، كانت موازنة تحميل DNS طريقة بسيطة لتقليل زمن انتقال الاتصالات البعيدة. تمت برمجة مُرسل خادم DNS للاستجابة بعنوان IP الخاص بالخادم الأقرب إلى العميل جغرافيًا. وأسهل طريقة لتنفيذ ذلك، كانت تتمثل في الاستجابة بعنوان IP من المجموعة الأقرب لعنوان IP الخاص بالعميل من الناحية الرقمية. لم يكن هذا الأسلوب موثوقًا به، حيث لا يتم توزيع عناوين IP بشكل هيكلي عام. أما التقنيات المُستخدمة حاليًا، فهي تقدمه أكثر وتعتمد على التخطيط البرمجي لعناوين IP للمواقع بناءً على المخططات الفعلية لموفري خدمة الإنترنت (ISP). بحكم أنه يتم تنفيذ هذا التخطيط باعتباره بحثًا برمجيًا مكلفًا، فإن هذا الأسلوب يحقق نتائج أفضل ولكن تكون الحوسبة فيه باهظة. ومع ذلك، فقد تم إهلاك تكلفة البحث البطيء لأن البحث عن DNS يحدث فقط عندما يقوم العميل بإجراء أول اتصال بالخادم. تحدث جميع الاتصالات اللاحقة بصفة مباشرة بين العميل والخادم الذي يمتلك عنوان IP المُرسل. يتوفر مثال على مخطط موازنة تحميل DNS في الشكل 9.
الشكل 9: موازنة التحميل في بيئة سحابية.
تتمثل سلبيات هذا الأسلوب في فشل الخادم، حيث يعتمد التبديل إلى عنوان IP مختلف على تكوين مدة البقاء (TTL) لذاكرة التخزين المؤقت لـ DNS. من المعروف عن إدخالات DNS أنها مستدامة، وأن نشر التحديثات يستغرق أكثر من أسبوع واحد. هذا يعني أنه من الصعب أن يتم «إخفاء» عطل الخادم عن العميل. إن تقليل صلاحية مدة البقاء (TTL) لعنوان IP في الذاكرة المؤقتة يقوم بتحسين ذلك على حساب الأداء وزيادة عدد مرات البحث.
عادةً ما تشير موازنة التحميل إلى استخدام مثيل مُخصص (أو زوج من المثيلات) لإرسال الطلبات الواردة إلى الخوادم الخلفية. لكل طلب وارد على منفذ مُحدد، تقوم أداة موازنة التحميل بإعادة توجيه نسبة استخدام الشبكة إلى خادم واحد من الخوادم الخلفية بناءً على استراتيجية التوزيع. بالقيام بذلك، تحافظ أداة موازنة التحميل على طلب بيانات التعريف بما فيها معلومات مثل عناوين بروتوكول التطبيق (على سبيل المثال، عناوين HTTP). في هذه الحالة، لا تشكل المعلومات التالفة أي مشكلة لأن كل طلب يعبر من خلال أداة موازنة التحميل.
على الرغم من أن جميع أنواع موازنات تحميل الشبكة ستقوم بإعادة توجيه الطلبات جنبا إلى جنب مع أي سياق إلى الخوادم الخلفية، عندما يتعلق الأمر بخدمة الاستجابة مرة أخرى للعميل، فقد تستخدم إحدى الاستراتيجيتينالأساسيتين 1:
إسناد وكيل - في هذه الطريقة، تتلقى أداة موازنة التحميل الاستجابة من الوجهة الخلفية ثم تعيدها إلى العميل. تتصرف أداة موازنة التحميل بوصفها وكيل الويب القياسي، وتتولى المسؤولية في نصفَي عملية الشبكة، وبالأخص إعادة توجيه الطلب إلى العميل وإرسال الاستجابة مجددًا.
نقل بروتوكول تحكم الإرسال (TCP) - في هذه الطريقة، يتم نقل اتصال TCP مع العميل إلى الخادم الخلفي، ثم يقوم الخادم بعد لك بإرسال الاستجابة مباشرة إلى العميل، دون أن تمر عبر أداة موازنة التحميل.
يتم توضيح الاستراتيجية الأخيرة في الشكل 10.
الشكل 10: آلية تسليم TCP من المرسل إلى الخادم الخلفي.
مزايا موازنة التحميل
تتمثل إحدى مزايا موازنة التحميل في مساعدتها على إخفاء حالات الفشل في النظام. طالما كان يتعرض العميل لنقطة نهائية منفردة تمثل موارد متعددة، يمكن إخفاء حالات فشل الموارد المنفردة من العميل عن طريقة خدمة الطلبات باستخدام الموارد الأخرى. وبالرغم من ذلك، فإن أداة موازنة التحميل أصبحت نقطة فشل منفردة في حد ذاتها الآن. إذا فشلت الأداة لأي سبب من الأسباب، وإن كانت الخوادم الخلفية ما زالت تعمل، فإنه لن تتم معالجة أي طلبات من العملاء. وبناءً على ذلك، عادةً ما يتم تطبيق أدوات موازنة التحميل في أزواج من أجل تحقيق قابلية وصول عالية.
والأهم من ذلك، تعمل موازنة التحميل على تحسين الاستجابة من خلال توزيع أحمال العمل عبر العديد من موارد الحوسبة في السحابة. إن امتلاك مثيل حوسبة واحد في السحابة يخضع للعديد من القيود. ناقشت الوحدات النمطية السابقة القيود الفعلية المفروض على الأداء، حيث يلزم وجود المزيد من الموارد لزيادة أحمال العمل. باستخدام موازنة التحميل، يتم توزيع أحمال العمل الأكبر حجمًا عبر موارد متعددة، بحيث يمكن لكل مورد أن يفي بالطلبات الخاصة به بشكل مستقل ومتوازي، ما يؤدي إلى تحسين معدل النقل للتطبيق. تعمل موازنة التحميل أيضًا على تحسين متوسط أوقات الاستجابة نظرًا إلى وجود المزيد من الخوادم لمعالجة حمل العمل.
وتعتبر عمليات فحص السلامة أساسية لتنفيذ استراتيجيات موازنة التحميل بنجاح. يجب أن تعرف أداة موازنة التحميل متى يصبح مورد غير متوفر، بحيث يمكنها تجنب إعادة توجيه نسبة استخدام الشبكة إلى ذلك المورد. إن مراقبة ارتداد اختبار الاتصال، والتي تقوم فيها أداة موازنة التحميل «باختبار اتصال» الخوادم بطلبات بروتوكول التحكم برسائل الإنترنت (ICMP)، هي واحدة من الأساليب الشهيرة لفحص سلامة الموارد المحددة. بالإضافة إلى مراعاة سلامة المورد عند إعادة توجيه نسبة استخدام الشبكة إليه، تُشكل بعض استراتيجيات موازنة التحميل عاملاً في قياسات أخرى مثل معدل النقل وزمن الانتقال واستخدام معالج CPU.
يجب أن تضمن أدوات موازنة التحميل قابلية الوصول العالية. إن أبسط طريقة للقيام بذلك هي إنشاء مثيلات موازنة تحميل متعددة (يمتلك كل منها عنوان IP فريدًا) وربطه بعنوان DNS واحد. كلما فشلت أداة موازنة التحميل لأي سبب من الأسباب، فإنه يتم استبدلها بأداة جدية، ويتم تمرير نسبة استخدام الشبكة إلى مثيل تجاوز الفشل مع التأثير الأدنى للأداء. وفي نفس الوقت، يمكن تكوين مثيل أداة موازنة تحميل جديدة لاستبدال الأداة التي فشلت، ويجب تحديث سجلات DNS على الفور.
بالإضافة إلى توزيع طلبات التوزيع بين الخوادم الخلفية، فإن أدوات موازنة التحميل عادةً ما تستخدم الآليات لتقليل الحمل على الخوادم وتحسين معدل النقل الإجمالي. وتشمل بعض هذه الآليات ما يلي:
تفريغ SSL - تتحمل اتصالات HTTPS تكلفة أداء إضافية نظرا لتشفير نسبة استخدام الشبكة عبرها. بدلاً من خدمة جميع الطلبات عبر طبقة مآخذ توصيل آمنة (SSL)، فإنه يمكن إجراء توصيل العميل بأداة تحميل الموازنة عبر SSL، بينما يتم إنشاء طلبات إعادة التوجيه لكل خادم عبر HTTP غير مشفر. هذه التقنية تقلل من التحميل على الخوادم بشكل كبير. بالإضافة إلى ذلك، يتم الحفاظ على الأمان طالما لم يتم إجراء طلبات إعادة التوجيه عبر شبكة اتصال مفتوحة.
التخزين المؤقت ل TCP - استراتيجية لإلغاء تحميل العملاء الذين يعانون من اتصالات بطيئة بموازن التحميل لتخفيف الخوادم التي تخدم الاستجابات لهؤلاء العملاء.
التخزين المؤقت - في بعض السيناريوهات، يمكن لموازن التحميل الاحتفاظ بذاكرة تخزين مؤقت للطلبات الأكثر شيوعا (أو الطلبات التي يمكن معالجتها دون الانتقال إلى الخوادم، مثل المحتوى الثابت) لتقليل الحمل على الخوادم.
تشكيل نسبة استخدام الشبكة - يمكن لموازن التحميل استخدام هذه التقنية لتأخير أو إعادة تعيين تدفق الحزم لتحسين نسبة استخدام الشبكة لتكوين الخادم. يؤثر ذلك على جودة الخدمة (QoS) لبعض الطلبات، ولكنه يضمن إمكانية خدمة الحمل الوارد.
لا بُد أن تتذكر أن موازنة التحميل تعمل فقط في حال لم تكن موازنة التحميل نفسها تواجه حملاً ثقيلاً للغاية. أما بعكس ذلك، فستصبح أداة موازنة التحميل مزدحمة. لحسن الحظ، عادةً ما تميل أدوات موازنة التحميل إلى إجراء معالجة صغيرة على الطلبات التي تتلقاها، بدلاً من الاعتماد على الخوادم الخلفية للقيام بالعمل الفعلي لتحويل الطلبات إلى استجابات.
الإرسال المنصف
هناك العديد من استراتيجيات موازنة التحميل المستخدمة في السحابة. واحد من الأكثر شيوعا هو الإرسال العادل، والذي يستخدم خوارزمية الترتيب الدوري بسيطة لتوزيع نسبة استخدام الشبكة بالتساوي بين جميع العقد. وهي لا تأخذ في الاعتبار استخدام الموارد المنفردة في النظام، كما أنها لا تمثل عاملاً في وقت تنفيذ الطلب. يحاول هذا الأسلوب إشغال كل عقدة في النظام، وهو إحدى الطرق البسيطة التي يمكن تنفيذها.
يستخدم نظام AWS هذا النهج في عرض Elastic Load Balancer (ELB) الذي يقدمه. يوفر ELB أدوات موازنة تحميل تعمل على موازنة نسبة استخدام الشبكة عبر مثيلات EC2 المتصلة. تشكل أدوات موازنة التحميل، جوهريًا، في حد ذاتها مثيلات EC2 مزوَّدة بخدمة لتوجيه نسبة استخدام الشبكة على وجه الخصوص. بينما يُوسع نطاق الموارد خلف موازن التحميل، تُحدث عناوين IP الخاصة بالموارد الجديد على سجل DNS لموازن التحميل. يستغرق إكمال هذه العملية عدة دقائق، لأنها تتطلب وقتًا لإجراء كلٍ من المراقبة والتزويد. يُشار إلى هذه الفترة من التحجيم بـ «إعداد» أداة موازنة التحميل، وهي وقت انتظار إعداد أداة موازنة التحميل للتعامل مع الحمل المرتفع.
بالإضافة إلى ذلك، تقوم أدوات موازنة التحميل في نظام AWS بمراقبة الموارد المتصلة بها حتى يقوم توزيع حمل العمل بإجراء فحص السلامة. يتم استخدام آلية ارتداد اختبار الاتصال لضمان سلامة جميع الموارد. يستطيع مستخدمو ELB تكوين معلمات فحص السلامة من خلال تحديد التأخيرات وعدد مرات إعادة المحاولة.
التوزيع القائم على التجزئة
يحاول هذا النهج التأكد من أن الطلبات الواردة من نفس العميل لمدة جلسة العمل يتم توجيهها إلى نفس الخادم كل مرة بواسطة تجزئة بيانات التعريف التي تُحدد كل طلب، واستخدام التجزئة لاختيار خادم. إذا تم إجراء التجزئة بشكل صحيح، فإنه يتم توزيع الطلبات بالتساوي نسبيًا بين الخوادم. تتمثل إحدى فوائد هذا النهج في أنها مناسبة لتطبيقات جلسات العمل، والتي يمكنها تخزين بيانات جلسة العمل في الذاكرة بدلاً من كتابتها إلى مخزن بيانات مشترك مثل قاعدة بيانات أو ذاكرة التخزين المؤقت Redis. ولكن يوجد جانب سلبي، وهو أنه يجب تجزئة كل طلب، ما يوفر زمن انتقال قليل.
يستخدم Azure Load Balancer آلية مستندة إلى التجزئة لتوزيع الأحمال. تقوم هذه الآلية بإنشاء تجزئة لكل طلب استنادًا إلى عنوان IP المصدر، والمنفذ المصدر، وعنوان IP الوجهة، والمنفذ الوجهة، ونوع البروتوكول لضمان أن كل حزمة بيانات من نفس جلسة العمل تنتقل إلى نفس الخادم الخلفي في الظروف العادية. يتم اختيار وظيفة التجزئة، بحيث يتم توزيع الاتصالات بالخادم على نحو عشوائي.
استراتيجيات موازنة التحميل الأخرى
إذا تعطّل خادم بعينه في أثناء معالجة أحد الطلبات (أو مجموعة من الطلبات)، فإن أدوات موازنة التحميل التي تستخدم الترتيب الدوري أو خوارزميات الإرسال المستندة إلى التجزئة ستقوم بإعادة توجيه الطلبات على أي حال. وهناك استراتيجيات أخرى أكثر تقدمًا لتحقيق لموازنة الأحمال عبر موارد متعددة، وتقوم بأخذ السعة في الحسبان. اثنان من القياسات الأكثر استخدامًا لقياس السعة:
وقت تنفيذ الطلب - تستخدم الاستراتيجيات المستندة إلى هذا المقياس خوارزمية جدولة الأولوية، حيث يتم استخدام أوقات تنفيذ الطلب لاختيار وجهة الطلبات الفردية. يكمن التحدي الرئيسي لاستخدام هذا النهج في قياس أوقات التنفيذ على نحو دقيق. تستطيع أداة موازنة التحميل أن تخمن أوقات التنفيذ عن طريق استخدام جدول متضمّن في الذاكرة (وتحديثه باستمرار) يقوم بتخزين الفروق بين أوقات إعادة توجيه الطلب إلى كل خادم ووقت رجوعه.
استخدام الموارد - تستخدم الاستراتيجيات المستندة إلى هذا المقياس استخدام وحدة المعالجة المركزية لتحقيق التوازن بين الاستخدام عبر العقد. تحتفظ أداة موازنة التحميل بقائمة مرتّبة من الموارد استنادًا إلى استخدامها، وتقوم بإعادة توجيه كل طلب تستقبله إلى المورد الذي يواجه أقل قدر من الحمل.
إن موازنة التحميل حاسمة لتنفيذ خدمات السحابة القابلة للتوسع. من دون توافر طريقة فعالة لتوزيع نسبة استخدام الشبكة بين الموارد الخلفية، تصبح هناك قيود شديدة على المرونة التي يتم تحقيقها من خلال إنشاء الموارد عند وجود حاجة إليها وإلغاء توافرها عندما لا توجد حاجة إليها.
المراجع
- آرون ، موهيت وساندرز ، دارين ودروشل ، بيتر وزوينبويل ، ويلي (2000). "توزيع الطلبات المدرك للمحتوى والقابل للتطوير في خوادم الشبكة المستندة إلى شبكة نظام المجموعة". من وقائع المؤتمر التقني السنوي 2000 USENIX.
اختبر معلوماتك
الملاحظات
هل كانت هذه الصفحة مفيدة؟
لا
هل تحتاج إلى مساعدة مع هذا الموضوع؟
هل تريد محاولة استخدام Ask Learn لتوضيح هذا الموضوع أو إرشادك خلاله؟