Внедряване на SSD кеширане в QSAN XCubeSAN система за съхранение
Технологиите за подобряване на производителността, базирани на използването на SSD и широко използвани в системите за съхранение, отдавна са измислени. На първо място, това е използването на SSD като място за съхранение, което е 100% ефективно, но скъпо. Поради това се използват технологии за умора и кеширане, при които SSD се използват само за най-популярните („горещи“) данни. Подреждането е добро за сценарии на дългосрочно (дни-седмици) използване на „горещи“ данни. Кеширането, напротив, е за краткосрочна (минути-часове) употреба. И двете опции са внедрени в системата за съхранение QSAN XCubeSAN. В тази статия ще разгледаме изпълнението на втория алгоритъм - SSD кеширане.
Същността на технологията за SSD кеширане е използването на SSD като междинен кеш между твърдите дискове и RAM паметта на контролера. Производителността на SSD, разбира се, е по-ниска от производителността на собствения кеш на контролера, но обемът е с порядък по-висок. Следователно получаваме определен компромис между скорост и обем.
Индикации за използване на SSD кеш за четене:
Преобладаването на операциите за четене над операциите за запис (най-често характерни за бази данни и уеб приложения);
Наличието на пречка под формата на производителност на масива на твърдия диск;
Количеството необходими данни е по-малко от размера на кеша на SSD.
Индикациите за използване на SSD кеш за четене+запис са същите, с изключение на характера на операциите – смесен тип (например файлов сървър).
Повечето доставчици на съхранение използват SSD кеш само за четене в своите продукти. Основната разлика QSAN Те предоставят възможност за използване на кеша и за писане. За да активирате функцията за SSD кеширане в QSAN системи за съхранение, трябва да закупите отделен лиценз (доставя се по електронен път).
SSD кешът в XCubeSAN е физически реализиран под формата на отделни SSD кеш пулове. В системата могат да бъдат до четири. Всеки пул, разбира се, използва свой собствен набор от SSD. И вече в свойствата на виртуалния диск определяме дали ще използва кеш пул и кой. Активирането и деактивирането на използването на кеша за томове може да се извърши онлайн без спиране на I/O. Можете също така да добавите горещо SSD към пула и да ги премахнете от там. Когато създавате SSD пул кеш, трябва да изберете в какъв режим ще работи: само за четене или четене+запис. От това зависи неговата физическа организация. Тъй като може да има няколко кеш пулове, тяхната функционалност може да бъде различна (т.е. системата може да има кеш пулове както за четене, така и за четене+запис едновременно).
Ако се използва кеш пул само за четене, той може да се състои от 1-8 SSD. Не е необходимо дисковете да са с еднакъв капацитет и от един и същи доставчик, тъй като те са комбинирани в NRAID+ структура. Всички SSD в пула са споделени. Системата независимо се опитва да паралелизира входящите заявки между всички SSD, за да постигне максимална производителност. Ако един от SSD дисковете се повреди, няма да се случи нищо лошо: в края на краищата кешът съдържа само копие на данните, съхранявани в масива от твърди дискове. Просто количеството наличен SSD кеш ще намалее (или ще стане нула, ако използвате оригиналния SSD кеш от едно устройство).
Ако кешът се използва за операции за четене + запис, тогава броят на SSD дисковете в пула трябва да е кратен на две, тъй като съдържанието се отразява на двойки устройства (използва се структурата NRAID 1+). Дублирането на кеша е необходимо, защото може да съдържа данни, които все още не са записани на твърдите дискове. И в този случай отказът на SSD от кеш пула би довел до загуба на информация. В случай на NRAID 1+ повреда на SSD просто ще доведе до прехвърляне на кеша в състояние само за четене, като незаписаните данни се изхвърлят в масива на твърдия диск. След подмяна на дефектния SSD, кеш паметта ще се върне в първоначалния си работен режим. Между другото, за по-голяма сигурност можете да присвоите специални горещи резерви към кеш за четене + запис.
Когато използвате функцията за SSD кеширане в XCubeSAN, има редица изисквания за количеството памет на контролерите за съхранение: колкото повече системна памет, толкова по-голям ще бъде наличен кеш пул.
За разлика от повечето производители на системи за съхранение, които предлагат само опция за включване/изключване на SSD кеша, QSAN предоставя повече опции. По-специално, можете да изберете режима на работа на кеша в зависимост от естеството на натоварването. Има три предварително зададени шаблона, които са най-близки по своята работа до съответните услуги: база данни, файлова система, уеб услуга. Освен това администраторът може да създаде свой собствен профил, като зададе необходимите стойности на параметрите:
Размер на блок (Cache Block Size) – 1/2/4 MB
Брой заявки за четене на блок, така че да бъде копиран в кеша (Праг за попълване при четене) – 1..4
Брой заявки за запис на блок, така че да бъде копиран в кеша (Праг за попълване при запис) – 0..4
Профилите могат да се променят в движение, но, разбира се, със съдържанието на нулирането на кеша и новото му „загряване“.
Имайки предвид принципа на работа на SSD кеша, можем да подчертаем основните операции при работа с него:
Тъй като заявените не са в кеша на SSD, те се четат от твърдите дискове;
Прочетените данни се изпращат на хоста. В същото време се прави проверка дали тези блокове са „горещи“;
Ако да, тогава те се копират в SSD кеша за по-нататъшна употреба.
Четене на данни, когато те присъстват в кеша
Заявка от хоста пристига в контролера;
Тъй като исканите данни са в SSD кеша, те се четат от там;
Прочетените данни се изпращат на хоста.
Записване на данни при използване на кеш за четене
Заявка за запис от хоста пристига в контролера;
Данните се записват на твърди дискове;
На хоста се връща отговор, показващ успешен запис;
В същото време се проверява дали блокът е „горещ“ (сравнява се параметърът Populate-on-Write Threshold). Ако да, то се копира в SSD кеша за по-късна употреба.
Записване на данни при използване на кеш за четене+запис
Заявка за запис от хоста пристига в контролера;
Данните се записват в SSD кеша;
На хоста се връща отговор, показващ успешен запис;
Данните от SSD кеша се записват на твърди дискове във фонов режим;
Проверка в действие
изпитателен стенд
2 сървъра (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) са свързани чрез два порта чрез Fibre Channel 16G директно към системата за съхранение XCubeSAN XS5224D (16GB RAM/контролер).
Използвахме 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, комбинирани в RAID5 (15+1), за масива от данни и 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12Gb/s като кеш
Създадени са 2 тома: по един за всеки сървър.
Тест 1. SSD кеш само за четене от 1-8 SSD
SSD кеш
I/O Тип: Персонализиране
Размер на кеш блок: 4MB
Праг за попълване при четене: 1
Праг за попълване при запис: 0
I/O модел
Инструмент: IOmeter V1.1.0
Работници: 1
Изключително (дълбочина на опашка): 128
Спецификации за достъп: 4KB, 100% четене, 100% произволно
На теория, колкото повече SSD дискове са в кеша, толкова по-висока е производителността. На практика това е потвърдено. Единственото значително увеличение на броя на SSD с малък брой томове не води до експлозивен ефект.
Тест 2. SSD кеш в режим на четене + запис с 2-8 SSD
SSD кеш
I/O Тип: Персонализиране
Размер на кеш блок: 4MB
Праг за попълване при четене: 1
Праг за попълване при запис: 1
I/O модел
Инструмент: IOmeter V1.1.0
Работници: 1
Изключително (дълбочина на опашка): 128
Спецификации за достъп: 4KB, 100% запис, 100% произволен
Същият резултат: експлозивен растеж на производителността и мащабиране с увеличаване на броя на SSD.
И в двата теста количеството работни данни беше по-малко от общия размер на кеша. Следователно с течение на времето всички блокове бяха копирани в кеша. И работата всъщност вече беше извършена със SSD, практически без да засяга твърдите дискове. Целта на тези тестове беше ясно да се демонстрира ефективността на загряването на кеша и мащабирането на неговата производителност в зависимост от броя на SSD.
Сега нека се върнем на земята и да проверим по-реалистична ситуация, когато количеството данни е по-голямо от размера на кеша. За да може тестът да премине за разумен период от време (периодът на „загряване“ на кеша се увеличава значително с увеличаване на размера на тома), ние ще ограничим размера на тома до 120 GB.
Тест 3. Емулация на база данни
SSD кеш
I/O Тип: База данни
Размер на кеш блок: 1MB
Праг за попълване при четене: 2
Праг за попълване при запис: 1
I/O модел
Инструмент: IOmeter V1.1.0
Работници: 1
Изключително (дълбочина на опашка): 128
Спецификации за достъп: 8KB, 67% четене, 100% произволно
присъда
Очевидното заключение, разбира се, е добрата ефективност на използването на SSD кеш за подобряване на производителността на всяка система за съхранение. Приложено към QSAN XCubeSAN Това твърдение важи напълно: функцията за SSD кеширане е реализирана перфектно. Това се отнася за поддръжка на режими за четене и четене + запис, гъвкави настройки за всеки сценарий на използване, както и цялостната производителност на системата като цяло. Следователно, за много разумна цена (цената на лиценза е сравнима с цената на 1-2 SSD диска), можете значително да увеличите общата производителност.