ما المقصود بقاعدة بيانات etcd؟

1 أكتوبر 2021

ما المقصود بقاعدة بيانات etcd؟

etcd هو مخزن مفتوح المصدر موزع قائم على المفتاح-القيمة، يُستخدم لحفظ المعلومات الهامة التي تحتاجها الأنظمة الموزعة للاستمرار في العمل وإدارتها. وعلى وجه الخصوص، فهو يدير بيانات التكوين وبيانات الحالة والبيانات الوصفية لمنصة Kubernetes، وهي منصة تنسيق الحاويات الشهيرة.

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

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

تؤدي etcd دورًا مماثلاً لمنصة Cloud Foundry - المنصة كخدمة (PaaS) متعددة السحابة المفتوحة المصدر - وهو خيار قابل للتطبيق لتنسيق النظام والبيانات الوصفية المهمة عبر مجموعات أي تطبيق موزع. يأتي اسم "etcd" من اصطلاح التسمية داخل بنية دليل Linux: في UNIX، توجد كل ملفات تكوين النظام لنظام واحد في مجلد يسمى ‎‏"/etc;"؛ ويرمز الحرف "d" إلى "distributed (الموزعة)".

تصميم ثلاثي الأبعاد لكرات تتدحرج على مسار

أحدث الأخبار والرؤى حول الذكاء الاصطناعي 


تتوفر معارف وأخبار منسقة بمهارة حول الذكاء الاصطناعي والسحابة وغيرها في نشرة Think الإخبارية الأسبوعية. 

ما أسباب استخدام قاعدة بيانات ETCD؟

ليس بالأمر الهين أن تكون بمثابة أساس البيانات التي تحافظ على تشغيل حمل التشغيل الموزع. لكن etcd مبني لهذه المهمة، فهو مصمم من الألف إلى الياء ليتمتع بالخصائص التالية:

  • مكرر بالكامل: تتمتع كل عقدة في مجموعة etcd بإمكانية الوصول إلى مخزن البيانات الكامل.

  • متوفر بشكل كبير: صُمم etcd بحيث لا يحتوي على نقطة فشل واحدة ويتحمل بأمان أعطال الأجهزة وأقسام الشبكة.

  • متناسق بشكل موثوق: تعرض كل "قراءة" للبيانات أحدث "كتابة" للبيانات عبر كل المجموعات.

  • سريع: ِتمتاز etcd بمعدل 10000 عملية كتابة في الثانية.

  • آمن: تدعم etcd أمان طبقة النقل (TLS) التلقائي ومصادقة شهادة العميل الاختيارية لطبقة المقابس الآمنة (SSL). نظرًا لأن etcd تخزن بيانات حيوية وحساسة للغاية، يجب على المسؤولين تنفيذ ضوابط وصول قائمة على الأدوار داخل النشر والتأكد من أن أعضاء الفريق الذين يتفاعلون مع etcd مقيدون بأقل مستوى من امتيازات الوصول اللازم لأداء وظائفهم.

  • بسيط: يمكن لأي تطبيق، من تطبيقات الويب البسيطة إلى محركات تنسيق الحاويات شديدة التعقيد مثل Kubernetes، قراءة البيانات أو كتابتها إلى etcd باستخدام أدوات HTTP/JSON القياسية.

لاحظ أنه نظرًا لأن أداء etcd يعتمد اعتمادًا كبيرًا على سرعة قرص التخزين، يوصى بشدة باستخدام محركات أقراص الحالة الصلبة (SSDs) في بيئات etcd.

Mixture of Experts | بودكاست

فك تشفير الذكاء الاصطناعي: تقرير إخباري أسبوعي

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

خوارزمية توافق Raft

بُني etcd على خوارزمية توافق Raft لضمان اتساق مخزن البيانات عبر كل العقد في مجموعة - وهو أمر أساسي لنظام موزع مُتحمّل للأعطال.

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

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

etcd وKubernetes

تم تضمين etcd ضمن مكونات Kubernetes الأساسية ويعمل كمخزن أساسي للقيمة الرئيسية لإنشاء مجموعة Kubernetes فعالة ومتسامحة مع الأخطاء. يخزن خادم Kubernetes API بيانات حالة كل مجموعة في etcd. تستخدم Kubernetes وظيفة «watch» الخاصة بقاعدة بيانات etcd لمراقبة هذه البيانات وإعادة تكوين نفسها عند حدوث تغييرات. حيث تقوم وظيفة «watch» بتخزين القيم التي تمثل الحالة الفعلية والمثالية للمجموعة ويمكنها بدء الاستجابة عند حدوق تغيير.

للحصول على نظرة عامة رفيعة المستوى حول كيفية إدارة Kubernetes للمجموعات والخدمات والعقدة العاملة، يُرجى مشاهدة الفيديو "شرح Kubernetes":

CoreOS ومحفوظات قاعدة بيانات ETCD وصيانتها

تم إنشاء قاعدة بيانات ETCD بواسطة الفريق المسؤول عن تصميم CoreOS Linux، وهو نظام تشغيل حاوية واسع الاستخدام يمكن تشغيله وإدارته بكفاءة على نطاق واسع. فقد صمموا في الأصل قاعدة بيانات ETCD على نظام Raft لتنسيق نسخ متعددة من حاوية Linux في وقت واحد، وذلك لضمان عدم انقطاع العمل.

