Μετάβαση στο περιεχόμενο

Σύνολα δεδομένων ZFS

Η σελίδα ZFS δημιουργεί αντίγραφα ασφαλείας συνόλων δεδομένων ZFS. Ένα στοιχείο είναι ένα σύνολο δεδομένων μαζί με κάθε σύνολο δεδομένων κάτω από αυτό. Για κάθε αντίγραφο, το BombVault παίρνει ένα μόνο στιγμιότυπο ZFS ολόκληρου του δέντρου, ώστε κάθε σύνολο δεδομένων σε αυτό να καταγράφεται την ίδια στιγμή. Έπειτα διαβάζει τα αρχεία κάθε συνόλου δεδομένων από αυτό το στιγμιότυπο, τα αποθηκεύει με το restic όπως αποθηκεύει έναν φάκελο και αφαιρεί το στιγμιότυπο αμέσως μετά. Τα αντίγραφα έχουν αφαίρεση διπλοτύπων, μπορείτε να περιηγηθείτε σε καθένα από αυτά και μεμονωμένα αρχεία μπορούν να επαναφερθούν.

Το BombVault δεν χρησιμοποιεί ποτέ zfs send για σύνολα δεδομένων, δεν επαναφέρει ποτέ ένα σύνολο δεδομένων σε προηγούμενη κατάσταση και δεν καταστρέφει ποτέ κανένα.

Απαιτήσεις

  • Η σύνδεση SSH με αυτόν τον διακομιστή. Τα σύνολα δεδομένων ZFS χρησιμοποιούν το ίδιο κλειδί, τον ίδιο host και τον ίδιο χρήστη με τα αντίγραφα VM. Αν τα αντίγραφα VM λειτουργούν ήδη, λειτουργεί και αυτό. Διαφορετικά, ακολουθήστε τον οδηγό αντιγράφου VM μέσω SSH στο GitHub. Τα πεδία του προτύπου λέγονται Host SSH: Address, Host SSH: Port και Host SSH: User.
  • Η εντολή zfs σε αυτόν τον host. Το Unraid 6.12 και νεότερα και το TrueNAS SCALE την έχουν.
  • Το Host Data αντιστοιχισμένο ως /mnt με Access Mode Read/Write - Slave. Αυτή είναι η προεπιλογή του προτύπου. Το στιγμιότυπο ενός συνόλου δεδομένων εμφανίζεται στον φάκελο .zfs/snapshot του συνόλου μόνο αφού ξεκινήσει το BombVault, οπότε το container πρέπει να λαμβάνει τις προσαρτήσεις που κάνει ο host αργότερα.
  • Τα σύνολα δεδομένων προσαρτημένα κάτω από το /mnt. Στο Unraid τα pools βρίσκονται στο /mnt/<pool>, οπότε αυτό ισχύει ήδη.

Ενεργοποιήστε τον τομέα στις Ρυθμίσεις, Γενικά (Σύνολα δεδομένων ZFS). Η σελίδα ZFS δείχνει τότε μια κάρτα Σύνδεση με αυτόν τον διακομιστή. Ελέγχει τη σύνδεση SSH, αναφέρει τον χρήστη και τον host στους οποίους συνδέεται και λέει τι λείπει όταν κάτι λείπει. Ο έλεγχος ενσωμάτωσης με τον host (/spike) δείχνει το ίδιο αποτέλεσμα.

Στοιχεία και θυγατρικά σύνολα δεδομένων

Ανοίξτε την Προσθήκη συνόλων δεδομένων στη σελίδα ZFS. Η λίστα έρχεται από τον διακομιστή. Επιλέξτε το σύνολο δεδομένων που βρίσκεται ψηλότερα σε αυτό που θέλετε να αντιγράψετε, για παράδειγμα cache/appdata, και το στοιχείο καλύπτει αυτό και κάθε σύνολο δεδομένων κάτω από αυτό.

  • Τα νέα θυγατρικά σύνολα προστίθενται μόνα τους. Ένα σύνολο δεδομένων που δημιουργείται αργότερα κάτω από το στοιχείο αντιγράφεται στην επόμενη εκτέλεση, η οποία το αναφέρει ως νέο. Το πρώτο του αντίγραφο το διαβάζει μία φορά ολόκληρο· έπειτα διαβάζονται μόνο οι αλλαγές.
  • Μπορείτε να παραλείψετε μεμονωμένα θυγατρικά. Απενεργοποιήστε ένα στις ρυθμίσεις του στοιχείου και παραλείπεται μαζί με ό,τι βρίσκεται κάτω από αυτό. Ένα παραλειπόμενο θυγατρικό που δεν υπάρχει πια στον διακομιστή σημειώνεται ως τέτοιο και μπορεί να αφαιρεθεί από τη λίστα.
  • Τα θυγατρικά που δεν διαβάζονται παραλείπονται, ποτέ σιωπηλά. Η εκτέλεση τα απαριθμεί, το στοιχείο δείχνει πόσα παραλείφθηκαν και η κάρτα κάλυψης στον πίνακα ελέγχου μετρά το καθένα ως μη προστατευμένο. Η εκτέλεση αντιγράφει παρ' όλα αυτά όλα τα υπόλοιπα και δεν αποτυγχάνει λόγω ενός παραλειπόμενου θυγατρικού. Οι λόγοι βρίσκονται στον πίνακα κωδικών αιτίας: ένα σύνολο δεδομένων που δεν είναι προσαρτημένο, έχει canmount=off, σημείο προσάρτησης legacy ή κανένα, κλειδί κρυπτογράφησης που δεν έχει φορτωθεί, απενεργοποιημένη πρόσβαση στα στιγμιότυπα ή σημείο προσάρτησης που το BombVault δεν βλέπει.
  • Ένα παραλειπόμενο σύνολο δεδομένων δεν παρασύρει τα θυγατρικά του. Ένα σύνολο με canmount=off που περιέχει μόνο άλλα σύνολα δεδομένων παραλείπεται (εμφανίζεται ως "μόνο δομή") και τα προσαρτημένα θυγατρικά του αντιγράφονται. Ένα κρυπτογραφημένο σύνολο δεδομένων του οποίου το κλειδί δεν έχει φορτωθεί παραλείπεται μαζί με τα θυγατρικά που μοιράζονται το κλειδί του.
  • Τα θυγατρικά που είναι δίσκοι VM ή δεδομένα συστήματος ξεκινούν απενεργοποιημένα στο παράθυρο προσθήκης, με τον λόγο δίπλα στον διακόπτη. Η προσθήκη ολόκληρου pool ζητά επιβεβαίωση που απαριθμεί τι περιέχει.

Τόμοι

Ένας τόμος (zvol) περιέχει έναν εικονικό δίσκο αντί για αρχεία, και η σελίδα ZFS δεν αντιγράφει ποτέ κανέναν.

  • Ένας τόμος που χρησιμοποιεί μια VM αντιγράφεται μαζί με αυτή τη VM στη σελίδα VMs.
  • Ένας τόμος που δεν χρησιμοποιεί καμία VM (ένα iSCSI extent, ένας δίσκος που αποσυνδέσατε) δεν αντιγράφεται από το BombVault. Το παράθυρο προσθήκης και η σελίδα ZFS μετρούν αυτούς τους τόμους και το αναφέρουν. Μια επόμενη έκδοση θα τους αντιγράφει.

Οι τόμοι μέσα στο δέντρο ενός στοιχείου παραλείπονται και αναφέρονται σε κάθε εκτέλεση.

Ο χώρος αποθήκευσης του Docker

Με τον οδηγό αποθήκευσης ZFS του Docker, κάθε επίπεδο εικόνας είναι ένα σύνολο δεδομένων με σημείο προσάρτησης legacy. Το παράθυρο προσθήκης τα συγκεντρώνει σε μία γραμμή ανά γονέα. Ένα δέντρο με περισσότερα από 20 τέτοια σύνολα δεδομένων δεν μπορεί να γίνει στοιχείο: όσο υπάρχει στιγμιότυπό του, το Docker δεν μπορεί να αφαιρέσει επίπεδα εικόνων. Προσθέστε αντί γι' αυτό τα σύνολα δεδομένων κάτω από αυτό, για παράδειγμα appdata.

