Προς το περιεχόμενο

Τι FS αντί για RAID ?


aposporis

Προτεινόμενες αναρτήσεις

Με αφορμή το θέμα "Ζητειται linux filesystem ανθεκτικο στα αποτομα shutdowns" μου δημιουρηθηκε η εξής απορία:

 

Έχω ένα c2d που κάθεται με διάφορους σκληρούς δίσκους.

Σκέφτομαι να φτιάξω ένα file server με σκοπό τη διαφύλαξη σημαντικών δεδομένων, όπως ψηφιακές φωτογραφίες, έγραφα κτλ κτλ. Ταίνιες και ογκώδη αρχεία δε θα βάλω.

Πώς θα μπορούσα να συνδιάσω όλους αυτούς τους διαφορετικούς δίσκους και να πετύχω τη βέλτιστη ασφάλεια;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Απ' ότι ξέρω, το BTRFS είναι και file system και volume manager, οπότε ως file system προσφέρει και δυνατότητες RAID.

 

Για redundancy και integrity στρέφεσαι σε BTRFS RAID-1. Τα RAID-5 και 6 είναι unstable.

 

Με τη συγκεκριμένη διάταξη, μπορείς να συνδυάσεις δίσκους διαφόρων χωρητικοτήτων και να δημιουργήσεις ένα storage pool με redundancy και προστασία από bit-rot. Ουσιαστικά, διασφαλίζεις ότι τα δεδομένα που γράφονται δεν αλλάζουν λόγω corruption και υπάρχουν εις διπλούν.

 

Επίσης, μπορείς να προσθέτεις σκληρούς δίσκους εκ των υστέρων επεκτείνοντας τις δυνατότητες της συστοιχίας.

 

Εδώ, μπορείς να κοιτάξεις τη χωρητικότητα μιας ιδεατής συστοιχίας που απαρτίζεται από διάφορους δίσκους, διαφόρων χωρητικοτήτων.

 

Εδώ, θα βρεις λεπτομέρειες για τη δημιουργία και διαχείριση του συστήματος αρχείων.

Επεξ/σία από AlexKane
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πώς θα μπορούσα να συνδιάσω όλους αυτούς τους διαφορετικούς δίσκους και να πετύχω τη βέλτιστη ασφάλεια;

 

Απ' ότι ξέρω, το BTRFS είναι και file system και volume manager, οπότε ως file system προσφέρει και δυνατότητες RAID.

 

Για redundancy και integrity στρέφεσαι σε BTRFS RAID-1. Τα RAID-5 και 6 είναι unstable.

 

Με τη συγκεκριμένη διάταξη, μπορείς να συνδυάσεις δίσκους διαφόρων χωρητικοτήτων και να δημιουργήσεις ένα storage pool με redundancy και προστασία από bit-rot. Ουσιαστικά, διασφαλίζεις ότι τα δεδομένα που γράφονται δεν αλλάζουν λόγω corruption και υπάρχουν εις διπλούν.

Το BTRFS θα είναι όντως το πιο βολικό από άποψη διαχείρισης μια και μπορείς να προσθέτεις και αφαιρείς συσκευές, να αλλάζεις raid levels με rebalance και διάφορα άλλα. Επίσης το πιο σημαντικό πλεονέκτημα είναι ότι θα έχεις checksums σε data και metadata.

 

Εδώ όμως έρχονται τα αλλά.

 

1) Δεν πληροί το "ανθεκτικό στα απότομα shutdowns" σου. Έχει φτάσει σε ένα καλό σημείο και δεν γίνεται πλέον corrupted όλο το fs και να το χάνεις με ένα απλό κόψιμο του ρεύματος αλλά απλά θα χάσεις κάποια αρχεία. Κανείς όμως δεν μπορεί να στο εγγυηθεί. Για παράδειγμα πριν λίγες ημέρες έλαβα e-mail στην λίστα που ένας έλεγε ότι έχασε το fs (δεν θυμάμαι όμως αν έτρεχε παλαιό πυρήνα).

 

2) Όλα σε ένα

Το ότι δίνεις όλο το χώρο στο btrfs και μετά χρησιμοποιείς subvolumes για να έχεις την παλαιά λειτουργικότητα των κατατμήσεων είναι καταπληκτικό από την πλευρά της βολικότητας. Μπορείς ανά πάσα στιγμή να δημιουργείς νέες κατατμήσεις όταν θέλεις να αλλάξεις κάποιο layout, δεν έχεις το θέμα να σου τελειώσει ο χώρος σε μία κατάτμηση και μετά να έχεις μανούρες φόρτωσε με livecd -> μίκρυνε το fs -> μίκρυνε το LV του LVM (ή την ίδια την κατάτμηση χωρίς LVM) -> δώσε τον χώρο σε άλλο LV -> μεγέθυνε το fs.

 