في ديسمبر 2018، تبرع الفريق بقاعدة بيانات ETCD لصالح مؤسسة Cloud Native Computing Foundation (CNCF)، وهي مؤسسة محايدة غير ربحية تحافظ على مصدر الرمز الخاصة بقاعدة بيانات ETCD، والنطاقات، والخدمات المستضافة، والبنية التحتية السحابية، وغيرها من أصول المشروع كموارد مفتوحة المصدر لمجتمع التطوير السحابي القائم على الحاويات. تم دمج CoreOS مع Red Hat.

مقارنة بين قاعدة بيانات ETCD وZooKeeper وConsul

تم تطوير قواعد بيانات أخرى لإدارة معلومات الإحداثيات بين مجموعات التطبيقات الموزعة. النوعان الأكثر شيوعًا مقارنةً بقاعدة بيانات ETCD هما ZooKeeper وConsul.

ZooKeeper

تم إنشاء ZooKeeper في الأصل لتنسيق بيانات التكوين والبيانات الوصفية عبر مجموعات Apache Hadoop. (Apache Hadoop هو إطار عمل مفتوح المصدر، أو مجموعة من التطبيقات، لتخزين كميات كبيرة من البيانات ومعالجتها على مجموعات من الأجهزة التجارية.) ZooKeeper أقدم من قاعدة بيانات ETCD، وقد استفاد تصميم قاعدة بيانات ETCD من التعامل مع ZooKeeper.

ونتيجة لذلك، تتمتع قاعدة بيانات ETCD بقدرات مهمة التي لا تتمتع بها ZooKeeper. على سبيل المثال، على عكس ZooKeeper، يمكن لقاعدة بيانات ETCD القيام بما يلي:

  • السماح بإعادة التشكيل الديناميكي لعضوية المجموعة.

  • الحفاظ على ثباتك في أثناء إجراء عمليات القراءة/الكتابة تحت الأحمال العالية.

  • الحفاظ على مزامنة نموذج بيانات التحكم متعدد الإصدارات.

  • تقديم مراقبة رئيسية موثوقة لا تسقط الأحداث أبدًا من دون إعطاء إشعار.

  • استخدام أساسيات التزامن التي تفصل الاتصالات عن جلسات العمل.

  • دعم مجموعة كبيرة من اللغات وإطارات العمل (لدى ZooKeeper بروتوكول Jute RPC مخصص يدعم ارتباطات لغوية محدودة).

Consul

 Consul هي خدمة لشبكات الأنظمة الموزعة، توجد قدراتها في المنتصف بين قدرات قاعدة بيانات ETCD وخدمة Istio لـ Kubernetes. مثلها مثل قاعدة بيانات ETCD، تتضمن Consul مخزن مفتاح-قيمة موزعًا استنادًا إلى خوارزمية Raft وتدعم واجهة برمجة تطبيقات HTTP/JSON. وكلاهما يوفر تكوينًا ديناميكيًا لعضوية المجموعة، لكن Consul لا تتحكم بالفعالية نفسها في الإصدارات المتزامنة المتعددة لبيانات التكوين، كما أن الحد الأقصى لحجم قاعدة البيانات التي سيعمل معها بشكل موثوق أصغر.

مقارنة بين قاعدة بيانات ETCD وRedis

مثلها مثل قاعدة بيانات ETCD، فإن Redis هي أداة مفتوحة المصدر، بيد أن وظائفهما الأساسية مختلفة.

Redis هو مخزن بيانات في الذاكرة ويمكن أن يعمل كقاعدة بيانات أو ذاكرة تخزين مؤقت أو وسيط رسائل. يدعم Redis مجموعة متنوعة من أنواع البيانات والهياكل أكثر مقارنة بقاعدة بيانات ETCD، ويتميز بأداء قراءة/كتابة أسرع بكثير.

ومع ذلك لدى قاعدة بيانات ETCD قدرة فائقة على تحمّل الأخطاء وقدرات أقوى على استمرار توافر البيانات، والأهم من ذلك أن قاعدة بيانات ETCD تُبقي جميع البيانات المخزنة على القرص، ما يعني التضحية بالسرعة مقابل موثوقية أكبر واتساق مضمون. ولهذه الأسباب، فإن Redis أكثر ملاءمة للعمل كنظام تخزين مؤقت للذاكرة الموزعة من أجل تخزين معلومات تكوين النظام وتوزيعها.

حلول ذات صلة
برامج وحلول قواعد البيانات

استخدم حلول قاعدة بيانات IBM لتلبية احتياجات أحمال التشغيل المتنوعة عبر السحابة الهجينة.

استكشاف حلول قواعد البيانات
قاعدة بيانات السحابة الأصلية مع IBM Db2

اكتشف، IBM Db2، وهي قاعدة بيانات علائقية توفر مستوى عالٍ من الأداء وقابلية التوسع والموثوقية لتخزين وإدارة البيانات المنظمة. وتتوفر كنظام SaaS على IBM Cloud أو للاستضافة الذاتية.

اكتشف Db2
خدمات الاستشارات في مجال البيانات والتحليلات

استفِد من قيمة بيانات المؤسسة مع IBM Consulting لبناء مؤسسة تعتمد على الرؤى لتحقيق ميزة تنافسية في الأعمال.

اكتشف خدمات التحليلات
اتخِذ الخطوة التالية

استخدم حلول قاعدة بيانات IBM لتلبية احتياجات أحمال التشغيل المتنوعة عبر السحابة الهجينة.

استكشاف حلول قواعد البيانات اكتشف IBM Db2