Αξιοποιήστε τα usb flash στικάκια σας σε συστοιχίες RAID-0

Οι περισσότεροι από εμάς έχουμε πολλά αναξιοποίητα στικάκια που συνήθως καταχωνιάζουμε σε ένα συρτάρι και αγοράζουμε νέα, μεγαλύτερης χωρητικότητας και ταχύτητας, καθώς οι τιμές τους συνεχώς μειώνονται. Μπορεί, επίσης, να έχουμε μαζί μας 2 στικάκια 32GB και να θέλουμε να αντιγράψουμε αρχεία π.χ. 50GB που για διάφορους λόγους δεν θέλουμε/δεν μπορούμε να μοιράσουμε στα στικάκια μας. Τέλος μπορεί απλά να θέλουμε να επιταχύνουμε τη διαδικασία αντιγραφής/ανάγνωσης στα στικάκια μας, που ακόμα και αν είναι USB 3.0, ξέρουμε πολύ καλά ότι ούτε κατά προσέγγιση δεν πιάνουν ταχύτητες USB 3.0, ήτοι 5Gbs ≈ 625 MB/s.

Για όλες τις παραπάνω περιπτώσεις (ή και για περισσότερες), μπορεί το συγκεκριμένο πείραμα να σας φανεί ενδιαφέρον: Συστοιχία RAID-0 με τα στικάκια μας! Είναι εύκολο, γίνεται σε λιγότερο από 1 λεπτό και μας δίνει τη δυνατότητα να αξιοποιήσουμε τα στικάκια μας με σχεδόν διπλασιασμό της ταχύτητας (περιπτώσεις ζευγών) και συνδυασμό της χωρητικότητας σε ένα volume.

Ας δούμε πώς…

Για το πείραμά μου χρησιμοποιήθηκαν 2 στικάκια Sandisk Ultra Flair 32GB USB 3.0, που σήμερα κάποιος αγοράζει με 5€ (έκαστο) από το skroutz. Οι μετρήσεις ταχύτητας για το καθένα δεν είναι κακές για την τιμή τους.

KDiskMark_single

Τέλος, ένας φάκελος 9,9 GB με 38.431 αρχεία σε υποφακέλους χρειάστηκε 3 λεπτά και 28 δευτερόλεπτα για να αντιγραφτεί (από γρηγορότερο μέσο) σε ένα τέτοιο στικάκι, ήτοι 45,12 MB/s μέση ταχύτητα εγγραφής.

image

Ας δούμε τι πετυχαίνουμε αν στήσουμε μια συστοιχία mdadm RAID-0 χρησιμοποιώντας 2 τέτοια στικάκια.

Κατ’ αρχάς στήνουμε την συστοιχία:

sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/disk/by-uuid/a67b485d-0f56-49c4-bbb9-68025ddcec89 /dev/disk/by-uuid/7dcc8db7-9177-4f43-a534-4e5000983e41

–create → δημιούργησε

–verbose → δίνε πληροφορίες κατά τη διαδικασία

–/dev/md0 → η νέα “εικονική” συσκευή που θα δημιουργηθεί

–level=0 → συστοιχία RAID-0 aka strip

–raid-devices=2 → αποτελείται από 2 συσκευές

/dev/disk/by-uuid/a67b485d-0f56-49c4-bbb9-68025ddcec89 /dev/disk/by-uuid/7dcc8db7-9177-4f43-a534-4e5000983e41 →

Το ενδιαφέρον εδώ είναι ότι προσδιορίζω τις συσκευές με το UUID τους και όχι π.χ. σαν /dev/sdf και /dev/sde. Αυτό το κάνω γιατί οι συσκευές, όταν τις αφαιρέσω από το σύστημα και τις επανασυνδέσω σε επόμενο χρονικό σημείο, μπορεί να μην αναγνωριστούν σαν sdf και sde αλλά π.χ. σαν sde και sdg, ανάλογα με ποιες άλλες συσκευές είναι συνδεδεμένες στο σύστημα. Αυτό μπορεί να περιπλέξει τη διαδικασία αναγνώρισης της συστοιχίας. Προσδιορίζοντας τις συσκευές με τα UUID τους, το πρόβλημα αυτό δεν υφίσταται. (Το UUID το βρίσκεις εύκολα με lsblk -f)

Με την παραπάνω εντολή, η συστοιχία μας φτιάχνεται και αρκεί μέσα από το DISKS utility να στήσουμε το file system που επιθυμούμε π.χ. EXT4. Αν δεν θέλουμε να το κάνουμε από GUI, τότε:

sudo mkfs.ext4 /dev/md0

Έτοιμη η συστοιχία μας! Φαίνεται κανονικά στον file manager της διανομής μας και μπορούμε να την κάνουμε mount και unmount όπως κάθε άλλο στικάκι ή δίσκο του συστήματός μας. Προϋπόθεση να έχουμε και τα δύο στικάκια συνδεδεμένα.

Η χωρητικότητα των 2 στικ φαίνεται πλέον σαν ένας ενιαίος χώρος. Και από ταχύτητες, πώς πάμε;

KDiskMark_raid

Ο ίδιος φάκελος 9,9 GB με 38.431 αρχεία σε υποφακέλους χρειάστηκε τώρα 2 λεπτά και 10 δευτερόλεπτα για να αντιγραφτεί (από γρηγορότερο μέσο), ήτοι 72,08 MB/s μέση ταχύτητα εγγραφής.

image

Συνοπτικά οι διαφορές φαίνονται στο παρακάτω γράφημα:

Συμπερασματικά, λοιπόν, τα οφέλη είναι σημαντικά, ανάλογα με το σενάριο χρήσης, αλλά σίγουρα είναι και μια δυνατότητα να αξιοποιήσουμε με έναν διαφορετικό τρόπο τα στικάκια που ήδη διαθέτουμε!

14 «Μου αρέσει»

Ενδιαφέρον πείραμα!
Δεν θα το βασιζόμουν βέβαια για αρχεία που χρήζουν προσοχής, αλλά για μια απλή μεταφορά που στερείσαι δικτυακών δομών μεταφορών είναι ένα καλό use case.

1 «Μου αρέσει»

Πολύ ωραίο ευχαριστούμε :+1: