Γρήγορη μετάβαση

    HP MicroServer N40L & Nas4Free: Το τέλειο HomeNas Part 3: επεξηγήσεις

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

    Λίγα λόγια για το ZFS…

    Πολλοί το θεωρούν ως το μέλλον των filesystems.  Τα χαρακτηριστικά που ενσωματώνει είναι τουλάχιστον εντυπωσιακά και ένα storage που χρησιμοποιεί Nas4Free με ZFS δεν υστερεί ουσιαστικά από ένα Enterprise Class storage με εξειδικευμένο storage software. Το γεγονός ότι το ZFS αναπτύχθηκε αρχικά από τη Sun για χρήση σε δικά της storage τα λέει όλα. Και το γεγονός ότι πλέον ανήκει στην Oracle πάλι δεν είναι κάτι τυχαίο..

    1. Αποφυγή data corruption

    Το βασικό του προτέρημα είναι η προστασία που παρέχει από data corruption, κάτι που κανένα κλασσικό raid σύστημα δεν μπορεί να το εγγυηθεί. Γιατί μπορεί να έχεις ένα storage με Raid 5/6/10/60 και να μην έχεις χάσει ποτέ data, αλλά θεωρητικά και χωρίς σχετικούς ελέγχους, δεν μπορείς να είσαι 100% σίγουρος ότι τα data που δεν έχεις χάσει είναι όντως λειτουργικά. Στον αντίποδα, και λόγω ακριβώς του γεγονότος της ασφάλειας που παρέχει, είναι πολύ απαιτητικό σε Ram. Για καλές επιδόσεις συνιστάται να υπάρχει τουλάχιστον διαθέσιμο 1GB Ram για κάθε 1ΤΒ storage.  Και μάλιστα για να είσαι ακόμη πιο σίγουρος, συνίσταται η χρήση ECC Ram, η οποία είναι ακριβότερη από την απλή. Σε home καταστάσεις αυτό δεν είναι και ό, τι καλύτερο καθώς ακόμη και για έναν Microserver με χρήση 5x3TB δίσκων, θεωρητικά θα πρέπει να έχεις εγκατεστημένα 16GB Ram. Και αν μιλάμε για ECC, τότε το κόστος ανεβαίνει πολύ.  Βέβαια οι περισσότεροι – εμού συμπεριλαμβανομένου – δεν χρησιμοποιούν ECC Ram, ενώ δεν ακολουθούν και το best practice του 1GB Ram για κάθε 1ΤΒ storage. Με λίγο tuning με τη χρήση έτοιμων λύσεων δεν αντιμετωπίζουν προβλήματα σταθερότητας, παρά μόνο μειωμένες επιδόσεις. Με άλλα λόγια, για ένα NAS των 8ΤΒ, μπορείς να χρησιμοποιήσεις 4GB non-ECC Ram και να είσαι μια χαρά. Το κλασσικό Raid έχει πολύ μικρότερες απαιτήσεις σε Ram, γι’ αυτό άλλωστε και πολλά έτοιμα NAS με low end hardware, αποδίδουν μια χαρά. Αν χρησιμοποιούσαν ZFS, οι αυξημένες του απαιτήσεις θα εκτόξευαν το -ήδη αυξημένο σε σχέση με DIY λύσεις –  κόστος τους στα ύψη και δεν θα τα αγόραζε κανείς…

    Και έρχεται εδώ το ερώτημα: Είμαι οικιακός χρήστης, αξίζει πραγματικά να δώσω παραπάνω χρήματα για να φτιάξω ένα DIY σύστημα που να «σηκώνει» ZFS, μόνο και μόνο για να ελαχιστοποιήσω τις πιθανότητες data corruption;  Η απλή απάντηση είναι όχι, αλλά…

    Η προστασία απέναντι στο data corruption δεν είναι το μοναδικό που προσφέρει το ZFS και σίγουρα δεν είναι το πλεονέκτημα που θα ελκύσει τον απλό χρήστη. Υπάρχουν όμως άλλα πλεονεκτήματα που είναι ατού και για τον απλό χρήστη.

    2. Το ZFS δεν εξαρτάται από το hardware που στεγάζει το/τα Pool του.

    Ένα ZFS Pool δεν εξαρτάται από το hardware στο οποίο δουλεύει. Αν έχετε δημιουργήσει π.χ ένα Pool με 5 δίσκους σε ένα μηχάνημα και για κάποιο λόγο αυτό το μηχάνημα χαλάσει, βγάζετε τους δίσκους, τους βάζετε σε ένα άλλο μηχάνημα, με ίδιο λειτουργικό, ή με οποιοδήποτε άλλο λειτουργικό υποστηρίζει ZFS (version ίδιο ή νεώτερο) και με ένα απλό import είναι όλα όπως πριν. Το Pool δεν το ενδιαφέρει ούτε με ποια σειρά ήταν οι δίσκοι, ούτε σε τι Controller ήταν επάνω, ούτε τίποτα άλλο. Απλά import και δουλεύει.

    3. Resilvering vs Rebuilding

    Σε ένα ZFS Pool, αν χτυπήσει ένας δίσκος, μπορούμε να τον αντικαταστήσουμε- βέβαια – όπως στο κλασσικό RAID. Το rebuilding που κάνει το RAID, στην περίπτωση του ZFS ονομάζεται resilvering. Πέρα από το όνομά του, η διαφορά έναντι του rebuilding στο Hard/Software Raid, είναι ότι κάνει rebuild μόνο τα data και όχι όλο το δίσκο. Αυτό, ειδικά για τον οικιακό χρήστη είναι πολύ σημαντικό. Και εξηγώ:

    Οι πιθανότητες να «χτυπήσει» ένας δίσκος την ώρα που είναι ήδη σε διαδικασία αντικατάστασης (rebuilding) κάποιος άλλος, είναι αρκετά αυξημένες, λόγω του ότι κατά τη συγκεκριμένη διαδικασία ζορίζονται όλοι οι δίσκοι.  Σε κλασσικό Raid5 αυτό σημαίνει ότι θα χάσουμε και δεύτερο δίσκο και άρα χάνουμε όλο το array. Οι πιθανότητες να συμβεί κάτι τέτοιο  αυξάνονται ανάλογα με το μέγεθος των δίσκων. (Αυτό, άλλωστε, είναι και ένας από τους λόγους που οι μεγαλύτεροι κατασκευαστές storage δεν χρησιμοποιούν πολύ μεγάλους δίσκους και επιλέγουν τουλάχιστον RAID6.)

    Ενδεικτικά να αναφέρω ότι σε κάποιες δοκιμές που έκανα παλιότερα, σε array με 4 δίσκους του 1ΤΒ σε Raid5 και 150GB data, το rebuilding του Raid5 κράτησε 19 ώρες ( σε σύστημα με AMD Athlon II X2 240 και 8GB Ram). Στο ίδιο σύστημα με τους ίδιους δίσκους σε RaidZ και το ίδιο ενδεικτικό μέγεθος data, το resilvering κράτησε 25 λεπτά…(!!!). Καταλαβαίνετε λοιπόν πόσο λιγότερο ζορίστηκαν οι δίσκοι στην περίπτωση του ZFS. Φυσικά, ο χρόνος του resilvering εξαρτάται από το μέγεθος των data. Αν λοιπόν το array είναι σχεδόν γεμάτο data, τότε ο χρόνος του resilvering τείνει να πλησιάσει το χρόνο του rebuilding. Σε κάθε περίπτωση, όμως ο χρόνος για το resilvering σε ίδιο σύστημα, είναι πάντα μικρότερος από το χρόνο που απαιτείται για το rebuilding, οπότε πάντα με το ZFS οι δίσκοι ζορίζονται λιγότερο. Και μιας και είναι το ακριβότερο υποσύστημα σε ένα HomeNAS το συγκεκριμένο χαρακτηριστικό ωφελεί εξαιρετικά και τον απλό οικιακό χρήστη.

     4. Επέκταση του υπάρχοντος χώρου

    Αυτή τη στιγμή, πέρα από το Nas4Free, υπάρχουν και άλλες – επίσης καλές –  λύσεις software για δημιουργία του δικού μας NAS. Πολλές από αυτές (π.χ. Openfiler, OMV), βασίζονται σε κάποια διανομή Linux και υλοποιούν software Raid με τη χρήση του  mdadm. Το mdadm, έχει ένα αρκετά δυνατό «χαρτί». Υποστηρίζει expansion σε ένα υπάρχον RAID array. Αν δηλαδή έχετε ένα RAID5 με 3 δίσκους και θέλετε να αυξήσετε το διαθέσιμο χώρο, μπορείτε να προσθέσετε έναν τέταρτο και να του πείτε να τον προσθέσει στο υπάρχον array. Αυτή η δυνατότητα είναι πολύ καλή για έναν οικιακό χρήστη. Το μόνο αρνητικό της είναι ότι είναι πολύ χρονοβόρα και στρεσάρει τους δίσκους υπερβολικά.  Σε μελλοντικές εκδόσεις ZFS λέγεται ότι θα μπορεί να γίνει δυνατή η δυνατότητα για grow, όπως με το mdadm. To αν και στην περίπτωση του ZFS,  η διαδικασία του grow θα είναι πολύ χρονοβόρα και/η θα  στρεσάρει τους δίσκους υπερβολικά θα το δούμε.. Το ZFS στην παρούσα φάση υποστηρίζει expansion, αλλά με διαφορετικούς τρόπους:

    1. Ένα ZFS Pool μπορεί να απαρτίζεται από πολλά Virtual Devices.Έτσι, ο απλός οικιακός χρήστης με περιορισμένο budget, που θέλει να έχει όμως προστασία των δεδομένων του, μπορεί να ξεκινήσει το storage του π.χ.  με 3   δίσκους των 2ΤΒ σε RAID-Z.  Σε αυτή την περίπτωση θα έχει διαθέσιμα περίπου 4ΤΒ προστατευμένου χώρου. Στην πορεία μπορεί να αγοράσει άλλους 3 δίσκους των 2ΤΒ και να φτιάξει ένα νέο Virual Device. Με αυτό το νέο Virtual Device μπορεί είτε να φτιάξει ένα νέο Pool των ~4ΤΒ, είτε να το προσθέσει στο υπάρχον Pool, το οποίο άμεσα από 4ΤΒ θα ανέβει σε χωρητικότητα στα 8ΤΒ. Να επισημάνουμε εδώ ότι αν έχουμε ένα Pool με ένα Virtual Device σε RAID-Z, μπορούμε να του προσθέσουμε ένα Virtual Device σε Mirror. Όμως κάτι τέτοιο δεν προτείνεται και καλό είναι να αποφεύγεται.
    2. Ένα ZFS Pool μπορεί επίσης να μεγαλώσει αν αλλάξουμε έναν προς έναν τους δίσκους που το απαρτίζουν. Αν υποθέσουμε λοιπόν ότι έχουμε ένα RAID-Z με 3×1ΤΒ δίσκους (διαθέσιμος χώρος ~2ΤΒ.) Μπορούμε να βγάλουμε τον πρώτο και να τον αντικαταστήσουμε με έναν  των 3ΤΒ. Αφήνουμε το RAIDZ να κάνει resilver. Όταν τελειώσει αλλάζουμε και τον δεύτερο με έναν νέο των 3ΤΒ. Όταν αλλάξουμε και τον τελευταίο, το array μας, από τα 2ΤΒ που είχε ως τώρα, θα πάει στα 6ΤΒ. (Για αποφυγή …παρεξηγήσεων, να αναφέρουμε ότι αυτή τη δυνατότητα την έχει και το mdadm)

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

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

    Ενδεικτικά αναφέρω δύο πολύ καλές πηγές (όρεξη να έχεις να διαβάζεις..)

    Επεξήγηση κάποιων σημείων που είδαμε κατά τη δημιουργία του πρώτου μας Pool

    Κατά τη δημιουργία του πρώτου μας Pool υπήρχαν στο web interface κάποια σημεία που χρήζουν κάποιας επεξήγησης, για να ξέρουμε τι είναι…

    1. Advanced Format

    Γράψαμε λοιπόν στο προηγούμενο μέρος, ότι κατά τη δημιουργία του Virtual Device, καλό είναι να επιλέξουμε την επιλογή Enable Advanced Format (4KB sector), ακόμη και αν οι δίσκοι μας δεν είναι AF, ώστε να είμαστε εξασφαλισμένοι σε μελλοντική αναβάθμιση των σκληρών μας δίσκων. Αυτό ισχύει επειδή μετατροπή σε Advanced Format μετά τη δημιουργία του Virtual Device δεν μπορούμε να κάνουμε χωρίς να γίνει πρώτα destroy του Virtual Device (και των δεδομένων μας). Αν οι δίσκοι μας δεν είναι Advanced Format και τσεκάρουμε αυτή την επιλογή, δεν υπάρχει μείωση των επιδόσεων των δίσκων. Σε περίπτωση όμως που οι δίσκοι μας είναι AF και δεν τσεκάρουμε αυτή την επιλογή, τότε ενδέχεται να έχουμε σοβαρή πτώση στις επιδόσεις των δίσκων. Και θα ρωτήσετε εδώ: «ΟΚ, είμαι σίγουρος ότι οι δίσκοι μου δεν είναι AF. Γιατί είναι καλό να τσεκάρω αυτή την επιλογή;»  Και η απάντηση είναι η εξής: Αν κάποια στιγμή θελήσουμε να επεκτείνουμε τον διαθέσιμο χώρο μας με την τακτική της αλλαγής των δίσκων μας έναν προς έναν με μεγαλύτερους, είναι πλέον σχεδόν σίγουρο ότι οι δίσκοι που θα αγοράσουμε εκείνη τη στιγμή θα είναι AF. Και επειδή όπως είπαμε, δεν μπορούμε να τσεκάρουμε την επιλογή «κατόπιν εορτής», ορίστε ο λόγος που ψάχνατε…

    2. Επιλογές τύπων Virtual Devices

    Στο προηγούμενο μέρος, είδαμε ότι κατά τη δημιουργία του Virual Device επιλέξαμε Single Parity RAID-Z. Υπήρχαν όμως και άλλες επιλογές. Ας τις δούμε όλες εδώ συνοπτικά:

    1. 1. Stripe: Ο συνολικός χώρος θα είναι ίσος με (αριθμό δίσκων x χωρητικότητα μικρότερου). Προσφέρει τον περισσότερο χώρο, αυξημένη ταχύτητα read/write, αλλά καμία προστασία. Αν χαλάσει ένας δίσκος χάνουμε τα πάντα που βρίσκονται στο array. Μπορούμε να κάνουμε χρήση του stripe αν θέλουμε να έχουμε γρήγορη πρόσβαση σε κάποια data, αλλά έχουμε backup τους και/ή δεν μας νοιάζει αν χαθούν σε περίπτωση βλάβης.
    2. 2. Mirror: Αν επιλέξουμε 2 δίσκους και τους ορίσουμε σαν mirror, η χωρητικότητά μας ισούται με το μέγεθος του μικρότερου δίσκου. Προσφέρει αυξημένη ταχύτητα read/write, προστασία, καθώς αν χαλάσει ο ένας δίσκος, έχει τα δεδομένα ο άλλος, αλλά χάνουμε τους μισούς δίσκους σε χωρητικότητα.  Μπορούμε να το χρησιμοποιήσουμε αν έχουμε πολύτιμα data και επιθυμούμε να έχουμε γρήγορη πρόσβαση σε αυτά.  Το ZFS υποστηρίζει πέρα από single mirror και double ή triple, δηλαδή ο πρώτος δίσκος να έχει όχι έναν ακόμη για ασφάλεια, αλλά 2 ή τρεις ή και περισσότερους, αλλά σε HomeNas αυτό είναι τουλάχιστον υπερβολικό…
    3. 3. Single Parity RAID-Z:  Το RAID-Z αντιστοιχεί στο κλασσικό Raid5, δηλαδή στην περίπτωσή μας, από τους 5 δίσκους οι 4 θα απαρτίζουν το διαθέσιμο χώρο και ο 5ος θα είναι parity. Αν λοιπόν πάθει κάτι ο ένας από τους δίσκους μας, η συστοιχία μας συνεχίζει και δουλεύει κανονικά, επιτρέποντάς μας να αλλάξουμε τον χαλασμένο δίσκο (μάλιστα,  σε περίπτωση που το μηχάνημά μας υποστηρίζει hot swap χωρίς καν να σταματήσουμε την εργασία μας και – το πιο βασικό -) χωρίς να χάσουμε δεδομένα.  Προσφέρει καλή ταχύτητα read, μέτρια εως καλή ταχύτητα για write και από το σύνολο των δίσκων, για παροχή προστασίας χάνουμε μόνο την χωρητικότητα του ενός. Είναι ιδανικό για homeNAS καθώς προσφέρει τη χρυσή τομή όσον αφορά σε ταχύτητα, ασφάλεια και οικονομία, με την προϋπόθεση όμως ότι δεν μιλάμε για μεγάλο αριθμό δίσκων. Γιατί στην περίπτωση περίπτωση που έχουμε πολλούς δίσκους, καλό θα είναι να επιλέξουμε  Double Parity RAID-Z…
    4. 4. Double Parity RAID-Z: Είναι ότι και το απλό RAID-Z, αλλά αντί για έναν δίσκο για parity χρησιμοποιεί 2. Έχει εφαρμογή και σε HomeNAS, ειδικά όταν ο αριθμός των δίσκων που θα χρησιμοποιηθούν είναι μεγάλος (π.χ. πάνω από 7)
    5. 5. Triple Parity RAID-Z: Είναι ότι και το απλό RAID-Z, αλλά αντί για έναν δίσκο για parity χρησιμοποιεί 3. Υπερβολικό για HomeNAS. Μπορεί να χρησιμοποιηθεί σε περιπτώσεις πολλών δίσκων (π.χ. πάνω από 9 ή 11, ή 13). Υπερβολικό όχι γιατί δεν υπάρχουν HomeNAS με τόσους δίσκους, αλλά γιατί για πολλούς και διάφορους λόγους, που δεν θα αναλύσουμε εδώ, είναι προτιμότερο να φτιάξεις περισσότερα από 1 Virtual Devices.
    6. 6. Hot Spare: Δημιουργούμε ένα Virtual Device με τη χρήση ενός σκληρού δίσκου και το ορίζουμε σαν spare. Αν για κάποιο λόγο χαλάσει ένας από τους δίσκους που απαρτίζουν το array μας, μπορούμε να εισάγουμε τον spare και δεν θα χρειαστεί να σβήσουμε άμεσα το NAS για να αλλάξουμε το χαλασμένο δίσκο (εκτός βέβαια και αν έχουμε δυνατότητα hot swap, πράμα σπάνιο για οικιακό NAS). Μόλις καταφέρουμε να αποκαταστήσουμε τη βλάβη του array μας με έναν νέο δίσκο, επιστρέφουμε τον spare για να μας υπηρετήσει την επόμενη φορά που θα έχουμε ξανά σχετικό πρόβλημα.
    7. 7. Cache: Μπορούμε να χρησιμοποιήσουμε ένα γρήγορο δίσκο σαν cache, ώστε να αυξήσουμε κατακόρυφα την ταχύτητα ανάγνωσης από το NAS. Όμως για να καταφέρεις κάτι τέτοιο, ο δίσκος που θα χρησιμοποιηθεί σαν cache θα πρέπει να είναι κάποιος γρήγορος SSD, που σημαίνει αυξημένο κόστος. Γι’ αυτό λοιπόν και η γενική συμβουλή επί του θέματος είναι «Μην ξοδέψεις χρήματα για SSD cache δίσκο, δώσε λιγότερα και βάλε επιπλέον Ram»
    8. 8. Log: To Log Device ή αλλιώς ZIL, μπορεί να απαρτίζεται από κάποιο γρήγορο μέσο, όπως και το Cache,δηλαδή π.χ. από έναν γρήγορο δίσκο SSD. Βελτιώνει πολύ την απόδοση του NAS στην περίπτωση που γίνονται ταυτόχρονα πολλαπλά writes σε ένα Pool. Στην ουσία όφελος έχουν κάποια Pool τα οποία στεγάζουν data όπως βάσεις δεδομένων, οπότε σε έναν οικιακό χρήστη δεν έχουν πρακτική εφαρμογή, ή τουλάχιστον όχι σε τέτοιο βαθμό που να δικαιολογούν το επιπλέον κόστος της αγοράς ενός δίσκου SSD. Επειδή το σωστό μέγεθος του Log Device είναι ανάλογο της RAM του συστήματος (πιο συγκεκριμένα, πρέπει να είναι ίσο με το μισό της διαθέσιμης RAM), κάποιοι χρήστες προσθέτουν στο Pool τους έναν SSD και του φτιάχνουν δύο κατατμήσεις (partition) – μία για Cache και μία για Log.
    9. 9. Log (mirror): Είναι επίσης Log Device, αλλά για λόγους ασφαλείας το ορίζουμε σαν mirror του παραπάνω. Αυτό είχε ιδιαίτερη αξία κυρίως σε προηγούμενες εκδόσεις ZFS, στις οποίες η χρήση του ελλόχευε κινδύνους, καθώς μπορεί να αύξανε κατακόρυφα τις ταχύτητες εγγραφής, από την άλλη όμως, βλάβη του Log Device σήμαινε απώλεια κάποιων δεδομένων ή/και ολόκληρου του Pool  (όλων των δεδομένων !). Γι’ αυτό το λόγο λοιπόν υπήρχε η δυνατότητα το Log να είναι σε mirror. Στις τελευταίες εκδόσεις ZFS δεν υπάρχει πλέον αυτός ο κίνδυνος.

    Αυτά λοιπόν όσον αφορά στα διάφορα Virtual Devices που μπορούμε να φτιάξουμε. Ας δούμε τώρα κάποια πράγματα σχετικά με τη χρήση του NAS μας, στο οποίο φτιάξαμε ZFS Pools.

    Λίγα λόγια σχετικά με τη χρήση των ZFS Pools

    Μπράβο μας λοιπόν, με τη βοήθεια του προηγούμενου άρθρου καταφέραμε και φτιάξαμε το πρώτο μας  ZFS Pool. Ας δούμε λοιπόν κάποια πράγματα που μπορούμε να δούμε ή να κάνουμε σχετικά με αυτό το Pool.

    1. ZFS Scrub

    Στο ZFS, η δυνατότητα scrub ενός Pool είναι μια διαδικασία που ελέγχει την ακεραιότητα των δεδομένων που έχουμε μέσα στο Pool. Γιατί μπορεί οι δίσκοι να μην έχουν σφάλματα, αλλά υπάρχει πάντα η περίπτωση τα data να είναι corrupted. Ένα απλοϊκό παράδειγμα:

    Όλοι κάποιες στιγμές θα έχετε πέσει στην περίπτωση να χρησιμοποιείτε κάποιο δίσκο και να σας βγάζει «access denied» όταν πάτε να μετονομάσετε ή να σβήσετε κάποιο αρχείο ή φάκελο. Η επόμενη κίνηση είναι  ένα checkdisk, το οποίο αφού τελειώσει μπορεί να δείξει ότι κάποια αρχεία στο δίσκο τελικά είναι κατεστραμμένα και να εμφανίζονται με μέγεθος 0  bytes, ή ακόμη και ότι το αρχείο/φάκελος που προσπαθούσαμε να μετονομάσουμε ή σβήσουμε, δεν υπάρχει πια.  Το ZFS  δίνει μεγάλο βάρος στο data integrity, πράγμα που σημαίνει ότι όλη την ώρα φροντίζει να μην υπάρχει data corruption.  Η πρόσθετη (χειροκίνητη ή μέσω χρονοπρογραμματισμού) διαδικασία του scrubbing  μας δίνει μια επιπλέον σιγουριά για την ακεραιότητα των δεδομένων μας και επιπλέον είναι ένα καλό «stress test» για την εξακρίβωση της καλής υγείας των σκληρών μας δίσκων. Καλό είναι λοιπόν να βάλουμε στο πρόγραμμα ένα scrub για το Pool μας, αλλά δεν χρειάζεται να το παρακάνουμε κιόλας – μία φορά το μήνα είναι καλά.

    2. Διαγραφή των συσκευών .nop

    Αν ενεργοποιήσαμε προηγουμένως την επιλογή για Advanced Format των δίσκων μας, θα δούμε ότι στο Disks|ZFS|Pools|Information, οι συσκευές που απαρτίζουν το pool μας, οι σκληροί μας δίσκοι δηλαδή, αναφέρονται σαν dax.nop ή adax.nop, όπου x ο αύξων αριθμός του δίσκου.

      pool: Pool1
     state: ONLINE
      scan: none requested
    config:
    
    	NAME            STATE     READ WRITE CKSUM
    	Pool1           ONLINE       0     0     0
    	  raidz1-0      ONLINE       0     0     0
    	    da1.nop     ONLINE       0     0     0
    	    da2.nop     ONLINE       0     0     0
    	    da3.nop     ONLINE       0     0     0
    	    da4.nop     ONLINE       0     0     0
    	    da5.nop     ONLINE       0     0     0
    
    errors: No known data errors

    Χωρίς να εμβαθύνουμε σε λεπτομέρειες σχετικά με αυτό, απλά να πούμε ότι οι συσκευές *.nop δημιουργούνται για τη χρήση των δίσκων ως Advanced Format, και δεν είναι απαραίτητο να υπάρχουν, καθώς μετά τη δημιουργία του Pool αυτή η πληροφορία κρατείται στα metadata του. Μπορούμε  λοιπόν μέσω του shell (δίνοντας από το μενού στην κονσόλα την επιλογή 6 για να μπούμε σε shell, ή μέσω ssh) να σβήσουμε τα .nop devices με τις ακόλουθες εντολές:

    nas4free: ~ # zpool export <όνομα_Pool> σημαντικό βήμα, κάνουμε πρώτα export το Pool μας
    nas4free: ~ # gnop destroy /dev/da1.nop επαναλαμβάνουμε για όλα τα dax.nop του Pool μας
    nas4free: ~ # zpool import <όνομα_Pool> κάνουμε τέλος ξανά import το Pool

    Τώρα αν πάμε πάλι στο Disks|ZFS|Pools|Information, θα δούμε την ακόλουθη εικόνα:

      pool: Pool1
     state: ONLINE
      scan: none requested
    config:
    
    	NAME        STATE     READ WRITE CKSUM
    	Pool1       ONLINE       0     0     0
    	  raidz1-0  ONLINE       0     0     0
    	    da1     ONLINE       0     0     0
    	    da2     ONLINE       0     0     0
    	    da3     ONLINE       0     0     0
    	    da4     ONLINE       0     0     0
    	    da5     ONLINE       0     0     0
    
    errors: No known data errors

    Να σημειώσουμε εδώ ότι αυτό δεν είναι απαραίτητο να το κάνουμε, καθώς το μόνο όφελός μας είναι να ξεφορτωθούμε το περιττό overhead που δημιουργείται από τη χρήση των *.nop devices.
    Επίσης να πούμε ότι παρ’ όλο που δεν υπάρχει κανένας κίνδυνος για τα δεδομένα, αν έχουμε ήδη κάποια μέσα στο Pool, θα πρέπει να είμαστε σίγουροι ότι έχουμε πρόσφατο backup τους γιατί πάντα κάτι μπορεί να πάει στραβά (οπότε μη με κατηγορήσετε αν συμβεί κάτι…)

    3. Backup

    Το ZFS, όπως και οποιαδήποτε άλλη λύση Software/Hardware RAID δεν είναι backup. Ακόμη και αν το ίδιο το software ή το hardware είναι σταθερά και αξιόπιστα, τα δεδομένα μας πάντα κινδυνεύουν όταν δεν τα έχουμε επίσης αποθηκευμένα σε κάποιο backup. Κάποια φυσική καταστροφή (π.χ. πλημμύρα , φωτιά) ή ακόμη και ένας λάθος χειρισμός από μέρους του χρήστη είναι ικανά να στείλουν περίπατο τα πολύτιμά μας δεδομένα. Γι’ αυτό πάντα να έχετε backup, αν όχι από όλα σας τα δεδομένα, τουλάχιστον από αυτά που είναι αναντικατάστατα (γιατί ταινίες και μουσική ξαναβρίσκονται, προσωπικά έγγραφα/φωτογραφίες όχι…)

    Σαν επίλογος…

    Δεν θα αναλύσουμε περισσότερο τις επιλογές που μας δίνει το Nas4Free κατά τη χρήση του ZFS.  Άλλωστε υπάρχουν τόσα πολλά πράγματα σχετικά, που θα ήταν αδύνατο να γραφούν σε ένα άρθρο. Για όποιον ενδιαφέρεται, είναι δημόσια διαθέσιμο ένα αρχείο pdf  306 (!!!)  σελίδων που αποτελεί το administration guide του ZFS. Σίγουρα δεν χρειάζεται να το μελετήσει κανείς για να φτιάξει ένα Home NAS με τη χρήση έτοιμων λύσεων όπως το Nas4Free. Και σίγουρα βέβαια δεν είναι απαραίτητο να το χρησιμοποιήσει καν όποιος δεν θέλει να ξεφύγει από τις παραδοσιακές λύσεις Raid. Άλλωστε και εκεί το Nas4Free τα καταφέρνει μια χαρά, αλλά υπάρχουν και άλλες έτοιμες λύσεις που είναι εξίσου καλές (ή και καλύτερες, ανάλογα με το τι ζητάει ο καθένας). Μια από αυτές είναι η λύση του OpenMediaVault. O developer που το εξελίσσει είναι πρώην developer του Freenas, οπότε αν μη τι άλλο γνωρίζει τι πρέπει να προσφέρει στον χρήστη από άποψη ευκολίας χρήσης, ενώ το όλο software δεν βασίζεται στο FreeBSD, αλλά στο Debian Linux (όπως και το πολύ δημοφιλές Ubuntu Linux), οπότε η χρήση του για πολύ κόσμο ίσως να είναι πολύ πιο εύκολη.  Άλλωστε η παρουσίαση εδώ του Nas4Free για χρήση του σε ένα HomeNAS, δεν έχει σαν σκοπό να σας αποτρέψει από τη χρήση άλλων λύσεων αλλά απλά να σας ενημερώσει για τη συγκεκριμένη επιλογή και να βοηθήσει κάποιους να το δοκιμάσουν στην περίπτωση που τρόμαζαν όταν άκουγαν ότι βασίζεται στο FreeBSD.

    Disclaimer

    Δεν είμαι κανένας guru του FreeBSD ή του ZFS…

    Οι συμβουλές αλλά και κάποιες απόψεις που αναφέρονται σε αυτό το άρθρο είναι καθαρά από την προσωπική μου εμπειρία σαν χρήστης για κάμποσο καιρό του Nas4Free σαν λειτουργικό σύστημα για το προσωπικό μου NAS και αφορούν στη χρήση του με τον δικό μου εξοπλισμό. Οποιεσδήποτε δοκιμές κάνετε σε συστήματα που περιέχουν δεδομένα, υπάρχει πάντα υπαρκτός κίνδυνος απώλειας αυτών των δεδομένων. Είστε λοιπόν απόλυτα υπεύθυνοι για ό,τι κάνετε στο δικό σας σύστημα…

    
    								

    2 Σχόλια to “HP MicroServer N40L & Nas4Free: Το τέλειο HomeNas Part 3: επεξηγήσεις”

    1. karanik

      Πολύ ωραίο άρθρο. Το πιο κατατοπιστικό και ολοκληρωμένο για το ZFS που έχω διαβάσει στα Ελληνικά.
      tnx