ترحيل الملفات الثنائية
سيُخفّض الإصدار الرئيسي القادم6.0 من Server Pro و Community Edition مساحة التخزين التي تستهلكها الملفات الثنائية إلى النصف. ويتضمن الإصدار 5.5.7 ترحيلًا عبر الإنترنت (online)، مما يتيح تقليل وقت التوقف إلى الحد الأدنى كجزء من الترقية.
منذ Server Pro 4.x، تُخزَّن الملفات الثنائية مرتين: في تخزين الملفات النشطة في “filestore” وفي نظام السجل الكامل للمشاريع. ومن الآن فصاعدًا، ستُخزَّن نسخة واحدة من كل ملف في نظام السجل الكامل للمشاريع.
يتكوّن الترحيل إلى نظام التخزين الموحّد من جزأين: علامة جديدة للتحكم في مرحلة الترحيل، وسكربت يعالج جميع المشاريع النشطة والمحذوفة حذفًا مؤقتًا.
المراحل:
OVERLEAF_FILESTORE_MIGRATION_LEVEL=0(الافتراضي)، تُقرأ الملفات من filestore وتُكتب إليه. وتُكتب الملفات إلى السجل بشكل غير متزامن.OVERLEAF_FILESTORE_MIGRATION_LEVEL=1، تُقرأ الملفات من السجل مع الرجوع إلى filestore عند الحاجة، وتُكتب إلى كل من filestore والسجل. ويمكن الرجوع إلىOVERLEAF_FILESTORE_MIGRATION_LEVEL=0.OVERLEAF_FILESTORE_MIGRATION_LEVEL=2، تُقرأ الملفات من السجل وتُكتب إليه فقط. ولا يمكن الرجوع إلىOVERLEAF_FILESTORE_MIGRATION_LEVEL=1إلا إذا أُجري الترحيل “دون اتصال” (offline).
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID) وللسجل (OVERLEAF_HISTORY_S3_ACCESS_KEY_ID): يُرجى منح مستخدم filestore صلاحية القراءة على حاوية (bucket) السجل الخاصة بـ blobs OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET. إذ ستتولى خدمة filestore من الآن فصاعدًا تلبية طلبات القراءة الواردة من خدمة الترجمة.
يتيح لك ترخيص Server Pro القياسي تشغيل التطبيق في بيئة إنتاجية وكذلك في بيئة غير إنتاجية/بيئة اختبار؛ ويوصى بشدة بتجهيز بيئة غير إنتاجية للاختبار.
إذا قمت بالترقية إلى Server Pro/CE الإصدار
6.0 ثم قررت لاحقًا الرجوع إلى إصدار أقدم، فيجب عليك الاستعادة من نسخة احتياطية كاملة للنظام.إجراءات الترحيل
1
إنشاء نسخة احتياطية
أنشئ نسخة احتياطية كاملة من نسختك مع لقطة متسقة لمجلدات mongo و redis و sharelatex.
2
التحديث
Toolkit: استخدم السكربت
$ bin/upgrade لترقية toolkit إلى أحدث إصدار. وعندما يُطلب منك ذلك، لا تؤكد المطالبة Upgrade image? — بل عدّل الملف config/version يدويًا واضبط قيمته على 5.5.7.ملف docker-compose.yml القديم: حدّث إصدار الخدمة sharelatex إلى 5.5.7.3
تقدير عدد المشاريع المتأثرة
4
تفريغ قوائم انتظار سجل المشاريع
"project_ids":0).إذا لم تكن قيمة “failedProjects” صفرًا، فيُرجى التواصل مع الدعم وعدم متابعة ترحيل الملفات الثنائية.
5
تقديم مرحلة الترحيل إلى 1
Toolkit: اضبط
OVERLEAF_FILESTORE_MIGRATION_LEVEL=1 في config/variables.env.ملف docker-compose.yml القديم: اضبط OVERLEAF_FILESTORE_MIGRATION_LEVEL: '1' في قسم environment الخاص بالخدمة sharelatex.6
تطبيق تغيير الإعداد وتشغيل النسخة
Toolkit:
bin/up -dملف docker-compose.yml القديم: docker compose up -d7
التحقق من الوصول إلى الملفات الثنائية
افتح مشروعًا في محرر Overleaf في المتصفح واختر ملفًا ثنائيًا، مثل صورة.
8
تشغيل سكربت الترحيل
إذا كنت تحتفظ بملفات السجلات خارج الحاوية sharelatex، فتأكد من أن مالك مجلد السجلات هو المستخدم
www-data (uid=33) حتى يمكن كتابة ملف السجل الناتج.0، وستشير الأسطر الأخيرة إلى عدم وجود أي إخفاقات:9
إيقاف النسخة
Toolkit:
bin/stop sharelatexملف docker-compose.yml القديم: docker compose stop sharelatex10
جعل الملفات القديمة غير قابلة للوصول من التطبيق
يمكنك الآن نقل الملفات القديمة إلى تخزين ثانوي. ونوصي بالاحتفاظ بالملفات لبعض الوقت تحسبًا لظهور مشكلات لاحقًا.
11
تقديم مرحلة الترحيل إلى 2
Toolkit: اضبط
OVERLEAF_FILESTORE_MIGRATION_LEVEL=2 في config/variables.env.ملف docker-compose.yml القديم: اضبط OVERLEAF_FILESTORE_MIGRATION_LEVEL: '2' في قسم environment الخاص بالخدمة sharelatex.12
تطبيق تغيير الإعداد وتشغيل النسخة
Toolkit:
bin/up -dملف docker-compose.yml القديم: docker compose up -d13
التحقق من الوصول إلى الملفات الثنائية
افتح مشروعًا في محرر Overleaf في المتصفح واختر ملفًا ثنائيًا، مثل صورة.
الترحيل دون اتصال (Offline)
إذا كنت تريد منع المستخدمين من تسجيل الدخول أثناء تشغيل سكربت ترحيل الملفات الثنائية، فيُرجى اتباع الخطوات التالية:- سجّل الدخول إلى نسخة Overleaf بحساب مسؤول
- انقر على زر Admin واختر Manage Site
- انقر على علامة التبويب Open/Close Editor
- انقر على زر Close Editor
- انقر على زر Disconnect all users
الترحيل عبر الإنترنت (Online)
من الممكن تشغيل سكربتات الترحيل بينما لا يزال التطبيق قيد التشغيل. وهناك بعض الاعتبارات التي يجب مراعاتها:- عملية الترحيل كثيفة الاستخدام لعمليات الإدخال/الإخراج (IO)، لذا يجب مراقبة استخدام الموارد أثناء تشغيل السكربت.
- مع درجة عالية من التزامن في المعالجة، قد تتعرض حلقة الأحداث (event loop) في خدمة
filestoreلبعض الحجب، مما قد يؤدي إلى تدهور تجربة المستخدم. ونوصي بالبدء بالقيم الافتراضية--concurrency=10و--concurrent-batches=1. - يمكنك إيقاف السكربت في أي وقت. وعند تشغيله مرة أخرى، سيتحقق من المشاريع السابقة ويتخطى الملفات التي عولجت بالفعل. وهذا مفيد إذا كنت تفضّل تشغيل الترحيل في ساعات أقل ازدحامًا (مثل الليل).
--report). وإذا كان عدد المشاريع كبيرًا، فيمكنك تشغيل السكربت ومراقبة تقدمه، ثم تقرير ما إذا كنت ستواصل تشغيله عبر الإنترنت أو دون اتصال بناءً على حالتك الخاصة.
تنظيف بيانات الملفات الثنائية القديمة
عند الانتهاء من الترحيل والتحقق من أن المشاريع لا تزال قادرة على الوصول إلى جميع ملفاتها، يمكنك إزالة تخزين الملفات القديم في/var/lib/overleaf/data/user_files. ونوصي بشدة بالاحتفاظ بهذه الملفات لبعض الوقت — ويمكنك جعلها غير قابلة للوصول من التطبيق بإعادة تسمية المجلد أولًا.
استكشاف الأخطاء وإصلاحها
سنضيف نصائح لاستكشاف الأخطاء وإصلاحها هنا. يُرجى ملاحظة أنه رغم أننا نقدّم الدعم عادةً لعملاء Server Pro فقط، فإننا، نظرًا لطبيعة هذا الترحيل، سنبذل قصارى جهدنا أيضًا لدعم عملاء CE الذين يواجهون مشكلات خاصة بترحيل الملفات الثنائية. إذا فشل سكربت ترحيل الملفات الثنائية (أي خرج بخطأ أو طبع عددًا غير صفري من المشاريع الفاشلة)، فيُرجى إرسال التفاصيل التالية إلى فريق الدعم لدينا عبر البريد الإلكتروني support+filestoremigration@overleaf.com، مع توضيح: الموضوع: Binary file migration problem نص الرسالة:- نوع النسخة: CE أو Server Pro (احذف ما لا ينطبق)
- نوع التثبيت: Overleaf toolkit أو
docker-compose.ymlأو غير ذلك (احذف ما لا ينطبق) - الإصدار: 5.5.x (في toolkit:
$ cat config/version) - مخرجات سكربت الترحيل (والتي يُفترض أن تكون موجودة في الحاوية ضمن
/var/log/overleaf) - التقرير: (شغّل سكربت الترحيل مع
--report) - المشاريع المعالجة: (وفقًا لآخر تشغيل للسكربت)
- مدة الترحيل:
- مخرجات
bin/doctor(عند استخدام toolkit) - إصدار Toolkit:
$ git rev-parse HEAD(عند استخدام Toolkit)
filestore بالرسالة. يمكنك العثور عليها في /var/log/overleaf/filestore.log داخل الحاوية sharelatex وتصديرها على هذا النحو:
الملفات المفقودة
كانت الإصدارات الأقدم من Server Pro/CE تنشئ إدخالات شجرة الملفات قبل انتهاء رفع المستخدم للملفات، مما قد يؤدي إلى ظهور الملفات كأنها مفقودة عند فشل الرفع. وقد تجد بعض هذه الحالات مُبلغًا عنها كأخطاء عند معالجة جميع أشجار الملفات. إذا كان عدد الملفات المفقودة قليلًا، فيُستحسن مراجعة هذه الحالات يدويًا وحذفها من المحرر في المتصفح. إذا كان عدد الملفات المفقودة كبيرًا، فيُستحسن التواصل مع الدعم، راجع قالب البريد الإلكتروني أعلاه.العثور على أشجار الملفات التالفة
قد يفشل الترحيل للمشاريع التي تحتوي على شجرة ملفات مشوّهة (على سبيل المثال، حيث تكون أسماء الملفات فارغة). يمكنك العثور على قائمة بهذه المشكلات باستخدام السكربتfind_malformed_filetrees الذي يفحص جميع المشاريع في قاعدة البيانات:
fix_malformed_filetree، مع تشغيل الأمر مرة واحدة لكل مسار تالف:

