مجموعات بيانات ZFS¶
تنسخ صفحة ZFS مجموعات بيانات ZFS احتياطياً. العنصر هو مجموعة بيانات واحدة مع كل مجموعات البيانات التي تحتها. في كل نسخة احتياطية يلتقط BombVault لقطة ZFS واحدة للشجرة كلها، فتُلتقط كل مجموعة بيانات فيها في اللحظة نفسها. ثم يقرأ ملفات كل مجموعة بيانات من تلك اللقطة، ويخزنها باستخدام restic بالطريقة نفسها التي يخزن بها مجلداً، ويزيل اللقطة مباشرة بعد ذلك. النسخ الاحتياطية خالية من التكرار، ويمكنك تصفح كل واحدة منها، ويمكن استعادة ملفات منفردة.
لا يستخدم BombVault أبداً zfs send لمجموعات البيانات، ولا يعيد أي مجموعة بيانات إلى حالة سابقة، ولا يدمر أياً منها.
المتطلبات¶
- اتصال SSH بهذا الخادم. تستخدم مجموعات بيانات ZFS المفتاح والمضيف والمستخدم أنفسهم الذين تستخدمهم نسخ VM الاحتياطية. إذا كانت نسخ VM تعمل بالفعل، فهذا يعمل أيضاً. وإلا فاتبع دليل نسخ VM احتياطياً عبر SSH على GitHub. أسماء حقول القالب هي Host SSH: Address وHost SSH: Port وHost SSH: User.
- الأمر
zfsعلى ذلك المضيف. يتوفر في Unraid 6.12 وما بعده وفي TrueNAS SCALE. - Host Data مربوط كـ
/mntمع Access Mode بقيمة Read/Write - Slave. هذه هي القيمة الافتراضية في القالب. لا تظهر لقطة مجموعة البيانات داخل مجلدها.zfs/snapshotإلا بعد أن يبدأ BombVault، لذا يجب أن تصل إلى الحاوية عمليات التركيب التي يجريها المضيف لاحقاً. - مجموعات البيانات مركّبة تحت
/mnt. في Unraid توجد المجمعات في/mnt/<pool>، فهذا متحقق بالفعل.
فعّل النطاق من الإعدادات، عام (مجموعات بيانات ZFS). تعرض صفحة ZFS عندها بطاقة الاتصال بهذا الخادم. تختبر البطاقة اتصال SSH، وتذكر المستخدم والمضيف اللذين تتصل بهما، وتقول ما الناقص عندما ينقص شيء. ويعرض فحص التكامل مع المضيف (/spike) النتيجة نفسها.
العناصر ومجموعات البيانات الفرعية¶
افتح أضف مجموعات بيانات في صفحة ZFS. تأتي القائمة من الخادم. اختر مجموعة البيانات الأعلى فيما تريد نسخه احتياطياً، مثلاً cache/appdata، فيغطي العنصر هذه المجموعة وكل مجموعة بيانات تحتها.
- تنضم مجموعات البيانات الفرعية الجديدة من تلقاء نفسها. مجموعة البيانات التي تُنشأ لاحقاً تحت العنصر تُنسخ في التشغيل التالي، ويذكرها ذلك التشغيل على أنها جديدة. تقرأها نسختها الأولى كاملة مرة واحدة، وبعد ذلك تُقرأ التغييرات فقط.
- يمكنك استبعاد مجموعات فرعية منفردة. أوقف إحداها في إعدادات العنصر فتُستبعد مع كل ما تحتها. المجموعة الفرعية المستبعدة التي لم تعد موجودة على الخادم تُعلَّم بذلك ويمكن إزالتها من القائمة.
- المجموعات الفرعية التي لا يمكن قراءتها تُتخطى، ولكن ليس بصمت أبداً. يعرضها التشغيل، ويبين العنصر عدد ما تُخطي منها، وتعد بطاقة التغطية في لوحة التحكم كل واحدة منها غير محمية. ومع ذلك ينسخ التشغيل كل ما عداها ولا يفشل بسبب مجموعة فرعية متخطاة. الأسباب موجودة في جدول رموز الأسباب: مجموعة بيانات غير مركّبة، أو لها
canmount=off، أو نقطة تركيبlegacyأو بلا نقطة تركيب، أو مفتاح تشفير غير محمّل، أو الوصول إلى اللقطات معطّل، أو نقطة تركيب لا يراها BombVault. - مجموعة البيانات المتخطاة لا تجر معها مجموعاتها الفرعية. مجموعة بيانات بقيمة
canmount=offلا تحوي إلا مجموعات بيانات أخرى تُتخطى (وتظهر بوصف "بنية فقط")، وتُنسخ مجموعاتها الفرعية المركّبة. مجموعة البيانات المشفرة التي لم يُحمّل مفتاحها تُتخطى مع المجموعات الفرعية التي تشاركها المفتاح. - المجموعات الفرعية التي هي أقراص VM أو بيانات نظام تبدأ متوقفة في نافذة الإضافة، مع السبب بجانب المفتاح. وإضافة مجمع كامل تطلب تأكيداً يعرض ما يحتويه.
وحدات التخزين¶
تحتوي وحدة التخزين (zvol) على قرص افتراضي بدلاً من ملفات، ولا تنسخ صفحة ZFS أي وحدة تخزين أبداً.
- وحدة التخزين التي تستخدمها VM تُنسخ مع تلك الـ VM في صفحة VMs.
- وحدة التخزين التي لا تستخدمها أي VM (iSCSI extent، أو قرص فصلته) لا ينسخها BombVault. تعد نافذة الإضافة وصفحة ZFS هذه الوحدات وتذكر ذلك. ستنسخها نسخة لاحقة.
وحدات التخزين داخل شجرة العنصر تُتخطى وتُذكر بأسمائها في كل تشغيل.
تخزين Docker¶
مع مشغّل تخزين ZFS في Docker، تكون كل طبقة صورة مجموعة بيانات بنقطة تركيب legacy. تجمعها نافذة الإضافة في سطر واحد لكل أصل. الشجرة التي تحوي أكثر من 20 مجموعة من هذا النوع لا يمكن أن تصبح عنصراً: فطالما توجد لقطة لها، لا يستطيع Docker إزالة طبقات الصور. أضف بدلاً من ذلك مجموعات البيانات التي تحتها، مثلاً appdata.
العناصر لا تتداخل أبداً¶
لا يمكن أن تنتمي مجموعة البيانات إلا إلى عنصر واحد. يرفض BombVault عنصراً جديداً يقع داخل عنصر موجود أو يحتوي عنصراً موجوداً. لدمج عدة عناصر فرعية في عنصر أصل واحد، احذف العناصر الفرعية أولاً مع اختيار الاحتفاظ بنسخها الاحتياطية، ثم أضف الأصل. تحتفظ كل مجموعة بيانات بسجلها تحت اسمها، لذا تكمل النسخة التالية من حيث توقفت العناصر القديمة ولا تعيد قراءة كل شيء.
إيقاف الحاويات وتشغيل أوامر حول اللقطة¶
لقطة قاعدة بيانات قيد التشغيل تشبه انقطاعاً مفاجئاً للكهرباء: تتعافى قاعدة البيانات عادة، لكن عليها أن تفعل ذلك. يستطيع كل عنصر أن يفعل أمرين حيال ذلك، وكلاهما يغطي لحظة اللقطة فقط، لا النسخة الاحتياطية كلها.
- أوقف هذه الحاويات من أجل اللقطة. يوقف BombVault الحاويات المدرجة، ويلتقط اللقطة، ثم يشغّلها من جديد فوراً. تتوقف حاويات مستوى الاعتماد الواحد بالتوازي، والتابعة أولاً، فتستغرق النافذة كلها عادة بضع ثوانٍ، ويعرض التشغيل مدتها. ثم تقرأ النسخة الاحتياطية اللقطة المجمدة بينما تعمل التطبيقات من جديد. لا تُوقف إلا الحاويات التي كانت تعمل.
- أمر قبل اللقطة وبعدها. يعمل داخل حاوية تختارها، مثلاً لتفريغ قاعدة بيانات داخل مجموعة البيانات قبل اللقطة مباشرة دون إيقاف أي شيء. إذا فشل الأمر الذي قبل اللقطة، تفشل النسخة الاحتياطية ولا تُلتقط لقطة. أما فشل الأمر الذي بعد اللقطة فيظهر في التشغيل لكنه لا يُفشل النسخة الاحتياطية.
ما الذي يحدث عندما يسوء شيء:
- إذا تعذر إيقاف حاوية، يشغّل BombVault الحاويات التي أوقفها بالفعل، وتفشل النسخة الاحتياطية مع ذكر اسم الحاوية. ولا يلجأ أبداً إلى لقطة لتطبيقات قيد التشغيل.
- ينتظر الإيقاف حتى تنتهي نسخة حاوية جارية (حتى 30 دقيقة في التشغيل اليدوي، وحتى حد زمن النسخة الاحتياطية في التشغيل المجدول)، حتى لا يوقف الاثنان الحاوية نفسها أو يشغلانها في الوقت نفسه أبداً.
- قبل أن تتوقف الحاوية الأولى، يسجل BombVault الحاويات التي سيوقفها. إذا أُنهي BombVault داخل النافذة، يعيد تشغيل تلك الحاويات عند بدئه التالي، ويرسل إشعاراً، ويعرض العنصر ملاحظة حمراء لكل حاوية لم يستطع تشغيلها.
يعمل التفريغ التلقائي لقواعد البيانات (راجع الميزات) مع النسخة الاحتياطية الخاصة بالحاوية في صفحة Containers، لا مع عنصر ZFS. قاعدة البيانات التي لا تُنسخ حاويتها إلا عبر مجموعة بياناتها لا تحصل على تفريغ، لذا أعطها أمراً هنا.
يمكن أن تكون الحاوية في هذه القائمة وفي صفحة Containers في الوقت نفسه. تُخزن بياناتها عندئذ مرتين، في مستودعين، ويوقفها نسخ احتياطي شامل مرتين. ويشير العنصر إلى ذلك.
الاستعادة¶
افتح النسخ الاحتياطية في العنصر، واختر النسخة، ثم مجموعة البيانات. القيمة الافتراضية هي مجموعة البيانات العليا في العنصر.
- استعد داخل مجموعة البيانات. تُكتب ملفات النسخة الاحتياطية في نقطة تركيب مجموعة البيانات. تُستبدل الملفات التي تحمل الاسم نفسه، وتبقى الملفات الأخرى. لا تُعاد مجموعة البيانات أبداً إلى حالة سابقة ولا تُستبدل. يتحقق BombVault من أن مجموعة البيانات مركّبة ومرئية وقابلة للكتابة، مرة قبل أن يبدأ ومرة أخرى قبل الكتابة مباشرة. حيث تكون مجموعة بيانات فرعية مركّبة بداخلها لا يُكتب شيء: تحتفظ المجموعة الفرعية بملفاتها ومالكها وأذوناتها، وتُستعاد من نسختها الاحتياطية الخاصة.
- استعد إلى مجلد. اختر مجلداً تحت
/mnt. يتحقق BombVault من أن المجلد يقع على مجمع أو مشاركة مركّبة ومن وجود مساحة حرة كافية. يعمل هذا دون اتصال SSH ولمجموعات بيانات لم تعد موجودة. - إلى مجموعة بيانات جديدة. اكتب اسم مجموعة بيانات غير موجودة بعد. ينشئها BombVault بخصائص ZFS المحفوظة في النسخة الاحتياطية ويستعيد إليها، راجع الاستعادة كمجموعة بيانات جديدة.
- اختر ملفات (متقدم): اكتب في مجموعة البيانات الملفات والمجلدات التي تختارها فقط.
- كل مجموعات بيانات هذه النسخة (متقدم): كل مجموعة بيانات في الشجرة إلى مجلد فرعي خاص بها في المجلد الذي تختاره. تُذكر مجموعات البيانات التي تُخطيت في تلك النسخة.
- من خادم آخر: تستعيد صفحة الاستعادة من مستودع BombVault آخر، دائماً إلى مجلد: كل مجموعات بيانات نسخة واحدة، كل منها إلى مجلد فرعي خاص بها، أو مجموعة بيانات واحدة من الشجرة، كاملة أو ملفات مختارة.
تُعرض قائمة الحاويات المطلوب إيقافها في العنصر أيضاً عند الاستعادة داخل مجموعة البيانات. تبقى تلك الحاويات متوقفة طوال الاستعادة، وتنتظر نسخ الحاويات خلال ذلك.
لقطة الأمان¶
قبل أن يكتب في مجموعة بيانات، يلتقط BombVault لقطة ZFS لتلك المجموعة وحدها باسم bombvault-prerestore-<الوقت>. تكون مفعّلة افتراضياً، وإيقافها يتطلب تأكيداً ثانياً. إذا تعذر التقاط اللقطة، لا يُستعاد شيء.
لا يحذف BombVault لقطة الأمان من تلقاء نفسه أبداً. يعرضها العنصر مع عمرها وحجمها، ولكل منها إجراء حذف، وينبه عندما يزيد عمر أقدمها على 30 يوماً، لأنها تُبقي البيانات المحذوفة والمعدلة في المجمع.
للعودة بعد الاستعادة، انسخ ملفات منفردة من .zfs/snapshot/bombvault-prerestore-<الوقت> داخل مجموعة البيانات. لا يعمل zfs rollback <dataset>@bombvault-prerestore-<الوقت> إلا ما دامت هي أحدث لقطة لتلك المجموعة. ويحذف zfs rollback -r كل لقطة أحدث، بما فيها اللقطات التلقائية.
الاستعادة كمجموعة بيانات جديدة¶
يحفظ BombVault مع كل نسخة احتياطية خصائص ZFS المضبوطة محليًا لكل مجموعة بيانات: compression وrecordsize وquota وreservation وatime وxattr وacltype وcasesensitivity وخصائص المستخدم الخاصة بك. تُترك القيم الموروثة والقيم للقراءة فقط، لأنها تعود وحدها. النسخ التي سبقت حفظ BombVault لها لا تحتوي على أي منها.
- إلى مجموعة بيانات جديدة يشغّل
zfs createمع كل خاصية محفوظة. لا يمكن ضبط casesensitivity وnormalization وutf8only إلا بهذه الطريقة. أما الحصص والحجوزات فتُضبط بعد الملفات، حتى لا ترفض كتابتها. تُترك نقطة التركيب حتى لا تتعارض النسخة مع الأصل، وكذلكcanmountوreadonlyوإعدادات التشفير، حتى تتمكن الاستعادة من الكتابة. تأخذ مجموعة البيانات الجديدة الواقعة تحت مجموعة مشفّرة تشفيرها. يجب أن تكون مجموعة البيانات التي فوقها موجودة. إذا فشل شيء بعد الإنشاء، تبقى مجموعة البيانات الجديدة على الخادم، لأن BombVault لا يدمّر مجموعة بيانات أبدًا. - استعد داخل مجموعة البيانات تعرض الخصائص المحفوظة بجانب الاستعادة. يضبط ضبط هذه الخصائص أيضًا ما لا تزال مجموعة البيانات الموجودة تقبله، قبل كتابة أي ملف. أما الحصص والحجوزات فتُضبط بعد الملفات، حتى لا ترفض كتابتها. بدون هذا المفتاح تحتفظ مجموعة البيانات بإعداداتها.
ما الذي تحتويه النسخة الاحتياطية¶
في النسخة الاحتياطية: ملفات ومجلدات كل مجموعة بيانات منسوخة، مع الملكية والأذونات والطوابع الزمنية والسمات الممتدة كما يخزنها restic، وخصائص ZFS المضبوطة محليًا لكل مجموعة بيانات.
ليس في النسخة الاحتياطية:
- مالك وأذونات المجلد العلوي لكل مجموعة بيانات نفسه (كل ما تحته مشمول). الاستعادة داخل مجموعة البيانات تترك المجلد العلوي الموجود كما هو، والاستعادة إلى مجلد تنشئه بالأذونات
0755؛ - لقطات ZFS الموجودة؛
- المجموعات الفرعية التي تُخطيت أو استُبعدت؛
- وحدات التخزين.
للاستعادة إلى تجمع جديد، أنشئ التجمع واستعد كل مجموعة بيانات إلى مجموعة بيانات جديدة. لم يُتحقق بعد مما إذا كانت قوائم NFSv4 ACL، كما يستخدمها TrueNAS على مجموعات بيانات SMB، تعود كما تتوقع، لذا جرّب استعادة على بياناتك قبل الاعتماد عليها.
مجموعات البيانات المشفرة¶
لا تُنسخ مجموعة البيانات المشفرة إلا ما دام مفتاحها محمّلاً. وإلا فتُتخطى مع تحذير؛ حمّل المفتاح بالأمر zfs load-key وركّب مجموعة البيانات. يقرأ BombVault البيانات بعد فك تشفيرها ويخزنها في مستودع restic المشفر. إذا عطّلت التشفير في BombVault، فذلك المستودع غير مشفر.
اللقطات المتبقية¶
اسم لقطة النسخة الاحتياطية هو <dataset>@bombvault-<14 رقماً>، مثلاً cache/appdata@bombvault-20260924021500 (UTC). يزيلها BombVault بعد النسخة الاحتياطية مباشرة. إذا فشل ذلك، مثلاً لأن مجموعة البيانات مشغولة أو لأن BombVault أُوقف، فإن BombVault يزيلها:
- قبل النسخة الاحتياطية التالية لذلك العنصر،
- عند بدء BombVault، لكل عنصر، حتى مع إيقاف النطاق،
- عندما تحذف العنصر،
- عندما تضغط أزل الآن في العنصر، الذي يعرض أيضاً عدد المتبقي.
لا تُزال إلا الأسماء التي تطابق تماماً bombvault- يليها 14 رقماً. لا تُمس أبداً لقطات الأمان ولا لقطاتك الخاصة ولا اللقطات التلقائية. لإزالة واحدة يدوياً:
الحالات الشاذة¶
المجموعة الفرعية التي أُفرغت بالكاد تغير مجموع شجرة كبيرة، لذا يراقب كشف الحالات الشاذة كل مجموعة بيانات في العنصر على حدة: للحجم وعدد الملفات والبيانات الجديدة ووقت restic سجل خاص بكل منها. ينتمي هذا السجل إلى اسم مجموعة البيانات، لذا يبقى عندما ينسخ عنصر آخر الشجرة لاحقاً.
مجموعة البيانات التي نسخها التشغيل السابق ولم يستطع هذا التشغيل قراءتها تُعد مُفرغة، ما دام تحديد العنصر لم يتغير. يشمل ذلك مفتاحاً غير محمّل، ومجموعة بيانات غير مركّبة، ومجموعة اختفت من الشجرة. المجموعة الفرعية التي تستبعدها بنفسك تغير التحديد، لذا يبدأ سجلها من جديد. وما دامت ملاحظة عن بيانات مفقودة مفتوحة، تحتفظ سياسة الاستبقاء بالنسخ القديمة لتلك المجموعة وحدها وتنظف بقية الشجرة كالمعتاد.
في صفحة الحالات الشاذة لكل مجموعة بيانات سطر خاص بها في لوحة العنصر، التي تُفتح من المراقبة في بطاقة العنصر، أو من سطره في بطاقة لا شيء مفتوح إن لم يكن له شيء مفتوح. وتعرض شجرة العنصر في هذه الصفحة الملاحظات المفتوحة بجانب كل مجموعة بيانات. يفتح الرابط في الملاحظة لوحة استعادة العنصر على آخر نسخة سليمة لمجموعة البيانات. أما ما إذا كان التشغيل يكتمل فيُحكم عليه للعنصر كله، لأن التشغيل ينجح أو يفشل ككل.
الفحوص نفسها موصوفة في الميزات. يستطيع مساعد متصل عبر خادم MCP أن يعرض نقاط الاستعادة لعنصر ZFS ويبدأ نسخته الاحتياطية ويقرأ الملاحظات، لكن الإقرار بالملاحظة يتم في صفحة الحالات الشاذة.
رموز الأسباب¶
تذكر الصفحة وسجل التشغيل والإشعارات المشكلة بأحد هذه الرموز. ولمعظمها يظهر الحل بجانبها في الصفحة أيضاً.
| الرمز | المعنى | ما العمل |
|---|---|---|
ssh-missing |
اتصال SSH غير مُعد في هذه الحاوية. | أعد اتصال SSH كما لنسخ VM الاحتياطية. |
host-placeholder |
ما زال Host SSH: Address هو القيمة المثال، ولم يستجب host.docker.internal أيضاً. |
اضبط Host SSH: Address على عنوان IP المحلي لهذا الخادم. |
host-fallback |
ما زال Host SSH: Address هو القيمة المثال، وhost.docker.internal يعمل. |
لا شيء، أو اضبط عنوان IP المحلي. |
ssh-unreachable |
لا يمكن الوصول إلى الخادم عبر SSH. | تحقق من العنوان والمنفذ ومن أن SSH مفعّل. |
ssh-auth |
رفض الخادم مفتاح BombVault. | شغّل مرة واحدة على الخادم الأمر المعروض في بطاقة الاتصال. |
zfs-not-found |
لا يوجد الأمر zfs على مضيف SSH. |
وجّه Host SSH: Address إلى الجهاز الذي يملك المجمعات. |
zfs-permission |
لا يُسمح لمستخدم SSH بتشغيل أمر zfs هذا. | استخدم root، أو راجع TrueNAS SCALE. |
uri-mismatch |
يحدد LIBVIRT_URI مضيفاً أو مستخدماً غير الذي في حقول SSH. |
وفّق بينهما، أو أفرغ حقول SSH ليأتي الاثنان من الـ URI. |
zfs-error |
أبلغ zfs عن خطأ آخر. | تعرض التفاصيل رسالته. |
propagation-missing |
عمليات التركيب الجديدة على المضيف لا تصل إلى الحاوية. | اضبط Access Mode لـ Host Data على Read/Write - Slave وأعد تشغيل BombVault. |
invalid-name |
اسم مجموعة بيانات لا يقبله BombVault. | أعد تسمية مجموعة البيانات. |
name-too-long |
مجموعة بيانات في الشجرة أطول من أن تصلح اسماً للقطة. | أعد تسميتها، أو أضف مجموعة بيانات تحتها كعنصر. |
invalid-exclude |
نمط استبعاد أو مجموعة فرعية مستبعدة لا يناسب العنصر. | صحّح الإدخال الذي تذكره الرسالة. لاستبعاد مجموعة فرعية كاملة، أوقفها بدلاً من كتابة نمط. |
not-found |
مجموعة البيانات غير موجودة على الخادم. | أزل العنصر، أو أعد إنشاء مجموعة البيانات. تبقى نسخها الاحتياطية قابلة للاستعادة. |
not-filesystem |
هذه وحدة تخزين، لا نظام ملفات. | راجع وحدات التخزين. |
overlaps-item |
تتداخل مجموعة البيانات مع عنصر موجود. | راجع العناصر لا تتداخل أبداً. |
docker-storage |
تحتوي الشجرة على تخزين صور Docker. | راجع تخزين Docker. |
nothing-readable |
لا يمكن قراءة أي مجموعة بيانات في العنصر حالياً. | راجع رموز مجموعات البيانات المتخطاة. |
snapshot-failed |
تعذر إنشاء اللقطة. | تعرض التفاصيل رسالة zfs. |
containers-busy |
كانت نسخة حاوية ما زالت تعمل حين كان على الحاويات أن تتوقف. | ابدأ من جديد لاحقاً. التشغيلات المجدولة تنتظر من تلقاء نفسها. |
consistency-stop-failed |
تعذر إيقاف حاوية، لذا لم تُلتقط لقطة. | تحقق من الحاوية، أو أزلها من القائمة. |
pre-snapshot-failed |
فشل الأمر الذي قبل اللقطة. | تعرض تفاصيل التشغيل مخرجاته. |
container-unknown |
حاوية مدرجة غير موجودة. | أزلها من القائمة. |
container-is-self |
لا يستطيع BombVault إيقاف حاويته الخاصة. | أزلها من القائمة. |
leftover-snapshots |
ما زالت على الخادم لقطات لم يستطع BombVault إزالتها. | اضغط أزل الآن، وراجع اللقطات المتبقية. |
zvol |
وحدة تخزين في الشجرة، تم تخطيها. | راجع وحدات التخزين. |
canmount-off |
لا تُركّب أبداً (canmount=off)، تم تخطيها. |
إذا كانت تحوي بيانات، ركّبها أو انقل البيانات إلى مجموعة فرعية. |
legacy-mount |
نقطة تركيب legacy، تم تخطيها. | أعطها نقطة تركيب تحت /mnt. |
no-mountpoint |
بلا نقطة تركيب، تم تخطيها. | أعطها نقطة تركيب تحت /mnt. |
not-mounted |
غير مركّبة على الخادم، تم تخطيها. | ركّبها بالأمر zfs mount، أو اضبط canmount=on. |
key-not-loaded |
مشفرة والمفتاح غير محمّل، تم تخطيها. | zfs load-key، ثم ركّبها. |
snapdir-disabled |
الوصول إلى اللقطات معطّل، تم تخطيها. | zfs set snapdir=hidden <dataset>. يبقى المجلد .zfs مخفياً. |
not-visible |
لا يرى BombVault نقطة تركيب مجموعة البيانات. | انقل نقطة التركيب تحت مسار Host Data، أو اربطها داخل الحاوية على المسار نفسه مع Read/Write - Slave. |
shfs-only |
لا تظهر مجموعة البيانات إلا عبر /mnt/user، الذي يخفي اللقطات. |
اربط /mnt، لا /mnt/user، كـ Host Data. |
snapshot-not-visible |
أُنشئت اللقطة لكنها لم تظهر داخل BombVault. | شغّل اختبر الوصول إلى اللقطات؛ راجع أدناه. |
snapshot-loop |
لم تصل اللقطة إلى BombVault لأن Host Data لا يمرر عمليات التركيب الجديدة. | اضبط Access Mode لـ Host Data على Read/Write - Slave وأعد تشغيل BombVault. |
backup-failed |
فشل restic لهذه المجموعة. | تعرض تفاصيل التشغيل السبب. |
not-reached |
انتهى التشغيل قبل هذه المجموعة. | شغّل النسخة الاحتياطية مرة أخرى. |
gone |
لم تعد مجموعة البيانات على الخادم. | لا شيء. تبقى نسخها الاحتياطية قابلة للاستعادة. |
read-only-mount |
لا يستطيع BombVault إلا قراءة مجموعة البيانات، لذا لا يمكنه الاستعادة داخلها. | اضبط الربط على Read/Write - Slave، أو استعد إلى مجلد. |
destination-not-mounted |
المجلد ليس على مجمع أو مشاركة مركّبة. | اختر مجلداً على مجمع أو مشاركة. |
not-enough-space |
لا توجد مساحة حرة كافية في الوجهة. | حرر مساحة أو اختر مجلداً آخر. |
safety-snapshot-failed |
تعذر التقاط لقطة الأمان، لذا لم يُستعد شيء. | تعرض التفاصيل رسالة zfs. |
safety-name-too-long |
اسم مجموعة البيانات أطول من أن يصلح للقطة أمان. | أوقف لقطة الأمان، أو استعد إلى مجلد. |
dataset-exists |
توجد مجموعة بيانات بهذا الاسم بالفعل. | اختر اسمًا جديدًا، أو استعد إلى مجموعة البيانات نفسها. |
create-failed |
تعذّر إنشاء مجموعة البيانات الجديدة. | تعرض التفاصيل رسالة zfs. تحقق من وجود مجموعة البيانات التي فوقها. |
new-dataset-not-visible |
أُنشئت مجموعة البيانات الجديدة، لكن BombVault لا يراها، لذلك لم تُستعد أي بيانات. | تبقى مجموعة البيانات على الخادم. ركّبها تحت مسار Host Data واستعد إليها. |
set-properties-failed |
تعذّر ضبط الخصائص المحفوظة، لذلك لم تُستعد أي بيانات. | تعرض التفاصيل رسالة zfs. |
set-limits-failed |
استُعيدت الملفات، لكن تعذّر ضبط الحصة أو الحجز المحفوظ. | تعرض التفاصيل رسالة zfs. اضبط الحصة أو الحجز بنفسك باستخدام zfs set. |
التحقق مما تراه الحاوية¶
يلتقط اختبر الوصول إلى اللقطات في العنصر لقطة حقيقية لشجرته، ويبحث عنها داخل BombVault لكل مجموعة بيانات، ثم يزيلها من جديد. إنها أسرع طريقة لإثبات المسار كله قبل أول تشغيل مجدول.
لتنظر بنفسك، شغّل هذا على الخادم:
كل سطر هو عملية تركيب واحدة داخل الحاوية. يعرض سطر مجموعة البيانات مسارها داخل الحاوية (تحت /host/user) واسم مجموعة البيانات. وجود حقل master:N في ذلك السطر يعني أن عملية التركيب تستقبل عمليات التركيب التي يجريها المضيف لاحقاً، وهذا ما يحتاجه الوصول إلى اللقطات. إذا كان مفقوداً، فاضبط Access Mode لـ Host Data على Read/Write - Slave وأعد تشغيل BombVault.
TrueNAS SCALE¶
- عندما يكون
LIBVIRT_URIمضبوطاً (كما لنسخ VM الاحتياطية على TrueNAS)، يأخذ BombVault من الـ URI مضيف SSH والمستخدم والمنفذ لأوامر zfs، كلاً منها لم يُضبط وحده. من دون نسخ VM الاحتياطية، اضبط بدلاً من ذلكLIBVIRT_HOSTوLIBVIRT_SSH_USERوLIBVIRT_SSH_PORT. أضف المتغيرات تحت Additional Environment Variables. - يحتاج مستخدم غير root إلى إذن على مجموعة البيانات العليا في العنصر، يشمل عندئذ كل مجموعة بيانات تحتها:
تحتاج الاستعادة إلى مجموعة بيانات جديدة أيضًا إلى صلاحية create على مجموعة البيانات التي فوقها، ويحتاج ضبط الخصائص المحفوظة إلى صلاحية على تلك الخصائص.
جلسة SSH بغير root على TrueNAS لا تحتوي /usr/sbin في مسارها؛ فيستدعي BombVault عندئذ /usr/sbin/zfs مباشرة.
- يجب أن يكون Host Data للتطبيق مسار مضيف فوق مجموعات البيانات، مثلاً /mnt/tank، لا ixVolume. مع مسار مضيف، يمرر التطبيق عمليات تركيب المضيف الجديدة إلى BombVault (rslave)، وهذا ما يحتاجه الوصول إلى اللقطات.