Συστοιχίες RAID στο NVMe

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

Όλη η ποικιλία των εφαρμογών της τεχνολογίας RAID βρίσκεται στο τμήμα διακομιστών. Στο τμήμα πελάτη, το λογισμικό RAID0 ή RAID1 σε δύο δίσκους χρησιμοποιείται συχνότερα αποκλειστικά.

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

Τι είναι το RAID;

Wikipedia δίνει έναν ολοκληρωμένο ορισμό της τεχνολογίας RAID:

RAID (Αγγλικά Πλεονάζουσα σειρά ανεξάρτητων δίσκων - μια πλεονάζουσα συστοιχία ανεξάρτητων (ανεξάρτητων) δίσκων) - μια τεχνολογία εικονικοποίησης δεδομένων για το συνδυασμό πολλαπλών φυσικών συσκευών δίσκων σε μια λογική μονάδα για τη βελτίωση της ανοχής και της απόδοσης σε σφάλματα.

Η διαμόρφωση των συστοιχιών δίσκων και οι τεχνολογίες που χρησιμοποιούνται σε αυτό εξαρτώνται από την επιλεγμένη Επίπεδο RAID. Τα επίπεδα RAID είναι τυποποιημένα στις προδιαγραφές Κοινή μορφή δεδομένων δίσκου RAID. Περιγράφει πολλά επίπεδα RAID, αλλά τα πιο κοινά είναι τα RAID0, RAID1, RAID5 και RAID6.

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

Επίπεδο RAID1Ή Καθρέπτης, δημιουργεί πανομοιότυπα αντίγραφα δεδομένων σε δύο ή περισσότερους δίσκους. Ο όγκος του εικονικού δίσκου δεν υπερβαίνει τον όγκο του ελάχιστου των φυσικών δίσκων. Τα δεδομένα σε έναν εικονικό δίσκο RAID1 θα είναι διαθέσιμα εφόσον λειτουργεί τουλάχιστον ένας φυσικός δίσκος στη συστοιχία. Η χρήση του RAID1 προσθέτει πλεονασμό, αλλά είναι αρκετά δαπανηρή, καθώς σε συστοιχίες δύο ή περισσότερων δίσκων, μόνο ένας είναι διαθέσιμος.

Επίπεδο RAID5 λύνει το πρόβλημα του υψηλού κόστους. Για να δημιουργήσετε μια συστοιχία με επίπεδο RAID5, χρειάζεστε τουλάχιστον 3 δίσκους και η συστοιχία είναι ανθεκτική στην αστοχία ενός δίσκου. Τα δεδομένα στο RAID5 αποθηκεύονται σε μπλοκ με αθροίσματα ελέγχου. Δεν υπάρχει αυστηρός διαχωρισμός μεταξύ δίσκων δεδομένων και δίσκων αθροίσματος ελέγχου. Τα αθροίσματα ελέγχου στο RAID5 είναι το αποτέλεσμα μιας λειτουργίας XOR που εφαρμόζεται σε μπλοκ N-1, καθένα από τα οποία λαμβάνεται από διαφορετικό δίσκο.

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

Μετά από μια σύντομη περιήγηση στους τύπους συστοιχιών RAID, μπορείτε να προχωρήσετε σε συσκευές και προγράμματα που σας επιτρέπουν να συναρμολογείτε και να χρησιμοποιείτε συστοιχίες δίσκων.

Τύποι ελεγκτών RAID

Υπάρχουν δύο τρόποι δημιουργίας και χρήσης συστοιχιών RAID: υλικό και λογισμικό. Θα εξετάσουμε τις παρακάτω λύσεις:

  • Λογισμικό Linux RAID.
  • Intel® Virtual RAID σε CPU.
  • LSI MegaRAID 9460-8i.

