Кешування HDD на SSD. Дискова система: HDD, SSD та NVMe

Детальне дослідження впливу SSD-кешування на продуктивність жорстких дисків

Майже два роки тому вийшов топовий на той момент чіпсет Intel Z68, а разом з ним дебютувала і технологія Smart Response. Здавалося б, нова, але насправді має глибоке коріння - ідея поєднати в одній системі сильні сторони традиційних вінчестерів і твердотільних накопичувачівдавно витала в повітрі. Що для цього потрібно? Потрібно до вінчестера додати певний обсяг флешу як кеш-буфер. В ідеальному випадку в нього з часом повинні потрапити сектори, до яких система звертається найчастіше, що й призведе до серйозного підвищення продуктивності – доступ до SSD здійснюється швидше. А на вінчестері просто лежатимуть дані і код, що рідко виконується, благо його ємності для такого достатньо, а швидкість запуску програм, що рідко використовуються, не надто критична. Ще більш ідеальним варіантом, звичайно, використання SSD великої ємностіАле це рішення ідеально лише з точки зору продуктивності - вартість зберігання інформації на твердотільних накопичувачах у рази вища, ніж на вінчестерах. А гібридизація дозволяє обійтися відносно невеликою кількістю флеша, що недорого і в ідеалі майже так само швидко, як і використання одного тільки SSD.

Виробники вінчестерів підійшли до вирішення питання зі свого боку, вбудовуючи флеш-буфер у вінчестери. З такими рішеннями ми вже знайомилися і загалом дійшли висновку, що вони виправдані. Правда, до останнього часу вони зустрічалися лише серед ноутбучних моделей, в чому є велике значення: зробити в умовах ноутбука гібридну систему своїми руками (тобто з кількох накопичувачів) не завжди можливо. Тому треба втискатись в один корпус, причому такий, що поміститься в ноутбук, що завжди змушувало йти на компроміси. Зокрема, ті ж Seagate Momentus XT містили лише 4 ГБ флеш-пам'яті у першому поколінні та 8 ГБ – у другому. А ось у настільний комп'ютергнучкість більша. Можна, загалом, і просто поставити SSD гігабайт так на 240, щоб туди всі програми влізли, і великий вінчестердля даних. А можна взяти SSD меншета скористатися Smart Response. Тим більше, що рік тому кількість «придатних» чіпсетів сильно збільшилася: до Z68 додалися нові Z77, H77 (дещо дешевший), корпоративний Q77 і кілька ноутбучних модифікацій. Словом, є десь розвернутися.

Тому сьогодні ми вирішили детальніше дослідити роботу технології Smart Response. Коротко ми з нею вже познайомилися коли вивчали Z68, але саме, що коротко. А ось тепер подивимося докладно: що прискорює, як прискорює, що сповільнює…

Що пришвидшуємо?

Як робоче тіло ми вирішили взяти Western Digital Green WD30EZRX, вже знайомий нам за однією з попередніх статей. Дуже хороший, як нам здається, об'єкт - «зелена» серія (отже, не найвища продуктивність), та й у її рамках накопичувач не найвидатніший через використання пластин низької (з погляду сучасності) щільності. Загалом, як ми вже переконалися, використання його у ролі системного та єдиного – не надто виправдане. Але можливо Smart Response дозволить нам переламати ситуацію?

Чим прискорюємо?

Виробники SSD поступово розхиталися, і сьогодні випускають вже чималу кількість спеціальних серій накопичувачів, що кешують. Хоча в принципі підходять і звичайні. Тим більше, у багатьох ентузіастів залишилися колись куплені твердотільні накопичувачі ємністю 32-64 ГБ (на що, можливо, в Intel і розраховували, запускаючи Z68). Але ми вирішили підійти до питання чесно і взяли кешуючий SSD AData Premier Pro SP300. Втім, орієнтацію на подібне застосування в основному видає лише його ємність 32 ГБ та інтерфейс mSATA. А так - цілком типовий твердотільний накопичувач на базі трохи застарілого. контролера LSI SandForce SF-2141 із прошивкою версії 5.0.2a. Загалом, якщо комусь потрібен невеликий SSD з таким інтерфейсом (наприклад, до такої плати в пару), то можна користуватися. Ми ж сьогодні використовуємо SP300 за прямим призначенням:)

Як пришвидшуємо?

Для роботи технології потрібна плата на відповідному чіпсеті, як мінімум Windows Vista, встановлений Intel Rapid Storage та RAID-режим дискового контролера. Цілком ці умови нашим стандартним тестом виконуються. У тому числі, і RAID-режим, який ми використовуємо завжди (навіть для одиночних накопичувачів) якраз для сумісності (тобто. придатності для порівняння) результатів.

А далі – все просто. Виявивши наявність вільного SSD після завантаження комп'ютера, Intel Rapid Storage пропонує включити прискорення роботи. Далі потрібно вибрати SSD, накопичувальний кеш (якщо їх кілька, як у нашому випадку), визначитися з ємністю, що виділяється для кешування (20 ГБ або весь об'єм SSD, але не більше 64 ГБ - це корисно, якщо хочеться «відкусити» шматочок від великого накопичувача, а частину, що залишилася, використовувати «нормальним» чином) і, найголовніше, вибрати режим кешування. Останні два: Enhanced і Maximized, що відрізняються підходом до запису. Перший (який і обраний за замовчуванням) її фактично не кешує - дані потрапляють на SSD тільки за рішенням драйвера: в основному за критерієм частоти використання. Другий, по суті, вбудовує SSD між вінчестером і системою: практично всі операції запису перенаправляються саме на твердотільний накопичувач, а на вінчестер копіюються вже з нього - великими порціями і через певний проміжок часу. Зрозуміло, що поводитися вони повинні себе по-різному: у першому випадку залишається більше місця для швидкого запускупрограм, зате другий теорії повинен дозволяти сильно прискорити операції записи з випадковим доступом. Однак у ньому більша ймовірність витіснення корисних даних чимось, що планувалося просто «скинути і забути», та до того ж є певна ймовірність втратити дані: а раптом SSD вийде з ладу до того, як встигнуть оновитися файли на вінчестері? Загалом Intel рекомендує використовувати Enhanced, але ми, природно, перевірили обидва режими.

Методика тестування

Методика докладно описана в окремій статті. Там можна познайомитися з апаратним та програмним забезпеченням.

Тестування

Буферизовані операції



Той самий випадок, коли прискоритися нічого в принципі не може, зате може сповільнитись: одна справа - записати щось у буфер вінчестера, і зовсім інша - хаотичні метання драйвера у спробах зрозуміти, чи немає цих даних на SSD (при читанні) і що взагалі з ними треба робити (під час запису). Загалом, як і слід було очікувати, нічого хорошого.

Час доступу

Запити йдуть по всіх 3 терабайт вінчестера, так що немає нічого дивного, що в SSD вони нічого не знаходять. Але хоч повільніше не стає – і то добре.

Тут добре видно відмінність режиму Maximized від решти: записали на SSD, отримали відповідь про те, що операція виконана успішно, і можна до наступних операцій переходити, а не чекати відповіді саме від вінчестера, що, як бачимо, вимагає в 50 разів більше часу .



У AS SSD та сама картина. Тільки запис прискорився порівняно з Everest у «звичайних» режимах, але не в Maximized - там вже й покращувати нічого:)

Послідовні операції

З певного моменту читати починаємо з SSD, а не з вінчестера, а перший у нас швидше (хоча і не якась модель «реактивної» продуктивності), так що все прискорюється. А ось у Maximized все погано через ускладнену логіку: спочатку драйвер перевіряє, чи ці дані були нещодавно записані на SSD, а потім вже звертається до вінчестера, так що порцес сповільнюється.

При записі картина зворотна - тут уже режим Maximized здатний трохи збільшити продуктивність. Особливо на невеликих блоках, що для SSD є зручнішою операцією. А ось Enhanced лише уповільнює процес: адже потрібно не лише записати дані на вінчестер, а й провести аналіз, чи не варто їх одразу ж і в кеш помістити.

Загалом, як бачимо, іноді технологія Smart Response здатна підвищити продуктивність операцій низького рівня, але здатна і знизити її, як тільки ми переходимо до навантаження іншого типу. Причому, як і слід очікувати, Enhanced і Maximized за поведінкою відрізняються кардинально.

Випадковий доступ

Що природно, при читанні даних усі поводяться однаковим чином: запити безпосередньо до вінчестера. Але є й нюанси: як бачимо, за великої кількості запитів гібридний накопичуваччерез накладні програмні витрати виявляється повільнішим, ніж власне вінчестер. Не так щоб дуже – якихось 15%. Але й цим нехтувати не варто.

А тут відрізняється лише режим Maximized через надто вже складну логіку роботи: швидко записуємо дані на флеш, отримуємо наступний запит, виконуємо його, отримуємо наступний - і з'ясовуємо, що час уже дані попередніх записати на вінчестер. Загалом, незважаючи на те, що на дуже низькому рівні, як ми бачили вище, цей режим дуже прискорює накопичувач, практично це здатне не дати нічого або навіть забезпечити негативний ефект.




Що особливо виразно спостерігається в шаблонах баз даних, де Enhanced не дає нічого (майже нічого – трохи, все ж таки, швидкість падає), а Maximized примудряється сповільнити вінчестер (хоча, здавалося б, куди вже далі). Втім, якраз при великій частці операцій запису всі варіанти приходять до спільного знаменника, тож це трохи інша проблема - занадто заплутані алгоритми.

Продуктивність у додатках

Ось, власне, те, заради чого все починалося - продуктивність зростає вдвічі і більше. Навіть VelociRaptor у PCMark7 набирає лише 2737 балів, а це самий швидкий вінчестеру настільному сегменті - отже, здавалося б, ось воно щастя. Але не поспішатимемо відкривати шампанське - у нас ще багато тестів.

На трасі «захисника» виграш у швидкості вже наблизився до триразового.

Режим Maximized відігрався за два попередні випадки і показав, що коли йдеться про запис даних, саме він може виявитися найшвидшим.

І зоряний час технології – тут навіть порядок величин різний. Одиночний SSD, звичайно ж, у кілька разів швидше (якщо говорити про високопродуктивні моделі), але це вже рази. А від «звичайних» вінчестерів гібридну систему вже відокремлює порядок величин.

На «ігровій» трасі приріст скромніший, але він таки є. Причому такий, що, знову ж таки, навіть найшвидшим вінчестерам нема чого ловити поряд із «зеленою» моделлю, прискореною при допомоги Smart Response.

Приїхали. Навіть якщо не зважати на те, що Maximized «завалив» роботу на шаблоні ContentCreation (це легко піддається поясненню), інші результати оптимізму теж не викликають. Чому так відрізняється поведінка PCMark7 і NASPT? А вони працюють по-різному. У PCMark7 є сім записаних трас, що мають не такий вже й великий сумарний обсяг. Причому вони проганяються по три рази, і перший - настільки ж повільний, як і при використанні вінчестера. Однак до другого всі дані вже виявляються на SSD, тому тестуємо ми здебільшого саме його. Причому, зауважимо, що три траси все одно прискорити не вдалося.

У NASPT також використовується багаторазовий запуск тестів, але всіх- включаючи і шаблони, що «обертають» файлами по 32 ГБ. Таким чином, між двома виконаннями «робочих» шаблонів в обидві сторони встигає «пролетіти» кілька сотень гігабайт. І яким би розумним не був драйвер, у подібному розкладі, зважаючи на все, його розумових здібностей недостатньо для того, щоб розібратися, що треба тримати в кеші, а що «записали і забули». Якщо трохи змінити методику тестування, «проганяючи» кілька разів лише групи із зазначених шаблонів, підігравши цим технології, все стає чудово - починаючи з другого разу швидкість різко зростає. Однак очевидно, що в реального життябуває всяке: і «хороші» ситуації, і «погані», тож не дивно, що й у тестуванні виявилися й ті, й інші.

Цю діаграму ми поміщаємо, швидше, з пустощів, проте якщо вже у нас є результати, то чому б на них не подивитися? А приклад дуже показовий і відкритим текстом натякає на те, що намагатиметься прискорити за допомогою Smart Response несистемні дискисенсу немає. Втім, зупинимося на цьому питанні трохи докладніше.

Робота з великими файлами

Як і слід було очікувати, ніякого ефекту - кешування за допомогою технології Smart Response не випереджає. Та й попереджувальне не надто допомогло б при послідовному (нехай і багатопоточному в одному тесті) читанні об'єму даних, рівного повному об'єму флеш-кешу.

Під час запису даних Smart Response сильно уповільнює роботу. Максимально - при використанні режиму Maximized, що зрозуміло: спроба реалізувати відкладений запис 32 ГБ даних за допомогою флешки на ті ж 32 ГБ спочатку приречена на провал. Ну а в режимі Enhanced цієї проблеми немає, але є інша: драйверу треба дані не лише записувати, а й аналізувати для подальшого використання. Тож не дивно, що «прямий запис» виявляється найшвидшим - тут ніяких складнощів немає.

Ось що іноді може покращитись – так це продуктивність псевдовипадкового запису одночасно з читанням. І те – незначно. При послідовному доступі до інформації Smart Response трохи сповільнює роботу. Теж – незначно.

Загальний середній бал

Незважаючи на все бачене вище, ми отримали цілком впевнений приріст Smart Response в середньому. Чому? Ну, як ми бачили, у тому ж PCMark7 виграш дуже вагомий, що виявилося лише частково компенсовано програшем в інших тестах. До того ж низькорівнева синтетика часто поводиться дуже цікавим чином, причому далеко не всі викрутаси SR були показані вище. Наприклад розглянемо пару шаблонів AS SSD, активно використовуваних нами в тестах SSD, але зазвичай «схованих з очей» під час тестування вінчестерів.

Все просто – тест працює з файлом розміром 1 ГБ, який, природно, миттєво виявляється на SSD, так що в режимі Enhanced ми практично SSD і виміряли. Maximized через свою специфіку повільно працює з одним потоком читання (накладні витрати можна порівняти з основними), хоча навіть тут «прискорює» вінчестер у 4 рази. Ну а на 64 потоках – у всі 20 разів.

Запис практично нічого не дає Enhanced, оскільки дані все одно доводиться записувати у файл на вінчестері, зате якщо вибрати режим Maximized, отримуємо підтвердження реклами Smart Response: ваш HDD працюватиме як SSD! :) Такі результати, природно, теж позначилися на середньому балі, хоча, як бачимо, загальний підсумок не такий вже й значний.

З докладними результатами всіх тестів, як ми й обіцяли, можна познайомитися, завантаживши таблицю у форматі Microsoft Excel.

Разом

Анонс Z68 і Smart Response зацікавив багатьох красою ідеї: беремо маленький і дешевий SSD, ємний вінчестер і ... Отримуємо швидку гібридну систему зберігання даних, що зібрала плюси обох технологій. Багатьом подобалося, що SSD начебто кешуватиме весь вінчестер, що здавалося перевагою в порівнянні з використанням SSD і HDD окремо - коли дискова система чітко розділена на "швидку" і "повільну" частини. Словом, суцільний прибуток. Однак реальний стан справ виявився трохи складнішим і неоднозначним.

По-перше, як бачимо, від кешування всього жорсткого дискабільше шкоди, ніж користі – багато «типово вінчестерних» операцій сповільнюються, а не прискорюються. По-друге, дала тріщину концепція «маленький та дешевий», оскільки сильно впали ціни на твердотільні накопичувачі. Працювати над Smart Response в Intel почали близько трьох років тому (може, двох з половиною, але не менше – два роки тому вже готові продукти з'явилися), коли вартість 1 ГБ інформації на твердотільному накопичувачі становила близько 3 доларів. Зараз вона впала нижче за один долар, причому, оскільки зниження відбувалося в основному за рахунок збільшення щільності нових мікросхем, ціна від обсягу залежить нелінійним чином – чим більше, тим відносно дешевше. У практичному сенсі це призводить до того, що сьогодні твердотільні накопичувачі на 32 і 128 ГБ за ціною різняться всього вдвічі, а в абсолютних цифрах вся економія скушкірується приблизно до 50 доларів. А що таке 128 ГБ? Це ємність, достатня для операційної системита великої кількості прикладних програм. У багатьох користувачів ще й на зберігання даних місце залишиться. Ну а для інформації, швидкість доступу до якої не критична, в настільній системі можна просто використовувати вінчестер великого обсягу. Найголовніше ж, що такий підхід дає передбачуваність, якою не може похвалитися Smart Response, тобто незалежно від сценаріїв роботи, програми завжди запускаються швидко. А не як вийде:) У гібридній системі може бути майже так само швидко, як з SSD, а може бути і так само повільно, як при використанні одного лише вінчестера. Говорячи простою мовою, якщо який-небудь геймер день за днем ​​грає в одну і ту ж гру, то від Smart Response він отримає такий приріст, як ми бачили вище на трасі «Gaming» PCMark7 - прискорення у вагомі два-три рази. А от якщо у нього встановлено десяток ігор, і щоразу він вибирає з них одну випадковим чином (що називається, «під настрій»), то отримає він… кукіль з маслом, який нам продемонстрував NASPT: дані у флеш-кеші постійно змінюватимуться Так що завантаження рівнів, наприклад, залишиться настільки ж повільним, як і при використанні тільки вінчестера: адже, в основному, саме він і працюватиме.

З іншого боку, назвати технологію марною ми теж не можемо - все залежить від сценарію використання. У тому ж ігровому комп'ютері може бути цікавою схема з двома SSD та вінчестером. Просто тому, що сучасні ігри великі за обсягом, і тримати їх на основному твердотільному накопичувачі накладно - занадто великий і дорогий потрібно. Але проблем можна уникнути. Наприклад, ставимо SSD на 128 ГБ - під систему та основні додатки. Для ігор та інших «важких» програм, які не помістяться на першому накопичувачі, використовуємо швидкий вінчестер щодо невеликої ємності, додатково прискорений за допомогою SSD на 32 ГБ. А для зберігання будь-яких мультимедійних даних, типу фільмів та іншого (що нині нерідко «живе» в великих кількостяхі на ігрових комп'ютерах) - ще один вінчестер. Великий за обсягом, низькооборотний (отже, економічний) і без будь-яких «бустерів», які за такого сценарію використання можуть лише завадити, але не допомогти. Важко? Дорого? Так, але цілком реалізовано. І такий спосіб використання різних технологійтаки дозволяє отримати той максимум, на який вони здатні.

Загалом, як бачимо, незважаючи на зниження цін на флеш-пам'ять (і відповідно твердотільні накопичувачі), технологія Smart Response досі має право на життя, оскільки в деяких сценаріях використання збільшує продуктивність системи зберігання даних. Важливо лише враховувати, що панацеєю на всі випадки життя вона не є: десь корисна, а десь і навпаки – шкідлива. Таким чином, перш ніж їй користуватися варто заздалегідь зважити все pro і contra, зрозуміти, що саме ви збираєтеся зробити і як це повинно працювати. Втім, це правильно для всіх сучасних технологій.

У статтях про СГД із "конспекту адміну" практично не розглядалися технології софтової організації дискового масиву. Крім того, за кадром залишився цілий пласт щодо дешевих сценаріїв прискорення сховищ за допомогою твердотільних дисків.


Тому в цій статті розгляну три непогані варіанти використання дисків SSD для прискорення підсистеми зберігання.

Чому просто не зібрати масив із SSD – трохи теорії та міркувань на тему

Найчастіше твердотільні накопичувачі розглядають просто як альтернативу HDD, з більшою пропускною здатністю та IOPS. Однак, така заміна "в лоб" часто коштує надто дорого (брендові диски HP, наприклад, коштують від $2 000), і в проект повертаються звичні накопичувачі SAS. Як варіант, швидкі диски легко використовуються точково.


Зокрема, зручним виглядає використання SSD для системного розділуабо для поділу з базами даних – з конкретним виграшем у продуктивності можна ознайомитись у відповідних матеріалах. З цих порівнянь видно, що з використанні звичайних HDD вузьким місцем є продуктивність диска, а разі SSD стримувати буде вже інтерфейс. Тому заміна одного диска не завжди дасть таку ж віддачу, як комплексний апгрейд.


У серверах використовують SSD з інтерфейсом SATAабо більш продуктивні SAS і PCI-E. Більшість представлених на ринку серверних SSDз інтерфейсом SASпродаються під брендами HP, Dell та IBM. До речі, навіть у брендових серверах можна використовувати диски OEM-виробників Toshiba, HGST (Hitachi) та інших, які дозволяють зробити апгрейд максимально дешевим за схожих характеристик.


З широким поширенням SSD розроблено окремий протокол доступу до дисків, підключеним до шині PCI-E- NVM Express (NVMe). Протокол розроблений з нуля і значно перевершує своїми можливостями звичні SCSI та AHCI. З NVMe зазвичай працюють твердотільні диски з інтерфейсами PCI-E, U.2 (SFF-8639) та деякі M.2, які швидше звичайних SSD більш ніж удвічі. Технологія відносно нова, але згодом вона обов'язково займе своє місце у найшвидших дискових системах.


Трохи про DWPD та вплив цієї характеристики на вибір конкретної моделі.

При виборі твердотільних дисків з інтерфейсом SATA слід брати до уваги параметр DWPD, який визначає довговічність диска. DWPD (Drive Writes Per Day) – це допустима кількість циклів перезапису всього диска на добу протягом гарантійного періоду. Іноді є альтернативна характеристика TBW/PBW (TeraBytes Written, PetaBytes Written) – це заявлений обсяг запису на диск протягом гарантійного періоду. У SSD для домашнього використання показник DWPD може бути менше одиниці, так званих "серверних" SSD - 10 і більше.


Така різниця виникає через різних типівпам'яті:

    SLC NAND. Найпростіший тип – у кожному осередку пам'яті зберігається один біт інформації. Тому такі диски надійні і мають хорошу продуктивність. Але доводиться використовувати більше клітин пам'яті, що негативно впливає на вартість;

    MLC NAND. У кожному осередку зберігається вже два біти інформації – найпопулярніший тип пам'яті.

    eMLC NAND. Те ж саме, що й MLC, але підвищена стійкість до перезапису завдяки більш дорогим та якісним чіпам.

  • TLC NAND. У кожному осередку зберігається по три біти інформації – диск максимально дешевий у виробництві, але має найменшу продуктивність і довговічність. Щоб компенсувати втрати швидкості, для внутрішнього кешу часто використовується пам'ять SLC.

Таким чином, при точковій заміні звичайних дисків твердотільними логічно використовувати MLC-моделі RAID 1, що дасть відмінну швидкість при тому ж рівні надійності.


Вважається, що використання RAID спільно з SSD - не найкраща ідея. Теорія ґрунтується на тому, що SSD у RAID зношуються синхронно і в певний момент можуть вийти з ладу всі диски разом, особливо при ребілді масиву. Однак, з HDD ситуація така сама. Хіба що зіпсовані блоки магнітної поверхні не дадуть навіть прочитати інформацію, на відміну від SSD.

Як і раніше висока вартістьтвердотільних накопичувачів змушує задуматися про альтернативне їх використання, крім точкової заміни або використання СГД на базі лише SSD.

Розширюємо кеш RAID-контролера

Від розміру та швидкості кеша RAID-контролера залежить швидкість роботи масиву загалом. Розширити цей кеш можна з допомогою SSD. Технологія нагадує рішення Smart Response від Intel.


При використанні подібного кешу дані, які використовуються частіше, зберігаються на кешуючих SSD, з яких виконується читання або подальший запис на звичайний HDD. Режимів роботи зазвичай два, аналогічно звичному RAID: write-back та write-through.


У разі write-through прискорюється лише читання, а при write-back – читання та запис.


Докладніше про ці параметри можна прочитати під спойлером.

    При налаштуванні кешу write-through запис проводиться як у кеш, і на основний масив. Не впливає на операції запису, але прискорює читання. До того ж, перебої харчування або всієї системи для цілісності даних вже не такі страшні;

  • Налаштування write-back дозволяє записувати дані одразу в кеш, що прискорює операції читання та запису. У RAID-контролерах цю опцію можна включити тільки при використанні спеціальної батареї, що страхує енергонезалежну пам'ять, або при використанні флеш-пам'яті. Якщо ж застосовувати як кеш окремий SSD, то проблема з харчуванням вже не варто.

