Рэалізацыя SSD кэшавання ў СХД QSAN XCubeSAN

Тэхналогіі павышэння прадукцыйнасці, заснаваныя на выкарыстанні SSD і шырока прымяняюцца ў СХД, ужо даўно вынайдзены. Першым чынам - гэта ўжыванне SSD у якасці прасторы захоўвання, што на 100% эфектыўна, але дорага. Таму ў ход ідуць тэхналогіі тырынга і кэшавання, дзе SSD выкарыстоўваюцца толькі для найболей запатрабаваных («гарачых») дадзеных. Тырынг добры для сцэнарыяў доўгачасовага (дні-тыдня) выкарыстання "гарачых" дадзеных. А кэшаванне, наадварот, для кароткатэрміновага (хвіліны-гадзіны) выкарыстання. Абодва гэтыя варыянты рэалізаваны ў СХД QSAN XCubeSAN. У дадзеным артыкуле мы разгледзім рэалізацыю другога алгарытму - SSD кэшавання.

Рэалізацыя SSD кэшавання ў СХД QSAN XCubeSAN

Сутнасць тэхналогіі SSD кэшавання - гэта выкарыстанне SSD у якасці прамежкавага кэша паміж цвёрдымі дыскамі і аператыўнай памяццю кантролера. Прадукцыйнасць SSD, вядома ж, ніжэй, чым прадукцыйнасць уласнага кэша кантролера, але затое аб'ём на парадак вышэй. Таму атрымліваем нейкі кампраміс паміж хуткасцю і аб'ёмам.

Паказанні для выкарыстання SSD кэша на чытанне:

  • Перавага аперацый чытання над аперацыямі запісу (часцей за ўсё характэрна для баз дадзеных і web прыкладанняў);
  • Наяўнасць вузкага месца ў выглядзе прадукцыйнасці масіва цвёрдых дыскаў;
  • Аб'ём запатрабаваных дадзеных менш за аб'ём SSD кэша.

Паказаннямі для выкарыстання SSD кэша на чытанне+запіс з'яўляюцца тыя ж чыннікі, за выключэннем характару аперацый - змяшаны тып (напрыклад, файл сервер).

Большасць вендараў СХД выкарыстоўваюць у сваіх прадуктах SSD кэш толькі для аперацый чытання. Прынцыповым адрозненнем QSAN ад іх зяўляецца магчымасць выкарыстання кэша таксама і для запісу. Для актывацыі функцыяналу SSD кэшавання ў СХД QSAN патрабуецца набыццё асобнай ліцэнзіі (пастаўляецца ў электронным выглядзе).

SSD кэш у XCubeSAN фізічна рэалізаваны ў выглядзе асобных SSD кэш пулаў. У сістэме іх можа быць да чатырох. Кожны пул, зразумела, выкарыстоўвае свой уласны набор SSD. І ўжо ва ўласцівасцях віртуальнага дыска мы вызначаем, ці будзе ён выкарыстоўваць кэш пул і які менавіта. Уключэнне і адключэнне выкарыстання кэша для тамоў можна вырабляць у рэжыме online без спынення ўводу/высновы. Таксама на "гарачую" можна дадаваць 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 падае вялікія магчымасці. У прыватнасці, можна абраць рэжым працы кэша ў залежнасці ад характару нагрузкі. Маюцца тры прадусталяваных шаблону, найболей блізкія па сваёй працы да адпаведных сэрвісаў: база дадзеных, файлавая сістэма, web сэрвіс. Апроч гэтага, адміністратар можа стварыць свой уласны профіль, задаўшы патрабаваныя значэнні параметраў:

  • Памер блока (Cache Block Size) - 1/2/4 МБ
  • Лік запытаў на чытанне блока, каб ён быў скапіяваны ў кэш (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 напрамую да СХД XCubeSAN XS5224D (16GB RAM/кантролер).

Выкарыстоўваліся 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, аб'яднаныя ў RAID5 (15+1), для масіва з дадзенымі і 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200G, 100

Былі створаны 2 тамы: па адным для кожнага сервера.

Тэст 1. SSD кэш толькі на чытанне з 1/8 SSD

SSD Cache

  • I/O Type: Customization
  • Cache Block Size: 4MB
  • Populate-on-read Threshold: 1
  • Populate-on-write Threshold: 0

I/O Pattern

  • Tool: IOmeter V1.1.0
  • Рабочых: 1
  • Outstanding (Queue Depth): 128
  • Access Specifications: 4KB, 100% Read, 100% Random

Рэалізацыя SSD кэшавання ў СХД QSAN XCubeSAN

Рэалізацыя SSD кэшавання ў СХД QSAN XCubeSAN

У тэорыі, чым больш SSD у кэш кулі, тым вышэй прадукцыйнасць. На практыцы гэта і пацвердзілася. Адзінае, значнае павелічэнне колькасці SSD пры малой колькасці тамоў не прыводзіць да выбухнага эфекту.

Тэст 2. SSD кэш у рэжыме чытанне + запіс з 2-8 SSD

SSD Cache

  • I/O Type: Customization
  • Cache Block Size: 4MB
  • Populate-on-read Threshold: 1
  • Populate-on-write Threshold: 1

I/O Pattern

  • Tool: IOmeter V1.1.0
  • Рабочых: 1
  • Outstanding (Queue Depth): 128
  • Access Specifications: 4KB, 100% Write, 100% Random

Рэалізацыя SSD кэшавання ў СХД QSAN XCubeSAN

Рэалізацыя SSD кэшавання ў СХД QSAN XCubeSAN

Той жа самы вынік: выбухны рост прадукцыйнасці і маштабаванне пры павелічэнні колькасці SSD.

У абодвух тэстах аб'ём працоўных дадзеных быў меншы за сумарны аб'ём кэша. Таму з часам усе блокі скапіяваліся ў кэш. І праца ўжо, у сутнасці, вялася з SSD, практычна не закранаючы цвёрдыя кружэлкі. Мэтай гэтых тэстаў было навочна паказаць эфектыўнасць прагрэву кэша і маштабаванні яго прадукцыйнасці ў залежнасці ад колькасці SSD.

Цяпер вернемся з нябёсаў на зямлю і праверым больш жыццёвую сітуацыю, калі аб'ём дадзеных больш памеру кэша. Каб тэст прайшоў за разумны час (тэрмін «прагрэву» кэша моцна ўзрастае пры павелічэнні памеру тома), абмяжуемся памерам тома ў 120ГБ.

Тэст 3. Эмуляцыя працы базы дадзеных

SSD Cache

  • I/O Type: Database
  • Cache Block Size: 1MB
  • Populate-on-read Threshold: 2
  • Populate-on-write Threshold: 1

I/O Pattern

  • Tool: IOmeter V1.1.0
  • Рабочых: 1
  • Outstanding (Queue Depth): 128
  • Access Specifications: 8KB, 67% Read, 100% Random

Рэалізацыя SSD кэшавання ў СХД QSAN XCubeSAN

вердыкт

У якасці відавочнай высновы, вядома, напрошваецца нядрэнная эфектыўнасць выкарыстання SSD кэша для падвышэння прадукцыйнасці любой СХД. У дачыненні да QSAN XCubeSAN дадзенае сцвярджэнне ставіцца ў поўнай меры: функцыя SSD кэшавання рэалізаваная цудоўна. Гэта датычыцца падтрымкі рэжымаў чытання і чытання + запісы, гнуткай наладкі працы для любых сцэнарыяў выкарыстання, а таксама выніковай прадукцыйнасці сістэмы ў цэлым. Таму за вельмі разумны кошт (кошт ліцэнзіі сувымерная са коштам 1/2 SSD) можна прыкметна павысіць агульную прадукцыйнасць.

Крыніца: habr.com

Дадаць каментар