Σημειώστε ότι η λύση Intel® εκτελείται σε chipset, γεγονός που εγείρει το ερώτημα εάν πρόκειται για λύση υλικού ή λογισμικού. Έτσι, για παράδειγμα, ο hypervisor VMWare ESXi θεωρεί λογισμικό VROC και δεν το υποστηρίζει επίσημα.

Λογισμικό Linux RAID

Οι συστοιχίες λογισμικού RAID στην οικογένεια λειτουργικών συστημάτων Linux είναι μια αρκετά κοινή λύση τόσο στα τμήματα του πελάτη όσο και του διακομιστή. Το μόνο που χρειάζεστε για να δημιουργήσετε έναν πίνακα είναι το βοηθητικό πρόγραμμα mdadm και μερικές συσκευές μπλοκ. Η μόνη απαίτηση που επιβάλλει το Linux Software RAID στις μονάδες δίσκου που χρησιμοποιούνται είναι να είναι μια συσκευή μπλοκ προσβάσιμη στο σύστημα.

Η απουσία κόστους υλικού και λογισμικού είναι ένα προφανές πλεονέκτημα αυτής της μεθόδου. Το Linux Software RAID οργανώνει συστοιχίες δίσκων με κόστος χρόνου CPU. Η λίστα των υποστηριζόμενων επιπέδων RAID και η κατάσταση των τρεχουσών συστοιχιών δίσκων μπορούν να προβληθούν στο αρχείο mdstat, το οποίο βρίσκεται στη ρίζα procfs:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] 
unused devices: <none>

Η υποστήριξη για επίπεδα RAID προστίθεται συνδέοντας την κατάλληλη μονάδα πυρήνα, για παράδειγμα:

root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
unused devices: <none>

Όλες οι λειτουργίες με πίνακες δίσκων εκτελούνται μέσω του βοηθητικού προγράμματος γραμμής εντολών mdadm. Ο πίνακας δίσκων συναρμολογείται σε μία εντολή:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1

Μετά την εκτέλεση αυτής της εντολής, η συσκευή μπλοκ /dev/md0 θα εμφανιστεί στο σύστημα, η οποία αντιπροσωπεύει έναν εικονικό δίσκο.

Intel® Virtual RAID σε CPU

Συστοιχίες RAID στο NVMeΤυπικό κλειδί υλικού Intel® VROC
Το Intel® Virtual RAID On CPU (VROC) είναι μια τεχνολογία υλικού/λογισμικού για τη δημιουργία συστοιχιών RAID που βασίζονται σε chipset της Intel®. Αυτή η τεχνολογία είναι διαθέσιμη κυρίως σε μητρικές πλακέτες που υποστηρίζουν επεξεργαστές Intel® Xeon® Scalable. Το VROC δεν είναι διαθέσιμο από προεπιλογή. Για να το ενεργοποιήσετε, πρέπει να εγκαταστήσετε ένα κλειδί άδειας χρήσης υλικού VROC.

Η τυπική άδεια VROC σάς επιτρέπει να δημιουργείτε συστοιχίες δίσκων με επίπεδα 0, 1 και 10 RAID. Η premium έκδοση επεκτείνει αυτήν τη λίστα με υποστήριξη για RAID5.

Η τεχνολογία Intel® VROC στις σύγχρονες μητρικές πλακέτες λειτουργεί σε συνδυασμό με τη συσκευή διαχείρισης όγκου Intel® (VMD), η οποία παρέχει δυνατότητα εναλλαγής εναλλαγής για μονάδες NVMe.

Συστοιχίες RAID στο NVMeΤυπική άδεια Intel® VROC Οι συστοιχίες διαμορφώνονται μέσω του Setup Utility κατά την εκκίνηση του διακομιστή. Στην καρτέλα Προηγμένη Εμφανίζεται το Intel® Virtual RAID σε CPU, επιτρέποντάς σας να διαμορφώσετε συστοιχίες δίσκων.

Συστοιχίες RAID στο NVMeΔημιουργία συστοιχίας RAID1 σε δύο μονάδες δίσκου
Η τεχνολογία Intel® VROC έχει ένα κόλπο στο μανίκι της. Οι συστοιχίες δίσκων που έχουν κατασκευαστεί με VROC είναι συμβατές με το Linux Software RAID. Αυτό σημαίνει ότι οι πίνακες μπορούν να παρακολουθούνται στο /proc/mdstat και να διαχειρίζονται μέσω του mdadm. Αυτή η «χαρακτηριστική» υποστηρίζεται επίσημα από την Intel. Μετά τη συναρμολόγηση του RAID1 στο Setup Utility, μπορείτε να παρατηρήσετε τον συγχρονισμό των μονάδων δίσκου στο λειτουργικό σύστημα:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 nvme2n1[1] nvme1n1[0]
      1855832064 blocks super external:/md127/0 [2/2] [UU]
      [>....................]  resync =  1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
      
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
      10402 blocks super external:imsm
       
unused devices: <none>

Λάβετε υπόψη ότι δεν μπορείτε να συναρμολογήσετε πίνακες στο VROC χρησιμοποιώντας mdadm (οι συναρμολογημένοι πίνακες θα είναι Linux SW RAID), αλλά μπορείτε να αλλάξετε δίσκους σε αυτούς και να αποσυναρμολογήσετε τους πίνακες.

LSI MegaRAID 9460-8i

Συστοιχίες RAID στο NVMeΕξωτερική άποψη του ελεγκτή LSI MegaRAID 9460-8i
Ο ελεγκτής RAID είναι μια αυτόνομη λύση υλικού. Ο ελεγκτής λειτουργεί μόνο με μονάδες που συνδέονται απευθείας σε αυτό. Αυτός ο ελεγκτής RAID υποστηρίζει έως και 24 μονάδες NVMe. Είναι η υποστήριξη NVMe που διακρίνει αυτόν τον ελεγκτή από πολλούς άλλους.

Συστοιχίες RAID στο NVMeΚύριο μενού του ελεγκτή υλικού
Όταν χρησιμοποιείτε τη λειτουργία UEFI, οι ρυθμίσεις του ελεγκτή ενσωματώνονται στο Setup Utility. Σε σύγκριση με το VROC, το μενού του ελεγκτή υλικού φαίνεται πολύ πιο περίπλοκο.

Συστοιχίες RAID στο NVMeΔημιουργία RAID1 σε δύο μονάδες δίσκου
Η εξήγηση του τρόπου διαμόρφωσης των συστοιχιών δίσκων σε έναν ελεγκτή υλικού είναι ένα αρκετά λεπτό θέμα και θα μπορούσε να είναι ο λόγος για ένα πλήρες άρθρο. Εδώ θα περιοριστούμε στη δημιουργία RAID0 και RAID1 με προεπιλεγμένες ρυθμίσεις.

Οι δίσκοι που είναι συνδεδεμένοι στον ελεγκτή υλικού δεν είναι ορατοί στο λειτουργικό σύστημα. Αντίθετα, ο ελεγκτής «καλύπτει» όλες τις συστοιχίες RAID ως μονάδες SAS. Οι μονάδες που είναι συνδεδεμένες στον ελεγκτή, αλλά όχι μέρος της συστοιχίας δίσκων, δεν θα είναι προσβάσιμες από το λειτουργικό σύστημα.

root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9460-8i
Revision:             5.14
Compliance:           SPC-3
User Capacity:        1,999,844,147,200 bytes [1.99 TB]
Logical block size:   512 bytes
Rotation Rate:        Solid State Device
Logical Unit id:      0x000000000000000000000000000000
Serial number:        00000000000000000000000000000000
Device type:          disk
Local Time is:        Sun Oct 11 16:27:59 2020 MSK
SMART support is:     Unavailable - device lacks SMART capability.

Παρά το γεγονός ότι μεταμφιέζονται σε μονάδες SAS, οι συστοιχίες NVMe θα τρέχουν σε ταχύτητες PCIe. Ωστόσο, αυτή η δυνατότητα σάς επιτρέπει να κάνετε εκκίνηση από το NVMe στο Legacy.

Περίπτερο δοκιμής

Κάθε μία από τις μεθόδους οργάνωσης συστοιχιών δίσκων έχει τα δικά της φυσικά πλεονεκτήματα και μειονεκτήματα. Υπάρχει όμως διαφορά απόδοσης όταν εργάζεστε με συστοιχίες δίσκων;

Για να επιτευχθεί η μέγιστη δικαιοσύνη, όλες οι δοκιμές θα πραγματοποιηθούν στον ίδιο διακομιστή. Η διαμόρφωσή του:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16GB;
  • LSI MegaRAID 9460-8i;
  • Τυπικό κλειδί υλικού Intel® VROC.
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Οι μονάδες δοκιμής είναι P4510, το ένα μισό του οποίου είναι συνδεδεμένο στη μητρική πλακέτα και το άλλο μισό στον ελεγκτή RAID. Το M.2 εκτελεί το Ubuntu 20.04 και οι δοκιμές θα εκτελεστούν χρησιμοποιώντας την έκδοση fio 3.16.

Δοκιμές

Πρώτα απ 'όλα, ας ελέγξουμε τις καθυστερήσεις κατά την εργασία με το δίσκο. Η δοκιμή εκτελείται σε ένα νήμα, το μέγεθος του μπλοκ είναι 4 KB. Κάθε δοκιμή διαρκεί 5 λεπτά. Πριν από την εκκίνηση, η αντίστοιχη συσκευή μπλοκ ορίζεται σε κανένα ως προγραμματιστής εισόδου/εξόδου. Η εντολή fio μοιάζει με αυτό:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --iodepth=1 --loops=1000 --runtime=300  --rw=<mode> --filename=<blkdev>

Από τα αποτελέσματα fio παίρνουμε clat 99.00%. Τα αποτελέσματα φαίνονται στον παρακάτω πίνακα.

Τυχαία ανάγνωση, μs
Τυχαία εγγραφή, μs

δίσκος
112
78

Linux SW RAID, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

Linux SW RAID, RAID1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

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

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --loops=1000 --runtime=300  --iodepth=<threads> --rw=<mode> --filename=<blkdev>

Η απόδοση μετριέται με όρους λειτουργιών εισόδου/εξόδου. Τα αποτελέσματα παρουσιάζονται στον παρακάτω πίνακα.

Τυχαία ανάγνωση 1 νήμα, IOPS
Τυχαία εγγραφή 1 νήματος, IOPS
Τυχαία ανάγνωση 128 νημάτων, IOPS
Τυχαία εγγραφή 128 νημάτων, IOPS

δίσκος
11300
40700
453000
105000

Linux SW RAID, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

Linux SW RAID, RAID1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

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

Συμπέρασμα

Η χρήση λύσεων υλικού για τη δημιουργία συστοιχιών δίσκων από δύο δίσκους φαίνεται παράλογη. Ωστόσο, υπάρχουν εργασίες όπου δικαιολογείται η χρήση ελεγκτών RAID. Με την εμφάνιση των ελεγκτών με δυνατότητα NVMe, οι χρήστες έχουν την ευκαιρία να χρησιμοποιούν ταχύτερους SSD στα έργα τους.

Συστοιχίες RAID στο NVMe

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

Χρησιμοποιείτε λύσεις RAID;

  • 29,6%Ναι, λύσεις υλικού32

  • 50,0%Ναι, λύσεις λογισμικού54

  • 16,7%Νο18

  • 3,7%Δεν απαιτείται RAID4

Ψήφισαν 108 χρήστες. 14 χρήστες απείχαν.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο