Что выбрать в качестве хранилища для сервера: 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 в качестве накопителя для хранения данных в компьютерах. Он медленно, но верно вытесняет 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.