العودة إلى المدونة

كيفية إعداد وتحسين MongoDB في Ubuntu في السحابة العامة

كيفية إعداد وتحسين MongoDB في Ubuntu في السحابة العامة

تنطوي الأعمال التجارية على الكثير من البيانات، مما يجعل مشكلة التعامل معها وإدارتها أكثر صعوبة. تقليديًا، كان قطاع الصناعة يستخدم أنظمة RDBMS على مدى عقود الآن، ولكن مع ظهور Big Data في القرن الحادي والعشرين، ظهرت قواعد بيانات NoSQL (ليس فقط SQL) في الصورة للبيانات غير المهيكلة وشبه المهيكلة واسعة النطاق.

في هذه المقالة، سأقوم بإعداد عنقود MongoDB.

MongoDB هي قاعدة بيانات مستندات NoSQL مجانية ومفتوحة المصدر، وهي مستخدمة على نطاق واسع نظرًا للمستوى العالي من القابلية للتوسع والمرونة التي توفرها.

لنشر MongoDB في بيئة الإنتاج، يُنصح باستخدام Replica Sets. تعد Replica sets مكافئًا في MongoDB لإعداد Master/Slave في العالم العلائقي، ولكن في المقابل، فإن إعدادها سهل للغاية وبدون عناء، حيث أن كل شيء مدمج بها. لمزيد من المعلومات حول Replica Sets، راجع تعريف TutorialsPoint’s لعملية النسخ المتماثل.

التخطيط لعنقود خادم MongoDB السحابي الخاص بك

سأقوم بإنشاء عنقود مكون من 3 عقد. من المهم منحها موارد متساوية لأن أيًا منها يمكن أن يصبح الخادم الأساسي (أي الرئيسي). يمكن لهذه العقد أو الأجهزة أن تعمل على أي نظام تشغيل، ولكن في هذا البرنامج التعليمي، سأستخدم Ubuntu 18.04 LTS. لمعرفة كيفية إرفاق وإعداد الصورة المثبتة مسبقًا من مكتبة CloudSigma’s، يمكنك الرجوع إلى هذا البرنامج التعليمي.

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

من المهم أيضًا استخدام إصدار 64 بت من Linux. والسبب ببساطة هو أن MongoDB لا يعمل بشكل جيد على أنظمة 32 بت (المزيد عن ذلك هنا).

تثبيت MongoDB في السحابة

هذا القسم مباشر للغاية. إما أن تستخدم أحد صور Ubuntu 18.04 المعدة مسبقًا أو تقوم بتثبيتها بنفسك.

إن تكوين CPU و RAM والقرص هو أمر فردي للغاية ويعتمد على حجم الضغط لديك. بالنسبة للتثبيت الصغير، يجب أن يكون CPU بتردد 4 GHz و RAM بحجم 4 GB وقرص بحجم 10 GB (للنظام) كافيًا. عند إرفاق محركات الأقراص الخاصة بك، تأكد من أنك تستخدم VirtIO. إذا كنت تستخدم IDE، فسيتأثر الأداء بشكل كبير. أيضًا، نظرًا لأنك تقوم بإنشاء Replica Set، فأنت بحاجة إلى أن تكون جميع العقد (وخوادم التطبيقات) على نفس شبكة VLAN.

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

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

مع وضع هذا في الاعتبار، فإن الأسهل هو مجرد إضافة محرك الأقراص هذا بعد إعداد الخوادم. في الوقت الحالي، فلنركز فقط على تثبيت النظام. إذا كنت تقوم بالتثبيت بنفسك (بدلاً من استخدام الأنظمة المعدة مسبقًا)، فإنني أوصي بالضغط على F4 في قائمة التمهيد واختيار ‘تثبيت جهاز افتراضي بالحد الأدنى’.

أقوم بإنشاء 3 أجهزة، لكل منها المواصفات التالية:

  • CPU: 4 GHz
  • RAM: 4 GB
  • SSD: 10 GB (Ubuntu 18.04 LTS)، و 20 GB (محرك أقراص إضافي)

كما هو موضح في جزء SSD، أقوم بإرفاق محرك أقراص بحجم 10 GB مثبت عليه نظام Ubuntu 18.04 LTS.

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

لإضافة القرص، ما عليك سوى الانتقال إلى قسم ‘Drives’، والنقر على أيقونة ‘Create a new drive’ في الأعلى، وتسمية القرص الجديد وتحديد حجمه بـ 20 جيجابايت. بمجرد حفظه، انتقل إلى الجهاز الفردي الذي تريد إرفاقه به، وتحت قسم الأقراص في تفاصيل ذلك الجهاز، يمكنني النقر على ‘Attach a drive’ واختيار القرص.

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

عندما أقوم بتنفيذ الأمر، أحصل على المخرجات التي توضح الأقراص والأجهزة الموجودة على جهازي.

MongoDB

في الصورة، قمت بتحديد قرص بحجم 10 جيجابايت كقرص تم تثبيت نظام التشغيل الخاص بنا عليه. ثم هناك قرص آخر بحجم 20 جيجابايت تم إرفاقه الآن. موقع القرص هو /dev/vdb. يمكنك إنشاء قسم على هذا القرص باستخدام الأوامر التالية:

سيؤدي ذلك إلى فتح أداة fdisk، وهي أداة سطر أوامر توفر وظائف تقسيم القرص، حيث يمكنك إنشاء أقسام على قرصنا. ستظهر لك رسالة مطالبة “Command (m for help):” حيث يتعين عليك إدخال n لإنشاء قسم جديد، ثم استمر في الضغط على enter لقبول القيم الافتراضية. وبعد إنشاء القسم، أدخل w لكتابة التغييرات. سيبدو الأمر كالتالي:

لقد تم إنشاء قسم جديد 1 من نوع ‘Linux’ وبحجم 20 جيجابايت ثنائية (GiB). الآن بعد أن تم إنشاء القسم، فلنقم بإنشاء تجمع LVM:

لقد قمت بإدخال ‘19.5g’ لأن حجم القسم الخاص بي هو 20g. بعد ذلك، قم بتنفيذ الأمر التالي لمعرفة اسم القرص:

بعد ذلك، قم بتهيئة القرص باستخدام طريقة ext4 بالأمر التالي:

بعد ذلك، دعنا ننشئ موقعًا لتركيب القرص ومجلدًا للاحتفاظ ببيانات MongoDB الخاصة بك.

من أجل إضافة إدخال إلى fstab حول قرصك الجديد المراد تركيبه، يمكنك استخدام الأمر أدناه مباشرة:

في الأمر، blkid يعطيك UUID – المعرف الفريد العالمي لكل قرص. هنا أقوم باستخراج المعرف الخاص بقرص MongoDB ودمج هذا الـ UUID مع موقع مجلد التركيب ونوع نظام الملفات والخيارات الأخرى للقرص على التوالي. أقوم بإضافة هذا السطر إلى /etc/fstab. إذا لم تفعل ذلك، فستتلقى خطأ أثناء تركيب القرص. يبدو الإدخال كالتالي:

UUID=”695a62e6-021d-4fc0-945c-cc51a92d86da” /mongodb ext4 auto,noexec,rw,sync,nouser 0 0

الآن، يمكنك تركيب القرص على موقع /mongodb:

تثبيت MongoDB

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

بما أن MongoDB توفر مستودعها الخاص، يمكنك ببساطة إضافة هذا إلى نظامك ثم تثبيت MongoDB كالمعتاد. إليك الخطوات التي يجب اتباعها:

أولاً، قم باستيراد المفتاح العام المستخدم بواسطة نظام إدارة الحزم:

بعد ذلك، أقوم بإنشاء ملف قائمة. سيحتوي هذا على المستودع الذي توجد به MongoDB، حتى يتمكن نظامك من تنزيلها من هناك:

الآن، أقوم بتحديث قاعدة بيانات الحزم المحلية الخاصة بي حتى أتمكن من أخذ التغييرات في الاعتبار.

الآن، يمكنني فقط تثبيت الحزمة باستخدام الأمر التالي:

لقد قمت بتثبيت MongoDB على كل جهاز من الأجهزة.

الآن أصبحت MongoDB قيد التشغيل، مع إنشاء البيانات على القرص. إذا كان من المتوقع وجود حمل ثقيل و/أو الكثير من الاتصالات، فقد تحتاج إلى زيادة قيم ulimit .

إذا كنت ترغب في الحصول على مزيد من الرؤى حول بياناتك، فقد ترغب أيضًا في التسجيل في MMS، وهي خدمة مراقبة مجانية قائمة على السحابة لـ MongoDB.

إنشاء مجموعة النسخ المتماثلة (Replica Set) لسحابة MongoDB الخاصة بك

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

للتحقق، يمكنك محاولة إرسال أمر ping إلى الأجهزة باستخدام اسم المضيف. لذا، إذا كان عنوان IP للجهاز 1 الخاص بي هو IP-1، لنقل، 213.189.123.12، فبدلاً من كتابة

سأكتب،

إذا قمت بتنشيط جدار الحماية (وهو ما يجب عليك فعله حقًا)، فتأكد من أن العقد يمكنها إرسال واستقبال حركة مرور TCP على المنفذين 28017 و 27017 على الواجهة الداخلية.

الآن، على كل جهاز، ابدأ خدمة mongod باستخدام الأوامر التالية.

على الجهاز m1،

بعد ذلك، على الجهاز m2،

على الجهاز m3،

هنا،

mongod هو اسم الخدمة

dbpath هو موقع دليل قاعدة البيانات الخاصة بنا

replSet هو اسم مجموعة النسخ المتماثل الخاصة بنا. يجب أن يكون هو نفسه لكل جهاز من الأجهزة في نفس مجموعة النسخ المتماثل

bind_ip هو اسم المضيف لذلك الجهاز الذي تقوم بتشغيله عليه.

بمجرد بدء خدمة mongod، انتقل إلى الخادم الأساسي (في حالتي، اخترت m1)، وقم بتشغيل mongo.

سيؤدي هذا إلى بدء تشغيل طرفية MongoDB. في الطرفية، انتقل وابدأ تشغيل replicaSet باستخدام الأمر أدناه. سيؤدي ذلك إلى إنشاء replicaSet بالتكوينات الافتراضية:

الآن، دعنا نضيف الجهازين الآخرين كنسخ متماثلة باستخدام الأوامر التالية:

يمكنك مراقبة الحالة باستخدام الأمر:

هذا كل شيء حقًا. يجب أن تكون الآن جاهزًا وتعمل مع مجموعة MongoDB الخاصة بك على سحابة CloudSigma’s فائقة السرعة.

author

Akshay Nagpal

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.