Що вибрати як сховище для сервера: HDD, SSD чи NVMe?
Коли ви вибираєте сервер для свого проєкту, одним із головних аспектів, імовірно, є сховище, і ще до того, як говорити про RAID, ми завжди думаємо, який тип сховища вибрати. Адже під час вибору завжди є підводний камінь: чи справді ваш проєкт або сайт отримає користь від усієї тієї швидкості, яку може запропонувати сховище.
Річ у тім, що вибір сховища схожий на вибір транспортного засобу. Не можна сказати, що вантажівки не потрібні. Можливо, їздити на вантажівці до супермаркету - це перебір, але якщо вам потрібно перевезти тонни речей, нічого кращого за вантажівку немає. Те саме стосується сховищ: кожне з них призначене для своїх потреб.
У цій статті ми розглянемо всі переваги й недоліки цих типів сховищ і розповімо, як їх вибирати.
Типи сховищ
HDD: жорсткі диски
Жорсткий диск (HDD) і сьогодні залишається основним способом зберігання даних на комп'ютері. Навіть попри існування SSD, сучасної заміни HDD, жорсткі диски панують у більшості настільних комп'ютерів і ноутбуків. На HDD зберігається операційна система, тобто ваша Windows, Linux і навіть Mac OS. Окрім системи, на HDD також зберігаються всі програми. Крім того, дуже ймовірно, що всі свої фото, музику, відео та документи ви зберігаєте на HDD свого комп'ютера.
Жорсткий диск зберігає дані на магнітній пластині. Ці пластини поділено на безліч секторів і доріжок, які містять незліченні байти, з яких складаються наші файли. Блок магнітних головок переміщується по всій площі магнітного диска, зчитуючи файли, які запитує користувач або операційна система. Як бачите, HDD є базовим елементом будь-якого комп'ютера. Оскільки це дуже старий компонент, HDD уже досягли певного плато у своєму розвитку. Тому сьогодні між HDD різних брендів немає великої різниці в якості. Проте за ці роки деякі виробники вирізнилися й змогли десятиліттями випускати якісні HDD.
Навіть зараз компанії розробляють нові види HDD, які за швидкістю досить близько підходять до SSD. Без жартів, щойно анонсований Seagate Exos 2X18 справді може зрівнятися за швидкістю із SATA SSD.
SSD: твердотільні накопичувачі
SSD (Solid State Drive, твердотільний накопичувач) - це апаратний компонент, який замінює старий HDD як накопичувач для зберігання даних у комп'ютерах. Повільно, але впевнено витісняє його. SSD значно швидший, не має фізичних дисків і магнітних голок, може отримувати доступ до даних за частку секунди, завдяки чому комп'ютер швидше відкриває програми й виконує завдання. Оскільки в SSD немає рухомих частин, вони усувають обмеження швидкості HDD, які використовують головки читання й запису для операцій на магнітних дисках. Останніми роками значне зниження ціни за гігабайт зробило SSD вагомим (а можливо, і найважливішим) апгрейдом для підвищення продуктивності будь-якого комп'ютера.
Усі файли зберігаються у флешпам'яті, яка, на відміну від магнітних дисків HDD, не потребує для роботи рухомих частин чи двигунів. Усі операції виконуються електрично, що робить читання й запис швидшими, а сам накопичувач тихішим і стійкішим до вібрацій і падінь. Контролер керує обміном даними між комп'ютером і флешпам'яттю. Він складається з процесора, що виконує на накопичувачі різні завдання, і є одним із головних чинників продуктивності SSD. Мікросхема може керувати кешем читання й запису файлів, шифрувати інформацію, позначати несправні ділянки SSD, щоб запобігти пошкодженню даних, і забезпечувати довший термін служби флешпам'яті.
NVMe: Non-Volatile Memory Express
Коли йдеться про вищу швидкість читання та передачі даних, SSD є цікавішою альтернативою, ніж HDD. Проте підключення типу SATA мають технічні обмеження, через які галузі довелося шукати альтернативи.
Знайденим рішенням стало використання інтерфейсу PCI Express, дешевшого й практичного. На його основі галузь розробила новий протокол, який став кроком уперед порівняно з AHCI, створеним 2004 року. Рішення цієї проблеми представив консорціум компаній під назвою NVM Express Organization. До цієї групи входять близько 80 компаній, серед яких такі гіганти, як Intel, Microsoft, Samsung, SanDisk і Seagate. Разом вони розробили інтерфейс Non-Volatile Memory Express (NVMe), орієнтований виключно на SSD.
Серед головних переваг цього інтерфейсу можна виділити низьку затримку та краще використання ядер процесора. Для порівняння: стандарт AHCI досягає пікових значень 6,0 мікросекунди, тоді як NVMe в середньому може досягати 2,8 мікросекунди. Що стосується процесора, попередній стандарт створював вузькі місця в ядрах через обмеження IOPS (Input/Output Operations Per Second, операцій введення-виведення за секунду).
Як наслідок, технологія дає переваги як для корпоративного, так і для домашнього використання. Для компаній переваги проявляються під час роботи з важчими навантаженнями, які страждали від обмежень стандартів SATA та AHCI. Для домашніх користувачів найпомітнішим чинником є зниження енергоспоживання, а також підвищення продуктивності в поєднанні з багатоядерними процесорами.
Чому NVMe такий швидкий?
NVMe з самого початку розробляли спеціально для SSD, щоб підвищити пропускну здатність та IOPS, водночас зменшуючи затримку та збільшуючи загальну швидкість NVMe SSD.
Сучасні накопичувачі на основі NVMe теоретично можуть досягати швидкості передачі до 32 ГБ/с, але на практиці максимум становить близько 7 ГБ/с. Водночас показники затримки продовжують знижуватися. Багато накопичувачів досягають затримки менше 20 мікросекунд (мкс), а деякі менше 10.
Старіші протоколи працюють на SSD не так добре. Сучасні накопичувачі на основі SATA можуть досягати швидкості передачі до 6 Гбіт/с і IOPS до 100 000. Затримка зазвичай перевищує 100 мкс, хоча деякі новіші SSD можуть досягати значно нижчої затримки.
Накопичувачі SAS забезпечують дещо кращу продуктивність: вони дають швидкість передачі до 12 Гбіт/с і в середньому від 200 000 до 400 000 IOPS. Утім, нижчі значення IOPS теж не рідкість. У деяких випадках затримка SAS опускалася нижче 100 мкс, але ненабагато.
Одна з причин полягає в тому, що NVMe використовує спрощений набір команд для обробки запитів введення-виведення, який потребує менш як половини тієї кількості інструкцій процесора, що генерують SATA або SAS. NVMe також має значно ширшу й ефективнішу систему черг команд. SATA і SAS підтримують лише одну чергу введення-виведення одночасно. Черга SATA може вміщати до 32 команд в очікуванні, а черга SAS до 256. NVMe може підтримувати до 65 535 черг і до 64 000 команд у кожній черзі.
Попри переваги NVMe, протокол обмежений окремими хостами. Хоча в деяких сценаріях це може бути корисно, багато організацій шукають розподілені системи, які можна розгорнути у своїх дата-центрах. Тому NVM Express розробила другу специфікацію: NVMe-oF.
Новий стандарт опублікували в червні 2016 року, щоб поширити переваги NVMe на мережеві системи, як-от Ethernet, InfiniBand і Fibre Channel. За оцінкою організації, специфікація NVMe-oF на 90 % збігається зі специфікацією NVMe. Головна відмінність між ними полягає в тому, як протоколи обробляють команди й відповіді між хостом і підсистемою NVM.
Протокол NVMe відображає команди й відповіді на спільну пам'ять хоста. Протокол NVMe-oF забезпечує зв'язок між хостом NVMe та мережевим пристроєм зберігання NVMe. Новий протокол збільшує відстані, на яких можна отримувати доступ до пристроїв NVMe в межах дата-центру, і водночас дає змогу масштабуватися до великої кількості пристроїв.
Специфікація NVMe-oF спочатку передбачала два способи зв'язку. Перший використовує RDMA для підтримки сітчастих з'єднань, як-от InfiniBand, RDMA over Converged Ethernet та Internet Wide Area RDMA Protocol. Другий підхід призначений саме для транспорту Fibre Channel і охоплює сітчасті мережі Fibre Channel та Fibre Channel over Ethernet.
2019 року NVM Express випустила специфікацію NVMe-oF 1.1, яка додала підтримку TCP. NVMe over TCP дає змогу використовувати NVMe-oF у стандартних мережах Ethernet без змін в обладнанні чи конфігурації. Новий стандарт допомагає подолати розрив між DAS і SAN, водночас наближаючи NVMe-oF до статусу фактичного стандарту для корпоративних сховищ.
Підсумковий гайд: що вибрати
Після всієї цієї історичної частини перейдімо до конкретики: що вибрати для вашого проєкту.
HDD: найдешевший, але надійний
Якщо вам не потрібні високі IOPS чи швидкість читання й запису або ваш блог має не так багато відвідувачів, вибирайте HDD. Вони можуть бути повільними порівняно з SSD чи NVMe, але ваші відвідувачі цього не помітять. Якщо вам справді не потрібна така швидкість, HDD буде більш ніж достатньо.
SSD: чудовий і швидкий
До появи NVMe можна було сказати, що SSD є найкращим рішенням для зберігання даних, але сьогодні це не так. Якщо вам потрібне універсальне рішення для ваших вимог, вибирайте SSD. До того ж SSD стали відносно дешевими порівняно з HDD, тож якщо у вас є кілька зайвих доларів на сервер, вибирайте SSD.
NVMe: найкраще рішення для зберігання даних
NVMe - ваш вибір, якщо у вас значний бюджет і певні вимоги до IOPS для баз даних або різних SaaS-застосунків. Що більше, то краще, тож NVMe чудово підійде для будь-якого проєкту, особливо коли потрібно працювати з великими окремими файлами.
Висновок
Як ми вже згадували, усе залежить від того, який проєкт ви плануєте запускати на своєму сервері. Якщо це буде невеликий сайт, краще почати з HDD, а потім поступово переходити на наступний тип сховища, якщо помітите якісь проблеми. Сподіваємося, ця стаття була для вас справді цікавою і допомогла розширити знання про типи сховищ. Звертайтеся до BlueVPS і купуйте потрібний вам VPS.