Увеличение памяти VPS с помощью блочных хранилищ

Быстро развивающиеся компании часто нуждаются в увеличении мощности своих серверов для удовлетворения растущих потребностей своих приложений. Базы данных увеличиваются в объеме, растут потребности в хранении файлов, добавлении дополнительных контейнеров и т.д. Чтобы увеличить емкость хранилища без перехода на более крупную виртуальную машину, разработчики часто предпочитают добавлять блочные хранилища.

Что такое блочное хранилище?

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

Многие провайдеры предлагают собственные высокопроизводительные службы блочного хранения, что позволяет пользователям легко увеличивать емкость виртуальных машин независимо от ЦП и памяти. Как правило, это подключенное хранилище, отдельное от собственного хранилища виртуальной машины. Такие службы позволяют пользователям увеличивать емкость хранилища, не платя за более крупный сервер.

Часто блочные хранилища обеспечивают низкую задержку, качественную обработку большого количества операций ввода-вывода в секунду и высокую пропускную способность, благодаря чему сервер хорошо справляется с ресурсоемкими рабочими нагрузками. Преимущества блочных хранилищ проявляются во всех вариантах использования, включая веб-сайты и веб-приложения, распределенные веб-приложения, резервное копирование, логирование, AI/ML и многое другое.

Многие разработчики выбирают блочные хранилища, потому что их можно легко добавить к новым или существующим машинам, а также в любое время отключить и переподключить к другим серверам.

Как работают блочные хранилища?

Обычно хранилище можно добавить к новому пути к файлу (например, /mnt/volume1) и использовать в качестве дополнительного пространства, как и любой другой каталог на сервере. Блочные хранилища нельзя использовать для увеличения емкости корневого тома сервера, однако к одному серверу можно подключить несколько дополнительных томов (как правило, около 7).

Тома можно создавать в любое время: как в процессе создания сервера, так и позже. Объем тома, как правило, тоже можно увеличить в любое время (некоторые облачные провайдеры позволяют увеличить его до 16 ТБ). Хранилища можно перемещать между виртуальными серверами, однако хранилище может быть подключено только к одному серверу.

Также вы можете создавать резервные копии хранилищ и потом использовать их в качестве шаблона для новых томов. К примеру, вы можете создавать снапшоты с помощью стороннего инструмента типа Snapshooter. Позже эти снапшоты могут служить автоматизированной системой резервного копирования. Обратите внимание, что снапшоты хранилища идут отдельно от резервных копий самого виртуального сервера: резервное копирование сервера не включает в себя данные с томов, подключенных к нему.

Производительность блочных хранилищ

Конечно, чаще всего блочные хранилища работают медленнее, чем собственное хранилище сервера, однако они обеспечивают высокую производительность и позволяют реализовать множество сценариев, улучшая хранилища виртуальных машин. Собственное хранилище сервера всегда будет работать быстрее, чем блочное хранилище: собственное хранилище сервера находится в том же физическом шасси, что и сам виртуальный сервер, а блочное хранилище Volumes находится в отдельном шасси. Максимальное количество операций ввода-вывода в секунду (IOPS) для блочного хранилища варьируется от 5 000 до 10 000 в зависимости от сервера и варианта его использования, а максимальная пропускная способность варьируется от 200 до 350 МБ/с.

Некоторые облачные провайдеры для обеспечения работы блочных хранилищ начали развертывание дисков NVMe, самых быстрых из доступных носителей данных. Сегодня подавляющее большинство томов размещается в хранилище NVMe, Как показано на графиках ниже, средняя задержка одной типичной блочной системы томов NVMe составляет менее 1,5 миллисекунд (мс) для операций записи и менее 0,5 мс для операций чтения. А задержка p99 — задержка для 99% запросов — ниже 15 мс для операций записи и ниже 1 мс для чтения. Обратите внимание, эти числа относятся только к системе хранения NVMe и вычисляются индивидуально для каждого хранилища. В зависимости от рабочих нагрузок и кэширования эти показатели могут отличаться.

Лучшие варианты использования томов

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

