При переносе высоконагруженных систем в облако очень важно подобрать правильный тип дисков — чтобы гарантировать максимальную пропускную способность и минимизировать время задержки.

Расскажем о быстрых дисках High IOPS SSD и сверхбыстрых дисках Low Latency NVMe, доступных на платформе VK Cloud (бывш. MCS) и способных справиться с этой задачей.

Зачем нужны быстрые и сверхбыстрые диски

Большинство облачных провайдеров предлагают на выбор несколько типов дисков, которые отличаются числом операций ввода/вывода в секунду (Input/Output Operations Per Second, IOPS), пропускной способностью (Throughput) и задержкой (Latency). При этом облачные диски, как правило, имитируют привычные для классических архитектур физические носители информации, такие как HDD и SSD.

Облако VK не исключение — в нем доступны и HDD-, и SSD-диски:

  1. HDD — это наименее производительные диски, которым в традиционной инфраструктуре соответствуют обычные HDD.
  2. SSD — это более производительные диски, которые при сравнении с физическими устройствами будут существенно быстрее, чем любые HDD, но медленнее SSD: в основном из-за дополнительных накладных расходов на сеть и репликацию.

Характеристики HDD и SSD в облаке VK Cloud (бывш. MCS)

Параметр HDD SSD
IOPS (количество операций в секунду на 2 Тб пространства) SLA для чтения — 300–2400, для записи — 150–800. SLA для чтения — 1000–16 000, для записи — 500–8000.
Throughput (пропускная способность на 2 Тб пространства, при размере блока 1М) SLA для чтения — 250 Мб/с, для записи — 100 Мб/с. SLA для чтения и записи — 400 Мб/с.
Latency (задержка) SLA не установлен SLA не установлен

Производительность HDD и SSD достаточна для большинства приложений, не требовательных к времени отклика. Диски HDD чаще всего используют в качестве загрузочных разделов ОС и файловых хранилищ, диски SSD — для хранения СУБД, телеметрии и очередей сообщений.

Однако существуют приложения, для которых критически важна скорость отклика дисков. В первую очередь это высокопроизводительные СУБД, аналитические платформы, приложения, работающие с Big Data, и иные высоконагруженные системы, обрабатывающие большие объемы данных. В качестве основы для таких приложений может использоваться такое ПО, как Arenadata DB, Apache Hadoop, Apache Spark, ClickHouse, Storm, Kafka и так далее.

Обслуживая миллионы параллельных запросов к данным, подобные системы предъявляют повышенные требования к производительности дисков: она должна быть достаточной, чтобы обеспечить минимальное время отклика системы. Очевидно, что диски HDD и SSD для подобных задач не подходят. Именно поэтому на платформе VK доступны еще два типа дисков: быстрые High IOPS SSD и сверхбыстрые Low Latency NVMe.

Быстрые диски High IOPS SSD

Это быстрые диски, обеспечивающие большую производительность по сравнению с SSD и HDD. В мире традиционной инфраструктуры им соответствуют SSD потребительского класса.

High IOPS SSD размещаются в дата-центрах, как и диски SSD и HDD. Однако, в отличие от них, для High IOPS SSD не обеспечивается реплицирование данных между доступными нодами. Поэтому в случае выхода физического оборудования из строя может наступить временная недоступность данных, стоит дополнительно позаботиться об обеспечении отказоустойчивости на уровне приложений.

Рекомендации по созданию отказоустойчивых приложений

Технические характеристики High IOPS SSD приведены ниже: диски имеют время обслуживания и полосу пропускания, приемлемые для подавляющего большинства приложений. Чаще всего их используют в СУБД, аналитике и телеметрии с большими требованиями к производительности, чем у обычных SSD. Но для очень высоких нагрузок их возможностей все-таки может не хватить.

Характеристики High IOPS SSD в облаке VK Cloud (бывш. MCS)

Параметр Значение
IOPS (количество операций в секунду на 2 Тб пространства) SLA для чтения — 10 000–45 000, для записи — 5000–30 000.
Throughput (пропускная способность на 2 Тб пространства при размере блока 1М) SLA для чтения и записи 500 Мб/с.
Latency (задержка) SLA не установлен

Сверхбыстрые диски Low Latency NVMe

Это диски с быстрым откликом. Они подключаются на высокочастотных конфигурациях ВМ по запросу в техническую поддержку. Среди всех облачных дисков VK обеспечивают наименьшую задержку: гарантированное время отклика дисковой подсистемы составляет не более 0,5 мс. При этом среднее время отклика на таких дисках — 0,2 мс. В традиционной инфраструктуре им соответствуют физические диски NVMe. Виртуальная машина с такими дисками наиболее близка к Bare Metal.