Έχει όμως το πρόβλημα ότι οι subvolumes είναι μέρος ενός μεγάλου fs. Αν γίνει κάτι και χαθεί το fs έχασες τα πάντα, αντί για μόλις μία κατάτμηση.

 

3) Τα RAID levels του είναι ακόμη στα σπάργανα. Τα RAID5, 6 δεν δουλεύουν όπως είπε ο AlexKane αλλά και τα άλλα δεν μπορείς να τα χρησιμοποιήσεις.

 

Ας δούμε το RAID1 που σου πρότεινε ο Alex για "redundancy και integrity". Όταν λέμε RAID1 όλοι ξέρουμε ότι αν του δώσεις Ν δίσκους, θα έχεις Ν αντίγραφα και θα μπορείς να χάσεις Ν-1 δίσκους. Στην περίπτωση του BTRFS όμως (ακόμη) δεν είναι έτσι. Έχεις μόνο 2 αντίγραφα τα οποία γράφονται κυκλικά στους δίσκους και μπορείς να χάσεις μόνο 1 δίσκο ακόμη και αν έχεις RAID1 με 5 δίσκους.

 

Χρησιμοποιώ σχεδόν από την αρχή BTRFS και δεν είχα ποτέ πρόβλημα να χάσω δεδομένα όπως άλλοι. Είμαι μάλιστα τόσο ευχαριστημένος και με έχει βολέψει τόσο, σε σημείο που να μην μπορώ να δουλέψω LVM πλέον αλλά δεν μπορώ να σου το προτείνω για "βέλτιστη ασφάλεια".

 

Ειδικά αν δεν τρέχεις κάποια rolling διανομή που δίνει πάντα τον τελευταίο πυρήνα αλλά τρέχεις κάποια "stable" διανομή που δίνει πυρήνες από την εποχή του Χριστού με δικά τους patches από πάνω, τότε μακρυά από BTRFS.

 

Για βέλτιστη ασφάλεια ίσως ένα MD RAID1 / RAID10 με κάποιο fs σαν το XFS και φυσικά backup και αλλού.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σας ευχαριστώ για τις πληροφορίες. Ψάχνοντας εκεί έξω, είχα ψιλοχαθεί.

Είχα σκεφτεί και το σενάριο να έχω τους δίσκους σε απλό configuration και να κάνω sync τα data ματαξύ τους. Αλλά αυτό δεν θα με έσωζε αν χτύπαγε μια φώτο πχ, απλά θα την μετέφερε χαλασμένη και στους άλλους δίσκους.

Το "ανθεκτικό στα shutdowns" δε με νοιάζει τόσο από την έννοια ότι απλά θα κάθεται, μην σου πω ότι θα είναι off και την περισσότερη ώρα.

Το integrity είναι που με νοιάζει περισσότερο.

Διαβάζω για journal, checksums, data scrubbing και προσπαθώ να βγάλω άκρη.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Είχα σκεφτεί και το σενάριο να έχω τους δίσκους σε απλό configuration και να κάνω sync τα data ματαξύ τους. Αλλά αυτό δεν θα με έσωζε αν χτύπαγε μια φώτο πχ, απλά θα την μετέφερε χαλασμένη και στους άλλους δίσκους.

Για πόσους δίσκους και τι χωρητικότητες μιλάμε ? Επίσης τι διανομή ?

 

Το "ανθεκτικό στα shutdowns" δε με νοιάζει τόσο από την έννοια ότι απλά θα κάθεται, μην σου πω ότι θα είναι off και την περισσότερη ώρα.

Το integrity είναι που με νοιάζει περισσότερο.

Διαβάζω για journal, checksums, data scrubbing και προσπαθώ να βγάλω άκρη.

Αν το "βέλτιστη ασφάλεια" δεν σε καίει και τόσο (ή το εννοείς ως ασφάλεια ενάντια σε λάθη, bitrot, κτλ), τότε είναι μια χαρά το btrfs. Αρκεί φυσικά να μην έχεις διανομή που δίνει ακόμη 2.6.32 πυρήνα :)

 

Η αντιγραφή ή η διαγραφή ενός αρχείου απαιτεί 3-4 διακριτά βήματα. Ανάλογα με ποια ώρα θα πέσει το ρεύμα ή θα κρασάσει ο πυρήνας ή οτιδήποτε, μπορούσες να έχεις ασυνεπή δεδομένα επειδή γράφτηκαν στο δίσκο μόνο κάποια απο όλα τα βήματα. Για αυτό το λόγο μπήκε το journal στο οποίο γράφονται τα βήματα που πρόκειται να γίνουν και σβήνονται αφού ολοκληρωθούν. Έτσι αν κρασάρει στην μέση η διαδικασία, την επόμενη φορά που θα κάνεις mount, θα γίνει "replay" το journal και θα ολοκληρωθεί η διαδικασία.

 

