SSD: підвиди і перспективи

  
Всі пам'ятають, як з'явилися перші дійсно масові SSD продукти. Ентузіазм, зростання показників, красиві десятки тисяч IOPS продуктивності. Практично ідилія.
 
Природно, що для серверного (одиночні комп'ютери ми не не розглядаємо) ринку це стало величезним кроком вперед — адже магнітні носії давно стали вузьким місцем для побудови високопродуктивного рішення. Нормою вважалося кілька шаф з дисками, які в сумі осилюємо дві-три тисячі IOPS, а тут така можливість збільшити продуктивність в сотню і більше разів з одного накопичувача (у порівнянні з SAS 15K).
 
Оптимізму було море, але в реальності виявилося все не так гладко.
 
 
 
Тут і проблеми сумісності, і проблеми ресурсу, коли в сервер ставили все підряд з найдешевших лінійок, і проблеми деградації продуктивності — досі піднімаються питання підтримки TRIM в RAID контроллерах.
 
Розвиток SSD технологій йшло поетапно. Спочатку всі працювали над швидкістю лінійних операцій, щоб досягти межі інтерфейсів. З SATA II це сталося майже відразу, на підкорення SATA III пішов деякий час. Наступним етапом стало нарощування продуктивності операцій з випадковим доступом, тут теж вдалося домогтися пристойного зростання.
 
Наступним пунктом, на який звернули увагу, була стабільність продуктивності:
 
 
 Взято з огляду Anandtech
 
У середньому воно, звичайно, багато, але скачки від 30К до значень в пару десятків iops — це сильно, шпиндель видає свої показники стабільно.
 
Першим, хто голосно про це заявив, був Intel з його лінійкою DC S3700.
 
 
 Взято з огляду Anandtech
 
Якщо наблизити праву частину графіка, то розкид буде в межах 20%. Чому це важливо?
 
     
Поведінка диска в RAID масиві набагато більш передбачувано, контролеру набагато простіше працювати, коли всі учасники масиву мають приблизно однаковою продуктивністю. Мало кому спаде на думку будувати масиви з 7.2К і 15К дисків одночасно, а масив з SSD з розкидом миттєвої продуктивності в сотні разів ще гірше.
 Додатка, яким необхідно стабільно і швидко отримувати або писати дані випадковим чином, будуть працювати більш прогнозовано.
 
 
Досить давно з'явилися і SAS накопичувачі, на SLC (Single Level Cell) пам'яті з космічною вартістю і практично необмеженим ресурсом. Природно, вони були розроблені для роботи у складі СГД — там двухпортовий доступ обов'язкова умова для накопичувача. З часом з'явилися і більш доступні продукти на eMLC пам'яті. Ресурс, звичайно, впав, але все одно залишається досить значним завдяки великому резервному обсягом недоступною для користувача пам'яті.
 
 
 Приклад сучасного SAS SSD диска
 
Так як спочатку вони розроблялися для роботи в корпоративних системах, то стабільність продуктивності була на висоті відразу. Оскільки підходи жорстких дисків до тестів продуктивності SSD мало застосовні, то індустріальним консорціумом Storage Networking Industry Association (SNIA) була розроблена спеціальна методика SNIA Solid State Storage Performance Test. Головна особливість методики — диск спочатку «підготовляється», мета підготовки — забити всю доступну пам'ять, адже особливо розумний контролер пише дані не тільки на виділену ємність диска, він розмазує дані по всій доступної пам'яті. Для того, щоб отримати результат диска в реальному оточенні після тривалої безперервної роботи в синтетичному тесті — його треба позбавити можливості доступу до «свіжої» пам'яті, де ніколи не було даних. Після цього починається реальне тестування:
 
 
 Випадкове читання
 
 
 Випадковий запис
 
На випадкового запису видно істотна перевага від 12G SAS, а й завантаження процесора на обробку потоку зростає в два і більше разів.
 
 Поточне становище на ринку SAS / SATA SSD
 
Диски діляться на кілька груп, кожна з яких успішно застосовується для певних завдань.
 
     
Побутові диски для завдань, пов'язаних з читанням. Вкрай популярний варіант у російських інтернет-холдингів, які використовують програмні масиви. У цю ж групу можна віднести диски типу Toshiba HG5d, які позиціонуються для entry-level enterprise workloads (відмінно підходять для установки ОС або завдань з переважним читанням). Живуть за таких навантаженнях довго, стоять мало, що ще потрібно для щастя?
 Корпоративні диски з 1-3 повними перезапису на день. Позиціонуються в сховища з малим відсотком записи, інтенсивним читанням або для кешування читання. Добре працюють з RAID контролерами, деякі зроблені для СГД та мають інтерфейс SAS, кеш диска обов'язково захищений конденсаторами. Несуттєво дорожче першої групи.
 Диски з 10 повними перезапису на день. Універсальна робоча конячка як в серверах (де використовуються переважно SATA накопичувачі), так і в СГД. Помітно дорожче першої групи.
 Диски з 25 повними перезапису на день. Найдорожчі і швидкі, купа пам'яті під резерв встановлює високий цінник за гігабайт доступною ємності.
 
 
Тепер розповімо про SSD в незвичайному виконанні, адже флеш (на відміну від магнітних пластин) можна розміщувати як завгодно.
 
 SATA SSD у форматі DIMM
 
Завдяки зростанню обсягу модулів пам'яті і старанням Intel / AMD щодо збільшення кількості підтримуваних планок пам'яті на процесорі мало які сервери використовують всі слоти на платі.
 
З нашого досвіду навіть 16 планок пам'яті в сервері зустрічається не дуже часто, в той час як моделі RS130/230 G4 пропонують за 24 слота в системі.
 
 
 Багато-багато пам'яті
 
Коли простоює така частина можливостей платформи — це глибоко прикро і прикро.
Що ж з цим можна зробити?
Порожні слоти можна зайняти SSD накопичувачами!
Наприклад, такими:
 
 
 SSD у форматі DIMM
 
Зараз у нас валідіруются кілька таких накопичувачів, ємність яких досягає 200GB на SLC пам'яті і 480GB на MLC / eMLC.
 
Технічно це звичайний SSD на базі контролера SandForce SF-2281, знайомого з багатьох дискам у форматі 2.5 "і вельми популярного в недорогих дисках для задач з переважанням читання (з першої групи). Інтерфейс — стандартний SATA, від слота пам'яті береться тільки харчування. Використовується флеш Toshiba (MLC NAND Toggle Mode 2.0, 19нм) TH58TEG8DDJBA8C, 3К P / E циклів, загальним обсягом в 256 гігабайт. Обіцяний Bit Error Rate (BER) менше 1 in 10 ^ 17 bits read (що це дає — було розглянуто в попередньому матеріалі по жорстких дисках ).
 
 
 Вид на контролер
 
Установка в сервер проста і зручна — досить вставити в слот пам'яті (c нього береться харчування) і протягнути кабель до порту:
 
 
 Вид в сервері
 
 Оригінальні рішення
 
Поточні SSD використовують звичайний SATA роз'єм, який зустрічається не на всіх платах. Наприклад, на наших RS130 G4 таких роз'ємів тільки два. При необхідності можна зробити кабель, який об'єднає чотири SSD в mini-SAS або mini-SAS HD.
 
 
 mini-SAS кабель
 
Використовуючи такий варіант можна зробити різні цікаві вироби, наприклад:
 
 
 32 SSD в корпусі висотою 1U
 
Про SSD зі стандартними SAS / SATA інтерфейсами, мабуть, все. У наступному матеріалі ми розглянемо PCIe SSD і їх майбутнє, а поки трохи про методі визначення ресурсу SSD на запис.
 
 Ресурс на запис
 
При домашньому використанні мало кого хвилює ресурс диска на запис, в той час як для більш серйозних завдань це значення може бути критичним. Вже традиційним став показник кількості перезаписів диска в день Disk Writes Per Day (DWPD), який визначається як загальний обсяг записані даних Total Terabyte Written, поділений на період роботи (зазвичай 5 років). Кращі SATA диски мають показник 10 DWPD, кращі SAS SSD доходять до 45 DWPD.
 
Як цей чарівний показник вимірюється? Потрібно заглибитися в теорію роботи флеш-пам'яті.
 
Головна особливість флеша — для запису (program) даних осередок спочатку потрібно стерти (erase). На жаль, не можна стерти просто осередок, такі операції проводяться над блоками (Erase block), мінімальними обсягами пам'яті для стирання, що складаються з декількох сторінок. Сторінка — це мінімальна область пам'яті, яка може бути прочитана або записана за одну операцію читання / запису.
 
Так з'явилося поняття циклу Програмування / стирання — Program / erase cycle. Запис даних на одну або кілька сторінок в блоці і стирання блоку, в будь-якому порядку.
 
Логічним чином виникло поняття фактора збільшення запису — Write amplification factor (WAF). Кількість даних, записаних на диск, поділене на кількість даних, відправлених системою для запису.
 
Що впливає на WAF?
Природа навантаження:
 
     
послідовна або випадкова;
 великі чи малі блоки;
 чи є вирівнювання даних по розмірам блоків;
 вид даних (особливо для SSD з підтримкою компресії).
 
 
Наприклад, якщо система відправляє для запису 4КБ, а на флеш записано 16КБ (один блок), то WAF = 4.
 
 
 Один блок флеш-пам'яті
 
Тут зображений один блок NAND, що складається з 64 сторінок. Припустимо, що кожна сторінка має розмір 2Кб (чотири сектори), в підсумку 256 секторів в блоці. Всі сторінки блоку зайняті корисними даними. Припустимо, що система перезаписує тільки кілька секторів в блоці.
 
 
 Сторінки для перезапису
 
Щоб записати 8 секторів, нам потрібно:
 
     
Прочитати весь блок в оперативну пам'ять.
 Змінити дані в сторінках 1, 2 і 3.
 Стерти блок з NAND.
 Записати блок з оперативної пам'яті.
 
 
Разом 256 секторів стерто і перезаписане заради зміни всього 8, WAF вже 32. Але це все жахи дрібних блоків і неоптимізованих алгоритмів роботи з флеш, при записі великими блоками WAF буде дорівнювати одиниці.
 
JEDEC (індустріальний консорціум з всякої мікроелектроніці) визначив купу факторів, які впливають на життєвий цикл SSD дисків і вивів функцію залежності як f (TBW) = (TBW × 2 × WAF) / C, де C — ємність диска, а множник 2 введений для запобігання впливу зносу флеша на надійність зберігання.
 
Разом, TBW Flash capacity * PE cycles / 2 * WA
 
В результаті, живучість кожного SSD визначається типом навантаження, яку доведеться визначати вручну. Випадок лінійного запису найпростіший, для випадкових операцій буде ще сильно впливати запас NAND пам'яті, який не використовується користувачем.
 
Якщо взяти диск з 3K P / E циклів на комірку пам'яті, то при лінійного запису TBW = 384 або близько 1 DWPD для ємності в 256GB на протязі 5 років.
 
Enterprise workload, по JEDEC'у, дає WA приблизно рівний 5, або близько 0,2 DWPD на протязі 5 років.
  
Джерело: Хабрахабр

0 коментарів

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