Технології зберігання даних Storage Class Memory

storage

За весь час існування теорії обчислювальних машин і систем справедливим залишалося одне твердження: процесори набагато більш продуктивні та дорогі, ніж пристрої для зберігання даних. Той факт, що CPU здатний обслуговувати безліч запам'ятовуючих пристроїв разом, вплинув на розробку апаратного і програмного забезпечення для систем різних розмірів. Дійсно, в таких книгах, як «Обчислювальні системи: погляд програміста» («Computer Systems: A Programmer's Perspective») Рандала Брайанта (Randal Bryant) і Девіда О'Халларона (David O'Hallaron) робиться наголос на ієрархію пам'яті та її вплив на розроблювані програми.

Однак дата-центрам та розробникам ПЗ потрібно готуватися до майбутніх змін. Поява високошвидкісних енергонезалежних пристроїв зберігання інформації, які зазвичай називають абревіатурою SCM (Storage Class Memories), похитне звичні підвалини. SCM поступово набирають популярність, проте для роботи з ними потрібно виділяти один або відразу кілька багатоядерних процесорів, щоб упоратися з їхньою продуктивністю (сотні тисяч IOPS).

Швидкість роботи довгострокових сховищ завжди була значно нижчою, ніж швидкість роботи CPU, і ця різниця тільки збільшилася за період з початку 90-х до початку 00-х років. Процесори стабільно покращувалися та вдосконалювалися, а продуктивність механічних дисків залишалася незмінною – розвитку перешкоджала фізика. Протягом десятиліть, щоб скоротити цей розрив і уникнути простоїв процесора, вигадувалися різні схеми та методики.

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

Інші способи дозволяють буквально розміняти процесорний час на продуктивність. Наприклад, стиск та дедуплікація зменшують розміри оброблюваних даних, і виходить, що «швидка» пам'ять як би збільшується в розмірах, але за це доводиться платити обчислювальними ресурсами. Стиснення залишається основною технікою, що використовується в системах зберігання корпоративного рівня, а також середовищах, що працюють із великими даними. Такі інструменти, як Apache Parquet, реорганізують і стискають дані на дисках, щоб зменшити час читання.

Від усіх цих недоліків звільнено флеш-сховища. Ця технологія не нова, а SAS та SATA SSD можна придбати вже років десять як. Однак SCM переводить флеш-пристрої на новий рівень: флеш-пам'ять підключається до PCIe-шини замість повільних шин SAS і SATA, що збільшує швидкість обміну даними.

Більше того, зароджуються такі SCM, як NVDIMM. NVDIMM виробляється у вигляді DIMM-модулів і, по суті, є гібридною пам'яттю, що поєднує оперативну пам'ять DRAM і флеш-пам'ять NAND.

У звичайних умовах модулі NVDIMM виконують функцію звичайної DRAM-пам'яті, але у разі збою або вимкнення системи дані з DRAM переміщаються в енергонезалежну флеш-пам'ять, де можуть зберігатися необмежено довго. Коли комп'ютер продовжує роботу, дані копіюються назад. Такий підхід дозволяє прискорити процес запуску машини та знизити ймовірність втрати важливих даних.

На сьогоднішній день SCM з інтерфейсом PCIe дозволяють досягти збільшення продуктивності в 1000 разів (100k IOPS проти 100 IOPS). На жаль, це веде до значного збільшення вартості: SCM коштують у 25 разів дорожче за звичайні HDD ($1,50/ГБ проти $0,06/ГБ). Пристроїкорпоративного класу коштують від $3000 до $5000 кожне.

Щоб максимізувати ефективність використання дорогих SCM, системи зберігання повинні постійно забезпечувати їхню роботу, тобто тримати їх зайнятими. Виходить, що ми не можемо просто замінити магнітні диски – нам доведеться переробляти апаратні системи та програмне забезпечення.

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

Також варто пам'ятати і про тимчасовий поділ ресурсів. Протягом багатьох років для взаємодії жорсткого диска та процесора використовувалися переривання. Для ядра, що працює на частотах, що вимірюються гігагерцями, не важко обслужити переривання кожні кілька секунд. Одне ядро ​​може керувати десятками чи сотнями дисків, не ризикуючи «захлинутися». Однак з появою низьколатентних пристроїв зберігання цей підхід більше не застосовується.

Ця модель має серйозно змінитися. Серйозний приріст у продуктивності отримали як пристрої зберігання даних – прискорення роботи мережевих пристроїв також мало місце: спочатку до 10G, потім до 40G, потім до 100G. Чи може вдасться «підглянути» рішення у цій сфері?

storage

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

У мережах для зниження латентності застосовується спосіб, коливсіма пакетами управляє додаток в обхід ядра. Однак між мережами та пристроями зберігання даних є різниця: мережеві потоки незалежні і можуть оброблятися паралельно на кількох ядрах, у разі ЗП всі запити доведеться координувати.

Очевидно, що це непрактично. Один контролер нездатний керувати доступом до величезної кількості SCM-пристроїв одночасно. Апаратне забезпечення буде використовуватися на півсили, тому потрібен інший підхід.

Вимоги навантаження до ємності та продуктивності не збігаються з апаратними можливостями, що веде до обмежень використання високошвидкісних дисків. Наприклад, дані об'ємом 10 ТБ з очікуваним навантаженням в 500k IOPS задіяють лише половину можливостей дисків, якщо зберігатимуться на SCM-пристроях об'ємом в 1ТБ, здатних обробляти до 100k IOPS кожен.

Гібридна система з різними рівнями сховищ (з різними характеристиками продуктивності) є гарним рішенням для змішування холодних і гарячих даних, коли SCM-пристрою виступають як кеш для повільних дисків. Але слід пам'ятати, що шаблони доступу згодом змінюються – треба своєчасно реагувати і переміщати дані.

У грамотно збудованих системах такий спосіб дозволяє ефективно використовувати апаратне забезпечення без зниження продуктивності. Однак системи повинні мати гнучкі політики, які забороняли б активним, але низькопріоритетним завданням втручатися в роботу бізнес-критичних додатків. Грамотна реалізація та налагодження цих механізмів - це зовсім не тривіальне завдання.

То що ж на нас чекає в майбутньому?

Як було зазначено вище, вже є розроблені SCM-пристрої. PCIe SSD – найбільш відомий тип SCM і вже вплинув на інфраструктуру дата-центрів. Другим прикладом може бути NVDIMM, яка має характеристики продуктивності, які можна порівняти з DRAM. Такі пристрої вже доступні сьогодні і розвиваються.

SCM-технологіями займається компанія HP. Їхній проект під назвою The Machine не що інше, як спроба розробити нову комп'ютерну архітектуру на мемрісторах. Існування мемристора - четвертого базового компонента електричних схем було передбачено в 1971 Леоном Чуа (Leon O. Chua), проте лабораторний зразок запам'ятовуючого елемента був створений тільки в 2008 році колективом вчених на чолі зі Стенлі Вільямс (Stanley Williams) в дослідник Packard.

Цей пасивний елемент здатний запам'ятовувати власний стан. Можна сказати, що це резистор, опір якого змінюється залежно від заряду, що протікає через нього. Коли елемент знеструмлюють, змінений опір зберігається.

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

Що стосується The Machine, то в ній немає кордону між оперативною пам'яттю та постійним сховищем даних. Вся пам'ять є оперативною. Це нівелює проблеми, пов'язані з передачею інформації між пристроями, що працюють із різною швидкістю.

Здається, що SCM-технології покликані подолати неефективність, що виникає при спілкуванні повільної та швидкої пам'яті. Тим цікавіше спостерігати за тим, що відбувається: як нові розробки торкнуться всіх рівнів інфраструктурного стеку. Досі тільки починається.

Коментує керівник відділу розвитку проекту 1cloud.ru Сергій Бєлкін:

«Різні типидиски можуть бути потрібні для вирішення різних завдань. Використання різних типів дисків може бути виправданим при створенні багаторівневих систем зберігання даних – дані, які часто використовуються програмами, можна розміщувати на більш швидких дисках.

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

Що стосується нових розробок у сфері твердотільних накопичувачів, то минулого року компанії Intel і Micron анонсували 3D XPoint (вимовляється як «кроспойнт») – безтранзисторну тривимірну архітектуру та заявили, що термін експлуатації та швидкість роботи таких ЗУ перевищить можливості пам'яті NAND у 1000 разів. Якщо це рішення стане комерційним, то, я думаю, воно з великою часткою ймовірності буде використовуватися в центрах обробки даних для зберігання «гарячих» даних, що часто запитуються.

Думка Джорджа Крампа (George Crump) з Storage Switzerland:

«SCM – це новий тип сховища, яке може стати проміжною ланкою між високопродуктивною DRAM та дешевою HDD. SCM-пам'ять здатна забезпечити швидкість зчитування, близьку до швидкості читання DRAM, і швидкість запису, що у багато разів перевищує можливості жорстких дисків.

Це стало можливим завдяки інтерфейсу PCIe, через який флеш-сховище підключається безпосередньо до процесора. Однак не будь-який SSD-накопичувач, підключений за PCIe, є SCM-пристроєм.

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

Думка Скотта Девіса (Scott Davis), технічного директора Infinio:

«SCM-технології стануть доступними для комерційного використання не раніше кінця 2016 року.

Швидше за все це буде рання реалізація технології 3D XPoint від Intel. HP та SanDisk також анонсували, що працюють над спільним проектом, проте їхній продукт, ймовірно, вийде на ринок не раніше початку 2017 року.

Варто враховувати, що, як у випадку з багатьма новими технологіями, SCM-пристрої спочатку будуть мати обмежену область застосування. Перешкодою для виходу на ринок стане вартість пристроїв».