Salut Habr! În acest material, vom discuta dacă merită să organizăm matrice RAID bazate pe soluții solid-state SATA SSD și NVMe SSD și dacă vom avea un profit semnificativ din aceasta. Am decis să ne lămurim asupra acestei întrebări, analizând tipurile și variantele de controlere care permit acest lucru, precum și domeniile de aplicare ale acestor configurații.

Oricum, fiecare dintre noi a auzit măcar o dată în viață definiții precum „RAID”, „matrice RAID”, „controler RAID”, dar este puțin probabil să fi dat o importanță serioasă acestora, deoarece unui utilizator de PC obișnuit nu-i pasă prea mult. Însă, fiecare dintre noi își dorește viteze mari de la unitățile interne și fiabilitatea funcționării acestora. Căci, indiferent cât de puternică ar fi configurația computerului, viteza de funcționare a unității devine un factor limitativ atunci când discutăm despre performanța generală a PC-ului și serverului.
Așa a fost până în momentul în care soluțiile HDD tradiționale au fost înlocuite de modernele NVMe SSD cu o capacitate comparabilă de 1 TB și mai mult. Și dacă înainte, în PC-uri, întâlneam frecvent combinații SATA SSD + câteva HDD de mari capacitate, astăzi acestea încep să fie înlocuite de o altă soluție - NVMe SSD + câteva SATA SSD de mari capacitate. Când vorbim despre servere corporative și „cloud-uri”, multe companii au trecut deja la SATA SSD, pur și simplu pentru că sunt mai rapide decât „hard disk-urile” convenționale și pot procesa un număr mai mare de operațiuni de intrare/ieșire simultan.

Cu toate acestea, fiabilitatea sistemului rămâne totuși la un nivel destul de scăzut: nu putem, asemenea „bătăliei telepaților”, să prezicem cu exactitate, nici măcar până la o săptămână, când unul sau altul dintre unitățile solid-state va ceda. Și dacă HDD-urile „mor” treptat, permițându-ne să sesizăm simptomele și să luăm măsuri, SSD-urile „mur”. Și acum este momentul să ne întrebăm, de ce este nevoie de toate acestea? Merită să organizăm matrice RAID bazate pe soluții solid-state SATA SSD și NVMe SSD și vom obține un profit semnificativ din aceasta?
De ce este nevoie de matrice RAID?
Cuvântul „matrice” implică deja faptul că pentru crearea sa sunt utilizate mai multe dispozitive de stocare (HDD și SSD), care sunt combinate printr-un controler RAID și recunoscute de sistemul de operare ca un singur spațiu de stocare a datelor. Obiectivul global pe care îl permit matricele RAID este minimizarea timpului de acces la date, creșterea vitezei de citire/scriere și fiabilitatea, care este atinsă datorită posibilității de recuperare rapidă în caz de defecțiune. Apropo, pentru backupurile de acasă, utilizarea RAID-ului nu este deloc obligatorie. Însă, dacă ai propriul server de acasă, la care ai nevoie de acces constant 24/7, aici situația este diferită.
Există peste zece nivele de matrice RAID, fiecare dintre ele având un număr diferit de dispozitive utilizate și având propriile avantaje și dezavantaje: de exemplu, RAID 0 oferă o performanță ridicată fără toleranță la erori, RAID 1 permite realizarea unei oglindiri automate a datelor fără creșterea vitezei, iar RAID 10 combină funcționalitățile celor menționate anterior. RAID 0 și 1 sunt cele mai simple (deoarece nu necesită calcule software) și, ca urmare, sunt cele mai populare. În cele din urmă, alegerea unui anumit nivel de RAID depinde de sarcinile impuse matricei de discuri și de capabilitățile controlerului RAID.
RAID de acasă și corporativ: care este diferența?
Baza oricărei afaceri moderne o constituie volume mari de date, care trebuie să fie stocate în siguranță pe serverele companiilor. De asemenea, așa cum am menționat anterior, trebuie asigurat un acces constant 24/7 la acestea. Este evident că, pe lângă „hardware”, partea software este importantă, dar în acest caz vorbim de echipamente care asigură stocarea și procesarea fiabilă a informațiilor. Niciun software nu va salva compania de faliment dacă echipamentele „hardware” nu corespund sarcinilor care le sunt atribuite.

