gdp77

Σύγκριση RAID-1 υλοποιήσεων

Recommended Posts

Σε συνέχεια της αναζήτησής μου για backup και redundancy πρακτικές έπεσαν  στο τραπέζι της συζήτησης διάφορ ες δημοφιλείς υλοποιήσεις RAID-1 (το οποίο κυρίως με ενδιαφέρει για τα δεδομένα εργασίας μου + αποθήκη): mdadm raid-1, btrfs raid-1 και ZFS mirror. Για να καταλήξω σε κάποια υλοποίηση πριν από την αγορά/αναβάθμιση των δίσκων μου αποφάσισα να τεστάρω όλες τις υλοποιήσεις και να γνωρίσω σε πρώτη φάση τη λειτουργικότητά τους.  Δυστυχώς περισσευούμενοι μοντέρνοι δίσκοι δεν υπάρχουν, οπότε ξέθαψα από το ράφι δύο αρχαίους seagate 80GB που πριν από 15 χρόνια περίπου βρίσκονταν στο main desktop μου (και αν θυμάμαι καλά ένα φεγγάρι έπαιζαν και σε raid-0 σαν δίσκος συστήματος). Ο ένας ψόφησε, έγινε RMA, αλλά μέχρι να έρθει ο αντικαταστάτης είχα αγοράσει άλλον δίσκο μεγαλύτερο και γύρισα σε single hdd λειτουργία γιατί το raid-0 είχε τα νάζια του. Και για να μην τα πολυλογώ:

 

1.thumb.jpg.807dd5e0bf8f25ca9dbaef5da1c0c828.jpg

 

 O 7200.7 είναι sata-1, ενώ ο 7200.9 είναι sata-2, χωρίς όμως ουσιαστική διαφορά στις επιδόσεις, όπως θα δείτε και πιο κάτω.

 

2.thumb.jpg.ffa71d105940ef991cc5d7bb06cf5fea.jpg

 

3.thumb.jpg.c16daaaff9a39719084a01ed1a308f59.jpg

 

Οι συνδέσεις έγιναν στον αέρα και το παιχνίδι ξεκίνησε:

 

4.thumb.jpg.8d2d349a239ce36f74caca39194d5e47.jpg

 

5.thumb.jpg.ee2e9e6590c00fd2989548b9c7ee62e2.jpg

 

Πρώτα ελέγχθηκε η υγεία των δίσκων που ήταν 100% και έπειτα έγιναν format σε ext4. Έγιναν οι πρώτες μετρήσεις σε κάθε δίσκο ξεχωριστά. Μετά με τη σειρά υλοποιήθηκε btrfs raid-1 (εγγενής υποστήριξη στο linux mint 19.1 - δεν χρειάστηκε να εγκαταστήσω τίποτα). Η ενσωμάτωση του btrfs στο gui δεν ήταν και τόσο όμορφη, καθώς στα devices φαινόντουσαν και οι δύο δίσκοι και απλά έκανες mount οποιονδήποτε από τους δύο για να αποκτήσεις πρόσβαση στη συστοιχία. Ακολούθηκε restart, ξανά format και υλοποίηση mdadm raid-1 για το οποίο εγκαταστάθηκε το mdadm. Τo mdadm είχε την πιο όμορφη "ενσωμάτωση" στο linux mint, καθώς στα devices οι δύο δίσκοι φαινόντουσαν σαν ένα multi-device raid με αντίστοιχο όμορφο εικονίδιο. Τέλος, μετά από restart και εκ νέου format εγκαταστάθηκαν τα zfsutils-linux που επέτρεψαν τη δημιουργία zpool mirror. Εδώ η συστοιχία φαίνεται σαν ένας φάκελος συστήματος (αν και με δημιουργία zvol(ume) μπορεί να φανεί στο desktop σαν δίσκος (block device). Και στις 3 περιπτώσει η δημιουργία του raid ήταν υπόθεση δευτερολέπτων με 2 εντολές στην κονσόλα. Πανεύκολο ακόμα και για νεοεισερχόμενο στο linux.

 

Οι μετρήσεις σε κάθε περίπτωση έγιναν με εγγραφή και ανάγνωση φακέλου 8,4GB με 31 αρχεία. Όλα έγιναν με χρήση της εντολής time (για μέτρηση χρόνου) ακολουθούμενης από rsync για αντιγραφή του φακέλου. Για να πάρω τις ταχύτητες εγγραφής έπαιρνα τον φάκελο από πιο γρήγορο δίσκο sata-3 και τον έγγραφα στην κάθε υλοποίηση raid. Για να πάρω ταχύτητα ανάγνωσης έπαιρνα με rsync πάλι τον φάκελο από το raid και το έγγραφα στον ssd μου στο desktop για να είμαι σίγουρος ότι δεν θα έχω κάποιο bottleneck. Έτσι πέτυχα ένα ρεαλιστικό σενάριο χρήσης της συστοιχίας (για μένα). Αρχικά ανέμενα οι ταχύτητες εγγραφής να είναι ίσες με αυτές του πιο αργού δίσκου και οι ταχύτητες ανάγνωσης να είναι μεγαλύτερες (αλλά όχι διπλάσιες) από την ταχύτητα ανάγνωσης του πιο αργού δίσκου. Όλα τα δεδομένα περάστηκαν σε libre calc και οπτικοποιήθηκαν σε γράφημα. Τα αποτελέσματα με εξέπληξαν:

 

6.jpg.f181fa407b4003e084c8fa323714fe5f.jpg

 

Αποδείχτηκε ότι τόσο το mdadm raid-1 όσο και το btrfs raid-1 στην ανάγνωση δεν διαβάζουν και από του δύο δίσκους παράλληλα για να επιταχύνουν τον ρυθμό μεταφοράς, αλλά για λόγους redundancy διαβάζουν μόνο από τον έναν δίσκο πιθανόν για να μην καταπονούν και τους 2. Αυτό το γεγονός με απογοήτευσε και νόμιζα ότι εγώ έκανα κάτι λάθος. Αυτή ήταν και η αιτία που δοκίμασα και το ZFS (δεν ήταν στον αρχικό μου σχεδιασμό). Με το που έκανα  ανάγνωση από το zfs pool κατάλαβα αμέσως ότι θα έπαιρνα καλύτερα αποτελέσματα και μόνο από τον θόρυβο που έκαναν και οι δυο δίσκοι. Ήταν εμφανές ότι διάβαζαν και οι δύο και ο θόρυβος ήταν αρκετά πιο έντονος σε σχέση με τις δύο προηγούμενες υλοποιήσεις.

  

Συμπερασματικά νομίζω ότι είναι σχεδόν σίγουρο ότι μόλις αγοράσω τους 2x3TB δίσκους για την αποθήκη μου θα υλοποιήσω ZFS mirroring, καθώς οι επιπρόσθετες επιδόσεις είναι ζητούμενες (φυσικά με όλα τα καλούδια και την ασφάλεια που παρέχει το ZFS, όπως προστασία από silent errors, ευκολία στην προσθήκη επιπλέον δίσκου οποιασδήποτε χωρητικότητας, μεταφερσιμότητα της συστοιχίας σε οποιοδήποτε σύστημα, CoW κ.α.). 

Το μόνο που μένει είναι μήπως κάποιος με διαφωτίσει για πιθανές ρυθμίσεις που δεν έκανα στο mdadm και στο btrfs για να πάρω καλύτερες ταχύτητες ανάγνωσης.

 

update: Μου υποδείχθηκε ότι σε νεώτερο kernel (5.0) έχουν γίνει κάποια patch για το btrfs, οπότε το δοκίμασα με το ubuntu 19.04 και kernel 5.0.something.

Πήρα καλύτερα αποτελέσματα στην ανάγνωση με το btrfs raid-1 (72,8 ΜΒ/sec). Λογικά κάνει κάποια παράλληλη ανάγνωση από τους δίσκους, αλλά δεν φτάνει στα επίπεδα του ZFS mirror (86,02 ΜΒ/sec). 

  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now