מערכי נתונים של 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 קיימים;
- צאצאים שדולגו או הושארו בחוץ;
- אמצעי אחסון.
כדי לשחזר למאגר חדש, צור את המאגר ושחזר כל מערך נתונים למערך נתונים חדש. עדיין לא נבדק אם רשימות ACL של NFSv4, כפי ש-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 |
למארח ה-SSH אין פקודת zfs. |
כוון את 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), וזה מה שהגישה לתצלומים צריכה.