Реализация на SSD кеширане в СХД QSAN XCubeSAN

Технологиите за повишаване на производителността, базирани на използването на SSD, вече отдавна са изобретени и широко се прилагат в СХД. Първо и най-важно, е използването на SSD като пространство за съхранение, което е 100% ефективно, но скъпо. Поради това се използват технологии за тиринг и кеширане, при което SSD се използват само за най-търсените („горещи“) данни. Тирингът е подходящ за сценарии на дългосрочна (дни-седмици) употреба на „горещи“ данни. А кеширането, обратно, е предназначено за краткосрочна (минути-часове) употреба. И двата варианта са реализирани в СХД. QSAN XCubeSAN. В тази статия ще разгледаме реализацията на втория алгоритъм – кеширане на SSD.

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Същността на технологията за кеширане на SSD е използването на SSD като междинен кеш между твърдите дискове и оперативната памет на контролера. Производителността на SSD, разбира се, е по-ниска от производителността на собствения кеш на контролера, но обемът е с порядък по-голям. Следователно получаваме компромис между скоростта и обема.

Показания за използване на SSD кеш за четене:

  • Преобладаване на операциите на четене над операциите на запис (най-често характерно за бази данни и уеб приложения);
  • Наличие на „тясно място“ под формата на производителността на масива от твърди дискове;
  • Обемът на търсените данни е по-малък от обема на SSD кеша.

Показанията за използване на SSD кеш за четене + запис са същите, с изключение на характера на операциите – смесен тип (например, файл сървър).

Повечето производители на СХД използват в продуктите си SSD кеш само за операции на четене. Принципиалната разлика QSAN от тях е възможността за използване на кеша също и за запис. За активиране на функционалността за кеширане на SSD в СХД QSAN се изисква закупуването на отделна лицензия (предлага се в електронен вид).

SSD кешът в XCubeSAN е физически реализиран под формата на отделни SSD кеш пулове. В системата могат да бъдат налични до четири. Всеки пул, разбира се, използва свой собствен набор от SSD. В свойствата на виртуалния диск определяме дали ще използва кеш пул и кой точно. Включването и изключването на кеша за томове може да се извършва в режим онлайн без спиране на вход/изход. Също така, SSD може да бъде добавян или премахван от пула в 'горещ' режим. При създаването на SSD кеш пул е необходимо да изберете в какъв режим ще работи: само за четене или четене + запис. От това зависи физическата му организация. Понеже може да има няколко кеш пула, функционалността им може да е различна (т.е. в системата могат да съществуват одновременно кеш пулове за четене и за четене + запис).

В случай на използване на кеш пул само за четене, той може да се състои от 1-8 SSD. Дисковете не е задължително да са с еднаква големина и от един производител, тъй като те се обединяват в структурата NRAID+. Всички SSD в пула се използват съвместно. Системата самостоятелно се старае да разпределя постъпващите заявки между всички SSD за постигане на максимална производителност. В случай на повреда на един от SSD, нищо страшно няма да се случи: кешът съдържа само копие на данните, които се съхраняват на масива от твърди дискове. Просто обемът на достъпния SSD кеш ще намалее (или ще стане нулев в случай на използване на първоначалния SSD кеш от един носител).

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Ако кешът се използва за операции четене + запис, то количеството SSD в пула трябва да бъде кратно на две, тъй като съдържанието се огледално копира на двойки носители (използва се структурата NRAID 1+). Дублирането на кеша е необходимо, тъй като в него могат да съдържат данни, които все още не са записани на твърдите дискове. В този случай, ако SSD от кеш пула се повреди, това би довело до загуба на информация. В случай на NRAID 1+, отказ на SSD просто ще доведе кеша до състояние на работа 'само за четене' с нулиране на незаписаните данни на масива от твърди дискове. След замяна на неработещия SSD, кешът ще се върне в първоначалния си работен режим. О, между другото, за по-голяма сигурност на кеша, работещ на четене + запис, може да се назначи специален hot spare.

Реализация на SSD кеширане в СХД QSAN XCubeSAN

При използване на функцията SSD кеширане в XCubeSAN има редица изисквания относно обема на паметта на контролерите на СХД: колкото по-голяма е системната памет, толкова по-голям ще е обемът на кеш пул, достъпен за използване.

Реализация на SSD кеширане в СХД QSAN XCubeSAN

В отличие от повечето производители на СХД, които предлагат само опция за включване/изключване на SSD кеша, QSAN предлага много повече възможности. По-специално, можете да изберете режим на работа на кеша в зависимост от характера на натоварването. Има три предварително зададени шаблона, които са най-близки по своята работа до съответните услуги: база данни, файлова система, уеб услуга. Освен това администраторът може да създаде свой собствен профил, задавайки необходимите стойности за параметрите:

  • Размер на блока (Cache Block Size) – 1/2/4 MB
  • Брой заявки за четене на блока, за да бъде копиран в кеша (Populate-on-Read Threshold) – 1..4
  • Брой заявки за запис на блока, за да бъде копиран в кеша (Populate-on-Write Threshold) – 0..4

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Профилите могат да се променят „на лето“, но, разбира се, с нулиране на съдържанието на кеша и неговото ново „прогряване“.

Разглеждайки принципа на работа на SSD кеша, можем да изберем основните операции при работа с него:

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Четене на данни, когато те не са налични в кеша

  1. Запитването от хоста постъпва в контролера;
  2. Тъй като запрашваните данни не са налични в SSD кеша, те се четат от твърдите дискове;
  3. Четените данни се изпращат на хоста. В същото време се проверява дали тези блокове са „горещи“;
  4. Ако да, те се копират в SSD кеша за по-нататъшна употреба.

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Четене на данни, когато те са налични в кеша

  1. Запитването от хоста постъпва в контролера;
  2. Тъй като запрашваните данни са налични в SSD кеша, те се четат от там;
  3. Четените данни се изпращат на хоста.

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Запис на данни при използване на кеша за четене

  1. Запитването за запис от хоста постъпва в контролера;
  2. Данните се записват на твърдите дискове;
  3. Хостът получава отговор за успешен запис;
  4. В същото време се проверява дали блокът е „горещ“ (сравнява се параметърът Populate-on-Write Threshold). Ако да, той се копира в SSD кеша за последваща употреба.

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Запис на данни при използване на кеша за четене+запис

  1. Запитването за запис от хоста постъпва в контролера;
  2. Данните се записват в SSD кеша;
  3. Хостът получава отговор за успешен запис;
  4. Данните от SSD кеша се записват във фон режим на твърдите дискове;

Проверка в действие

Тестов стенд

2 сървъра (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) са свързани с два порта чрез Fibre Channel 16G директно към SAN 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 Cache

  • I/O Тип: Персонализация
  • Размер на кеш блока: 4MB
  • Праг за запълване при четене: 1
  • Праг за запълване при запис: 0

I/O Патерн

  • Инструмент: IOmeter V1.1.0
  • Работници: 1
  • Изчакващи (дълбочина на опашката): 128
  • Спецификации за достъп: 4KB, 100% Четене, 100% Случайно

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Реализация на SSD кеширане в СХД QSAN XCubeSAN

В теорията, колкото повече SSD в кеш пула, толкова по-висока е производителността. На практика това беше потвърдено. Единственото, значително увеличаване на броя SSD при малък брой тома не води до взривен ефект.

Тест 2. SSD кеш в режим четене + запис с 2-8 SSD

SSD Cache

  • I/O Тип: Персонализация
  • Размер на кеш блока: 4MB
  • Праг за запълване при четене: 1
  • Праг за запълване при запис: 1

I/O Патерн

  • Инструмент: IOmeter V1.1.0
  • Работници: 1
  • Изчакващи (дълбочина на опашката): 128
  • Спецификации за достъп: 4KB, 100% Запис, 100% Случайно

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Същият резултат: взривен растеж на производителността и мащабиране при увеличаване на броя SSD.

В двата теста обемът на работните данни беше по-малък от общия обем на кеша. Следователно с времето всички блокове бяха копирани в кеша. И работата вече, по същество, се водеше със SSD, практически без да засяга твърдите дискове. Целта на тези тестове беше наглядно да демонстрира ефективността на нагряването на кеша и мащабирането на неговата производителност в зависимост от броя SSD.

Сега нека се върнем на земята и проверим по-жизнена ситуация, когато обемът на данните е по-голям от размера на кеша. За да премине тестът в разумно време (срокът на "прогряване" на кеша силно нараства с увеличаване на размера на тома), ограничаваме се до размер на тома от 120GB.

Тест 3. Емуляция на работа с база данни

SSD Cache

  • I/O Тип: База данни
  • Размер на кеш блока: 1MB
  • Праг за запълване при четене: 2
  • Праг за запълване при запис: 1

I/O Патерн

  • Инструмент: IOmeter V1.1.0
  • Работници: 1
  • Изчакващи (дълбочина на опашката): 128
  • Спецификации за достъп: 8KB, 67% Четене, 100% Случайно

Реализация на SSD кеширане в СХД QSAN XCubeSAN

Присъда

Като очевиден извод, разбира се, се налага не лоша ефективност на използването на SSD кеша за повишаване на производителността на всяка СХД. Приложимо към QSAN XCubeSAN Твърдението важи в пълна сила: функцията за SSD кеширане е реализирана прекрасно. Това важи за поддръжката на режимите на четене и четене + запис, гъвкавата настройка за работа при всякакви сценарии на употреба, както и за крайната производителност на системата като цяло. Следователно, на много разумна цена (цената на лицензията е сравнима с цената на 1-2 SSD) може значително да се повиши общата производителност.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster