انتقل إلى المحتوى

الاستعادة

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

صفحة الاستعادة وفيها الأقسام كبلاطات، والبحث، وبطاقة Stacks. صفحة الاستعادة وفيها الأقسام كبلاطات، والبحث، وبطاقة Stacks.

صفحة الاستعادة

  • الأقسام تسرد الأقسام كبلاطات، وفي كل منها كم عنصرًا له لقطات.
  • ما الذي يجب استعادته؟ يبحث في عناصر القسم المختار. يعرض كل صف أحدث لقطة له، ويقود فتح العنصر إلى صفحة العنصر.
  • الـ Stacks تسرد مشاريع Compose التي فيها حاويتان منسوختان على الأقل، مثل immich مع قاعدة بياناته وRedis. يجد البحث الـ stack باسمه أو بأي من حاوياته.
  • قيد التشغيل الآن يعرض استعادة أثناء تشغيلها، حتى بعد إغلاق نافذتها.
  • الطوارئ تبدأ معالج الطوارئ لخادم ضاع أو أُعيد إعداده، راجع معالج الطوارئ.
  • مصادر أخرى تضم من مجلد نسخ احتياطية قديم، لنسخ BombVault آخر، والاستيراد من إضافة Appdata.Backup.

صفحة الاستعادة على الهاتف. صفحة الاستعادة على الهاتف.

نافذة الاستعادة

النقر على عنصر يفتح استعادة باسمه. تسأل على مراحل، ويمكن تغيير كل مرحلة قبل أن تبدأ:

  1. النسخة: اللقطة الموصى بها محددة مسبقًا. وهي الأحدث، أو بعد حالة شاذة مفتوحة آخر لقطة قبلها. والنسخة المأخوذة قبل استعادة سابقة تحمل الحالة التي استبدلتها تلك الاستعادة، لذا تُتخطّى ما لم توجد غيرها. توجد الأقدم في القائمة، ويعرض مقارنة ما يختلف بين اثنتين منها.
  2. المصدر: من أين تأتي الملفات، حين تقع لقطة في عدة أماكن. محلي هو الأسرع.
  3. ماذا: الكل، أو ملفات فردية، حيث تحدد الملفات والمجلدات التي تريدها.
  4. إلى أين: الوجهة. تعتمد الخيارات على نوع العنصر:

    الوجهة ماذا تفعل
    بجانب الأصل الافتراضي. تعود الحاوية كحاوية ثانية باسم <name>-restored ومنافذ خاصة بها، وتقع أقراص الجهاز الافتراضي وNVRAM في مجلد باسم <folder>-restored، وتعود مجموعة المجلدات كـ <path>-restored. لا يتغير شيء في الأصل.
    استبدال الأصل يكتب فوق ما هو موجود الآن. مع نسخ الحالة الحالية احتياطيًا أولًا، المفعّل افتراضيًا، ينسخ BombVault حالة اليوم أولًا لتستطيع العودة. إذا فشلت تلك النسخة فلا تبدأ الاستعادة. ويعمل ذلك أيضًا مع حاوية أو جهاز افتراضي لم يعد على الخادم: تُنسخ المجلدات التي تكتب الاستعادة فوقها وحدها.
    إلى مجلد الملفات فقط، للتصفح.
    تنزيل بصيغة ZIP محرك الفلاش، لذاكرة جديدة. لا يكتب BombVault أبدًا في محرك الفلاش العامل.
    إلى مجموعة بيانات جديدة والاستعادة داخل مجموعة البيانات مجموعات بيانات ZFS، راجع مجموعات بيانات ZFS.
  5. ما سيحدث يقول بالكلمات ما ستفعله الاستعادة، ويعرض مشهد الوجهة التي اخترتها.

قبل أن يُفتح زر استعادة، تتحقق النافذة من أن المستودع يجيب، وأن المفتاح يفتحه، وأن اللقطة موجودة، وأن في الوجهة مكانًا. ما دام فحص فاشلًا يبقى الزر مقفلًا، ويقول (i) فيه أي فحص هو.

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

قد توقف أمور عدة الاستعادة قبل أن تغيّر شيئًا. يجب أن يكون عنوان IP الثابت للحاوية ومنافذها المنشورة حرّة، وأن توجد شبكتها. وعلى Unraid ترفض كل استعادة في المكان مجلدًا ليس على pool أو share مركّب، لأن الملفات ستستقر في الذاكرة وتختفي بعد إعادة التشغيل. وتسمّي الاستعادة في المكان كل حاوية أخرى يصل bind mount فيها إلى مجلد تكتب إليه، مثل «هذا المسار تستخدمه nextcloud-db أيضًا»، لكن ذلك تحذير فقط.

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