Τα στοιχεία δεν επικαλύπτονται ποτέ

Ένα σύνολο δεδομένων μπορεί να ανήκει μόνο σε ένα στοιχείο. Το BombVault απορρίπτει ένα νέο στοιχείο που βρίσκεται μέσα σε υπάρχον ή που θα περιείχε ένα. Για να ενώσετε πολλά θυγατρικά στοιχεία σε ένα γονικό, διαγράψτε πρώτα τα θυγατρικά στοιχεία επιλέγοντας να κρατήσετε τα αντίγραφά τους και μετά προσθέστε το γονικό. Κάθε σύνολο δεδομένων κρατά το ιστορικό του με το δικό του όνομα, οπότε το επόμενο αντίγραφο συνεχίζει από εκεί που σταμάτησαν τα παλιά στοιχεία και δεν ξαναδιαβάζει τα πάντα.

Διακοπή containers και εντολές γύρω από το στιγμιότυπο

Ένα στιγμιότυπο μιας βάσης δεδομένων που τρέχει είναι σαν μια ξαφνική διακοπή ρεύματος: η βάση συνήθως ανακάμπτει, αλλά πρέπει να το κάνει. Κάθε στοιχείο μπορεί να κάνει δύο πράγματα γι' αυτό, και τα δύο καλύπτουν μόνο τη στιγμή του στιγμιότυπου, όχι ολόκληρο το αντίγραφο.

  • Σταμάτα αυτά τα κοντέινερ για το στιγμιότυπο. Το BombVault σταματά τα containers της λίστας, παίρνει το στιγμιότυπο και τα ξεκινά ξανά αμέσως. Τα containers του ίδιου επιπέδου εξαρτήσεων σταματούν παράλληλα, πρώτα τα εξαρτώμενα, οπότε όλο το παράθυρο διαρκεί συνήθως λίγα δευτερόλεπτα· η εκτέλεση δείχνει πόσο κράτησε. Το αντίγραφο διαβάζει έπειτα το παγωμένο στιγμιότυπο ενώ οι εφαρμογές τρέχουν ήδη ξανά. Σταματούν μόνο τα containers που έτρεχαν.
  • Μια εντολή πριν και μετά το στιγμιότυπο. Τρέχει μέσα σε ένα container της επιλογής σας, για παράδειγμα για να εξαγάγει μια βάση δεδομένων στο σύνολο δεδομένων λίγο πριν το στιγμιότυπο, χωρίς να σταματήσει τίποτα. Αν η εντολή πριν το στιγμιότυπο αποτύχει, το αντίγραφο αποτυγχάνει και δεν λαμβάνεται στιγμιότυπο. Μια εντολή μετά το στιγμιότυπο που αποτυγχάνει εμφανίζεται στην εκτέλεση αλλά δεν κάνει το αντίγραφο να αποτύχει.

Τι συμβαίνει όταν κάτι πάει στραβά:

  • Αν ένα container δεν μπορεί να σταματήσει, το BombVault ξεκινά όσα έχει ήδη σταματήσει και το αντίγραφο αποτυγχάνει αναφέροντας το container. Δεν καταφεύγει ποτέ σε στιγμιότυπο εφαρμογών που τρέχουν.
  • Η διακοπή περιμένει να τελειώσει ένα αντίγραφο container σε εξέλιξη (έως 30 λεπτά σε χειροκίνητη εκτέλεση, έως το χρονικό όριο του αντιγράφου σε προγραμματισμένη), ώστε τα δύο να μη σταματούν και να μην ξεκινούν ποτέ ταυτόχρονα το ίδιο container.
  • Πριν σταματήσει το πρώτο container, το BombVault σημειώνει ποια σταματά. Αν το BombVault τερματιστεί μέσα στο παράθυρο, ξεκινά ξανά αυτά τα containers την επόμενη φορά που ξεκινά, στέλνει ειδοποίηση και το στοιχείο δείχνει μια κόκκινη σημείωση για κάθε container που δεν μπόρεσε να ξεκινήσει.

