Почему мы полностью отказались от HDD





В индустрии есть устоявшееся мнение, что HDD — это устаревающая технология.

Это с одной стороны. С другой стороны, много у кого написано «Медленные SSD», а по факту при тестах они начинают показывать характерные скорости HDD, характерные бутылочные горлышки HDD и вообще ведут себя как жёсткие диски.

У нас тоже есть тариф с HDD-хранилищем, но он довольно давно тариф с HDD-содержащим хранилищем, потому что уже пять-шесть лет (в зависимости от страны) мы закупаем SSD вместо HDD. Совсем скоро последние хрустящие диски уйдут из эксплуатации, и это будет тариф типа SSD с ограничением по скорости для совместимости с легаси-ценами.

При этом мы используем HDD для долговременного хранения.

Основная проблема HDD — это механика
Внутри идут вращение шпинделя, позиционирование головки, трение. Из-за этого количество операций ввода-вывода IOPS физически ограничено.
  • HDD выдаёт около 150–200 IOPS. Задержка — миллисекунды.
  • SSD (SATA/SAS) — десятки тысяч IOPS.
  • SSD NVMe — сотни тысяч IOPS.

Разница — не в разы, а на порядки. В условиях хостинга, когда дисковый массив — это коммунальная квартира, которую делят сотни клиентов, это критично. Если кто-то один впилится в жёсткий диск записью огромного количества фрагментов меньше кластера и в случайные места на карте диска, то остальные будут стоять в очереди и ждать.

Поэтому, даже если вы просто хотите, чтобы ваши клиенты не испытывали тормозов на скоростях обычного HDD и на тарифе с обычным HDD, надо брать SSD.

Изменился сам веб. Если раньше мы на низком уровне по факту работали с крупными файлами и нагрузка ложилась на оперативку, то сейчас из-за Докера и k8s нагрузка стала дробной. Плюс очень многое стало возможным перераспределять на диски, зная, что они потенциально быстрые. Контейнеры, слои образов, логи микросервисов генерируют огромное количество мелких операций random I/O. Запускать кубера на механическом диске — технически плохая идея: диск просто не справится с очередью запросов, и iowait съест производительность процессора, даже если канал свободен.

Что можно сделать
HDD можно соединять в быстрые RAID (с дублированием). ОК, мы давно так делаем, ограничения — те же, просто чуть расширяются.

Есть устройства класса SSD+HDD или оперативка + HDD, где контроллер выступает кэшем. Условно, у вас есть 10 ТБ-накопитель, у которого 10 ГБ — это кэш контроллера (либо 1 ТБ — быстрый SSD, а остальное — хард, бывают разные вариации). Если вы пишете, скажем, 5 ГБ — их хватает контроллер, записывает в быструю память и потом постепенно распихивает по медленной. Если нагрузки неравномерные, как на десктопе, то всё прекрасно, со стороны это быстрый на запись диск и как-повезёт-на-чтение диск (попали в кэш или нет). То есть он как бы сам внутри себя делит данные на «горячие» и «холодные».

Вариантов там много, но мы такого не используем. Во-первых, они не предназначены для нормальных энтерпрайз-применений, когда запись-чтение может идти постоянно 24 часа в сутки и в разные места: в этой ситуации кэш быстро прокручивается, и вы работаете с HDD почти напрямую. Во-вторых, они создают дополнительные точки отказа, например, очень сложно объединяются в RAID. Рассинхрон кэша и основного диска может привести к полной потере данных. Отказ SSD-кэша делает недоступным весь массив. В-третьих, это зоопарк. А зоопарк мы очень не любим.

В итоге мы оставляем только SSD и NVMe
У нас наш тариф HDD — на самом деле постепенная миграция с HDD на SATA SSD. Мы искусственно режем скорость и IOPS до уровня хорошего жёсткого диска.