Для роботи зазвичай потрібна спеціальна ліцензія або апаратний ключ. Ось конкретні назви технології у популярних на ринку виробників:

    LSI (Broadcom) MegaRAID CacheCade. Дозволяє використовувати до 32 SSD під кеш сумарним розміром не більше 512 ГБ, підтримується RAID з кешуючих дисків. Є кілька видів апаратних та програмних ключів, вартість становить близько 20 000 р;

    Microsemi Adaptec MaxCache. Дозволяє використовувати до 8 SSD в кеші будь-якої конфігурації RAID. Окремо ліцензію купувати не потрібно, кеш підтримується адаптерами серії Q;

  • HPE SmartCache в серверах ProLiantвосьмого та дев'ятого покоління. Актуальна вартість доступна на запит.

Схема роботи SSD-кешу гранично проста – дані, що часто використовуються, переміщуються або копіюються на SSD для оперативного доступу, а менш популярна інформація залишається на HDD. Як результат, швидкість роботи з даними, що повторюються, значно зростає.


Як ілюстрація роботи RAID-кешу на базі SSD можна навести такі графіки:



StorageReview – порівняння продуктивності різних масивів під час роботи з базою даних: використані звичайні дискита їх альтернатива на базі LSI CacheCade.


Але якщо є апаратна реалізація, то, напевно, існує і програмний аналог за менші гроші.

Швидкий кеш без контролера

Крім програмного RAID, існує і програмний SSD-кеш. У Windows Server 2012 року з'явилася цікава технологія Storage Spaces, яка дозволяє збирати RAID-масиви з доступних дисків. Накопичувачі об'єднуються в пули, де вже розміщуються томи даних – схема нагадує більшість апаратних систем зберігання. З корисних можливостей Storage Spaces можна виділити багатоярусне зберігання (Storage Tiers) та кеш запису (write-back cache).



Storage Tiers дозволяє створювати один пул з HDD і SSD, де найбільш популярні дані зберігаються на SSD. Рекомендоване співвідношення SSD до HDD 1:4-1:6. При проектуванні варто враховувати і можливість дзеркалювання або парності (аналоги RAID-1 та RAID-5), оскільки в кожній частині дзеркала має бути однакова кількість звичайних дисків та SSD.


Кеш записи в Storage Spaces нічим не відрізняється від звичайного write-back у RAID-масивах. Тільки тут потрібний об'єм "відкушується" від SSD і за замовчуванням становить один гігабайт.

Традиційна система зберігання передбачає розміщення даних на жорстких диски HDDі твердотільних дисках SSD. В останні роки ємності HDD зростають стрімкими темпами. Однак швидкість їх при випадковому доступі, як і раніше, мала. Для деяких програм, таких як бази даних, хмарні технологіїабо віртуалізація, потрібна як висока швидкість доступу, і великий обсяг. Виходить, що використання лише HDD не прийнятне, а використання SSD невиправдано дороге. Використання SSD тільки як кеш є найкращим співвідношеннямціна/продуктивність для системи загалом. У цьому випадку самі дані будуть розміщуватися на ємних HDD, а дорогі SSD будуть давати приріст продуктивності при випадковому доступі до цих даних.

Найчастіше SSD-кеш буде корисним у таких випадках:

  1. Коли швидкість роботи HDD в IOPS під час читання є вузьким місцем.
  2. Коли операцій вводу/виводу читання значно більше, ніж запис.
  3. Коли обсяг часто використовуваних даних менше розміру SSD.

Рішення

SSD-кешування – це додатковий кеш для збільшення продуктивності. Один або кілька SSD повинні бути призначені віртуальному диску (місяць) для використання як кеш. Зверніть увагу, що ці SSD не будуть доступні для зберігання даних. В даний час розмір SSD-кешу обмежений 2.4 ТБ.

Коли виконується операція читання/запису, копія даних міститься на SSD. Наступного разу будь-яка операція з цим блоком буде здійснюватися безпосередньо з SSD. У результаті зменшить час реакції і, як наслідок, збільшить загальну продуктивність. Якщо, на жаль, SSD відмовить, то дані не загубляться, т.к. кеш містить копію даних з HDD.

SSD-кеш ділиться на групи – блоки, кожен блок ділиться на субблоки. Характер операцій введення/виводу для віртуального диска визначає вибір розміру блоку та субблоку.

Заповнення кешу

Читання даних з HDD та запис їх на SSD називається заповненням кешу. Ця операція виконується в фоновому режимівідразу ж після того, як хост здійснює операції читання або запису. Робота кешу обмежена двома параметрами:

  • Populate-on-read threshold
  • Populate-on-write threshold

Ці значення більші за нуль. Якщо вони дорівнюють нулю, то кеш на читання чи запис не працює. Відповідно до цих значень кожен блок співвідноситься з його лічильником читання чи запису. Коли хост здійснює операцію читання, і дані розташовані в кеші, лічильник читання збільшується. Якщо в кеші немає даних і лічильник читання більше або дорівнює значенню Populate-on-read threshold, дані копіюються в кеш. Якщо ж значення лічильника менше Populate-on-read threshold, то дані читаються повз кеш. Для операцій запису ситуація аналогічна.

Сценарії роботи SSD-кешу

Тип введення/виводу

Тип введення/виводу визначає конфігурацію SSD-кешу. Ця конфігурація вибирається адміністратором і визначає параметри блоку, субблоку, populate-on-read threshold і populate-on-write threshold. Є три заздалегідь визначені конфігурації згідно з типами вводу/виводу: бази даних, файлова система та web-сервіси. Адміністратору необхідно вибрати конфігурацію SSD-кешу для віртуального диска. У процесі роботи можна змінити тип конфігурації, але в цьому випадку вміст кешу буде скинуто. Якщо визначені конфігурації не підходять під профіль навантаження, що використовується, то є можливість задати власні значенняпараметрів.



Розмір блоку впливає тимчасово «прогрівання» кешу, тобто. коли найбільш потрібні дані перемістяться на SSD. Якщо дані розташовані на HDD близько один до одного, краще використовувати блок великого розміру. Якщо дані розташовані хаотично, то логічніше використовувати блок малого розміру.