تعمل الاستعادة في الخلفية. يمكنك إغلاق النافذة، ويظهر التقدم أيضًا تحت قيد التشغيل الآن. تعرض الاستعادة الطويلة نسبة مئوية ويمكن إلغاؤها، وتُسجَّل الاستعادة الملغاة كملغاة لا كفاشلة. والاستعادة التي تُلغى بينما الحاوية تتوقف، أو التي لا تستطيع إزالة الحاوية، لم تستعد شيئًا بعد، فتبدأ الحاوية من جديد. والحاوية التي تأخذ أحجامها من حاوية أخرى بـ --volumes-from تحتفظ بها، وترفض الاستعادة أن تبدأ ما دامت تلك الحاوية الأخرى غير موجودة.

نافذة الاستعادة عند خطوة «ماذا» مع تحديد ملفات فردية. نافذة الاستعادة عند خطوة «ماذا» مع تحديد ملفات فردية.

إلى أين تذهب الاستعادة إلى مجلد

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

مثال: استعادة ملف واحد

عدّل أحدهم ليلة أمس config.php في Nextcloud ولم يعد Nextcloud يبدأ. نسخة الليل عند 03:00 ما زال فيها الملف السليم. تريد ذلك الملف الواحد، لا الحاوية كلها.

  1. افتح الاستعادة، واختر بلاطة الحاويات واكتب nextcloud في ما الذي يجب استعادته؟.
  2. انقر nextcloud. تُفتح النافذة والنسخة عند 03:00 محددة مسبقًا كالموصى بها.
  3. اترك المصدر على محلي.
  4. تحت ماذا اختر ملفات فردية. افتح المجلدات حتى config وحدد config.php.
  5. تحت إلى أين اختر إلى مجلد وحدد مجلدًا، مثل user/restore، وهو /mnt/user/restore على المضيف.
  6. اقرأ ما سيحدث: يقع الملف في مجلد الوجهة، ولا يتغير شيء في الحاوية. اضغط استعادة.

تنتهي النافذة بـ تم: الملفات في /mnt/user/restore. تجد الملف باسم /mnt/user/restore/config.php، دون المجلدات التي فوقه. قارنه بالمعطوب، وانسخه إلى مجلد appdata وأعد تشغيل Nextcloud.

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

نافذة الاستعادة عند «ما سيحدث» مع اختيار استبدال الأصل. نافذة الاستعادة عند «ما سيحدث» مع اختيار استبدال الأصل.

ما الذي يعود، حسب النوع

الحاويات يُعاد إنشاؤها من تعريفها المحفوظ عبر واجهة Docker، مع entrypoint واسم المضيف وإعدادات الإيقاف والأحجام والتركيبات وحدود الموارد ومشغّل السجلات وإعدادات DNS والروابط القديمة. تعود الحاوية على الصورة التي كانت تعمل عليها وقت أخذ النسخة، لا على صورة أحدث سُحبت لاحقًا، وتُسحب الصورة الناقصة أولًا ببيانات الاعتماد من سجلّات الحاويات تحت الإعدادات، استعادة. ويعود أيضًا معالجها الرسومي أو بيئة تشغيلها (--gpus و--runtime=nvidia). وعلى مضيف بلا ذلك المشغّل أو بيئة التشغيل تقول الاستعادة ذلك وتقدّم استعادة دون المعالج الرسومي وبيئة التشغيل. يُهمل الرابط إلى حاوية غير موجودة، أو متوقفة حين تبدأ المستعادة، ويقول سجل التشغيل ذلك. والاستعادة التي تفشل بعد إزالة الحاوية تعيدها متوقفة.

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

الأجهزة الافتراضية يُعاد تعريف XML الخاص بها عبر SSH وتُعاد أقراصها وUEFI NVRAM، حتى بعد حذف الجهاز الافتراضي. راجع نسخ الأجهزة الافتراضية للأجهزة ذات لقطات Unraid والأقراص على zvol.

مجموعات المجلدات تعود بملكيتها وأذوناتها وأختامها الزمنية كما يخزّنها restic. وحيث لا يرفض الهدف إلا الملكية، كما يفعل /mnt/user، ينتهي التشغيل بملاحظة تقول ذلك. ثم يقارن BombVault الملفات بالنسخة، والملف الذي لم يصل يُفشل الاستعادة.

