NVMe, SSD или HDD на сервере: чем отличаются и что выбрать
В описании тарифов диск обычно указан одной строчкой: NVMe, SSD или просто гигабайты. Строчка выглядит второстепенной на фоне процессора и памяти, а на деле именно диск чаще всего оказывается тем местом, где сервер упирается. База данных, логи, отдача файлов, распаковка бэкапа - всё это работа с диском.
Разберём, чем три типа накопителей отличаются на практике, как это видно на скорости сайта, сколько места закладывать и как за минуту проверить, что стоит в вашем сервере.
Три типа накопителей
HDD - классический жёсткий диск с вращающимися пластинами и механической головкой. Чтобы прочитать данные, головке нужно физически доехать до нужного места. Отсюда задержка в миллисекундах и слабость на множестве мелких операций. Зато терабайт стоит копейки.
SATA SSD - память без движущихся частей. Задержка падает примерно в сто раз, случайное чтение перестаёт быть проблемой. Ограничение здесь не в самой памяти, а в интерфейсе SATA: он упирается примерно в 500-550 МБ/с, и быстрее по нему данные не пройдут.
NVMe - та же флеш-память, но подключённая напрямую к шине PCIe, минуя старый интерфейс. Пропускная способность вырастает в разы, а задержка падает ещё сильнее. Протокол NVMe рассчитан на параллельные очереди команд, поэтому под нагрузкой он не деградирует так, как SATA.
Порядок величин удобнее видеть рядом:
| HDD | SATA SSD | NVMe | |
|---|---|---|---|
| Механика | Есть | Нет | Нет |
| Задержка отклика | Миллисекунды | Доли миллисекунды | Десятки микросекунд |
| Скорость чтения | 100-200 МБ/с | до 550 МБ/с | Тысячи МБ/с |
| Мелкие операции | Слабое место | Хорошо | Отлично |
| Цена за гигабайт | Минимальная | Средняя | Выше средней |
Почему для сервера это важнее, чем кажется
У домашнего компьютера нагрузка на диск редкая и одиночная. У сервера всё наоборот: десятки процессов одновременно дёргают мелкие файлы, база данных пишет и читает записи вперемешку, веб-сервер отдаёт статику, а в фоне крутятся логи.
Здесь решает не столько скорость линейного чтения, сколько количество операций в секунду и задержка каждой из них. На HDD очередь операций выстраивается в затор: пока головка едет к одному файлу, остальные ждут. На NVMe очередь разбирается параллельно.
Практический эффект виден там, где много обращений к базе:
- страница сайта на CMS собирается из десятков запросов к базе, и каждый запрос это обращение к диску;
- при одновременных посетителях эти обращения складываются;
- на медленном диске сайт начинает тормозить именно на пиках, а не в спокойное время.
Поэтому диск часто оказывается настоящей причиной медленного сайта, хотя грешат на процессор. Что ещё влияет на скорость и в каком порядке это чинить, разобрано в статье как ускорить сайт на VPS.
Где ещё встречается HDD
На современных VPS обычные жёсткие диски под систему почти не ставят: разница в отзывчивости слишком заметна, а выигрыш в цене на небольших объёмах несущественный. Но HDD никуда не исчез, у него осталась своя ниша - объём.
Там, где нужны терабайты холодных данных, механика по-прежнему выгоднее в разы:
- архивы и резервные копии, к которым обращаются редко;
- медиатеки и файловые хранилища;
- логи с долгим сроком хранения.
Рабочая схема - система и база на NVMe, объёмное хранилище на отдельном дешёвом диске или во внешнем объектном хранилище. Смешивать не нужно: горячие данные держат на быстром накопителе, холодные на дешёвом.
Сколько места брать
Здесь чаще ошибаются в меньшую сторону, чем в большую. Место съедают не только файлы проекта:
- сама операционная система - несколько гигабайт;
- логи веб-сервера и приложения, которые растут постоянно;
- база данных вместе со служебными файлами;
- локальные бэкапы, если они лежат на том же сервере;
- образы и слои Docker, если контейнеры используются.
Ориентир простой: посчитайте фактический размер проекта и умножьте на два. Запас нужен не про запас, а потому что заполненный под завязку диск - одна из самых частых причин аварий: перестаёт писаться база, встают сервисы, а иногда и система не загружается. За свободным местом поэтому и следят в первую очередь, см. мониторинг VPS.
Отдельный плюс виртуального сервера в том, что диск обычно расширяется без переезда: место добавляется к существующему серверу за минуты. Это снимает необходимость угадывать объём на год вперёд, подробнее про подбор ресурсов - в статье как выбрать конфигурацию сервера.
Надёжность и RAID
Флеш-память изнашивается: у ячеек есть ограниченный ресурс перезаписи. Для серверных накопителей этот ресурс большой, и в реальной эксплуатации VPS вы до него не доберётесь, но сам факт полезно понимать.
Гораздо важнее другое: у провайдера диски собраны в массив, поэтому выход одного накопителя из строя не означает потерю данных. Это уровень защиты от аппаратного сбоя, и работает он на стороне провайдера.
Чего RAID не делает - так это не защищает от удалённого файла, кривой миграции, шифровальщика или ошибки в скрипте. Массив честно продублирует любую вашу ошибку на все диски сразу. Поэтому бэкапы остаются обязательными независимо от типа накопителя и уровня массива.
Как проверить диск на своём сервере
Посмотреть, какие накопители видит система, и есть ли среди них вращающиеся:
lsblk -d -o NAME,ROTA,SIZE,TYPEВ колонке ROTA единица означает механический диск, ноль - твердотельный. Имена устройств вида nvme0n1 прямо говорят, что это NVMe.
Сколько места занято и сколько осталось:
df -hГрубо замерить скорость записи можно стандартной командой, она запишет гигабайт мимо кеша:
dd if=/dev/zero of=testfile bs=1M count=1024 oflag=directВ конце вывода будет скорость. Файл после проверки нужно удалить:
rm testfileЗамер приблизительный и зависит от соседей по хосту, поэтому смотреть стоит на порядок величины, а не на точную цифру: сотни мегабайт в секунду это SATA, тысячи - NVMe.
Частые ошибки
Смотрят только на объём. Тариф с большим диском на медленной механике проигрывает меньшему на NVMe почти во всех задачах, кроме хранения архивов.
Берут место впритык. Диск заполняется незаметно, за счёт логов и бэкапов, а последствия наступают сразу и жёстко: сервисы просто перестают работать.
Держат бэкапы на том же диске, что и данные. При проблеме с сервером теряется и то, и другое. Копии хранят отдельно от сервера.
Считают RAID заменой резервному копированию. Массив спасает от отказа железа и никак не спасает от удаления или порчи данных.
Гонятся за цифрами линейной скорости. Для сервера важнее задержка и мелкие операции, а не рекорд последовательного чтения из рекламных материалов.
Частые вопросы
Чем NVMe отличается от SSD? NVMe это тоже твердотельный накопитель, но подключённый по шине PCIe вместо старого интерфейса SATA. За счёт этого он даёт в разы большую пропускную способность и заметно меньшую задержку, особенно на параллельной нагрузке.
Насколько NVMe быстрее обычного диска? По задержке отклика разница с механическим HDD измеряется сотнями раз, по мелким операциям - тысячами. На практике это разница между отзывчивым сервером и сервером, который спотыкается на пиках.
Нужен ли NVMe для небольшого сайта? Да, и именно там он заметнее всего. У небольшого проекта нет запаса ресурсов, поэтому быстрый диск компенсирует скромный процессор и память.
Сколько места брать на VPS? Посчитать фактический объём проекта вместе с базой и логами и заложить двойной запас. На виртуальном сервере диск обычно расширяется без переезда, так что угадывать на годы вперёд не нужно.
Как узнать, какой диск на моём сервере? Выполнить lsblk -d -o NAME,ROTA,SIZE,TYPE: ноль в колонке ROTA означает твердотельный накопитель, а имена вида nvme0n1 прямо указывают на NVMe.
Изнашивается ли SSD на сервере? Ресурс перезаписи конечен, но у серверных накопителей он рассчитан на годы интенсивной работы. Для арендатора VPS это не практическая проблема: за состоянием железа следит провайдер.
Заменяет ли RAID резервные копии? Нет. RAID защищает от выхода диска из строя, но послушно дублирует удаление файлов и любые ошибки. Бэкапы нужны в любом случае.
Нужен сервер, который не упирается в диск? VPS на NVMe в дата-центрах Tier III - быстрый накопитель во всех тарифах, место расширяется без переезда. Активация за 3 минуты. Первые 7 дней - тестовый период с возвратом средств.