Розмір субблоку також впливає на час прогрівання кешу. Більший його розмір зменшує час заповнення кешу, але збільшує час реакції на запит із хоста. Крім цього, розмір субблоку також впливає на завантаження процесора, пропускну спроможністьпам'яті та каналу.


Для розрахунку приблизного часу прогріву кешу можна скористатися таким методом.

  • Т - час прогріву кешу в секундах
  • I – значення IOPS для HDD при випадковому доступі
  • S – розмір блоку введення/виводу
  • D – кількість HDD
  • C – повний об'єм SSD
  • P - populate-on-read threshold або populate-on-write threshold

Тоді T = (C * P) / (I * S * D)
Наприклад: 16 дисків з 250 IOPS, один SSD 480ГБ як кеша, характер навантаження – web-сервіси (64КБ) і populate-on-read threshold = 2.
Тоді час прогріву буде Т = (480ГБ * 2) / (250 * 64КБ * 16) ≈ 3932 сек ≈ 65.5 хв

Тестування

Для початку розглянемо процес створення SSD-кешу

  1. Після створення віртуального диска натисніть ↓, а потім Set SSD Caching
  2. Виберіть Enable
  3. Виберіть конфігурацію зі спадаючого списку
  4. Натисніть Select Disks і виберіть SSD, які будуть використовуватися як кеш
  5. Натисніть OK

Обмеження

  • Тільки SSD можуть використовуватися як кеш
  • SSD може бути призначений лише одному віртуальному диску у кожний момент часу
  • Підтримується до 8 SSD на один віртуальний диск
  • Підтримується загальний об'єм до 2.4ТБ SSD на систему
  • Для SSD-кешування потрібна ліцензія, яка купується окремо від системи

Результати

Тестова конфігурація:

  • HDD Seagate Constellation ST1000NM0011 1TB SATA 6Gb/s (x8)
  • SSD Intel SSD DC3500, SSDSC2BB480G4, 480GB, SATA 6Gb/s (x5)
  • RAID 5
  • I/O Type Database Service (8KB)
  • I/O pattern 8KB, random read 90% + write 10%
  • Virtual disk 2TB

Відповідно до формули час прогріву кешу T = (2ТБ*2) / (244*8КБ*8) ≈ 275036 сек ≈ 76.4 год




Вступ

У міру розвитку бізнесу можливості додатків з інтенсивними робочими потоками часто обмежуються характеристиками жорсткихдисків (HDD) Незважаючи на те, що ємності HDD різко зросли, швидкість виконання операцій довільного вводу/виводу (I/O) не збільшувалася в тому ж темпі. Однак тепер можна прискорити обробку потоків з інтенсивним читанням даних, таких, як при онлайн транзакціях (On-Line Transaction Processing- OLTP), в мережевих та файлових серверах, базах даних, застосовуючи нову технологію кешування, Infortrend SSD Cache, яка використовує високу швидкістьі малу затримку твердотільних дисків підвищення швидкості зчитування часто потрібних життєво важливих даних. Швидкість читання для SSD значно вища порівняно з HDD і, отже, SSD Cache може суттєво покращити характеристики довільного читання та знизити час відгуку.

Застосовність цього документа

Сімейство EonStor DS

Що таке SSD Cache?

Кеш-пам'ять - це компонент, який прозоро накопичує дані, тому наступні звернення до них можуть обслуговуватися більш ефективно. Він має вирішальне значення для сховища, особливо у застосуваннях з інтенсивним читанням даних. Без включення SSD Cache ємність кеш-пам'яті контролера обмежена. SSD Cache дозволяє використовувати швидкі SSD для нарощування пулу кеш-пам'яті системи зберігання та накопичення даних, що часто запитуються. Зі збільшенням ємності SSD Cache частота попадання в кеш також збільшується. Іншими словами, все більше і більше "гарячих" даних зберігатиметься в SSD Cache, майбутні звернення до цих даних будуть обслуговуватись більш ефективно і, отже, характеристики читання будуть покращуватися.

Чому Infortrend SSD Cache?

У багатьох випадках, коли відсотковий вміст операцій читання в робочому потоці значно вищий, ніж операцій запису, і відбувається зчитування невеликої кількості даних, що повторюється, SSD Cache може дати наступні переваги:

1.Поліпшення характеристик читання

SSD Cache використовує інтелектуальний алгоритм, щоб прискорити обробку інтенсивних потоків з довільним читанням даних, таких як OLTP та звернення до баз даних. У таких ситуаціях SSD Cache може значно збільшити загальну швидкість читання. Наприклад, SSD Cache може в 2,5 рази збільшити значення IOPS при OLTP у порівнянні з системою без SSD Cache. У той же час затримки також зменшуються і, отже, ступінь покращення характеристик залежить від дійсних робочих потоків програми та поведінки користувача.

2.Інтелектуальне ПЗ та алгоритм управління

Інтелектуальне ПЗ автоматично аналізує модель доступу до даних та розпізнає послідовні та довільні операції читання/запису. Дані послідовного читання або запису не заносяться до пулу SSD Cache, в ньому накопичуються лише дані довільного читання, щоб SSD використовувалися найбільш ефективно. Якщо точніше, то вбудоване програмне забезпечення автоматично переміщає копії найбільш часто потрібних даних з кеш-пам'яті контролера в пул SSD Cache у відповідний час. Ці “гарячі” дані згодом будуть прочитані з SSD Cache, якщо система отримає запит на їх читання. Розроблений Infortrend алгоритм оптимізує циклічність копіювання даних у SSD, так що для цієї мети можна застосовувати і порівняно дешеві SSD. Це рішення не тільки покращує характеристики читання, а й продовжує термін служби жорстких дисків за рахунок зменшення кількості циклів читання та запису.

3.Простий інтуїтивний інтерфейс користувача

Функції SSD Cache повністю інтегровані в Infortrend SANWatch та RAIDWatch GUI. Вони дуже просто налаштовуються, керуються та обслуговуються. Наприклад, користувач може спостерігати за станом пула SSD Cache і легко перевіряти термін служби, що залишився, для кожного SSD.

Infortrend SSD Cache

Як працює Infortrend SSD Cache