Οι αυτόματες εξαγωγές βάσεων δεδομένων (δείτε Δυνατότητες) τρέχουν με το δικό του αντίγραφο ενός container στη σελίδα Containers, όχι με ένα στοιχείο ZFS. Μια βάση δεδομένων της οποίας το container αντιγράφεται μόνο μέσω του συνόλου δεδομένων του δεν παίρνει εξαγωγή, οπότε δώστε της εδώ μια εντολή.

Ένα container μπορεί να βρίσκεται ταυτόχρονα σε αυτή τη λίστα και στη σελίδα Containers. Τα δεδομένα του αποθηκεύονται τότε δύο φορές, σε δύο αποθετήρια, και το Πλήρες αντίγραφο ασφαλείας το σταματά δύο φορές. Το στοιχείο το επισημαίνει.

Επαναφορά

Ανοίξτε τα Αντίγραφα ασφαλείας στο στοιχείο, επιλέξτε το αντίγραφο και μετά το σύνολο δεδομένων. Προεπιλογή είναι το ανώτερο σύνολο δεδομένων του στοιχείου.

  • Επαναφορά μέσα στο σύνολο δεδομένων. Τα αρχεία από το αντίγραφο γράφονται στο σημείο προσάρτησης του συνόλου δεδομένων. Αρχεία με το ίδιο όνομα αντικαθίστανται, τα υπόλοιπα μένουν. Το σύνολο δεδομένων δεν επαναφέρεται ποτέ σε προηγούμενη κατάσταση ούτε αντικαθίσταται. Το BombVault ελέγχει ότι το σύνολο δεδομένων είναι προσαρτημένο, ορατό και εγγράψιμο, μία φορά πριν ξεκινήσει και ξανά λίγο πριν γράψει. Όπου ένα θυγατρικό σύνολο είναι προσαρτημένο μέσα του, δεν γράφεται τίποτα: το θυγατρικό κρατά τα αρχεία, τον ιδιοκτήτη και τα δικαιώματά του και επαναφέρεται από το δικό του αντίγραφο.
  • Επαναφορά σε φάκελο. Επιλέξτε έναν φάκελο κάτω από το /mnt. Το BombVault ελέγχει ότι ο φάκελος βρίσκεται σε προσαρτημένο pool ή κοινόχρηστο πόρο και ότι υπάρχει αρκετός ελεύθερος χώρος. Λειτουργεί χωρίς τη σύνδεση SSH και για σύνολα δεδομένων που δεν υπάρχουν πια.
  • Σε νέο σύνολο δεδομένων. Δώσε ένα σύνολο δεδομένων που δεν υπάρχει ακόμα. Το BombVault το δημιουργεί με τις ιδιότητες ZFS του αντιγράφου και επαναφέρει μέσα σε αυτό, δες Επαναφορά ως νέο σύνολο δεδομένων.
  • Διάλεξε αρχεία (για προχωρημένους): γράψτε πίσω στο σύνολο δεδομένων μόνο τα αρχεία και τους φακέλους που επιλέγετε.
  • Όλα τα σύνολα δεδομένων αυτού του αντιγράφου (για προχωρημένους): κάθε σύνολο δεδομένων του δέντρου στον δικό του υποφάκελο του φακέλου που επιλέγετε. Τα σύνολα δεδομένων που παραλείφθηκαν σε αυτό το αντίγραφο αναφέρονται.
  • Από άλλον διακομιστή: η σελίδα Ανάκτηση επαναφέρει από το αποθετήριο άλλου BombVault, πάντα σε φάκελο: όλα τα σύνολα δεδομένων ενός αντιγράφου, το καθένα στον δικό του υποφάκελο, ή ένα σύνολο δεδομένων του δέντρου, ολόκληρο ή επιλεγμένα αρχεία.

Η λίστα containers προς διακοπή του στοιχείου προσφέρεται και για επαναφορά μέσα στο σύνολο δεδομένων. Αυτά τα containers μένουν σταματημένα σε όλη τη διάρκεια της επαναφοράς, και τα αντίγραφα containers περιμένουν στο μεταξύ.

Το στιγμιότυπο ασφαλείας

Πριν γράψει σε ένα σύνολο δεδομένων, το BombVault παίρνει ένα στιγμιότυπο ZFS μόνο αυτού του συνόλου με όνομα bombvault-prerestore-<ώρα>. Είναι ενεργό από προεπιλογή· η απενεργοποίησή του απαιτεί δεύτερη επιβεβαίωση. Αν το στιγμιότυπο δεν μπορεί να ληφθεί, δεν επαναφέρεται τίποτα.

Το BombVault δεν διαγράφει ποτέ μόνο του ένα στιγμιότυπο ασφαλείας. Το στοιχείο τα απαριθμεί με την ηλικία και το μέγεθός τους, το καθένα με την ενέργεια Διαγραφή, και προειδοποιεί όταν το παλαιότερο είναι πάνω από 30 ημερών, επειδή κρατά στο pool διαγραμμένα και αλλαγμένα δεδομένα.

Για να γυρίσετε πίσω μετά από μια επαναφορά, αντιγράψτε μεμονωμένα αρχεία από το .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 ορίζονται μόνο έτσι. Τα όρια (quota) και οι κρατήσεις (reservation) ορίζονται μετά τα αρχεία, ώστε να μην μπορούν να τα απορρίψουν. Το σημείο προσάρτησης μένει έξω για να μη συγκρουστεί το αντίγραφο με το πρωτότυπο, όπως και τα canmount, readonly και η κρυπτογράφηση, για να μπορεί να γράψει η επαναφορά. Ένα νέο σύνολο δεδομένων κάτω από κρυπτογραφημένο παίρνει την κρυπτογράφησή του. Το σύνολο δεδομένων από πάνω πρέπει να υπάρχει. Αν κάτι αποτύχει μετά τη δημιουργία, το νέο σύνολο δεδομένων μένει στον διακομιστή, γιατί το BombVault δεν καταστρέφει ποτέ σύνολο δεδομένων.
  • Επαναφορά μέσα στο σύνολο δεδομένων δείχνει τις αποθηκευμένες ιδιότητες δίπλα στην επαναφορά. Το Ορισμός και αυτών των ιδιοτήτων ορίζει όσες δέχεται ακόμα ένα υπάρχον σύνολο δεδομένων, πριν γραφτεί οποιοδήποτε αρχείο. Τα όρια (quota) και οι κρατήσεις (reservation) ορίζονται μετά τα αρχεία, ώστε να μην μπορούν να τα απορρίψουν. Χωρίς αυτόν τον διακόπτη το σύνολο δεδομένων κρατά τις ρυθμίσεις του.

Τι περιέχει το αντίγραφο

Στο αντίγραφο: τα αρχεία και οι φάκελοι κάθε αντιγραμμένου συνόλου δεδομένων, με ιδιοκτήτη, δικαιώματα, χρονοσημάνσεις και εκτεταμένα χαρακτηριστικά όπως τα αποθηκεύει το restic, καθώς και οι τοπικά ορισμένες ιδιότητες ZFS κάθε συνόλου δεδομένων.

Εκτός αντιγράφου:

  • ο ιδιοκτήτης και τα δικαιώματα του ίδιου του ανώτερου φακέλου κάθε συνόλου δεδομένων (ό,τι βρίσκεται κάτω από αυτόν περιλαμβάνεται). Μια επαναφορά μέσα στο σύνολο δεδομένων αφήνει τον υπάρχοντα ανώτερο φάκελο όπως είναι, μια επαναφορά σε φάκελο τον δημιουργεί με δικαιώματα 0755·
  • τα υπάρχοντα στιγμιότυπα ZFS·
  • τα θυγατρικά που παραλείφθηκαν ή εξαιρέθηκαν·
  • οι τόμοι.

Για επαναφορά σε νέο pool, δημιούργησε το pool και επανάφερε κάθε σύνολο δεδομένων σε νέο σύνολο δεδομένων. Δεν έχει ελεγχθεί ακόμη αν τα NFSv4 ACL, όπως τα χρησιμοποιεί το TrueNAS σε σύνολα δεδομένων SMB, επιστρέφουν όπως περιμένετε, οπότε δοκιμάστε μια επαναφορά με τα δικά σας δεδομένα πριν βασιστείτε σε αυτά.

Κρυπτογραφημένα σύνολα δεδομένων

Ένα κρυπτογραφημένο σύνολο δεδομένων αντιγράφεται μόνο όσο το κλειδί του είναι φορτωμένο. Διαφορετικά παραλείπεται με προειδοποίηση· φορτώστε το κλειδί με zfs load-key και προσαρτήστε το σύνολο δεδομένων. Το BombVault διαβάζει τα δεδομένα αποκρυπτογραφημένα και τα αποθηκεύει στο αποθετήριο του restic, το οποίο είναι κρυπτογραφημένο. Αν έχετε απενεργοποιήσει την κρυπτογράφηση στο BombVault, αυτό το αποθετήριο δεν είναι κρυπτογραφημένο.

Στιγμιότυπα που απέμειναν

Το στιγμιότυπο ενός αντιγράφου ονομάζεται <dataset>@bombvault-<14 ψηφία>, για παράδειγμα cache/appdata@bombvault-20260924021500 (UTC). Το BombVault το αφαιρεί αμέσως μετά το αντίγραφο. Αν αυτό αποτύχει, για παράδειγμα επειδή το σύνολο δεδομένων είναι απασχολημένο ή το BombVault σταμάτησε, το BombVault το αφαιρεί:

  • πριν από το επόμενο αντίγραφο αυτού του στοιχείου,
  • όταν ξεκινά το BombVault, για κάθε στοιχείο, ακόμη και με τον τομέα απενεργοποιημένο,
  • όταν διαγράφετε το στοιχείο,
  • όταν πατάτε Αφαίρεση τώρα στο στοιχείο, το οποίο δείχνει και πόσα απομένουν.

Αφαιρούνται μόνο ονόματα που είναι ακριβώς bombvault- και 14 ψηφία. Τα στιγμιότυπα ασφαλείας, τα δικά σας στιγμιότυπα και τα αυτόματα δεν αγγίζονται ποτέ. Για να αφαιρέσετε ένα με το χέρι:

zfs destroy -r cache/appdata@bombvault-20260924021500

Ανωμαλίες

Ένα θυγατρικό που αδειάστηκε μόλις που αλλάζει το σύνολο ενός μεγάλου δέντρου, γι' αυτό ο εντοπισμός ανωμαλιών παρακολουθεί κάθε σύνολο δεδομένων ενός στοιχείου ξεχωριστά: το μέγεθος, ο αριθμός αρχείων, τα νέα δεδομένα και ο χρόνος του restic έχουν το καθένα το δικό του ιστορικό. Αυτό το ιστορικό ανήκει στο όνομα του συνόλου δεδομένων, οπότε μένει όταν το δέντρο αντιγράφεται αργότερα από άλλο στοιχείο.

Ένα σύνολο δεδομένων που αντέγραψε η προηγούμενη εκτέλεση και που αυτή η εκτέλεση δεν μπόρεσε να διαβάσει μετρά ως αδειασμένο, εφόσον η επιλογή του στοιχείου δεν άλλαξε. Αυτό καλύπτει ένα κλειδί που δεν έχει φορτωθεί, ένα σύνολο που δεν είναι προσαρτημένο και ένα που εξαφανίστηκε από το δέντρο. Ένα θυγατρικό που εξαιρείτε εσείς αλλάζει την επιλογή, οπότε το ιστορικό του ξεκινά από την αρχή. Όσο ένα εύρημα για χαμένα δεδομένα είναι ανοιχτό, η διατήρηση κρατά τα παλιά αντίγραφα μόνο αυτού του συνόλου δεδομένων και κλαδεύει το υπόλοιπο δέντρο ως συνήθως.

Στη σελίδα Ανωμαλίες κάθε σύνολο δεδομένων έχει δική του γραμμή στο πάνελ του στοιχείου, που ανοίγει με την Παρακολούθηση στην κάρτα του στοιχείου ή, όταν δεν υπάρχει τίποτα ανοιχτό για το στοιχείο, από τη γραμμή του στην κάρτα Τίποτα ανοιχτό. Το δέντρο του στοιχείου σε αυτή τη σελίδα δείχνει τα ανοιχτά ευρήματα δίπλα σε κάθε σύνολο δεδομένων. Ο σύνδεσμος σε ένα εύρημα ανοίγει τον πίνακα επαναφοράς του στοιχείου στο τελευταίο καλό αντίγραφο του συνόλου δεδομένων. Το αν ολοκληρώνεται μια εκτέλεση κρίνεται για ολόκληρο το στοιχείο, επειδή μια εκτέλεση πετυχαίνει ή αποτυγχάνει ως σύνολο.

Οι ίδιοι οι έλεγχοι περιγράφονται στις Δυνατότητες. Ένας βοηθός συνδεδεμένος μέσω του διακομιστή MCP μπορεί να απαριθμήσει τα σημεία επαναφοράς ενός στοιχείου ZFS, να ξεκινήσει το αντίγραφό του και να διαβάσει τα ευρήματα, αλλά η επιβεβαίωση ενός ευρήματος γίνεται στη σελίδα Ανωμαλίες.

Κωδικοί αιτίας

Η σελίδα, το ιστορικό εκτελέσεων και οι ειδοποιήσεις ονομάζουν ένα πρόβλημα με έναν από αυτούς τους κωδικούς. Για τους περισσότερους η λύση φαίνεται και δίπλα στη σελίδα.

Κωδικός Σημασία Τι να κάνετε
ssh-missing Η σύνδεση SSH δεν έχει ρυθμιστεί σε αυτό το container. Ρυθμίστε τη σύνδεση SSH όπως για τα αντίγραφα VM.
host-placeholder Το Host SSH: Address είναι ακόμη η τιμή παραδείγματος, και το host.docker.internal δεν απάντησε κι αυτό. Ορίστε το Host SSH: Address στη διεύθυνση IP LAN αυτού του διακομιστή.
host-fallback Το Host SSH: Address είναι ακόμη η τιμή παραδείγματος, και το host.docker.internal λειτουργεί. Τίποτα, ή ορίστε τη διεύθυνση IP LAN.
ssh-unreachable Ο διακομιστής δεν είναι προσβάσιμος μέσω SSH. Ελέγξτε διεύθυνση και θύρα, και ότι το SSH είναι ενεργό.
ssh-auth Ο διακομιστής απέρριψε το κλειδί του BombVault. Εκτελέστε μία φορά στον διακομιστή την εντολή που δείχνει η κάρτα σύνδεσης.
zfs-not-found Ο host SSH δεν έχει εντολή zfs. Κατευθύνετε το Host SSH: Address στο μηχάνημα στο οποίο ανήκουν τα pools.
zfs-permission Ο χρήστης SSH δεν επιτρέπεται να εκτελέσει αυτή την εντολή zfs. Χρησιμοποιήστε root, ή δείτε TrueNAS SCALE.
uri-mismatch Το LIBVIRT_URI ορίζει άλλον host ή χρήστη από τα πεδία SSH. Εναρμονίστε τα, ή αδειάστε τα πεδία SSH ώστε και τα δύο να έρχονται από το URI.
zfs-error Το zfs ανέφερε άλλο σφάλμα. Οι λεπτομέρειες δείχνουν το μήνυμά του.
propagation-missing Οι νέες προσαρτήσεις στον host δεν φτάνουν στο container. Ορίστε το 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 Ένα αντίγραφο container έτρεχε ακόμη όταν τα containers έπρεπε να σταματήσουν. Ξεκινήστε ξανά αργότερα. Οι προγραμματισμένες εκτελέσεις περιμένουν μόνες τους.
consistency-stop-failed Ένα container δεν μπόρεσε να σταματήσει, οπότε δεν λήφθηκε στιγμιότυπο. Ελέγξτε το container, ή αφαιρέστε το από τη λίστα.
pre-snapshot-failed Η εντολή πριν το στιγμιότυπο απέτυχε. Οι λεπτομέρειες της εκτέλεσης δείχνουν την έξοδό της.
container-unknown Ένα container της λίστας δεν υπάρχει. Αφαιρέστε το από τη λίστα.
container-is-self Το BombVault δεν μπορεί να σταματήσει το δικό του container. Αφαιρέστε το από τη λίστα.
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, ή αντιστοιχίστε το στο container στην ίδια διαδρομή με Read/Write - Slave.
shfs-only Το σύνολο δεδομένων φαίνεται μόνο μέσω του /mnt/user, που κρύβει τα στιγμιότυπα. Αντιστοιχίστε ως Host Data το /mnt, όχι το /mnt/user.
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 Ο φάκελος δεν βρίσκεται σε προσαρτημένο pool ή κοινόχρηστο πόρο. Επιλέξτε φάκελο σε pool ή κοινόχρηστο πόρο.
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 Τα αρχεία επανήλθαν, αλλά δεν ήταν δυνατός ο ορισμός του αποθηκευμένου ορίου (quota) ή της κράτησης (reservation). Οι λεπτομέρειες δείχνουν το μήνυμα του zfs. Όρισε μόνος σου το όριο ή την κράτηση με το zfs set.

