يمكن لـ Immich استخدام مشاركة شبكة بشكل موثوق للوسائط أو كمكتبة خارجية عندما تتم هندسة واختبار نقطة التثبيت، والأذونات، وزمن الاستجابة، وسلوك الانقطاع، لكن يجب أن يظل مجلد بيانات PostgreSQL على وحدة تخزين منخفضة زمن الاستجابة ومدعومة، لا على مشاركة SMB أو NFS عامة.
تخفي كلمة «البيانات» أحمال عمل مختلفة: فالملفات الأصلية كبيرة ومتينة، وتنشئ الصور المصغرة العديد من العمليات الأصغر، وقد تكون المكتبات الخارجية للقراءة فقط، بينما يتطلب PostgreSQL دلالات نظام ملفات خاصة بقواعد البيانات. حدّد المسار لكل حالة على حدة، وثبّت المشاركة قبل بدء الحاويات، وامنع مجلدًا محليًا فارغًا من انتحال دور NAS، وأثبت السلوك عبر إعادة تشغيل المضيف وعبر انقطاع متحكَّم به للمشاركة.
صنّف كل مسار في Immich قبل نقله
أدرج مكتبة التحميلات، والصور المصغرة أو الوسائط المُرمَّزة، والمكتبات الخارجية، ومجلد قاعدة البيانات، وذاكرة التخزين المؤقت للنماذج، والنسخ الاحتياطية كلًّا على حدة. حدّد الجهة التي تكتب في كل مسار وتأثير فقدانه. قد تكون مشاركة الوسائط مناسبة؛ أما التعامل مع كل وحدة تخزين على أنها قابلة للتبادل فيفشل عند بوابة التصميم.
يوضح دليل عملي لـ NFS طريقة ربط مكتبة خارجية في Immich من وحدة تخزين مشتركة. ويُعد نمط تثبيت المكتبة الخارجية مفيدًا لتخطيط المسارات والأذونات، لكنه ليس دليلًا على أن قاعدة البيانات ينبغي أن تستخدم NFS.
أبقِ PostgreSQL على وحدة تخزين موصى بها لقواعد البيانات، واحمه بعمليات تفريغ أصلية ونسخ احتياطية. إذا كانت سعة التخزين المحلي النشط محدودة، فانقل مسار الوسائط الذي ثبت أنه يستهلك السعة فقط، ووثّق الحد الفاصل بدلًا من نقل حالة التطبيق بأكملها.
اجعل ترتيب تثبيت المشاركة البعيدة حتميًا
ثبّت المشاركة على المضيف باستخدام بيانات اعتماد أو قواعد تصدير واضحة، وعنوان ثابت، ووضع القراءة والكتابة المقصود. تحقّق من هوية نظام الملفات المتوقعة ومن وجود ملف علامة معروف قبل بدء Immich. اربط مسار المضيف المثبّت مسبقًا بالحاويات.
اضبط مدير الخدمات بحيث ينتظر Immich تثبيت المشاركة البعيدة، وألّا يبدأ العمل على مجلد احتياطي محلي فارغ. لا ينجح الإقلاع إلا عندما تظهر العلامة داخل الحاوية ويحمل ملف الاختبار المالك المتوقع؛ أما المجلد الفارغ أو الملف الذي يملكه root فهو سبب كافٍ لإيقاف العملية.
أعد التشغيل مرة مع توفر المشاركة، ومرة أخرى مع جعلها غير متاحة عمدًا أثناء نافذة صيانة. ينجح الاختبار الأول فقط عندما تظهر العلامة قبل بدء Immich؛ وينجح الثاني فقط عندما يتوقف Immich أو يفشل بوضوح بدلًا من الكتابة في نقطة التثبيت المحلية المجردة.
أثبت هوية الحاوية وأذونات المشاركة
طابق هويات المستخدمين والمجموعات الرقمية بين الخادم والعميل والحاوية، ثم اختبر الإنشاء وإعادة التسمية والقراءة والحذف في مجلد مخصص مؤقت. لا تعالج عدم التطابق باستخدام أذونات كتابة عامة تكشف مكتبة العائلة.
كرّر اختبار الملف المؤقت من داخل حاوية خادم Immich، وليس من المضيف فقط. تأكد من أن NAS يرى المالك الرقمي المقصود، وأن Immich يستطيع فتح الملف مجددًا بعد إعادة إنشاء الحاوية. لا يثبت نجاح الاختبار على المضيف وحده صحة مسار الحاوية.
إذا اختلفت الهوية أو سلوك الإنشاء وإعادة التسمية، فتوقف وصحّح التصدير أو التثبيت أو تعيين الحاوية ضمن أضيق نطاق. أعد الاختبار قبل فحص مكتبة حقيقية؛ فقد تخفي التغييرات الواسعة على الأذونات عدم التطابق، مع كشف كل صور العائلة لخدمات غير ذات صلة.
قِس زمن الاستجابة واختبر انقطاع المشاركة
شغّل عملية تحميل نموذجية، وإنشاء الصور المصغرة، وتصفح المخطط الزمني، وتنزيل ملف أصلي، وفحص مكتبة خارجية، مع قياس زمن استجابة الخادم وتقدم المهام. يتطلب النجاح تفاعلًا مقبولًا وعدم نمو قائمة الانتظار باستمرار؛ فلا تكفي سرعة الاتصال الخام لإثبات أداء البيانات الوصفية.
يوثق أحد بلاغات Immich عدم اتساق قاعدة البيانات والملفات في عملية نشر تستخدم NFS غير مستقر. وتدعم حالة فشل NFS المحددة التعامل مع حالات الانفصال أثناء الكتابة على أنها خطر تعافٍ، بدل افتراض أن NFS يفسد Immich دائمًا.
أثناء نافذة صيانة وبعد اكتمال النسخ الاحتياطية، اقطع مشاركة الوسائط بينما يكون اختبار غير حرج نشطًا. ينبغي أن يفشل Immich بوضوح بدلًا من الكتابة في نقطة التثبيت المحلية المجردة. أعد المشاركة وتأكد من أن أصل الاختبار وسجل قاعدة البيانات يتوافقان دون الدخول في حلقة إعادة تشغيل.
اتخذ قرار الاستمرار أو الإلغاء بعد اختبارات إعادة التشغيل
أعد تشغيل الحاويات والمضيف كلًّا على حدة. تأكد من تثبيت المشاركة الصحيحة أولًا، ومن فتح الملفات الأصلية القديمة والجديدة، ومن أن عمليات الفحص الخارجية لا تكرر الأصول، ومن بقاء تحميل جديد واحد بعد إعادة تشغيل أخرى. وتوضح مقارنة DAS وNAS من ZimaSpace المفاضلة بين زمن الاستجابة ونطاق العطل.
استخدم المشاركة عندما تنجح هذه الاختبارات، وعندما تتمكن المراقبة من التنبيه عند غيابها أو ارتفاع زمن الاستجابة أو امتلاء المساحة أو الضغط على أرقام inode. اختر التخزين المحلي أو المتصل مباشرة عندما لا تتمكن الشبكة أو NAS من تلبية التوافر المطلوب، أو عندما يتعذر منع سلوك التثبيت المتساهل عند الفشل.
ارجع إلى المسار المحلي السابق إذا بدأ Immich فارغًا، أو أنشأ ملفات يملكها root، أو أصدر أخطاء عن ملفات مفقودة بعد الانقطاع. صعّد المشكلة مع ذكر البروتوكول، وخيارات التثبيت، والهويات، وتعيينات المسارات، وزمن الاستجابة، وترتيب الإقلاع؛ ولا تعاود الفحص بطريقة مدمرة قبل معرفة الأصول الأصلية المعتمدة وحالة قاعدة البيانات.
الدعم والنصائح
المزيد للقراءة

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

كيفية منع تكرار المهام أو عمليات الاستيراد في Immich
افصل المهام المتكررة عن الأصول المكررة. استخدم مسارًا أساسيًا واحدًا للإدخال، وتحكّم في عمليات إعادة المحاولة وتغييرات المسارات، ثم اختبر إعادة الإدخال على مجموعة...

كيفية إصلاح Immich بعد امتلاء وحدة تخزين قاعدة البيانات الخاصة به
لا تحذف سجلات WAL الخاصة بـ PostgreSQL لتحرير المساحة مطلقًا. أوقف عمليات الكتابة في Immich، وحافظ على حالة قاعدة البيانات، وأضف سعة تخزين آمنة،...

