Здравейте, Хабр! В този материал ще разгледаме дали си струва да организираме RAID масиви на база твърдотелни решения SATA SSD и NVMe SSD и дали от това ще има значителна полза. Решихме да проучим въпроса, разглеждайки видовете и типовете контролери, които позволяват това, както и сферите на приложение на такива конфигурации.

Независимо от всичко, всеки от нас поне веднъж в живота си е чувал термини като “RAID”, “RAID масив”, “RAID контролер”, но вероятно не е обръщал сериозно внимание на това, защото за обикновения потребител е малко интересно. Но бързината на вътрешните устройства и надеждността на тяхната работа интересуват всички. Все пак, колкото и мощен да е компютърът, скоростта на работа на устройството става ограничение, когато говорим за общата производителност на ПК и сървъра.
Така беше до момента, в който съвременните NVMe SSD с капацитет 1 TB и повече не замениха традиционните HDD. Ако преди по-често се срещаха комбинации SATA SSD + няколко вместими HDD, сега те започват да бъдат заменяни от друго решение – NVMe SSD + няколко вместими SATA SSD. Говорейки за корпоративни сървъри и “облаци”, много от тях вече успешно преминаха на SATA SSD, просто защото те са по-бързи от обикновените HDD и могат да обработват повече операции за вход/изход едновременно.

Въпреки това, устойчивостта на системата все още е на доста ниско ниво: не можем, както в “Битката на екстрасенсите”, да предскажем точно дори и до седмица кога даден твърдотелен диск ще се повреди. Докато HDD “умират” постепенно, позволявайки да уловим симптомите и да предприемем мерки, SSD “умират” внезапно и без предупреждение. И сега е време да разгледаме защо изобщо е необходима всичко това. Стои ли въпросът за организирането на RAID масиви на база твърдотелни решения SATA SSD и NVMe SSD и дали от това ще има реална полза?
Защо е необходим RAID масив?
Самата дума "массив" вече подсказва, че за създаването му се използват няколко устройства (HDD и SSD), които се обединяват чрез RAID контролер и се разпознават от операционната система като единно хранилище на данни. Глобалната задача, която RAID-масивите решават, е минимизация на времето за достъп до данни, подобряване на скоростта на четене/запис и надеждност, която се постига благодарение на възможността за бързо възстановяване в случай на срив. Между другото, за домашни резервни копия не е задължително да се използва RAID. Но ако имате свой домашен сървър, който изисква непрекъснат достъп 24/7 — тук положението е различно.
Съществуват над десет нива на RAID масиви, всяко от които се различава по броя на използваните устройства и има свои плюсове и минуси: например, RAID 0 позволява постигане на висока производителност без отказоустойчивост, RAID 1 — настройване на автоматично огледално копиране на данни без увеличение на скоростта, а RAID 10 обединява възможностите на посочените. RAID 0 и 1 са най-простите (тъй като не изискват извършване на софтуерни изчисления) и, следователно, най-популярните. В крайна сметка изборът на ниво RAID зависи от задачите, поставени пред дисковия масив, и възможностите на RAID контролера.
Домашен и корпоративен RAID: каква е разликата?
Основата на всеки съвременен бизнес са големи обеми данни, които трябва да се съхраняват надеждно на сървърите на компаниите. Освен това, както вече споменахме, към тях трябва да се осигури непрекъснат достъп 24/7. Разбира се, че наред с "железото" важна е и софтуерната част, но в случая говорим главно за оборудване, което осигурява надеждно съхранение и обработка на информация. Никакъв софтуер не ще спаси компанията от фалит, ако "желязното" оборудване не отговаря на поставените задачи.

За тези задачи всеки производител на "желязо" предлага т. нар. корпоративни устройства. При Kingston — това са мощни твърдотелни решения в лицето на SATA модели и , както и NVMe моделите DC1000M U.2 NVMe, DCU1000 U.2 NVMe и DCP-1000 PCI-e, предназначени за употреба в ЦОД (центрове за обработка на данни) и суперкомпютри. Массиви от такива устройства обикновено се използват в комбинация с хардуерни контролери.

За потребителския пазар (т.е. за домашни PC и NAS сървъри) са налични устройства като NVMe PCIe, но в този случай не е задължително да купувате хардуерен контролер. Можете да разчитате на вградения в дънната платка на ПК или NAS сървъра, освен ако разбира се не планирате сами да съберете домашен сървър за нетипични задачи (например, да направите малък домашен хостинг за приятели). Освен това, домашните RAID масиви обикновено не предвиждат наличие на стотици и хиляди устройства и се ограничават до два, четири или осем устройства (по-често SATA).
Видове и типове RAID контролери
Съществуват три вида RAID контролери, основани на принципите на реализиране на RAID масиви:
1. Програмни, при които управлението на масива пада на CPU и DRAM (т.е. изпълнението на програмния код се осъществява на процесора).
2. Интегрирани, т.е. вградени в дънните платки на PC или NAS сървъри.
3. Хардуерни (модулни), представляващи дискретни разширителни платки за слотове PCI/PCIe на системните платки.
В какво се състои принципиалната им разлика помежду си? Програмните RAID контролери отстъпват на интегрираните и хардуерните по производителност и отказоустойчивост, но не изискват специално оборудване за работа. Важно е обаче да се уверите, че процесорът на хост системата е достатъчно мощен, за да стартира софтуера RAID, без да оказва негативно влияние на производителността на приложенията, които също работят на хоста. Интегрираните контролери обикновено са оборудвани със собствена кеш памет и използват определено количество ресурси на CPU.
Апаратните контролери разполагат със собствено кеш-памет и вграден процесор за изпълнение на програмни алгоритми. Обикновено те позволяват реализиране на всички видове уровни на RAID-масиви и поддържат няколко типа устройства. Например, към съвременните апаратни контролери на компания Broadcom могат да се свържат едновременно SATA-, SAS- и NVMe-устройства, което позволява да не се сменя контролерът при ъпгрейд на сървърите: в частност, когато се преминава от SATA SSD на NVMe SSD, контролерите не трябва да се сменят.

Собствено, на тази нота стигнахме до типологията на самите контролери. Ако съществуват три режима, трябва да има и други? В този случай отговорът на този въпрос ще бъде утвърдителен. В зависимост от функциите и възможностите RAID-контролерите могат да бъдат разделени на няколко типа:
1. Обикновени контролери с функция RAID
В цялата иерархия това е най-простият контролер, който позволява обединяване на HDD и SSD в RAID-масиви на нива “0”, “1” или “0+1”. Програмно това е реализирано на ниво фърмуер. Въпреки това, такива устройства едва ли могат да бъдат препоръчани за използване в корпоративния сектор, тъй като им липсва кеш и не поддържат масиви на нива “5”, “3” и т.н. Но за домашен сървър с начален клас те са напълно подходящи.
2. Контролери, работещи в сътрудничество с други RAID-контролери
Този тип контролери може да работи в комбинация с интегрирани контролери на дънни платки. Реализацията е по следния начин: дискретният RAID-контролер поема решаването на “логическите” задачи, а вграденото — функциите за обмен на данни между устройствата. Но има нюанс: паралелната работа на такива контролери е възможна само на съвместими системни платки, което значи, че областта им на приложение е сериозно ограничена.
3. Самостоятелни RAID-контролери
Тези дискретни решения съдържат на борда всички необходими чипове за работа със сървъри от корпоративен клас, притежаващи собствен BIOS, кеш-памет и процесор за бърза корекция на грешки и изчисляване на контролни суми. Освен това те отговарят на високи стандарти за надеждност по отношение на производството и разполагат с висококачествени модули памет.
4. Външни RAID-контролери
Не е трудно да се предположи, че всички по-горе изброени контролери са вътрешни и получават захранване през PCIe слота на дънната платка. Какво означава това? Че повреда в дънната платка може да доведе до грешки в работата на RAID масива и загуба на данни. Външните контролери обаче са освободени от това недоразумение, тъй като са разположени в отделен корпус с независим контролер за захранване. По отношение на надеждността, тези контролери осигуряват най-високото ниво на съхранение на данни.
, Microsemi Adaptec, Intel, IBM, Dell и Cisco са само някои от компаниите, които предлагат хардуерни RAID контролери в момента.
Режими на работа на RAID контролерите SAS/SATA/NVMe
Основната задача на трипоточните HBA и RAID контролери (или контролери с Tri-Mode функция) е създаването на хардуерен RAID на базата на NVMe. Компанията Broadcom предлага контролери от серия 9400, например, . Той принадлежи към самостоятелния тип RAID контролери, разполага с четири SFF-8643 порта и, благодарение на поддръжката на Tri-Mode, позволява свързването на SATA/SAS и NVMe устройства едновременно. Освен това това е един от най-енергиен ефективните контролери на пазара (консумира само 17 вата, с по-малко от 1,1 вата на всеки от 16-те порта).

Интерфейсът за свързване е PCI Express x8 версия 3.1, което позволява реализирането на пропускателна способност на ниво 64 Gbps (очаква се през 2020 година да се появят контролери за PCI Express 4.0). В основата на 16-портовия контролер е 2-ядрен чип и 72-битова DDR4-2133 SDRAM (4 GB), а също така е реализирана възможност за свързване на до 240 SATA/SAS устройства или до 24 NVMe устройства. Що се отнася до организацията на RAID масиви, се поддържат нива “0”, “1”, “5” и “6”, както и “10”, “50” и “60”. За информация, кеш паметта и на другите контролери от серия 9400 е защитена от проблеми с напрежението с допълнителен модул CacheVault CVPM05.
Основата на трирежимната технология е функцията за преобразуване на данни SerDes: преобразуване на последователното представяне на данни в интерфейсите SAS/SATA в паралелна форма в PCIe NVMe и обратно. Тоест контролерът синхронизира скоростите и протоколите, за да работи безпрепятствено с всеки от трите типа устройства за съхранение. Това осигурява безпроблемен начин за мащабиране на инфраструктурите на центрове за данни: потребителите могат да използват NVMe без значителни изменения в другите конфигурации на системата.

Въпреки това, при планирането на конфигурации с NVMe устройства, е важно да се има предвид, че NVMe решенията използват 4 линии PCIe за свързване, така че всеки диск заема всички линии на портовете SFF-8643. Получава се, че директно към контролера MegaRAID 9460-16i могат да бъдат свързани само четири NVMe устройства. Или да се ограничите до две NVMe решения при едновременно свързване на осем SAS устройства (вж. схемата за свързване по-долу).

На изображението е показано използването на конектора „0“ (C0 / Connector 0) и конектора „1“ за свързване на NVMe, както и конекторите „2“ и „3“ за свързване на SAS. Това разположение може да бъде променено на обратно, но всеки x4 NVMe диск трябва да бъде свързан, използвайки съседни линии. Режимите на работа на контролера се задават чрез конфигурационните инструменти StorCLI или Human Interface Infrastructure (HII), която работи в средата на UEFI.

Режимът по подразбиране е профил „PD64“ (поддръжка само на SAS / SATA). Както вече споменахме, има три профила: режим „SAS/SATA only mode“ (PD240 / PD64 / PD 16), режим „NVMe only mode“ (PCIe4) и смесен режим, в който могат да работят всички типове дискове: „PD64-PCIe4“ (поддръжка на 64 физически и виртуални диска с 4 NVMe устройства). В смесен режим зададеното значение на профила трябва да бъде такова – „ProfileID=13“. Между другото, избраният профил се запазва като водещ и не се нулира дори при възстановяване на заводските настройки чрез командата Set Factory Defaults. Може да бъде променен само ръчно.
Струва ли си да се създаде RAID масив на SSD?
Така че вече разбираме, че RAID масивите са залог за висока производителност. Но струва ли си да се събират RAID от твърдотелни дискове за домашна и корпоративна употреба? Много скептици твърдят, че увеличението на скоростта не е чак толкова осезаемо, за да се харчат пари за NVMe дискове. Но дали наистина е така? Малко вероятно. Най-голямото ограничение при използването на SSD в RAID (както в домашни условия, така и на корпоративно ниво) е само цената. Както и да го погледнем, цената за гигабайт пространство при HDD е значително по-евтина.
Свързването на няколко твърдотелни "диска" към RAID контролер за създаване на масив от SSD в определени конфигурации може да окаже огромно влияние върху производителността. Не бива обаче да забравяме, че максималната производителност е ограничена от пропускателната способност на самия RAID контролер. Нивото на RAID, което предлага най-добра скорост на работа, е RAID 0.

Организацията на стандартен RAID 0 с два SSD диска, при която се използва метод на разделяне на данни на фиксирани блокове и тяхното чередуване между твърдотелните хранилища, ще доведе до удвояване на производителността (в сравнение с скоростите на един SSD). При това, RAID 0 масив с четири твърдотелни диска ще бъде вече четири пъти по-бърз от най-бавния SSD в масива (в зависимост от ограничението на пропускателната способност на нивото на RAID контролера SSD).
Ако изхождаме от простата аритметика, SATA SSD е около 3 пъти по-бърз от традиционния SATA HDD. NVMe решенията са още по-ефективни — 10 пъти и повече. При условие, че два твърдих диска в нулев RAID ще покажат удвоена производителност, увеличаваща се с 50%, два SATA SSD ще бъдат 6 пъти по-бързи, а два NVMe SSD — 20 пъти по-бързи. В частност, един диск Kingston KC2000 NVMe PCIe може да достига скорости на последователно четене и запис до 3200 Мбайт/с, което в RAID 0 ще достигне внушителните 6 Гбайт/с. Скоростта на четене/запис на случайни блокове с размер 4 Кбайт ще се увеличи от 350 000 IOPS до 700 000 IOPS. Но... в същото време "нулевият" RAID не осигурява излишък.
Може да се каже, че в домашни условия излишъкът на хранилище обикновено не е необходим, затова най-подходящата конфигурация RAID за SSD наистина се оказва RAID 0. Това е надежден начин да се постигне значително увеличение на производителността в сравнение с използването на технологии, като твердотелни устройства на базата на Intel Optane. А как ще се представят SSD-решенията в най-популярните типове RAID ("1", "5", "10", "50") — ще говорим в нашия следващ материал.
Тази статия е подготвена с подкрепата на нашите колеги от Broadcom, които предоставят своите контролери на инженерите от Kingston за тестиране с корпоративни SATA/SAS/NVMe носители. Благодарение на това приятелско сътрудничество, клиентите не трябва да се съмняват в надеждността и стабилността на работата на носителите Kingston с HBA и RAID контролери на производителя .
Допълнителна информация за продуктите Kingston можете да намерите компанията.
Източник: habr.com