Έλεγχος του τι βλέπει το container

Το Δοκίμασε την πρόσβαση στα στιγμιότυπα σε ένα στοιχείο παίρνει ένα πραγματικό στιγμιότυπο του δέντρου του, το αναζητά μέσα στο BombVault για κάθε σύνολο δεδομένων και το αφαιρεί ξανά. Είναι ο γρηγορότερος τρόπος να επιβεβαιώσετε όλη τη διαδρομή πριν από την πρώτη προγραμματισμένη εκτέλεση.

Για να δείτε μόνοι σας, εκτελέστε αυτό στον διακομιστή:

docker exec BombVault grep zfs /proc/self/mountinfo

Κάθε γραμμή είναι μία προσάρτηση μέσα στο container. Η γραμμή ενός συνόλου δεδομένων δείχνει τη διαδρομή του μέσα στο container (κάτω από το /host/user) και το όνομα του συνόλου. Ένα πεδίο master:N σε αυτή τη γραμμή σημαίνει ότι η προσάρτηση λαμβάνει τις προσαρτήσεις που κάνει ο host αργότερα, και αυτό χρειάζεται η πρόσβαση στα στιγμιότυπα. Αν λείπει, ορίστε το Access Mode του Host Data σε Read/Write - Slave και επανεκκινήστε το BombVault.

TrueNAS SCALE

  • Όταν έχει οριστεί το LIBVIRT_URI (όπως για τα αντίγραφα VM στο TrueNAS), το BombVault παίρνει από το URI τον host, τον χρήστη και τη θύρα SSH για τις εντολές zfs του, όποιο από αυτά δεν έχει οριστεί χωριστά. Χωρίς αντίγραφα VM, ορίστε αντί γι' αυτό τα LIBVIRT_HOST, LIBVIRT_SSH_USER και LIBVIRT_SSH_PORT. Προσθέστε τις μεταβλητές στα Additional Environment Variables.
  • Ένας χρήστης άλλος από τον root χρειάζεται δικαιώματα στο ανώτερο σύνολο δεδομένων του στοιχείου, τα οποία καλύπτουν τότε κάθε σύνολο δεδομένων κάτω από αυτό:
zfs allow <user> snapshot,destroy,mount <dataset>

Η επαναφορά σε νέο σύνολο δεδομένων χρειάζεται επιπλέον create στο σύνολο δεδομένων από πάνω, και ο ορισμός αποθηκευμένων ιδιοτήτων χρειάζεται δικαιώματα γι' αυτές τις ιδιότητες.

Μια συνεδρία SSH χωρίς root στο TrueNAS δεν έχει το /usr/sbin στη διαδρομή της· το BombVault καλεί τότε απευθείας το /usr/sbin/zfs. - Το Host Data της εφαρμογής πρέπει να είναι μια διαδρομή του host πάνω από τα σύνολα δεδομένων, για παράδειγμα /mnt/tank, όχι ένα ixVolume. Με διαδρομή του host, η εφαρμογή περνά τις νέες προσαρτήσεις του host στο BombVault (rslave), και αυτό χρειάζεται η πρόσβαση στα στιγμιότυπα.