أفضل استراتيجية للترحيل: تعامل مع CasaOS باعتباره ثلاث طبقات—نظام التشغيل المضيف، وتعريفات التطبيقات، والبيانات الدائمة. إعادة تثبيت CasaOS هي الجزء السهل. أما العمل المهم فهو الحفاظ على المجلدات والإعدادات التي تستخدمها حاوياتك فعليًا، ثم إعادة إنشاء المسارات نفسها على الجهاز الجديد.
أجرِ جردًا قبل النسخ
- إصدارات CasaOS ونظام Linux الأساسي؛
- صور الحاويات والمنافذ ومتغيرات البيئة؛
- جميع مسارات مصدر الربط؛
-
/DATA/AppDataومجلدات التطبيقات المخصصة؛ - نقاط تحميل أقراص الوسائط والبيانات؛
- ملكية UID/GID؛
- عنوان IP ثابت، وDNS، والوكيل، وVPN، وقواعد جدار الحماية.
تخزّن تطبيقات متجر CasaOS عادةً البيانات تحت /DATA/AppData/$AppID. يوضح نمط AppData في CasaOS سبب عدم اعتبار نسخ حاوية Docker وحدها عملية ترحيل.
أوقف التطبيقات كثيرة الكتابة قبل النسخ النهائي
قد تتغير قواعد البيانات وحالة التطبيقات أثناء النسخ. أوقف الحاويات المعنية—أو Docker للمزامنة النهائية—قبل إجراء النسخة الاحتياطية الأخيرة.
sudo systemctl stop casaos-app-management
sudo systemctl stop docker
ثم انسخ باستخدام أداة تحفظ البيانات الوصفية مثل rsync -aHAX عندما تدعم أنظمة الملفات لديك ذلك.
اجرد الوحدات المسماة أيضًا
تستخدم بعض التطبيقات وحدات Docker بدلًا من عمليات الربط من المضيف. وتظل وحدات Docker الدائمة المسماة موجودة بعد حذف الحاويات، لكنها لا تزال بحاجة إلى ترحيل مقصود.
أعِد إنشاء مسارات التخزين أولًا
على المضيف الجديد، ثبّت الأقراص قبل تشغيل التطبيقات. إذا كان Jellyfin يستخدم سابقًا /DATA/Media/Movies، إذ إن استعادة المسار نفسه تتجنب تعطل المكتبات. وإذا تغيرت المسارات، فعدّل تعيينات الحاويات قبل التشغيل الأول.
الحفاظ على الملكية الرقمية
تهتم الحاويات بمعرّفات UID/GID الرقمية. قارن الأدلة المهمة على النظامين القديم والجديد:
stat -c '%u:%g %a %n' /DATA/AppData/*
أعِد تشغيل الخدمات على مراحل
- ثبّت نظام Linux أساسيًا مدعومًا.
- ثبّت CasaOS.
- ثبّت جميع أقراص البيانات.
- استعد البيانات الدائمة.
- أعِد إنشاء تعريفات التطبيقات أو استيرادها.
- شغّل التطبيقات ذات الحالة واحدًا تلو الآخر.
- تحقّق من قواعد البيانات والوسائط والأذونات والجداول الزمنية.
- لا تبدّل IP/DNS إلا بعد نجاح الاختبارات.
يوضح هيكل Docker في CasaOS سبب كون بيانات التطبيقات والحاويات مسألتين منفصلتين. وتُعد منصة التطبيقات المستضافة ذاتيًا ذات صلة إذا كنت تنقل إلى ZimaOS بدلًا من إعادة بناء CasaOS.
بالنسبة إلى بديل x86 صغير الحجم، يمكن أن يلائم ZimaBoard 2 عمليات النشر الأصغر.
صنّف كل تطبيق حسب نوع حالته
لا تُنقل جميع الحاويات بالطريقة نفسها:
- عديمة الحالة: يمكن إعادة إنشاء الإعدادات من compose/بيئة التشغيل.
- المعتمدة على الملفات: انسخ المجلدات المرتبطة بنقاط التحميل.
- SQLite: أوقف التطبيق قبل نسخ ملف قاعدة البيانات.
- PostgreSQL/MySQL: استخدم نسخة احتياطية للتطبيق/قاعدة البيانات متى أمكن، بدلًا من الاعتماد فقط على نسخة مباشرة من نظام الملفات.
- التطبيقات ذات المجلدات المُسمّاة: صدّر مجلد Docker أو انسخه عمدًا.
التقط إعداد Docker الحالي
احفظ ما يلي لكل حاوية مهمة:
docker inspect <container> > container-inspect.json
هذا ليس ملف compose جاهزًا للاستيراد، لكنه يسجّل نقاط التحميل والمنافذ ومتغيرات البيئة والشبكات والأجهزة، حتى تتمكن من التحقق من أن الخدمة المُعاد بناؤها تطابق الخدمة القديمة.
خطّط لتحويل عنوان IP واسم المضيف
إذا كان العملاء يستخدمون اسم مضيف للخادم، فستكون عملية النقل أسهل: وجّه DNS إلى عنوان IP الجديد بعد التحقق. وإذا كان كل تطبيق مضبوطًا بشكل ثابت على عنوان IP القديم، فقد تفضّل تعيين العنوان الثابت القديم للمضيف الجديد بعد إيقاف تشغيل القديم.
أبقِ الخادم القديم دون تغيير حتى لا تعود هناك حاجة إلى التراجع
لا تمسح المصدر مباشرة بعد أول تسجيل دخول ناجح. اتركه متوقفًا عن التشغيل لكنه سليمًا طوال دورة نسخ احتياطي واحدة على الأقل وفترة واحدة من الاستخدام المعتاد. يوفّر لك ذلك نقطة تراجع معروفة السلامة إذا فاتتك مهمة مجدولة أو قاعدة بيانات أو عميل عن بُعد.
تحقّق من البيانات، وليس الحاويات فقط
تثبت حالة Docker الخضراء فقط أن العملية قيد التشغيل. تحقّق من:
- مكتبة Jellyfin وحالة المشاهدة؛
- سلامة مجلدات Syncthing؛
- مهام النسخ الاحتياطي واختبارات الاستعادة؛
- تطبيقات قواعد البيانات؛
- مسارات محركات الأقراص الخارجية؛
- شهادات الوكيل العكسي؛
- الوصول عن بُعد عبر VPN/نفق.
الأسئلة الشائعة
هل يمكنني استنساخ قرص الإقلاع؟
أحيانًا، لكن النسخة المستنسخة تحمل افتراضات خاصة بالعتاد تتعلق بالشبكات والإقلاع ونقاط التحميل. غالبًا ما يكون المضيف النظيف مع استعادة البيانات أسهل في التحقق منه.
متى يمكنني الاستغناء عن الخادم القديم؟
فقط بعد أن تعمل عمليات تسجيل الدخول إلى التطبيقات، وقواعد البيانات، ومسارات الوسائط، والأذونات، والمهام المجدولة، والنسخ الاحتياطية، والوصول عن بُعد جميعها على المضيف الجديد.