Почему так:
  • Нам проще и надёжнее обслуживать парк SSD (нет движущихся частей, ниже риск внезапного отказа), чем поддерживать зоопарк из разных типов накопителей. Исторически мы очень сильно стремимся к гомогенности железа, потому что это очень сильно облегчает и разработку, и ремонт-обслуживание, и логистику, и закупки, и вообще всё в хостинге.
  • Если мы переведём всех на быстрый SSD, то нам придётся поднять цены, и тогда клиенты уйдут. На рынке есть умолчание, что есть дешёвый дисковый тариф, но его как раз ограничивают, чтобы он не конкурировал с дорогими. Это искусственное ограничение из-за того, что все так делают — вероятно, в ближайшие годы оно уйдёт.
  • Есть привычки клиентов. Пользователь видит HDD и интуитивно считывает это как набор параметров + это дёшево и много места. Когда написано SSD — в голове вообще ничего не всплывает. Если тот же тариф назвать «Медленный SSD» или «Throttled SSD», то это вообще никак не поможет UX. HDD тут с годами стал просто красивой метафорой. Хотя на некоторых серверах они ещё остались.

А лента, лента для холодного хранения?
Удел HDD сейчас — долгое холодное хранение. Мы оставим пул HDD в хостинге как раз для этого. По большей части — для бэкапов. Это бэкапы, архивы логов, старый медиаконтент. Там, где нужно дёшево хранить терабайты и редко к ним обращаться, механика по-прежнему выигрывает по цене за гигабайт.

У нас сейчас есть услуга, где можно получить очень много места дёшево для архивов — это как раз массив классических механических HDD, на котором выделяется виртуальный ресурс.

Но в бэкапах есть другая технология холодного хранения — старая добрая магнитная лента. Много кто действительно хранит на ней — за этим, например, замечены Google или ЦЕРН.

В целом мы считали и решили, что та же причина зоопарка того не стоит. Выигрыш на наших масштабах не очень большой. Всё же это решение — для специфических задач вроде научных данных (которые надо всё время копить на тот случай, если они пригодятся через 20 лет), банковских архивов с хранением 50 лет, видеоконтента и так далее.

В хостинге, если клиенту понадобился бэкап, он нужен ему прямо сейчас. Никто не готов ждать час, пока робот найдёт кассету и перемотает её на нужное место. Экономия на носителе не перекрывает потерь от времени простоя и сложности введения дополнительной железяки в обслуживание.

Поэтому там, где надо дешевле, у нас только HDD.

Но ведь HDD дают безлимитное хранилище!
Это просто дикая боль.

Приходят клиенты и говорят, что на рынке есть тарифы с безлимитным хранилищем.

Это, если что, физически невозможно. Ну, без потерь данных.

В физическом мире безлимитов не существует. Канал (скорость записи) имеет ёмкость, а диск имеет объём. На уровне гипервизора всегда стоят жёсткие лимиты, чтобы один активный клиент не положил сервер и не лишил ресурсов остальных соседей. Безлимит — это всегда маркетинг. Вам дадут пользоваться ресурсом, пока вы не начнёте мешать другим и в разумных рамках.

HDD никаким образом не означает безлимит. Но да, часто само слово означает для клиента «бюджетное хранилище».

Итого
  • Самые дорогие тарифы — NVMe-диски. Никто нормально не решил проблему объединения их в массивы с избыточностью, поэтому, если вылетает один такой диск, теряются данные. Рядом с ними обычно стоят HDD для бэкапов по расписанию, например, раз в сутки или итеративных раз в четыре часа.
  • Обычные тарифы — SSD-массивы, мы перешли на RAID 10. Вот пост, почему мы так сделали. С них можно подключиться к хранилищу на HDD и получить там виртуальный диск, где физика будет на механических дисках.
  • Дешёвые тарифы — те же SSD-массивы и иногда уже выводящиеся из эксплуатации HDD. В будущем — только SSD-массивы.
  • Технические диски — образы операционок, промежуточные бэкапы и так далее — иногда бывают классическими HDD.

ruvds.com/ru-rub
Выделенные серверы OVH
Выделенные серверы Hetzner

0 комментариев

Оставить комментарий