في الأسبوع الماضي ، حمّل مطورو GitHub شفرة مصدر موازن التحميل - مدير GLB. عمل الفريق في هذا المشروع لعدة سنوات.
ما هو رائع هو قرارهم ، وكيف يتم ترتيبه ، ومن غيرهم قام بنقل أنظمة موازنة التحميل إلى مصدر مفتوح ، نقول أكثر.
/ Flickr / theilr / ccلماذا GitHub الخاصة موازن
يستخدم GitHub البنية التحتية السحابية
المعدنية العارية لزيادة الإنتاجية. في هذه الحالة ، يعمل البرنامج بدون مستويات إضافية من المحاكاة الافتراضية على المعدن العاري.
في السابق ، كانت الشركة تستخدم
haproxy مع تكوين خاص للأجهزة لتوفير موازنة الحمل ، مما وفر التسامح مع الأخطاء لاتصالات إيثرنت 10 جيجابت. ومع ذلك ، لم يتم قياس هذا النهج بشكل جيد (التحجيم الرأسي الضمني) ، وقرر GitHub كتابة موازن التحميل الخاص به ، والذي لا يزال بإمكانه العمل على الأجهزة منخفضة التكلفة.
ماذا يمكن وكيف يفعل مدير GLB
يضمن موازن GitHub اتصالات TCP غير منقطعة ، ويدير حمولة الخدمات الفردية ، ويقاوم هجمات DDoS ، ويمكن أن يتوسع أفقيًا. إنه "
مسجون " للعمل في مراكز البيانات ، حيث يعلن عدد كبير من الخوادم عن عنوان IP واحد عبر
BGP ، وتستخدم أجهزة التوجيه استراتيجية
ECMP .
يتم تنفيذ موازنة التحميل عند المستويين L4 و L7. على عكس الحلول مثل
LVS ، لا يوجه مدير GLB جميع الحزم إلى عقدة مدير لإعادة توزيعها بين العقد الأخرى. بدلاً من ذلك ،
يستخدم اختلاف تجزئة التجزئة (
HRW ) لإنشاء جدول ثابت لتحديد زوج من الخوادم الوكيلة (الأساسية والثانوية) لكل اتصال وارد. إذا فشل أحدهم ، يتم إرسال الحزمة إلى الثانية. يتذكر النظام هذا الاختيار ، ولا يلزم إجراءه لكل حزمة.
تتم مراقبة "صحة" الخوادم بواسطة حل glb-healthcheck ، الذي يحول الأنظمة الأساسية والثانوية في حالة حدوث مشاكل.
يراقب glb-healthcheck العملية الصحيحة لكل نفق
GUE (تغليف UDP عام) ومنفذ HTTP عشوائي لخوادم الواجهة الخلفية.
يستخدم GLB أيضًا نظام
Netfilter وأداة iptables . يحل Netfilter مهمة بسيطة: فهو يحدد ما إذا كانت حزمة TCP / IP الداخلية في كل حزمة GUE متوافقة مع مكدس Linux kernel TCP. إذا لم يكن كذلك ، فإنه يعيد توجيه الحزمة إلى الخادم الوكيل الثانوي ، بدلاً من إلغاء تغليفها محليًا.
يبدو مخطط تفاعل المكونات كما يلي:
يأمل GitHub أن يكون موازنه مفيدًا لجميع الشركات التي لديها مراكز بيانات خاصة بها.
يمكن العثور على كيفية تثبيت GLB وبدء العمل معه في
دليل البدء السريع الذي أعده المطورون .
تطورات مماثلة
في مايو ، شارك Facebook أيضًا شفرة المصدر لمكتبة موازن تحميل Katran.
يستخدمه عملاق تكنولوجيا المعلومات لتوزيع الحمل بكفاءة بين خوادم الواجهة الخلفية.
لم يتمكن الموازن السابق للشركة - L4LB - من التعامل مع المهمة ، لأنها تتطلب خوادم مخصصة للعمل ، مما زاد من الحمل على الشبكة. لحل هذه المشكلة ، طورت الشركة Katran. تم إطلاقه باستخدام إطار عمل مسار بيانات eXpress والجهاز الظاهري eBPF. يعمل VM على توسيع الوظائف العامة من خلال تشغيل البرامج في نقاط فردية على Linux kernel.
/ Flickr / da sal / ccيقوم الموازن المحدث
بتوزيع الحمل بكفاءة أكبر على البنية التحتية ويزيد من سرعة معالجة الحزم.
تم تحميل مطوري كود المصدر على جيثب.
لدى نظام كاتران اختلافات
عديدة عن الحل المقترح في جيثب. على سبيل المثال ، يستخدم Facebook أنفاق XDP و IPIP التي تعمل مع نواة Linux. على النقيض من ذلك ، لجأ GLB لمساعدة DPDK لمعالجة الحزم من مساحة المستخدم.
أضاف Theo Julienne ، مطور GitHub ، أن
DPDK يسمح لك بالتعامل مع كميات كبيرة من حركة المرور الواردة. وهذا يضمن أداءً عاليًا (اتصال بسرعة 10 جيجابت) حتى في بيئات العمل المعقدة ويوفر بعض الحماية من هجمات DDoS.
إن نقل أدوات قوية مثل GLB و Katran إلى مصدر مفتوح سيفتح فرصًا جديدة لشركات تكنولوجيا المعلومات الأخرى وسيساهم في التطور الأسرع لنظام تكنولوجيا المعلومات في العالم.
ملحوظة: بعض المقالات الإضافية من مدونة IaaS الأولى للشركات: