RAID алгоритмите бяха представени на обществото далеч през 1987 година. И до днешен ден те остават най-търсеният метод за защита и ускорен достъп до данни в областта на съхранението на информация. Но възрастта на ИТ технологията, преминала 30-годишния праг, е по-скоро не зрялост, а вече старост. Причината е напредъкът, неумолимо носещ нови възможности. В епохата, когато практически нямаше други носители освен HDD, RAID алгоритмите позволяваха най-ефективно да се използват наличните ресурси за съхранение. Но с появата на SSD ситуацията се промени коренно. Сега RAID при работа с твърдотелни устройства вече представлява "отрова" за тяхната производителност. Затова, за да се разгърне целият потенциал на скоростните характеристики на SSD, е необходим напълно различен подход към тяхната работа.

Освен очевидните различия между HDD и SSD в принципите на работа, тези типове носители имат и още една важна характеристика: всеки твърд диск може да презаписва всякакви данни с грануларност от един блок (в момента това най-често е 4KB). За SSD процесът на презапис представлява много по-сложна процедура:
- Променените данни се копират на ново място. При това грануларността е същият блок, но съставен от няколко страници и с размер от 256KB – 4MB. Т.е. при промяна на същите 4KB, е необходимо да се копират и всички съседни страници, образуващи единен блок.
- "Старите" блокове се маркират като неизползвани, за да могат след това да бъдат изтрити от "събирача на смет" (Garbage Collector).

Последователно записване/презаписване на SSD
В случай на последователно записване/презаписване, тази особеност на функционирането на SSD не играе голяма роля от гледна точка на производителността му, тъй като блоковете са разположени близо един до друг и "събирачът на смет" се справя с работата си във фонов режим. Но в истинския живот, особено в Enterprise сегмента, SSD-често се използва за произволен достъп до данни. И тези данни се записват на произволни места в носителите.
Колкото повече данни се записват на SSD, толкова по-трудно става за сборщика на "мусор" да работи, тъй като фрагментацията значително нараства. В резултат идва момент, в който процесът на почистване на устройството спира да бъде "фонов": производителността на SSD значително пада, тъй като значителна част от нея се заема от Garbage Collector.

Реално разположение на данните на SSD при ежедневна употреба
За илюстрация на ефекта от работата на сборщика "мусор" в зависимост от режима на запис на устройството може да се проведат най-простите тестове: последователен и случаен запис с блокове от 4KB на 100GB устройство. (Източник – компания )

Производителност при последователен запис

Производителност при случаен запис
Както се вижда от тестовете, падението на производителността може да достигне до над два пъти. И това е само единствено устройство. В случай на използване на SSD в състава на RAID група, броят на операциите за презапис рязко нараства, благодарение на работата с parity.
Всъщност, благодарение на тези особености на работата на SSD, за тях съществува такъв параметър, като коефициент на запис (write amplification). Това е съотношението между обема на данните, записани на устройството, и обема на данните, които всъщност е изпратил хостът. И за най-популярния RAID5 този коефициент е ~3.5.
В крайна сметка системите с класически RAID по същество използват SSD само ~10% от тяхната действителна скорост и слабо мащабират производителността при увеличаване на броя на устройствата над десет.
Също така, отбелязваме, че излишните операции за запис не само намаляват производителността на SSD, но и намаляват неговия далеч не безкраен ресурс, съкращавайки по този начин срока на живот на устройството.
, която е ядро на всички продукти AccelStor, е разработена именно като алтернатива на класическите алгоритми RAID при работа с SSD. Инновационността на технологията е призната както от различни патенти и награди (включително на Flash Memory Summit 2016), така и от резултатите на независими тестове (например, SPC1).
Същността състои се в преобразуването на всички входящи заявките за запис, и главно от тип random, в набор от блокове, максимално подобен на режим последователно записване от гледна точка на устройството. В резултат записът на SSD се извършва в максимално комфортен режим за тях, а крайната производителност надминава всякакви системи с класически RAID.
Всички SSD в системите AccelStor се делят на две симетрични групи FlexiRemap®. Размерът на групата зависи от модела и е 5-11 устройства. За отказоустойчивост вътре в групата се прилага parity подобно на RAID5. И двете групи се използват съвместно, образувайки общо пространство за съхранение. Следователно крайната отказоустойчивост ще бъде аналогична на масив RAID50, състоящ се от две групи: системата е способна да издържи отказ на до два SSD, но не повече от един в всяка група FlexiRemap®.

Всички входящи заявки за запис се разпределят на блокове с размер 4KB, които в режим round robin се записват на двете групи FlexiRemap®. При това системата постоянно води отчет за търсенето на записаните блокове, опитвайки се при тяхната промяна да записва подобни блокове максимално близо един до друг. Получава се виртуален аналог на тиринга, ако се изразим в термини на СХД. В този случай значително се улеснява работата на събирача на „боклука”: нереализираните блокове постоянно ще се намират наблизо.
Струва си да се отбележи, че в отличие от продукцията на конкурентите не използват функционалността за кеширане на входящите заявки в оперативната памет на контролера. Всички входящи блокове от данни веднага се записват на SSD. Хостът получава потвърждение за успешен запис само след физичното разполагане на данните на носителите. В RAM се съхраняват единствено таблиците за разполагане на блоковете на SSD за ускоряване на достъпа и определяне къде да се запише следващият блок данни. Разбира се, за надеждността копия на тези таблици се намират и на самите носители. В резултат на това системите AccelStor не изискват никаква защита на кеша под формата на батерия/кондензатор (въпреки това, възможност за свързване с UPS съществува – за „меко” изключване в случай на проблеми с електрозахранването).
Благодарение на подобен подход за организация на записа, събирачът на "мръсотия" наистина е способен да работи във фонов режим, без да оказва съществено влияние върху скоростта на устройствата, което в крайна сметка позволява в рамките на системата да се утилизира до 90% от производителността на SSD. Именно в това се крият високите показатели на IOPS в системите AccelStor в контекста на All Flash, които се основават на алгоритми RAID.
Също така важна характеристика на технологията FlexiRemap® е значителното намаление на излишните операции на запис на SSD. Така коефициентът на запис (write amplification) за системите AccelStor е само 1.3, което на общодостъпен език означава увеличение на срока на служба на устройствата в сравнение с RAID5 повече от 2.5 пъти!

Благодарение на постоянния контрол от страна на системата върху политиката на разположение на данни на SSD, всички устройства се износват равномерно. Този подход позволява да се предвиди техният срок на служба и предварително да се подаде сигнал на администратора за изчерпване на ресурса за запис.
Ясно е, че SSD могат да се повредят. В такъв случай системата незабавно ще започне ребилд на един от дисковете hot spare. При това групата FlexiRemap®, находяща се в състояние degraded, преминава в режим "само за четене", а всички запитвания за запис се насочват към втората група. Този механизъм на защита е предвиден за ускоряване на операцията по ребилд и намаляване на вероятността от повреда на още едно устройство в рамките на същата група. Не е тайна, че по време на ребилд всички устройства в групата изпитват повишено натоварване поради интерференции между операциите на четене, запис и възстановяване на hot spare. По този начин се увеличава вероятността от отказ на още един диск. И колкото повече операции на запис, толкова по-дълго ще се извършва ребилд.

След завършване на процеса на възстановяване и връщане на групата FlexiRemap® в нормално състояние ще се появи малко неравенство в ресурса за запис между двете групи. Затова за неговото изравняване последващите операции на запис ще бъдат по-често насочвани към възстановената група (разбира се, с такова разчет, че крайното представяне на системата да не страда сериозно).
Увеличаването на производителността на All Flash системи, основани на RAID алгоритми, над определени стойности (~280K IOPS@4K случайно записване) не е възможно дори при използване на сложни кеширащи системи. Технологията FlexiRemap®, благодарение на напълно различен подход към организацията на пространството за съхранение, не само лесно преодолява тази бариера, но и увеличава няколко пъти срока на експлоатация на SSD. Така че системите имат сериозни предимства сред All Flash масивите по много фронтове (IOPS/$, GB/$, TCO, ROI), което ги прави идеални кандидати за ключови позиции в дата центрове на клиенти за решаване на ресурсоемки задачи.
Източник: habr.com