Το BTRFS όπως και κανένα CoW fs δεν έχει journal γιατί δεν του χρειάζεται. Κάθε λειτουργία που αλλάζει το fs γράφεται σε ένα άλλο μέρος και αφού ολοκληρωθεί η αντιγραφή τότε αλλάζει το pointer να δείχνει στο νέο σημείο. Έτσι το αρχείο σου θα βρίσκεται είτε στην πρότερη κατάσταση είτε στην νέα κατάσταση χωρίς να έχεις ασυνέπεια.

 

Τα checksums θα σε βοηθήσουν στην integrity που θέλεις. Για κάθε block δεδομένων και μεταδεδομένων αποθηκεύεται ένα checksum το οποίο σου λέει αν το συγκεκριμένο block είναι σωστό. Έτσι ανά πάσα στιγμή μπορείς να ξέρεις ότι δεν χάλασε η μνήμη σου και επιστρέφει σκουπίδια ή ο ελεγκτής του δίσκου ή οτιδήποτε άλλο. Από τα fs του linux, πέρα από το btrfs (και το zfs), νομίζω μόνο το XFS έχει checksums αλλά μόνο στα μεταδεδομένα (και νομίζω πως μόνο σε fs που έχει δημιουργηθεί από εκεί και πέρα και όχι σε παλιά fs που έγιναν mount σε νέο πυρήνα).

 

Scrubbing είναι η διαδικασία ελέγχου των checksums. Σε κάθε ανάγνωση το fs ελέγχει αυτόματα αν το checksum είναι σωστό αλλά αυτό δεν σε καλύπτει για δεδομένα που δεν χρησιμοποιείς συχνά (πχ έγραψες κάποιες φωτογραφίες και δεν τις ξαναείδες για χρόνια). Τρέχοντας ένα scrub λες στο btrfs (ή στο md raid ή όποια άλλη υποδομή το υποστηρίζει) να πάρει σβάρνα όλα τα δεδομένα και να τα ελέγξει ένα προς ένα για λάθη. Αν έχεις redundancy με κάποια μέθοδο (πχ raid1, κτλ), τότε τα λάθος δεδομένα θα διαβαστούν από τον άλλο δίσκο και θα ξανα-αποθηκευτούν σωστά οπότε έχεις "διόρθωση" τους. Αλλιώς απλά θα λάβεις μήνυμα ότι έχεις λάθος δεδομένα χωρίς φυσικά να μπορούν να διορθωθούν αλλά θα έχεις τουλάχιστον ενημέρωση ότι δεν είναι σωστά.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για πόσους δίσκους και τι χωρητικότητες μιλάμε ? Επίσης τι διανομή ?

 

2* 160

1* 250

2* 320

 

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

 

Από διανομή έχω Fedora στο pc μου, αλλά στο "backup server" μιας και θα τον φτιάξω από την αρχή μπορώ να βάλω οτιδήποτε.

Από hardware έχω: c2d [email protected], abit aw9d-max, 8gb ddr2, nvidia 8500gt.

 

Σφάλμα κατά την μετακίνηση-διαγραφή κτλ δεδομένων, οκ το journal το διορθώνει.

Σφάλμα από πχ bad sector που δημιουργήθηκε κάποια στιγμή μετέπειτα το διορθώνει με το scrubbing αν έχω redundancy σωστά;

 

Οπότε θεωρητικά ένα raid-1 με 4 δίσκους minimum και fs που υποστηρίζει checksum είναι μια πολύ καλή λύση;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σφάλμα από πχ bad sector που δημιουργήθηκε κάποια στιγμή μετέπειτα το διορθώνει με το scrubbing αν έχω redundancy σωστά;

Εφόσον υπάρχει προσβάσιμο και έγκυρο αντίγραφο (λόγω mirror + checksum), ναι. Ο έλεγχος και η επιδιόρθωση θα πραγματοποιηθούν αυτόματα λόγω απλής ανάγνωσης των δεδομένων, αφού το fs θα επιχειρήσει να γράψει έγκυρα δεδομένα στη μονάδα της συστοιχίας που πλήττεται από bad blocks.

 

Στην περίπτωση που ο δίσκος λειτουργεί και τα bad blocks έχουν αυξηθεί σε βαθμό που το fs δε μπορεί πλέον να διαχειριστεί, τότε η συστοιχία θα παρουσιάζει καθυστέρηση στο I/O, σε mount / unmount, συνεχόμενη δραστηριότητα, κλπ. Θα πρέπει να προχωρήσεις σε αντικατάσταση της μονάδας και re-balancing, διότι υπάρχει κίνδυνος απώλειας των δεδομένων αφού κάποια από αυτά πιθανόν να έχουν μόνο ένα λειτουργικό αντίγραφο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...