Pentru aceste sarcini, orice producător de „hardware” oferă așa-numitele dispozitive corporative. La Kingston, acestea sunt soluții SSD puternice, sub formă de modele SATA. și , precum și modele NVMe DC1000M U.2 NVMe, DCU1000 U.2 NVMe și DCP-1000 PCI-e, destinate utilizării în centrele de date (CD) și supercomputere. Array-urile din astfel de unități de stocare sunt de obicei folosite în combinație cu controlere hardware.

Pentru piața de consum (adică pentru PC-uri de acasă și servere NAS) sunt disponibile unități precum NVMe PCIe, dar în acest caz nu este necesar să achiziționați un controller hardware. Se poate utiliza controller-ul încorporat în placa de bază a PC-ului sau a serverului NAS, cu condiția să nu intenționați să construiți un server de acasă pentru sarcini neobișnuite (de exemplu, să creați un mic hosting acasă pentru prieteni). În plus, array-urile RAID de acasă nu presupun de obicei prezența a sute sau mii de unități de stocare, limitându-se la două, patru sau opt dispozitive (mai frecvent SATA).
Tipuri și clase de controlere RAID
Există trei tipuri de controlere RAID, bazate pe principiile de implementare a array-urilor RAID:
1. Software, în care gestionarea array-ului se efectuează de CPU și DRAM (adică execuția codului software se desfășoară pe procesor).
2. Integrate, adică încorporate în plăcile de bază ale PC-urilor sau serverelor NAS.
3. Hardware (modulare), reprezentând plăci discrete de expansiune pentru conectorii PCI/PCIe ai plăcilor de bază sistem.
Care este diferența esențială între ele? Controlerele RAID software sunt inferioare celor integrate și hardware în ceea ce privește performanța și reziliența, însă nu necesită hardware special pentru funcționare. Totuși, este important să vă asigurați că procesorul sistemului gazdă este suficient de puternic pentru a rula software-ul RAID, fără a afecta negativ performanța aplicațiilor care funcționează, de asemenea, pe gazdă. Controlerele integrate dispun de obicei de memorie cache proprie și utilizează o parte din resursele CPU.
Hardware controllers have their own cache memory and built-in processors to execute software algorithms. They generally support all types of RAID levels and multiple types of drives simultaneously. For instance, modern hardware controllers from Broadcom can connect SATA, SAS, and NVMe devices at the same time, allowing upgrades without changing controllers: specifically, when transitioning from SATA SSD to NVMe SSD, there’s no need to change controllers.

On this note, we come to the categorization of the controllers themselves. If there are three-mode controllers, there must be others as well. In this case, the answer is affirmative. Depending on their functions and capabilities, RAID controllers can be divided into several types:
1. Standard controllers with RAID functionality
In the entire hierarchy, this is the simplest type of controller that allows combining HDDs and SSDs into RAID arrays of levels '0', '1', or '0+1'. This is implemented at the firmware level. However, such devices are unlikely to be recommended for corporate use, as they lack cache and do not support array levels '5', '3', etc. They are quite suitable, though, for entry-level home servers.
2. Controllers that work alongside other RAID controllers
This type of controller can operate in tandem with the integrated controllers of motherboards. This is implemented on the following principle: the discrete RAID controller handles 'logical' tasks, while the integrated controller manages data exchanges between drives. However, there is a caveat: the simultaneous operation of such controllers is only possible on compatible system boards, which significantly narrows their application area.
3. Standalone RAID controllers
These discrete solutions contain all the necessary chips for operation with enterprise-class servers, equipped with their own BIOS, cache memory, and processors for rapid error correction and checksum calculations. Moreover, they meet high reliability standards in manufacturing and possess high-quality memory modules.
4. External RAID controllers
Nu este greu de dedus că toți acești controlere enumerate mai sus sunt interne și primesc energie prin conectorul PCIe al plăcii de bază. Ce ne spune asta? Că defectarea plăcii de bază poate duce la erori în funcționarea array-ului RAID și la pierderi de date. Controlerele externe, pe de altă parte, sunt scutite de această neplăcere, deoarece sunt plasate într-un corp separat cu o unitate de alimentare independentă. În ceea ce privește fiabilitatea, aceste controlere oferă cel mai înalt nivel de stocare a datelor.
, Microsemi Adaptec, Intel, IBM, Dell și Cisco sunt doar câteva dintre companiile care oferă controlere hardware RAID în prezent.
Modurile de funcționare ale controlerele RAID SAS/SATA/NVMe
Principala sarcină a controlerelor HBA și RAID în trei moduri (sau controlere cu funcție Tri-Mode) este de a crea RAID hardware bazat pe NVMe. Compania Broadcom are controlere din seria 9400 care pot face acest lucru: de exemplu, . Acesta este un tip de controler RAID independent, dotat cu patru conectori SFF-8643 și, datorită suportului Tri-Mode, permite conectarea simultană a dispozitivelor SATA/SAS și NVMe. În plus, este unul dintre cele mai eficiente controlere din punct de vedere energetic de pe piață (consumă doar 17 wați de energie, adică mai puțin de 1,1 wați pentru fiecare dintre cele 16 porturi).

Interfața de conectare este PCI Express x8 versiunea 3.1, ceea ce permite realizarea unei lățimi de bandă de 64 Gbit/s (în 2020 se așteaptă apariția controlerelor pentru PCI Express 4.0). La baza controlerului cu 16 porturi se află un cip cu 2 nuclei și 72-bit DDR4-2133 SDRAM (4 GB), precum și posibilitatea de a conecta până la 240 de dispozitive SATA/SAS sau până la 24 de dispozitive NVMe. În ceea ce privește organizarea array-urilor RAID, sunt suportate nivelurile “0”, “1”, “5” și “6”, precum și “10”, “50” și “60”. De altfel, memoria cache și a altor controlere din seria 9400 este protejată împotriva fluctuațiilor de tensiune printr-un modul suplimentar CacheVault CVPM05.
Tehnologia cu trei moduri se bazează pe funcția de conversie a datelor SerDes: conversia reprezentării secvențiale a datelor în interfețele SAS/SATA într-o formă paralelă în PCIe NVMe și invers. Asta înseamnă că controlerul sincronizează vitezele și protocoalele pentru a funcționa fără probleme cu oricare dintre cele trei tipuri de dispozitive de stocare. Aceasta oferă o modalitate continuă de scalare a infrastructurilor centrelor de date: utilizatorii pot folosi NVMe fără modificări semnificative în alte configurații ale sistemului.

Atunci când se planifică configurații cu module de stocare NVMe, este important să se țină cont că soluțiile NVMe utilizează 4 linii PCIe pentru conectare, ceea ce înseamnă că fiecare modul folosește toate liniile porturilor SFF-8643. Astfel, doar patru module NVMe pot fi conectate direct la controlerul MegaRAID 9460-16i. Sau se poate opta pentru două soluții NVMe atunci când se conectează simultan opt module SAS (vezi schema de conectare de mai jos).

Illustratia arată utilizarea conectorului "0" (C0 / Connector 0) și a conectorului "1" pentru conexiunile NVMe, precum și a conectorilor "2" și "3" pentru conexiunile SAS. Această aranjare poate fi schimbată pe invers, dar fiecare modul x4 NVMe trebuie conectat folosind linii adiacente. Modurile de operare ale controlerului sunt stabilite prin utilitarele de configurare StorCLI sau Human Interface Infrastructure (HII), care funcționează în mediu UEFI.

Modul implicit este profilul „PD64” (suport doar pentru SAS / SATA). Așa cum am menționat mai sus, sunt disponibile trei profili: modul „SAS/SATA only mode” (PD240 / PD64 / PD 16), modul „NVMe only mode” (PCIe4) și modul mixt, în care pot funcționa toate tipurile de module de stocare: „PD64-PCIe4” (suport pentru 64 de discuri fizice și virtuale cu 4 module NVMe). În modul mixt, valoarea profilului setat trebuie să fie „ProfileID=13”. De asemenea, profilul selectat este păstrat ca principal și nu se resetează nici măcar la revenirea la setările din fabrică prin comanda Set Factory Defaults. Acesta poate fi schimbat doar manual.
Merită să creezi un RAID pe SSD?
Deci, deja am înțeles că array-urile RAID sunt cheia pentru performanța înaltă. Dar merită să construiești un RAID din SSD-uri pentru utilizare acasă și în medii corporative? Mulți sceptici afirmă că creșterea vitezei nu este suficient de semnificativă pentru a justifica cheltuielile pe NVMe-uri. Dar este aceasta adevărat? Probabil că nu. Cea mai mare restricție în utilizarea SSD-urilor în RAID (atât în medii domestice, cât și la nivel corporativ) poate fi prețul. Oricum am da-o, costul pe gigabyte la HDD-uri este semnificativ mai mic.
Conectarea mai multor „discuri” SSD la un controler RAID pentru a crea un array din SSD-uri în anumite configurații poate avea un impact enorm asupra performanței. Totuși, nu trebuie să uităm că performanța maximă este limitată de lățimea de bandă a controlerului RAID în sine. Nivelul RAID care oferă cea mai bună viteză de operare este RAID 0.

Organizarea unui RAID 0 obișnuit cu două SSD-uri, folosind metoda de împărțire a datelor în blocuri fixe și alternarea lor între stocările SSD, va duce la dublarea performanței (comparativ cu vitezele oferite de un singur SSD). Astfel, un array RAID 0 cu patru SSD-uri va fi deja de patru ori mai rapid decât cel mai lent SSD din array (în funcție de restricțiile de lățime de bandă la nivelul controlerului RAID SSD).
Dacă ne bazăm pe o simplă aritmetică, SSD-urile SATA sunt de aproximativ 3 ori mai rapide decât HDD-urile SATA tradiționale. Soluțiile NVMe sunt și mai eficiente — de 10 ori sau mai mult. Având în vedere că două hard disk-uri într-un RAID de nivel zero vor afișa o performanță dublată, crescându-o cu 50%, două SSD-uri SATA vor fi de 6 ori mai rapide, iar două SSD-uri NVMe vor fi de 20 de ori mai rapide. De exemplu, un singur drive Kingston KC2000 NVMe PCIe poate atinge viteze de citire și scriere secvențială de până la 3200 MB/s, care în configurația RAID 0 va ajunge la impresionante 6 GB/s. Viteza de citire/scriere a blocurilor întâmplătoare de 4 KB va crește de la 350.000 IOPS la 700.000 IOPS. Dar… în același timp, RAID-ul „zero” nu ne oferă redundanță.
Se poate spune că, în condiții casnice, redundanța stocării nu este de obicei necesară, astfel că cea mai potrivită configurație RAID pentru SSD devine cu adevărat RAID 0. Aceasta este o modalitate fiabilă de a obține o creștere semnificativă a performanței ca alternativă la utilizarea unor tehnologii precum unitățile de stocare solide bazate pe Intel Optane. Vom discuta despre modul în care se vor comporta soluțiile SSD în cele mai populare tipuri de RAID ("1", "5", "10", "50") în materialul nostru următor.
Acest articol a fost pregătit cu sprijinul colegilor noștri de la Broadcom, care furnizează controlere inginerilor de la Kingston pentru testarea cu unități de stocare SATA/SAS/NVMe de clasă enterprise. Datorită acestui simbioze prietenoase, clienții nu trebuie să se îndoiască de fiabilitatea și stabilitatea funcționării unităților Kingston cu controlerele HBA și RAID fabricate. .
Informații suplimentare despre produsele Kingston pot fi găsite companie.
Sursa: habr.com
