انتقل إلى المحتوى الرئيسي انتقل إلى الملاحة انتقل إلى التذييل

الحدود والحصص

مرجع للحدود والقيم القصوى والحصص المطبقة على مستودعات Rediacc والخدمات والشبكات والتخزين.

الحدود والحصص

توثق هذه الصفحة الحدود الصارمة والمرنة المطبقة على عمليات نشر Rediacc. يساعدك فهم هذه الحدود على التخطيط للسعة وتجنب القيود غير المتوقعة.


الخدمات لكل مستودع

يدعم كل مستودع ما يصل إلى 61 خدمة تعمل في وقت واحد.

هذا حد صارم يحدده نطاق عناوين الشبكة المخصص لكل مستودع. تحصل كل خدمة على عنوان IP خاص مخصص، ويستوعب كتلة عناوين كل مستودع 61 فتحة خدمة بالضبط.

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


المستودعات لكل جهاز

لا يوجد حد أقصى صارم يفرضه Rediacc. يعتمد الحد العملي على موارد جهازك:

الموردالتأثير
مساحة القرصكل مستودع عبارة عن صورة قرص مشفرة. يمكن لجهاز بمساحة تخزين قابلة للاستخدام تبلغ 1 تيرابايت أن يحتوي على العديد من المستودعات، لكن الحجم الإجمالي لجميع الصور يجب أن يتسع ضمن مجمع مخزن البيانات.
الذاكرة العشوائيةيبدأ كل مستودع قيد التشغيل Docker daemon والحاويات الخاصة به. يعتمد استخدام الذاكرة على أحمال العمل الخاصة بك.
المعالجعمليات المستودعات المتوازية (البدء، النسخ الاحتياطي، التفريع) تضيف حملا مؤقتا على المعالج.

عمليات النشر النموذجية تشغل من 10 إلى 50 مستودعا لكل جهاز بدون مشاكل. الأجهزة التي تحتوي على 32 جيجابايت أو أكثر من الذاكرة العشوائية و500 جيجابايت أو أكثر من التخزين تشغل بانتظام أكثر من 100 مستودع.

حد معرف الشبكة على مستوى النظام

يتم تعيين معرف شبكة فريد لكل مستودع، وهو رقم يستخدم لحساب نطاق عنوان IP الخاص به. يتم مشاركة هذا المجمع عبر جميع الأجهزة والمستودعات المدارة بنفس إعدادات Rediacc.

الحدالقيمة
إجمالي معرفات الشبكة المتاحة~261,944
النطاقلكل إعداد (مشترك عبر جميع الأجهزة في الإعداد)

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


التفريعات

لا يوجد حد لعدد التفريعات النشطة لمستودع ما. كل تفريع هو نسخة كاملة بنظام النسخ عند الكتابة مع تخزين مشفر خاص وعناوين شبكة وDocker daemon خاص. تستهلك التفريعات مساحة قرص تتناسب مع البيانات المكتوبة إليها بعد الإنشاء (وليس الحجم الكامل للمستودع الأصلي).


المنافذ الخارجية

المنافذ النشطة دائما

لا يتم فتح المنافذ إلا بعد تهيئة عنوان IP عام باستخدام rdc config infra set --public-ipv4. حتى ذلك الحين، لا توجد منافذ مفتوحة على الجهاز. بعد التهيئة:

المنفذالبروتوكولالغرض
80TCPHTTP: يتم التعامل معه بواسطة Traefik؛ يعيد 404 للنطاقات غير المهيأة، ولا يتم تمريره لأي خدمة
443TCPHTTPS: نفس ما سبق؛ يتم رفض الطلبات التي لا تحتوي على مسار مطابق في طبقة البروكسي
10000–10010TCPنطاق ديناميكي لتوجيه TCP المدار بواسطة Rediacc

يختلف HTTP/HTTPS عن منافذ TCP الخام: على الرغم من أن المنفذين 80 و443 مفتوحان، يتم التحقق من كل طلب بواسطة البروكسي العكسي مقابل جدول توجيه صريح. بدون خدمة مهيأة ونطاق مطابق، لا يتم الوصول إلى أي كود تطبيق ولا يتم كشف أي بيانات.

توجيه TCP/UDP الاختياري

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

لكشف منفذ من خدمة معينة:

labels:
  - "rediacc.tcp_ports=5432"   # expose PostgreSQL from this container
  - "rediacc.udp_ports=53"     # expose DNS from this container

لفتح منفذ على مستوى الجهاز (متاح لجميع الخدمات):

rdc config infra set -m server-1 --tcp-ports 25,587,993   # mail server
rdc config infra push -m server-1

لا تكشف منافذ قواعد البيانات أو الذاكرة المؤقتة خارجيا إلا إذا كان لديك متطلب محدد. استخدم المسارات التلقائية عبر HTTPS لخدمات الويب وأبقِ خدمات التخزين داخلية.


مخزن البيانات

مخزن البيانات هو مجمع بحجم ثابت يتم إنشاؤه عند إعداد الجهاز لأول مرة. لا يزداد حجمه تلقائيا.

  • الحد الأدنى الموصى به: 50 جيجابايت
  • الحجم الأقصى: محدود بقرصك. يمكن لمجمع واحد أن يمتد على قرص كامل.
  • تغيير الحجم: استخدم rdc datastore resize لتوسيع مجمع موجود. التقليص غير مدعوم.
  • نظام الملفات: يستخدم Rediacc نظام BTRFS داخليا للنسخ اللحظية بنظام النسخ عند الكتابة والتفريع الفعال. يتطلب جهازا يعمل بنواة Linux 6.1 أو أحدث للاستقرار الكامل في الإنتاج.

لكل صورة مستودع حجم أقصى ثابت يتم تعيينه عند الإنشاء (الافتراضي: 10 جيجابايت). استخدم rdc repo resize لتوسيع مستودع فردي. لا يمكن أن يتجاوز مجموع الأحجام القصوى لجميع المستودعات حجم مجمع مخزن البيانات.


مسارات HTTP

تحصل كل خدمة تحمل التسمية rediacc.service_port على مسار HTTPS واحد تلقائيا. لا يوجد حد لعدد الخدمات التي تحتوي على مسارات، وفقا للحد الأقصى البالغ 61 خدمة لكل مستودع.

يتم إصدار شهادات TLS بأحرف بدل لكل مستودع عند أول عملية نشر عبر Let’s Encrypt (تحدي Cloudflare DNS-01). يفرض Let’s Encrypt حدا قدره 50 شهادة لكل نطاق مسجل في الأسبوع. نظرا لأن Rediacc يستخدم شهادة بأحرف بدل واحدة لكل مستودع (وليس لكل خدمة)، فقد يصل نشر يحتوي على أكثر من 50 مستودعا جديدا في أسبوع واحد إلى هذا الحد.

تعيد التفريعات استخدام شهادة أحرف البدل الموجودة للمستودع الأصلي ولا تستهلك أي حصة من الشهادات.


نقطة التحقق / الاستعادة (CRIU)

الترحيل المباشر عبر CRIU له القيود التالية:

  • اختياري: يتم أخذ نقاط التحقق فقط للحاويات التي تحمل التسمية rediacc.checkpoint=true. يتم استبعاد قواعد البيانات والخدمات عديمة الحالة افتراضيا وتبدأ من جديد عند الاستعادة.
  • متطلبات النواة: Linux 6.1 أو أحدث على كل من الجهاز المصدر والجهاز الوجهة.
  • وضع الشبكة: يتطلب CRIU وضع الشبكة المضيف. لا يمكن أخذ نقاط تحقق للحاويات التي تستخدم تكوينات شبكة مخصصة.
  • الذاكرة: يساوي حجم بيانات نقطة التحقق الذاكرة المقيمة للعملية التي تم أخذ نقطة تحقق لها. مجموعات البيانات الكبيرة في الذاكرة (مثل تطبيق Node.js يخزن 4 جيجابايت من البيانات مؤقتا) تنتج ملفات نقاط تحقق بحجم 4 جيجابايت.
  • اتصالات TCP: يجب أن تتحمل التطبيقات فقدان الاتصال أثناء الاستعادة. لا يتم الحفاظ على اتصالات TCP النشطة أبداً، وتظهر المقابس للعملية المستعادة على أنها مغلقة ويجب إعادة الاتصال. ينطبق هذا على الاستعادة على نفس الجهاز وعبر الأجهزة على حد سواء.
  • الفرع المباشر على نفس الجهاز غير مدعوم: ينجح rdc repo fork --parent X --tag Y --checkpoint في التقاط نقطة التفتيش، لكن rdc repo up اللاحق على نفس الجهاز يفشل بـ criu failed: type RESTORE errno 0 بينما لا يزال الأصل قيد التشغيل. يحدث هذا بسبب أخطاء CRIU الأولية checkpoint-restore/criu#478 و checkpoint-restore/criu#514 التي تتفاعل مع network_mode: host. للحفاظ على حالة العملية في مكانها على الجهاز نفسه، استخدم rdc repo down --checkpoint + rdc repo up بدلاً من ذلك. للترحيل المباشر، استخدم rdc repo push --checkpoint إلى جهاز مختلف.

النسخ الاحتياطي

الحدالقيمة
وجهات النسخ الاحتياطي لكل مستودعغير محدود
مهام النسخ الاحتياطي المتزامنة1 لكل مستودع (تصطف المهام في قائمة الانتظار إذا تم تشغيلها بشكل متزامن)
تكرار النسخ الاحتياطيلا يوجد حد أدنى للفاصل الزمني المفروض؛ محدود بعرض نطاق التخزين الخاص بك. استخدم rdc config backup-strategy set --name <name> --bwlimit "6M" للحد من سرعة الرفع
الاحتفاظيتم التحكم فيه بواسطة مزود التخزين الخاص بك (S3، Cloudflare R2، إلخ). لا يفرض Rediacc سياسات الاحتفاظ.
النسخ الاحتياطي عبر الأجهزةمدعوم؛ يجب أن يحتوي الجهاز الوجهة على مساحة كافية في مخزن البيانات

CLI و API

الحدالقيمة
أوامر rdc المتزامنة على نفس الجهازغير محدود (كل أمر يفتح اتصال SSH خاصا به)
التزامن الافتراضي لبدء المستودعات المتوازية3 (قابل للتعديل باستخدام --concurrency)
مهلة اتصال SSH30 ثانية للاتصال الأولي
مدة جلسة rdcبدون مهلة؛ العمليات طويلة المدى تحافظ على الاتصال نشطا

إصدارات نظام التشغيل المدعومة

يجب أن تعمل الأجهزة البعيدة بأحد الأنظمة التالية لتلبية متطلبات Rediacc الخاصة بالنواة ونظام الملفات وعزل الشبكة. هذه القائمة هي المجموعة الرسمية المختبرة في CI (مصفوفة Bridge Workers) ويجب أن تظل متزامنة مع المتطلبات:

نظام التشغيلالحد الأدنى للإصدارالنواة الافتراضيةملاحظات
Ubuntu24.04 LTS (موصى به)6.8AppArmor افتراضي.
Debian13 (Trixie)؛ 12 Bookworm يعمل أيضا6.12 (6.1 على Debian 12)
Fedora436.12SELinux مفعل افتراضيا.
openSUSE Leap16.06.4+AppArmor افتراضي.
Oracle Linux10 (UEK)UEK 7+UEK يحتفظ بـ btrfs؛ SELinux مفعل افتراضيا.

الحد الأدنى المطلوب للنواة: 6.1. يتم رفض الأجهزة التي تعمل بنواة أقدم عند الإعداد مع رسالة خطأ واضحة.

لماذا النواة 6.1؟ يستخدم Rediacc نظام BTRFS لتخزين المستودعات المشفرة والتفريع بنظام النسخ عند الكتابة. قدم Linux 6.1 تحسينات حاسمة في BTRFS تقلل بشكل كبير من أوقات التحميل لمخازن البيانات الكبيرة، وتحسن أداء حذف اللقطات، وتصلح مشاكل سلامة البيانات الموجودة في النواة الأقدم. النواة 6.1 مطلوبة أيضا لبرامج عزل الشبكة على مستوى النواة التي تفرض العزل بين المستودعات، وتعيد كتابة استدعاءات bind() بشفافية وتمنع الاتصالات بين المستودعات.

لماذا لا Rocky Linux 10 / نواة RHEL 10 الافتراضية؟ نواة RHEL 10 الافتراضية لا تأتي مع وحدة btrfs (يفشل modprobe btrfs بـ “Module btrfs not found”). لا يمكن لواجهة التخزين المشفرة في Rediacc العمل بدون btrfs. Oracle Linux 10 هو الهدف الوحيد المتوافق مع RHEL في القائمة المدعومة لأنه يعتمد افتراضيا على Unbreakable Enterprise Kernel (UEK) الذي يحتفظ بـ btrfs. راجع المتطلبات: لماذا UEK؟ للشرح الكامل.

مصفوفة ميزات النواة

يمكن للمشغلين استخدام هذه المصفوفة للاطلاع على ما يوفره كل نظام تشغيل مختبر في CI بشكل افتراضي. جميع الأنظمة الخمسة تستوفي كل المتطلبات؛ المصفوفة مرجع للمشغلين وليست معيار قبول.

نظام التشغيلوحدة btrfscgroups v2Landlock (ABI 1 أو أعلى)خطافات eBPF cgroup
Ubuntu 24.04مدمجةunified hierarchyنعم (5.13+)نعم
Debian 13مدمجةunified hierarchyنعمنعم
Fedora 43مدمجةunified hierarchyنعمنعم
openSUSE Leap 16.0مدمجةunified hierarchyنعمنعم
Oracle Linux 10 (UEK)مدمجة (عبر UEK)unified hierarchyنعمنعم