gdp77 Δημοσιεύτηκε Μάϊος 1, 2019 #1 Κοινοποίηση Δημοσιεύτηκε Μάϊος 1, 2019 Σε συνέχεια της πολύ εποικοδομητικής συζήτησης που προηγήθηκε σε thread που άνοιξα για backup και redundancy πρακτικές εδώ: έπεσαν στο τραπέζι της συζήτησης διάφορες δημοφιλείς υλοποιήσεις RAID-1 (το οποίο κυρίως με ενδιαφέρει για τα δεδομένα εργασίας μου + αποθήκη): mdadm raid-1, btrfs raid-1 και ZFS mirror. Για να καταλήξω σε κάποια υλοποίηση πριν από την αγορά/αναβάθμιση των δίσκων μου αποφάσισα να τεστάρω όλες τις υλοποιήσεις και να γνωρίσω σε πρώτη φάση τη λειτουργικότητά τους. Δυστυχώς περισσευούμενοι μοντέρνοι δίσκοι δεν υπάρχουν, οπότε ξέθαψα από το ράφι δύο αρχαίους seagate 80GB που πριν από 15 χρόνια περίπου βρίσκονταν στο main desktop μου (και αν θυμάμαι καλά ένα φεγγάρι έπαιζαν και σε raid-0 σαν δίσκος συστήματος). Ο ένας ψόφησε, έγινε RMA, αλλά μέχρι να έρθει ο αντικαταστάτης είχα αγοράσει άλλον δίσκο μεγαλύτερο και γύρισα σε single hdd λειτουργία γιατί το raid-0 είχε τα νάζια του. Και για να μην τα πολυλογώ: O 7200.7 είναι sata-1, ενώ ο 7200.9 είναι sata-2, χωρίς όμως ουσιαστική διαφορά στις επιδόσεις, όπως θα δείτε και πιο κάτω. Οι συνδέσεις έγιναν στον αέρα και το παιχνίδι ξεκίνησε: Πρώτα ελέγχθηκε η υγεία των δίσκων που ήταν 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 και οπτικοποιήθηκαν σε γράφημα. Τα αποτελέσματα με εξέπληξαν: Αποδείχτηκε ότι τόσο το mdadm raid-1 όσο και το btrfs raid-1 στην ανάγνωση δεν διαβάζουν και από του δύο δίσκους παράλληλα για να επιταχύνουν τον ρυθμό μεταφοράς, αλλά για λόγους redundancy διαβάζουν μόνο από τον έναν δίσκο πιθανόν για να μην καταπονούν και τους 2. Αυτό το γεγονός με απογοήτευσε και νόμιζα ότι εγώ έκανα κάτι λάθος. Αυτή ήταν και η αιτία που δοκίμασα και το ZFS (δεν ήταν στον αρχικό μου σχεδιασμό). Με το που έκανα ανάγνωση από το zfs pool κατάλαβα αμέσως ότι θα έπαιρνα καλύτερα αποτελέσματα και μόνο από τον θόρυβο που έκαναν και οι δυο δίσκοι. Ήταν εμφανές ότι διάβαζαν και οι δύο και ο θόρυβος ήταν αρκετά πιο έντονος σε σχέση με τις δύο προηγούμενες υλοποιήσεις. Συμπερασματικά νομίζω ότι είναι σχεδόν σίγουρο ότι μόλις αγοράσω τους 2x3TB δίσκους για την αποθήκη μου θα υλοποιήσω ZFS mirroring, καθώς οι επιπρόσθετες επιδόσεις είναι ζητούμενες (φυσικά με όλα τα καλούδια και την ασφάλεια που παρέχει το ZFS, όπως προστασία από silent errors, ευκολία στην προσθήκη επιπλέον δίσκου οποιασδήποτε χωρητικότητας, μεταφερσιμότητα της συστοιχίας σε οποιοδήποτε σύστημα, CoW κ.α.). Το μόνο που μένει είναι μήπως κάποιος με διαφωτίσει για πιθανές ρυθμίσεις που δεν έκανα στο mdadm και στο btrfs για να πάρω καλύτερες ταχύτητες ανάγνωσης. Περιμένω τα σχόλιά σας. 4 Link to comment Share on other sites More sharing options...
paxman Μάϊος 1, 2019 #2 Κοινοποίηση Μάϊος 1, 2019 Είχα διαβάσει ότι το ZFS είναι ευαίσθητο σε τυχόν random memory errors, γι'αυτό είναι must η χρήση ECC chips. Ισχύει ακόμη; Link to comment Share on other sites More sharing options...
Inglor Μάϊος 1, 2019 #3 Κοινοποίηση Μάϊος 1, 2019 (edited) Προσωπικά θα προτιμούσα την υλοποίηση των BTRFS / MDADM και όχι του ZFS για τον λόγο που ανέφερες - να μην καταπονεί και τους δύο δίσκους. Το BTRFS raid-1 που χρησιμοποιώ είναι καθαρά για archiving και δεν με αφορά τόσο η επίδοση. Για daily backup έχω restic backup daily και weekly @ Backblaze B2 cloud. Με το block dedublication που έχει το restic είναι πολύ λίγο το upload που κάνω από το /home μου. Στον NAS έχω UNRAID που δεν είναι τόσο secure όσο το Raid 1 αλλά αν είναι να χάσω μόνο το Media Library δεν με πειράζει και τόσο. πριν 4 λεπτά, το μέλος paxman έγραψε: Είχα διαβάσει ότι το ZFS είναι ευαίσθητο σε τυχόν random memory errors, γι'αυτό είναι must η χρήση ECC chips. Ισχύει ακόμη; Ισχύει ναι. Έγινε επεξεργασία Μάϊος 1, 2019 από Inglor 1 Link to comment Share on other sites More sharing options...
gdp77 Μάϊος 1, 2019 Author #4 Κοινοποίηση Μάϊος 1, 2019 33 minutes ago, paxman said: Είχα διαβάσει ότι το ZFS είναι ευαίσθητο σε τυχόν random memory errors, γι'αυτό είναι must η χρήση ECC chips. Ισχύει ακόμη; Δείτε και από το 9:16 που βραχυκυκλώνουν τη μνήμη.... 1 Link to comment Share on other sites More sharing options...
gdp77 Μάϊος 1, 2019 Author #5 Κοινοποίηση Μάϊος 1, 2019 (edited) Or let Matthew Ahrens, the co-founder of the ZFS project phrase it: There's nothing special about ZFS that requires/encourages the use of ECC RAM more so than any other filesystem. If you use UFS, EXT, NTFS, btrfs, etc without ECC RAM, you are just as much at risk as if you used ZFS without ECC RAM. I would simply say: if you love your data, use ECC RAM. Additionally, use a filesystem that checksums your data, such as ZFS. Επίσης: https://news.ycombinator.com/item?id=14447297 Έγινε επεξεργασία Μάϊος 1, 2019 από gdp77 1 Link to comment Share on other sites More sharing options...
paxman Μάϊος 1, 2019 #6 Κοινοποίηση Μάϊος 1, 2019 44 minutes ago, gdp77 said: Δείτε και από το 9:16 που βραχυκυκλώνουν τη μνήμη.... Οοοοοκ, respect! Το ρώτησα γιατί αν ήταν mandatory η χρήση ECC memory θα ήταν απαγορευτική η χρήση σε home συστήματα. Link to comment Share on other sites More sharing options...
gdp77 Μάϊος 1, 2019 Author #7 Κοινοποίηση Μάϊος 1, 2019 Just now, paxman said: αν ήταν mandatory η χρήση ECC memory Σε καμία περίπτωση. Θα έλεγα ότι η χρήση ECC είναι ένα ακόμα layer προστασίας. Προσωπικά θεωρώ ότι είναι οverkill, δεδομένου ότι αν όλα πάνε στραβά, υπάρχει πάντα και το backup. Προσωπικά θεωρώ πολύ πιο σημαντικό π.χ. το UPS. 1 Link to comment Share on other sites More sharing options...
Inglor Μάϊος 1, 2019 #8 Κοινοποίηση Μάϊος 1, 2019 (edited) πριν 4 ώρες, το μέλος gdp77 έγραψε: Or let Matthew Ahrens, the co-founder of the ZFS project phrase it: [..]Additionally, use a filesystem that checksums your data, such as ZFS. Or BTRFS. Έγινε επεξεργασία Μάϊος 1, 2019 από Inglor Link to comment Share on other sites More sharing options...
Inglor Μάϊος 1, 2019 #9 Κοινοποίηση Μάϊος 1, 2019 πριν 6 ώρες, το μέλος gdp77 έγραψε: [..] Μετά με τη σειρά υλοποιήθηκε btrfs raid-1 (εγγενής υποστήριξη στο linux mint 19.1 - δεν χρειάστηκε να εγκαταστήσω τίποτα). Η ενσωμάτωση του btrfs στο gui δεν ήταν και τόσο όμορφη, καθώς στα devices φαινόντουσαν και οι δύο δίσκοι και απλά έκανες mount οποιονδήποτε από τους δύο για να αποκτήσεις πρόσβαση στη συστοιχία. [..] Δεν αναφέρεις κάτι για kernel version. Σε πυρήνα (4.16+) κάναν commit patch για raid-1performance patch Παράθεση Currently btrfs raid1/10 balancer blance requests to mirrors, based on pid % num of mirrors. Update logic and make it understood if underline device are non rotational. If one of mirrors are non rotational, then all read requests will be moved to non rotational device. If both of mirrors are non rotational, calculate sum of pending and in flight request for queue on that bdev and use device with least queue leght. P.S. Inspired by md-raid1 read balancing Όπως βλέπεις το mdadm-raid1 και btrfs-raid1 ουσιαστικά χρησιμοποιούν τον ίδιο αλγόριθμο :) 1 1 Link to comment Share on other sites More sharing options...
Inglor Μάϊος 1, 2019 #10 Κοινοποίηση Μάϊος 1, 2019 πριν 6 ώρες, το μέλος gdp77 έγραψε: Τέλος, μετά από restart και εκ νέου format εγκαταστάθηκαν τα zfsutils-linux που επέτρεψαν τη δημιουργία zpool mirror. Εδώ η συστοιχία φαίνεται σαν ένας φάκελος συστήματος (αν και με δημιουργία zvol(ume) μπορεί να φανεί στο desktop σαν δίσκος (block device). Το ZFS υποστηρίζει cache device (συνήθως SSD) όταν φτιάχνεις το zpool. Αφου σε ενδιαφέρει η επίδοση κοίτα να βάλεις και ένα cache ssd για αυτό το λόγο κοίτα εδώ. 2 Link to comment Share on other sites More sharing options...
gdp77 Μάϊος 2, 2019 Author #11 Κοινοποίηση Μάϊος 2, 2019 6 hours ago, Inglor said: Δεν αναφέρεις κάτι για kernel version. Σε πυρήνα (4.16+) κάναν commit patch για raid-1performance patch Όπως βλέπεις το mdadm-raid1 και btrfs-raid1 ουσιαστικά χρησιμοποιούν τον ίδιο αλγόριθμο Εξαιρετική η πληροφορία σου! Το σύστημά μου έχει 4.15.0.48 Επειδή δεν θέλω να περάσω νεώτερο από αυτόν που δίνει από "μαμά" το Mint, μπουτάρω με ένα live ubuntu 19.04 live (φοράει kernel 5) και θα ξανακάνω τις δοκιμές να δούμε αν αλλάζει κάτι με btrfs. 6 hours ago, Inglor said: Το ZFS υποστηρίζει cache device (συνήθως SSD) όταν φτιάχνεις το zpool. Αφου σε ενδιαφέρει η επίδοση κοίτα να βάλεις και ένα cache ssd για αυτό το λόγο κοίτα εδώ. Το ξέρω. Και μάλιστα έχω εναν 128άρη στο ράφι... Το πρόβλημα είναι ότι έχω ξεμείνει από sata ports και δεν την παλεύω να ξηλώνω τώρα. Όταν φύγουν ο WD 640 black + Samsung 500 F1 + seagate 1TB και αντικατασταθούν με 2x3TB (καλύτερα με 2x4ΤΒ αρκεί να βρω τα χρήματα), τότε θα μου περισσέψει και ένα sata port για ssd cashe. 1 Link to comment Share on other sites More sharing options...
gdp77 Μάϊος 2, 2019 Author #12 Κοινοποίηση Μάϊος 2, 2019 @Inglor Τώρα που διαβάζω το patch που αναφέρεις, είναι ξεκάθαρο ότι αναφέρεται σε περιπτώσεις non-rotational devices, δηλαδή SSD. Πολύ αμφιβάλλω ότι θα δω παράλληλο read και από τους δύο δίσκους στο σενάριο χρήσης με 2 HDD σε RAID-1. Παρ' όλα αυτά κατεβάζω ubuntu 19.04 και θα δοκιμάσω και με νεώτερο kernel να δούμε μήπως υπάρχει κάποια διαφορά. Link to comment Share on other sites More sharing options...
gdp77 Μάϊος 2, 2019 Author #13 Κοινοποίηση Μάϊος 2, 2019 8 hours ago, Inglor said: Δεν αναφέρεις κάτι για kernel version. Σε πυρήνα (4.16+) κάναν commit patch για raid-1performance patch Λοιπόν το δοκίμασα με το ubuntu 19.04 και kernel 5.0.something. Πήρα καλύτερα αποτελέσματα στην ανάγνωση με το btrfs raid-1 (72,8 ΜΒ/sec). Λογικά κάνει κάποια παράλληλη ανάγνωση από τους δίσκους, αλλά δεν φτάνει στα επίπεδα του ZFS mirror (86,02 ΜΒ/sec). 2 Link to comment Share on other sites More sharing options...
Inglor Μάϊος 2, 2019 #14 Κοινοποίηση Μάϊος 2, 2019 πριν 3 ώρες, το μέλος gdp77 έγραψε: Τώρα που διαβάζω το patch που αναφέρεις, είναι ξεκάθαρο ότι αναφέρεται σε περιπτώσεις non-rotational devices, δηλαδή SSD. Πολύ αμφιβάλλω ότι θα δω παράλληλο read και από τους δύο δίσκους στο σενάριο χρήσης με 2 HDD σε RAID-1. Παρ' όλα αυτά κατεβάζω ubuntu 19.04 και θα δοκιμάσω και με νεώτερο kernel να δούμε μήπως υπάρχει κάποια διαφορά. Ναι αν είναι SSD τότε θα επιλέξει τον SSD, αλλιώς αυτό που έχει μικρότερο Queue length. Μπορείς να παίξεις και με IO Schedulers για να δεις αν κάνει κάποια διαφορά, BFQ π.χ. (ArchWiki page ) πριν 1 ώρα, το μέλος gdp77 έγραψε: Λοιπόν το δοκίμασα με το ubuntu 19.04 και kernel 5.0.something. Πήρα καλύτερα αποτελέσματα στην ανάγνωση με το btrfs raid-1 (72,8 ΜΒ/sec). Λογικά κάνει κάποια παράλληλη ανάγνωση από τους δίσκους, αλλά δεν φτάνει στα επίπεδα του ZFS mirror (86,02 ΜΒ/sec). Το BTRFS είναι ακόμα αρκετά πίσω από το ZFS που έχει χρόνια που είναι stable και έχουν δώσει βάση στο performance. Είναι βασικό να χρησιμοποιείς τελευταίο πυρήνα γιατί βάζουν πολλά patches - παράδειγμα δεν θα το πρότεινα με τίποτα σε debian. 1 Link to comment Share on other sites More sharing options...
gdp77 Μάϊος 9, 2019 Author #15 Κοινοποίηση Μάϊος 9, 2019 Ποια από τις παρακάτω επιλογές θα επιλέγατε; HDD ωφέλιμη χωρητικότητα εγγραφή ανάγνωση κόστος ZFS mirror (aka RAID-1) 2x4TB (N300 - NAS drives 7200rpm - 3 χρόνια εγγύηση) 3,86TB x1 x2 230€ ZFS RAIDZ1 (aka RAID-5) 3x3TB (P300 - desktop drives 7200rpm - 2 χρόνια εγγύηση) 5,77TB x2 x3 210€ ZFS RAIDZ1 (aka RAID-5) 4x2TB (P300 - desktop drives 7200rpm - 2 χρόνια εγγύηση) 5,62TB ?? ?? 240€ Ή άλλη εναλλακτική; (Οι δίσκοι δεν θα λειτουργούν 24/7, αλλά όταν το desktop pc λειτουργεί). Στην πρώτη επιλογή (4TB δίσκοι) δεν γλιτώνω κάτι αν επιλέξω desktop drives (5€ διαφορά), γι'αυτό και προτιμώ τα NAS drives. Στις επόμενες επιλογές (με 3ΤΒ και 2ΤΒ δίσκους) η διαφορά κόστους για NAS drives 7200 rpm είναι μεγάλη για τα χρήματα που διαθέτω, συνεπώς καταλήγω σε desktop drives 7200rpm). Σημειώνω επίσης ότι τα υπάρχοντα δεδομένα που θέλω να αποθηκεύσω είναι περίπου 2ΤΒ, τα οποία προφανώς θα αυξάνονται με την πάροδο του χρόνου. Link to comment Share on other sites More sharing options...
Inglor Ιούνιος 2, 2019 #16 Κοινοποίηση Ιούνιος 2, 2019 On 10/5/2019 at 12:51 ΠΜ, το μέλος gdp77 έγραψε: Ποια από τις παρακάτω επιλογές θα επιλέγατε; HDD ωφέλιμη χωρητικότητα εγγραφή ανάγνωση κόστος ZFS mirror (aka RAID-1) 2x4TB (N300 - NAS drives 7200rpm - 3 χρόνια εγγύηση) 3,86TB x1 x2 230€ ZFS RAIDZ1 (aka RAID-5) 3x3TB (P300 - desktop drives 7200rpm - 2 χρόνια εγγύηση) 5,77TB x2 x3 210€ ZFS RAIDZ1 (aka RAID-5) 4x2TB (P300 - desktop drives 7200rpm - 2 χρόνια εγγύηση) 5,62TB ?? ?? 240€ Ή άλλη εναλλακτική; (Οι δίσκοι δεν θα λειτουργούν 24/7, αλλά όταν το desktop pc λειτουργεί). Στην πρώτη επιλογή (4TB δίσκοι) δεν γλιτώνω κάτι αν επιλέξω desktop drives (5€ διαφορά), γι'αυτό και προτιμώ τα NAS drives. Στις επόμενες επιλογές (με 3ΤΒ και 2ΤΒ δίσκους) η διαφορά κόστους για NAS drives 7200 rpm είναι μεγάλη για τα χρήματα που διαθέτω, συνεπώς καταλήγω σε desktop drives 7200rpm). Σημειώνω επίσης ότι τα υπάρχοντα δεδομένα που θέλω να αποθηκεύσω είναι περίπου 2ΤΒ, τα οποία προφανώς θα αυξάνονται με την πάροδο του χρόνου. NAS με 7200rpm προσωπικά δεν θα το έκανα τώρα. Αν σε ενδιαφέρει performance πήγαινε σε SSD (Optane ή κάτι παρόμοιο) - ίσως σαν cache. Το Backup δεν το θεωρώ απαραίτητο να είναι γρήγορο. Τους 2χ P300 (1Tb) που έχω τους βρίσκω θορυβώδες σε btrfs raid-1 (πλέον πρέπει να τους βγάλω γιατί δεν τους χρησιμοποιώ τόσο). Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now