Трохи про Storage Class Memory



За весь час існування теорії обчислювальних машин і систем справедливим залишалося одне твердження: процесори набагато більш продуктивні і дорогі, ніж пристрої зберігання даних. Той факт, що ПРОЦЕСОР здатний обслуговувати безліч запам'ятовуючих пристроїв разом, справив значний вплив на розробку апаратного та програмного забезпечення для систем самих різних розмірів.

Дійсно, в таких книгах, як «Обчислювальні системи: погляд програміста» («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. Може вдасться «підглянути» рішення у цій сфері?



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

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

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

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

Однак потрібно пам'ятати про те, що велика частина даних не є «гарячою», тому неефективно зберігати їх все на високошвидкісних флеш-пристроях. У багатьох випадках навантаження узгоджується з розподілом Парето: 80% всіх звернень адресовано 20%.

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

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

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

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

SCM-технологіями займається компанія HP. Їхній проект під назвою The Machine не що інше, як спроба розробити нову комп'ютерну архітектуру на мемристорах. Існування мемристора – четвертого базового компонента електричних схем було передбачено в 1971 році Леоном Чуа (Leon O. Chua), однак лабораторний зразок запам'ятовуючого елемента був створений тільки в 2008 році колективом вчених на чолі зі Стенлі Вільямсом (Stanley Williams) в дослідницькій лабораторії фірми Hewlett-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-пристрої перший час будуть володіти обмеженою областю застосовності. Перешкодою для виходу на широкий ринок стане вартість пристроїв»


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.