Якщо SSD Cache увімкнено та працює протягом деякого часу, інтелектуальне вбудоване ПЗ збирає статистику та негайно оновлює записи про “температуру” даних у кеш-пам'яті контролера. На основі цих записів вбудована програма автоматично копіює у відповідний час невеликі фрагменти випадкових часто потрібних даних з кеш-пам'яті контролера в пул SSD Cache, використовуючи метод послідовного запису, щоб уникнути інтенсивних операцій з SSD і, отже, збільшити термін їхньої служби. Поки що пулSSD Cache Pool не заповниться "гарячими" даними, що генеруються програмами на хості, метод попереднього копіювання блоків на SSD за допомогою зонного передбачення прискорює операції читання. Якщо розмір блоку даних менший або дорівнює16 KB, дані копіюються прямо в пул SSD, навіть якщо вони зчитуються лише одноразово. Якщо розмір блоку більше 16 KB, і програма розпізнає його як “гарячі” дані (зчитуються кілька разів), вони класифікуються як часто потрібні і зберігаються в пулі SSD. Для цих “гарячих” даних буде зберігатись дві копії - одна в SSD Cache і одна на жорстких дисках.

Як правило, після отримання запиту на читання даних система перевіряє, чи є відповідні дані в кеш-пам'яті контролера. Якщо дані, що запитуються, є в кеші контролера, система відразу повертає їх хосту. Якщо ж даних немає в кеші контролера, то система перевіряє пул SSD Cache. Якщо дані, що запитуються, були збережені в SSD Cache на підставі оцінки їх “температури”, то система зчитує ці дані прямо з SSD Cache і повертає з хосту. В іншому випадку дані будуть повернуті з повільнішого пристрою. Отже, чим більше попадань у кеш, тим більше запитів буде обслуговано SSD Cache, тому загальні характеристикиі середній час відгуку покращуватимуться.

Що потрібно для роботи SSD Cache

1. Вимоги до програмного забезпечення та SANWatch

ПО версія 512F12 або вище

SANWatch версія 3.0.h.14 або вище

2. Ліцензія на SSD Cache

SSD Cache доступний за ліцензією. Infortrend також надає 30-денну пробну ліцензію.

3. Співвідношення між ємністю кеш-пам'яті контролера та максимальним розміромпула SSD Cache:

Якщо в системі дозволено робота SSD Cache, то кеш-пам'ять контролера буде використовувати деяку частину простору для збереження "гарячих" даних, і розмір "гарячих" записів у кеші контролера буде визначати максимальний розмір підтримуваного пула SSD. Для початкової комбінації (2 GB на контролер) максимальний розмір пулу SSD Cache, що підтримується, дорівнює 150 GB для одиночного контролера і 300 GB для моделей з подвійним надлишковим контролером.

Порівняно з SSD кеш-пам'ятьконтролера більш економічна. Крім того, в кеш-пам'ять контролера можуть потрапляти не тільки дані, що зчитуються, але і записуються. Отже, ми рекомендуємо користувачам EonStor DS наростити кеш-пам'ять до 16 GB на один контролер і придбати відповідні SSD для кеш-пулу (відповідні вашим потребам та бюджету), щоб отримати максимальний виграш у характеристиках.

4.Скидання контролера(ів) для запуску SSD Cashe

Останній крок запуску SSD Cache включає скидання контролера(ів). За замовчуванням, в кеш-пам'яті контролера не призначається простір для зберігання гарячих даних. Отже, потрібно скинути контролер та ініціалізувати його так, щоб виділити відповідний простір для гарячих записів. Після скидання контролера та активації функції SSD Cacheкерувати ним дуже просто. Немає необхідності скидати або перевантажувати систему при додаванні SSD до пулу або видалення з нього. Ця процедура виконується за допомогою інтуїтивного інтерфейсу користувача через SANWatch чи RAIDWatch.

5. Вимоги до SSD

В даний час один контролер підтримується до 4 SSD. Якщо ви хочете використовувати функцію SSD Cache, перевірте, будь ласка, чи вибирається вами модель SSD в кваліфікаційному списку Infortrend Qualified Vendor List (QVL). Тільки SSD з нашого QVL можуть застосовуватись для покращення характеристик сховища, як описано в цьому документі.

Висновок

Infortrend SSD Cache є інтелектуальним рішенням, яке багаторазово покращує характеристики сховища, особливо для додатків з інтенсивним читанням даних, значно знижує затримки і підтримує великі пули кеш-пам'яті. Його легко встановлювати, адмініструвати та обслуговувати за допомогою інтуїтивних інтерфейсів користувача від Infortrend. Ми настійно рекомендуємо використовувати його в системах з інтенсивними робочими потоками і операціями читання, що часто повторюються.

Повний текстстатті з ілюстраціями ви можете завантажити в вигляді pdfфайлу.

Якщо ви вирішили придбати твердотільний SSDнакопичувач, то цього може бути кілька причин:

Однак встановити ССД в комп'ютер або ноутбук, а потім його заповнити недостатньо. Також необхідно оптимізувати його роботу з роботою вашої OC.


Розглянемо основні методи оптимізації SSDдиска.

AHCI SATA

Технологія дозволяє використовувати функцію TRIM для різних твердотільних накопичувачів. Її включення здійснюється на рівні BIOS вашого ПК чи ноутбука.

Включення AHCI SATA:

  1. Відкриваєте командний рядок комбінацією клавіш win+ R.
  2. Введіть команду: "regedit" (доступ до реєстру).
  3. Перейдіть наступним шляхом: HKEY_LOCAL_MACHINE → SYSTEM → CurrentControlSet → Services → storahci.
  4. Змініть значення підрозділу ErrorControl на 0 (за замовчуванням 3), викликавши контекстне меню та натиснувши параметр Modify.
  5. Перейдіть у гілку з назвою «StartOverride» і змініть значення на 0 (за замовчуванням 3).
  6. Перезавантажте ваш ПК (ноутбук), зайдіть у BIOS/UEFI (як зайти до BIOS, дивіться окремо для моделі вашого ноутбука чи материнської плати ПК). У розділі "storage configuration", і в підрозділі "SATA port" виставити AHCI або в розділі "SATA RAID/AHCI Mode", виставити AHCI (Для різних версій BIOS, свої розділи та підрозділи).
  7. Перевірте працездатність функції у Windows. Перейдіть по наступному шляху: Панель керування → Диспетчер пристроїв → IDE ATA/ATAPI controllers. В останньому підрозділі має з'явитися пристрій: Standard SATA AHCI Controller.

