أنشئ مجموعة Nextcloud مرنة باستخدام Galera

قم أولاً بإنشاء مجموعة قواعد البيانات، ثم ضع عدة عُقد تطبيق Nextcloud متطابقة خلف مُوازن أحمال مُفحوص السلامة. لضمان استقرار الإعداد، يجب أن تستخدم جميع عُقد التطبيق نفس وحدة تخزين الملفات الدائمة، والتكوين، وخدمة قفل Redis أو Valkey، ونقطة نهاية قاعدة بيانات تُوجّه عمليات الكتابة فقط إلى عضو Galera سليم. يُدرج دليل إدارة Nextcloud الحالي MariaDB كقاعدة بيانات مدعومة، ولكنه لا ينشر وصفة نشر خاصة بـ Galera؛ لذا تحقق من إصدارات Nextcloud وMariaDB وGalera والوكيل لديك مع الموردين قبل بدء الإنتاج.

اعتبارًا من 9 أكتوبر 2026، تُدرج صفحة متطلبات نظام Nextcloud 35 إصدارات MariaDB 10.11 و11.4 و11.8 و12.3، مع الإشارة إلى أن الإصدار 12.3 مُوصى به. هذه قائمة بإصدارات قاعدة بيانات Nextcloud، وليست ضمانًا بأن جميع تركيبات Galera أو الخوادم الوكيلة مُعتمدة. ابدأ بمراجعة متطلبات نظام Nextcloud 35 ومصفوفة دعم Galera الخاصة بتوزيعة MariaDB لديك.

1. تحديد حدود الفشل

لا يقتصر نظام المجموعة عالي التوافر على قاعدة بيانات مُكررة فحسب. يحمي Galera طبقة قاعدة البيانات، ولكنه لا يُكرر ملفات مستخدمي Nextcloud، أو جلسات PHP، أو أقفال Redis، أو كود التطبيق. كما أن قاعدة بيانات مشتركة واحدة لا يمكنها التعويض عن فشل عملية ربط وحدة التخزين أو مُوازن الأحمال الذي يستمر في توجيه حركة المرور إلى عقدة تطبيق معطلة.

خطط لهذه المكونات قبل التثبيت:

  • يجب أن يكون هناك خادمان للتطبيقات على الأقل يعملان بنفس إصدار Nextcloud، وإصدار PHP، والتطبيقات المفعلة، وتكوين الويب.
  • موازن تحميل أو خادم وكيل عكسي مع اسم مضيف عام ثابت، وبروتوكول HTTPS، وفحوصات صحية لخوادم التطبيق.
  • مساحة تخزين بيانات Nextcloud مشتركة ودائمة، تظهر في نفس المسار وبصلاحيات صحيحة على جميع خوادم التطبيقات. يجب تحديد دليل بيانات Nextcloud أثناء التثبيت؛ إذ تحذر إرشادات التثبيت من صعوبة نقله لاحقًا.
  • مجموعة Galera تحتوي على عدد فردي من عقد قاعدة بيانات التصويت، عادةً ثلاثة، موضوعة بحيث لا يؤدي فشل مضيف واحد إلى إزالة الأغلبية.
  • خدمة مشتركة من Redis أو Valkey للتخزين المؤقت الموزع وأقفال الملفات للمعاملات.

اختر تصميمات التخزين والشبكات التي تتمتع بأنظمة احتياطية واستعادة مُختبرة. لا يُعد المسار المشترك متاحًا بشكل دائم لمجرد أن العديد من خوادم الويب يمكنها الوصول إليه.

2. قم بتثبيت وتفعيل MariaDB Galera أولاً

اختر إصدارًا من MariaDB يلبي متطلبات Nextcloud الحالية، وحزمة Galera متوافقة مدعومة من قِبل مُورّد MariaDB الخاص بك. اتبع وثائق نشر MariaDB Galera لتكوين العُقد، ومنافذ الشبكة، ونقل لقطات الحالة، وTLS، والتشغيل الأولي. لا تُنشئ كل عُقدة فارغة كمجموعة جديدة؛ بل شغّل عُقدة واحدة، ثم أضف العُقد الأخرى إلى تلك المجموعة.

يتطلب Nextcloud استخدام InnoDB ومستوى READ-COMMITTEDعزل المعاملات لـ MySQL أو MariaDB. كما توصي صفحة قاعدة بيانات Nextcloud الحالية بتفعيل تسجيل العمليات الثنائية على مستوى الصفوف. تأكد من القيم على جميع عُقد قاعدة البيانات، وليس فقط على العقدة التي تستقبل حركة البيانات حاليًا. راجع متطلبات تكوين MariaDB الخاصة بـ Nextcloud .

قبل ربط Nextcloud، تحقق من حالة المجموعة على كل عقدة. على سبيل المثال، شغّل الأمرَين `nextcloud` SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';و`nextcloud` SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';. يجب أن تُظهر المجموعة Primaryمكونًا، وحجم المجموعة المتوقع، والعقد الموجودة في هذه Syncedالحالة. توضح MariaDB أن النصاب القانوني يتطلب أكثر من نصف عدد أعضاء المجموعة المعروفين مؤخرًا؛ لذا، يمكن لمجموعة من ثلاث عقد أن تتحمل فقدان عقدة واحدة، وليس اثنتين. راجع إرشادات النصاب القانوني والاستعادة الخاصة بها .

3. تزويد Nextcloud بنقطة نهاية قاعدة بيانات تراعي الحالة الصحية

قم بتهيئة Nextcloud للاتصال بعنوان وكيل قاعدة بيانات ثابت، وليس بقائمة عناوين IP لـ Galera بالتناوب. على الرغم من أن Galera تُكرر عمليات الكتابة عبر المجموعة، إلا أن التطبيقات لا تزال بحاجة إلى معالجة معاملات قابلة للتنبؤ. يمكن لوكيل يراقب عضوية Galera إيقاف التوجيه إلى العُقد غير المتاحة أو غير المتزامنة، واختيار عقدة كتابة. يُعد Galera Monitor في MariaDB MaxScale أحد الخيارات الموثقة؛ ويعتمد سلوكه الدقيق وأنماط التوجيه المدعومة على إصدار MaxScale وتكوينه.

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

4. اجعل كل عقدة تطبيق ترى نفس مثيل Nextcloud

ثبّت نفس كود Nextcloud ومجموعة التطبيقات على كل خادم تطبيقات. حافظ على config.phpاتساق إعدادات كل عقدة في النسخة المشتركة، بما في ذلك نقطة نهاية قاعدة البيانات، والقيم السرية، والنطاقات الموثوقة، ومسار دليل البيانات. لا تُجرِ ترقيةً مستقلةً على عدة عقد. أنشئ نسخة احتياطية أولًا، ثم ضع النسخة في وضع الصيانة، وقم بالترقية عبر مسار واحد مُتحكَّم به، وأعد تشغيل حركة البيانات فقط بعد أن تعمل جميع العقد بنفس الإصدار.

قم بتهيئة جميع عُقد التطبيق لاستخدام خدمة Redis أو Valkey نفسها للتخزين المؤقت الموزع والتأمين. يمكن أن يبقى التخزين المؤقت المحلي، مثل APCu، خاصًا بكل عُقدة، ولكن memcache.distributedيجب memcache.lockingأن يشير إلى خدمة مشتركة، وليس إلى خدمة خاصة بكل خادم localhost. على سبيل المثال، يمكن لتهيئة Redis في Nextcloud استخدام 'memcache.locking' => '\OC\Memcache\Redis'مضيف Redis مشترك في التهيئة. اتبع دليل تهيئة التخزين المؤقتredis الحالي ودليل تأمين الملفات للمعاملات . لا يُعد Memcached مناسبًا لتأمين الملفات للمعاملات في Nextcloud.

إذا كنت تُركّز جلسات PHP في Redis، فاعتبر ذلك مهمة تهيئة PHP منفصلة. يُحذّر دليل Nextcloud من أن قفل الجلسة غير مُفعّل افتراضيًا لمعالج جلسات Redis؛ لذا طبّق إعدادات القفل واختبر سلوك الجلسة قبل الاعتماد عليه. لا تخلط بين نسخ قاعدة البيانات أو قفل الملفات واستمرارية الجلسة.

5. اختبر خاصية تجاوز الفشل قبل اعتبارها عالية التوفر

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

بعد ذلك، استخدم نافذة صيانة لمحاكاة عطل في إحدى عقد قاعدة البيانات وفقًا لدليل التشغيل الخاص بموردك. تأكد من أن الخادم الوكيل يُزيل العضو المعطل أو غير المتزامن، وأن Nextcloud لا يزال قادرًا على القراءة والكتابة، وأن العقدة العائدة تصل إلى نقطة البداية Syncedقبل قبول حركة البيانات. راقب حالة Galera الأساسية، وحجم المجموعة، ومزامنة العقد، وسلامة الخادم الوكيل، وأخطاء التطبيق، وسلامة وحدة التخزين.

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

تحقق من النتيجة

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

اترك تعليقاً

ربط Nextcloud بـ CODE Docker: الإعداد والمفاضلات

ربط Nextcloud بـ CODE Docker: الإعداد والمفاضلات

قارن بين الكود المدمج والكود القائم على Docker، ثم قم بتوصيل Collabora Online بـ Nextcloud من خلال وكيل عكسي آمن HTTPS.

أنشئ مجموعة Nextcloud مرنة باستخدام Galera

خطط لنشر Nextcloud عالي التوفر بشكل موثوق مع التخزين المشترك، وقفل Redis، وتوجيه MariaDB المدرك للنصاب، وفحوصات تجاوز الفشل العملية.

تمكّن من إجراء مكالمات Nextcloud Talk عند فشل Direct Media

تمكّن من إجراء مكالمات Nextcloud Talk عند فشل Direct Media

قم بتكوين وتحقق من إمكانية الوصول إلى مرحل TURN لـ Nextcloud Talk عندما تمنع جدران الحماية أو NAT التقييدية وسائط الاتصال المباشر.

قم بإزالة تحذيرات سلامة البيانات في Nextcloud عن طريق استعادة الملفات الصحيحة

استخدم تقرير الملفات غير الصالحة لتحديد التعليمات البرمجية المتغيرة أو المفقودة أو الزائدة في Nextcloud، واستعادة الملفات الموثوقة بأمان، والتحقق من النتيجة.

قم بربط Gmail أو Microsoft 365 ببريد Nextcloud باستخدام OAuth2

قم بإعداد OAuth2 لبريد Nextcloud باستخدام Gmail أو Microsoft 365، وتحقق من الاستلام والإرسال، وقم بحل مشكلات الموافقة الشائعة وفشل SMTP.

قم بإصلاح وضع الصيانة العالق في Nextcloud بأمان باستخدام OCC

قم بإصلاح وضع الصيانة العالق في Nextcloud بأمان باستخدام OCC

استخدم OCC لاستعادة الوصول إلى Nextcloud، والتحقق من حالة ترحيل قاعدة البيانات، واختيار الأمر الصحيح لعمليات تثبيت الأرشيف أو Docker أو Snap.

إعداد تسجيل الدخول إلى Nextcloud LDAP و Active Directory

قم بتوصيل Nextcloud بـ LDAP أو Active Directory، وقم بتقييد الوصول باستخدام عوامل تصفية المستخدم والمجموعة، وتحقق من المصادقة الآمنة قبل النشر.

اشتراط المصادقة الثنائية لمستخدمي Nextcloud

قم بتمكين موفر المصادقة الثنائية المدعوم، وقم بإعداد استعادة الحساب، ثم اطلب المصادقة الثنائية للجميع أو لمجموعات Nextcloud المحددة.

حماية مستندات Collabora CODE المخزنة باستخدام تشفير التخزين

تأمين الملفات التي تم تحريرها في Collabora CODE عن طريق تشفير طبقة التخزين، وحماية البيانات المؤقتة، والتحقق من التشفير والاسترداد.

تشغيل كود Collabora على معالج ARM64 باستخدام الصورة الصحيحة

تشغيل كود Collabora على معالج ARM64 باستخدام الصورة الصحيحة

تحقق من بنية جهازك المضيف، وتأكد من أن علامة CODE تنشر ARM64، وقم بإزالة إعدادات AMD64 الإجبارية، وافصل أخطاء الصورة عن مشكلات الأذونات أو الذاكرة.