Хранение файлов и других материалов

Самый популярный вариант использования томов — это хранение файлов/ресурсов для веб-сайтов и веб-приложений. Популярные системы управления контентом, такие как WordPress, легко настраиваются для поддержки томов, где они могут хранить свой контент. Также блочное хранилище является отличным местом для любого растущего набора файлов, включая резервные копии, логи, изображения, видео и многое другое. Кроме того, в хранилище можно запускать некоторые базы данных, однако такая настройка требует тестирования задержки (чтобы убедиться, что она остается в приемлемых рамках).

Обмен файлами

Клиенты также используют хранилища как способ обмена файлами через виртуальные серверы. Например, некоторые клиенты хранят в томе файлы установщика приложений, а затем перемещают том между серверами, как флешку, и таким образом передают и запускают файлы установщика на каждом своем сервере. В контексте резервного копирования том также можно использовать в качестве шаблона или «золотого образа» для создания новых томов. Например, клиент может настроить том с общим набором файлов для веб-приложения, сделать снапшот этого тома, а затем создать новые тома на его основе. Так вы получаете базовый шаблон для создания новых томов.

Обратите внимание: один том может быть подключен только к одному серверу в конкретный момент времени. Если вам нужно одновременно обмениваться файлами между несколькими серверами, вы можете настроить сервер NFS.

Читайте также: Монтирование NFS на сервере Ubuntu

Распределенные веб-приложения

Некоторые используют блочные хранилища для поддержки распределенных веб-приложений, таких как блокчейн и NFT. Как мы уже говорили ранее, тома обеспечивают высокую производительность, достаточную для обслуживания многих распределенных веб-приложений, хотя в некоторых случаях этим приложениям требуется более быстрое хранилище – то есть встроенное хранилище сервера.

Искусственный интеллект и машинное обучение

Блочное хранилище также является хорошим местом для хранения файлов рабочих процессов искусственного интеллекта и машинного обучения (AI/ML). Тома можно использовать в качестве места хранения как входных файлов для обучения модели, так и сгенерированных выходных файлов.

Сервисы хранения объектов и блочные хранилища

Читайте также: Сервисы хранения объектов и блочные сервисы хранения: краткий обзор

Многие облачные провайдеры предлагают также другой вид хранения данных – объектные хранилища. Между объектным и блочным хранилищем есть несколько отличий. Вместо того, чтобы разбивать файлы на блоки для хранения на диске с помощью файловой системы, объектное хранилище работает с целыми объектами, которые лежат в сети. Они неструктурированы, у них нет определенной схемы или формата, которым они должны следовать.

Блочное хранилище лучше объектного, если:

  • Ваш вариант использования требует более высокой производительности. Блочные хранилища могут обрабатывать примерно в 10 раз больше файлов в секунду по сравнению с объектными (при условии, что файлы небольшие).
  • Вам нужен традиционный файловый доступ к данным. Доступ к данным в блочных хранилищах можно получить через обычный путь к файлу на сервере (например, mnt/volume1/file_a), а объектное хранилище требует взаимодействия с протоколом S3, доступ к которому обычно осуществляется через пакеты разработки программного обеспечения (SDK).

Как выбрать облачного провайдера?

Надежность

Что предлагает ваш провайдер для резервного копирования и восстановления? Может ли он обеспечить непрерывную работу и отказоустойчивость в случае возникновения чрезвычайных ситуаций? Провайдер должен четко сформулировать свои резервные планы и предоставить четко определенные SLA.

Цены

Ищите провайдера, который четко объясняет модель ценообразования и предлагает предсказуемые цены. Например, он может указать, как именно начисляется плата (ежечасно, ежедневно и т.п.), а также сообщить, можете ли вы выделить именно ту емкость, которая вам нужна, и увеличить ее в любое время.

Поддержка

Провайдер должен предоставлять полный набор документации, включая справку по API своих хранилищ, если такой есть. Желательно, чтобы у провайдера было надежное сообщество, которое поддерживает друг в определенных рабочих процессах.

Tags: ,

Добавить комментарий