Функція TRIM

За замовчуванням ця функція включена на windows 7 і вище, однак, краще вручну перевірити, чи працює ця функція. Сенс TRIM в тому, що після видалення файлів windows передає SSD накопичувачу інформацію, що певна область диска не використовується і її можна очистити для запису. (У HDD дані залишаються і запис проводиться «поверх» існуючої). З часом, якщо функцію вимкнено, відбуватиметься падіння продуктивності накопичувача.

Перевірка TRIM у Windows:

  1. Запустіть командний рядок, натиснувши клавішу win + R.
  2. Введіть команду: «fsutil behavior query disabledeletenotify».
  3. Якщо після введення виводиться повідомлення: "DisableDeleteNotify = 0", то функція TRIM увімкнена, якщо "DisableDeleteNotify = 1", то TRIM не функціонує. Якщо TRIM не працює, введіть команду: "fsutil behavior set DisableDeleteNotify 0", потім повторіть пункти 2 і 3.

Дефрагментація

Ця функція допомагає оптимізувати і прискорити роботу HDD, але для SSD вона згубно впливає. Для SSD, функція «автоматична дефрагментація» за замовчуванням вимкнена. Щоб перевірити, чи працює вона необхідно:

  1. комбінацію win + R.
  2. У вікні командного рядка ввести команду: dfrgui і натиснути ОК.
  3. У вікні, виділіть ваш ССД і подивіться на пункт «Оптимізація за розкладом». Для нашого твердотільного накопичувача вона має бути відключена.

Індексація

Функція Windows, яка допомагає виконувати швидкий пошукфайлів на диску при великих обсягах інформації, однак, що збільшує навантаження по запису SSD. Для її відключення:

  1. Переходимо до розділу "Цей комп'ютер", "Мій комп'ютер", "Комп'ютер" (для кожної ОС по-різному).
  2. Вибираєте ваш ССД та в контекстному меню вибираєте «Властивості».
  3. У вікні, знімаєте прапорець навпроти параметра: «Дозволити індексування вміст файлів на цьому диску на додаток до властивостей файлу».

Служба пошуку

Її функція створює файловий індекс, завдяки якому пошук різноманітних файлів і папок виробляється швидше. Однак швидкості ССДцілком достатньо, щоб від неї відмовитися. Для її відключення необхідно:

  1. Перейдіть за наступною адресою: Панель керування → Система та безпека → Адміністрація → Керування комп'ютером.
  2. Перейдіть на вкладку: «Служби».
  3. Знаходьте службу « Windows search» та у вкладці «Тип запуску» вибираєте «Відключено».

Гібернація

Режим, який дозволяє зберігати вміст оперативної пам'ятіна жорсткому диску, завдяки чому під час увімкнення, зберігається інформація та відкриті програми з попереднього сеансу.

При використання ССДсенс цієї функції втрачається, оскільки накопичувач і так швидко стартує. А Гібернація, створюючи цикли запис-перезапис, зменшує тривалість життя SSD диска.

Відключення глибокого сну:

  1. Запускаєте знову cmd.exe поєднанням кнопок win + R.
  2. Введіть команду: "powercfg -h off".

Кешування запису

Ця функція підвищує продуктивність вашого твердотільного накопичувача. При її включенні використовується технологія запису та читання NCQ. NCQ – приймає кілька запитів одночасно, та був організовує їх порядок виконання в такий спосіб, щоб досягти максимальної продуктивності.

Для підключення необхідно:

  1. Викликати командний рядок комбінацією win+R
  2. Введіть команду: «devmgmt.msc».
  3. Відкрити «Дискові пристрої», вибрати SSD та у контекстному меню вибрати «Властивості».
  4. Перейти до вкладки «Політика».
  5. Поставити "галочку" навпроти параметра: "Дозволити кешування записів для цього пристрою".

Prefetch та Superfetch

Prefetch– технологія, за допомогою якої програми, що часто використовуються, завантажуються в пам'ять заздалегідь, тим самим прискорюється подальший їх запуск. При цьому на дисковому просторі створюється однойменний файл.

Superfetch- технологія схожа на Prefetch з тією відмінністю, що ПК передбачає які програми будуть запущені, заздалегідь завантажуючи їх на згадку.

Обидві функції не мають користі при використання SSD. Тому їх краще відключити. Для цього:

  1. Викликаємо командний рядок поєднанням кнопок win + R.
  2. Виконуємо команду: "regedit" (перехід до реєстру).
  3. Перейдіть по шляху: HKEY_LOCAL_MACHINE → SYSTEM → CurrentControlSet → Control → Session Manager→ Memory Management → PrefetchParameters.
  4. Знайдіть у підрозділі реєстру кілька параметрів: "EnablePrefetcher" і "EnableSuperfetch", встановлюєте їх значення в 0 (за замовчуванням 3).

Утиліта SSD Mini Tweaker

Всі перераховані вище дії можна виконувати вручну, але руками програмістів були створені програми – твікери, призначення яких кастомізація ОС windows, а також окремих її компонентів за допомогою декількох кліків. Однією з таких програм є SSD Mini Tweaker.

SSD Mini Tweaker– програма, різновид твікерів, що дозволяє без особливих зусильоптимізувати ваш SSD.

Переваги:

  • Повна русифікація.
  • Працює на всіх ОС, починаючи з Windows 7.
  • Безкоштовна.
  • Зрозумілий інтерфейс.
  • Не потребує встановлення.

Інші способи

Такі маніпуляції, як перенесення кеша браузерів, файлів підкачки, тимчасових папок Windows, бекапу системи з SSD диска на HDD (або відключення даної можливості) є марними, оскільки хоч і збільшують тривалість життя ССД, але обмежують потенціал його використання.

Тим самим виконавши нескладні перераховані вище маніпуляції з вашою ОС, ви зможете продовжити життя вашого накопичувача, а також налаштувати його на режим максимальної продуктивності.