В отличие от других типов облачных дисков, размещаемых в дата-центрах, Low Latency NVMe являются локальными, то есть они физически базируются в гипервизорах. По сравнению с прямым пробросом NVMe-устройства в гостевую ОС это приводит к меньшей скорости работы, но к большей отказоустойчивости: предоставляются гарантии сохранности данных даже в случае, если NVMe-диск отказывает.

Рекомендации по созданию отказоустойчивых приложений

Несмотря на то что Low Latency NVMe являются локальными, они позволяют производить замену диска на лету, без прерывания сервиса — как и для других облачных дисков. При необходимости обслуживания гипервизора также предоставляется возможность миграции виртуальной машины и дисков на другой гипервизор с аналогичными дисками без прерывания сервиса.

Благодаря высокой производительности Low Latency NVMe идеальны для сверхнагрузок. Чаще всего они используются там, где важно обеспечить минимальные задержки: высокопроизводительные СУБД, аналитика и кэш.

Характеристики Low Latency NVMe на платформе VK Cloud (бывш. MCS)

Параметр Значение
IOPS (количество операций в секунду на 2 Тб пространства) SLA для чтения — 10 000–75 000, для записи — 5000–50 000.
Throughput (пропускная способность на 2 Тб пространства при размере блока 1М) SLA для чтения — 1200 Мб/с, для записи — 900 Мб/с.
Latency (задержка) SLA — максимум 0,5 мс.

Как понять, какой тип быстрых дисков вам подходит

Диски High IOPS SSD и Low Latency NVMe по производительности во много раз превосходят HDD и SSD. Но как выбрать между ними? Как убедиться, достаточно ли для проекта High IOPS SSD, или их скорости будет мало и лучше подключить Low Latency NVMe?

Ответы на эти вопросы можно получить только с помощью тестирования приложения под HighLoad-нагрузкой. Без этого не получится определить, какая производительность дисковой подсистемы потребуется на конкретном проекте, так как итоговые цифры будут зависеть от многих факторов: какие запросы выполняются над данными, в каком количестве и так далее. На основе исходных данных о проекте можно подобрать объем дисков, но требуемую производительность получится определить только с помощью тщательного тестирования.

В общем случае тестирование производительности может состоять из следующих шагов:

  1. Определите критерии успешности тестирования. Это может быть величина задержки, число операций ввода/вывода, пропускная способность — все те параметры дисковой подсистемы, которые необходимы для эффективного функционирования конкретного приложения в часы наибольшей нагрузки.
  2. Настройте мониторинг выбранных параметров.
  3. Подготовьте тестовый стенд с минимальными ресурсами, достаточными для удовлетворения требований, выделенных на первом шаге. Пересчет на ресурсы VK проводится на основе SLA.
  4. Запустите нагрузочное тестирование с заранее подготовленными синтетическими данными, сопоставимыми с максимально возможными нагрузками на приложение.
  5. Определите степень достижения показателей, выбранных на первом шаге. Если их не удалось достичь, на тестовом стенде увеличивается объем ресурсов либо по возможности пересматривается архитектура приложения, после чего тестирование повторяется.
  6. Когда нужные показатели будут достигнуты, можно начинать миграцию в облако и приступать к промышленной эксплуатации с использованием того типа дисков, который максимально подошел под требования приложения.

Таким образом, единого алгоритма для выбора между High IOPS SSD и Low Latency NVMe быть не может: для каждого бизнес-кейса потребуется анализ требований к производительности и тестирование.

Какой тип быстрых дисков выбрать: базовые рекомендации

Несмотря на то что правильный выбор можно сделать только после тестирования, мы можем дать несколько базовых рекомендаций:

  1. Старайтесь выбирать тот тип диска, который при достаточной для вас производительности будет самым дешевым, так как в случае необходимости его всегда можно будет изменить на лету.
  2. При подборе дисков на основе SLA учитывайте, что ограничения на операции ввода/вывода в секунду для облачных дисков всегда заданы на определенный шаг дискового пространства. Выше приводились значения SLA для 2 Тб пространства. Полный перечень SLA для всех типов дисков VK доступен по ссылке.
  3. Помните, что скорость обработки данных на диске напрямую зависит от его объема. При необходимости увеличения производительности иногда достаточно увеличить размер требуемого диска.
  4. Не сбрасывайте со счетов диски HDD и SSD: используйте быстрые и сверхбыстрые диски только тогда, когда в этом действительно есть необходимость. Помните, что с ростом производительности увеличивается и стоимость облачных дисков.
  5. Если для приложения требуется обеспечить минимальную задержку, Low Latency NVMe будет лучшим выбором, так как это единственный тип диска с определенным SLA на данный показатель — 0,5 мс. Именно появление дисков с быстрым откликом Low Latency NVMe позволяет использовать облака для таких категорий приложений, где ранее это было недоступно из-за недостаточной скорости отклика (высокопроизводительные СУБД, аналитические системы и так далее).