محرك الفلاش لا يلمس /boot العامل أبدًا. الاستعادة تنزيل باسم flash-<id>.zip، جاهز للوضع في Unraid USB Creator. يحمل ملف ZIP قيمة APP_KEY، لذا يحتاج تنزيله إلى كلمة مرور دخول وتسجيل دخول على المثيل. وتسرد النافذة أيضًا الإضافات في كل نسخة فلاش مع إصدارها وحجمها، ويمكنها إعادة واحدة إلى الفلاش العامل: ملف .plg ومجلدها تحت config/plugins وملفات الحزم التي تحملها النسخة. يثبّتها Unraid عند الإقلاع التالي، أو فورًا من Plugins, Install Plugin.

مجموعات بيانات ZFS لها وجهاتها الخاصة وتحتفظ بخصائص ZFS، راجع الاستعادة.

النسخ الذاتي يعود فقط عبر معالج الطوارئ، الذي يعيد تشغيل BombVault، فلا تُكتب قاعدة البيانات الحية أبدًا فوق مقبض مفتوح.

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

استعادة عدة عناصر دفعة واحدة

في صفحة الاستعادة حدد العناصر كما تحدد الصفوف في قائمة النسخ الاحتياطية: Ctrl+نقر، Shift+نقر، Ctrl+A، ضغطة طويلة، أو تحديد. يفتح استعادة حينئذ نافذة واحدة لها كلها.

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

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

استعادة عدة عناصر: صف لكل عنصر مع تقدمه. استعادة عدة عناصر: صف لكل عنصر مع تقدمه.

استعادة stack

النقر على stack في بطاقة الـ Stacks يفتح استعادة الـ stack. يستعيد كل عضو من أحدث نسخة له في الوقت نفسه، ومع التشغيل بترتيب التبعيات بعد الاستعادة يشغّلها بترتيب depends_on الخاص بها: قواعد البيانات والذاكرات المؤقتة أولًا، ثم التطبيق. وحين يكون مجلد مشروع عضو غائبًا في المكان الذي اخترته، تقدّم النافذة الحالة من محلي بدلًا منه.

يفحص BombVault الأعضاء ومجلد المشروع أولًا، والاستعادة التي لا يمكن أن تنجح لا تغيّر شيئًا. وإلا فإنه يوقف الأعضاء العاملين، التطبيقات قبل قواعد بياناتها، ثم يكتب مجلد المشروع، ثم يستعيد الأعضاء. وإن لم يعد مجلد المشروع، تُستعاد الأعضاء مع ذلك لكنها تبقى متوقفة، لأن المجلد قد يكون مكتوبًا نصفه، وهو المكان الذي تقع فيه عادةً bind mounts الأعضاء. ويقول تشغيل كل عضو ذلك.

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

مصادر أخرى

  • من مجلد نسخ احتياطية قديم يفتح مستودع BombVault آخر لم يعد يعمل، على قرص أو في وجهة خارج الموقع، بحقيبة استعادته أو بـ APP_KEY مكتوب. الجلسة للقراءة فقط وتعيش في الذاكرة فقط. راجع من مجلد نسخ احتياطية قديم.
  • الاستيراد من إضافة Appdata.Backup يقرأ مجلد نسخ الإضافة. يصبح كل أرشيف حاوية نقطة استعادة لتلك الحاوية، بتاريخ إنشاء الإضافة له. تُتجاوز الأرشيفات المستوردة سابقًا، وتُقرأ الأرشيفات نفسها فقط. تحتاج الحاوية إلى نسخة واحدة في BombVault أولًا، ليكون لدى الاستعادة تعريفها. لا يمس الاحتفاظ نقاط الاستعادة المستوردة، فاحذف واحدة بنفسك حين لا تحتاج إليها.

بعد الاستعادة

تُدرج نسخة استُعيدت بجانب الأصل تحت النسخ الاحتياطية كمستبعدة، فلا تُحسب مهمة مفتوحة. أضفها إلى الجدول إن أردت الاحتفاظ بها. الحاوية أو الجهاز الافتراضي اللذان كانا يعملان وقت النسخ يعودان يعملان، والمتوقف يبقى متوقفًا. في Unraid تظهر الحاوية المستعادة من جديد في تبويب Docker كتطبيق عادي قابل للتحرير، والجهاز الافتراضي في VM Manager بأقراصه وNVRAM مرتبطة.