Storage VPS против обычного VPS: в чем разница
Узнайте ключевые отличия Storage VPS от стандартных серверов. Разбираем, почему медленные HDD диски подходят для архивов, а NVMe необходимы для работы баз данных и сайтов.
Storage VPS против обычного VPS: краткий ответ
Storage VPS — это виртуальный частный сервер, который продается с расчетом на объем дискового пространства в терабайтах, а обычный VPS — с расчетом на количество ядер процессора. Тарифный план Storage предоставляет значительно больше дискового пространства за те же деньги, но обычно на более медленных накопителях и с меньшей мощностью CPU на терабайт. Стандартный план предлагает быстрый SSD, зачастую NVMe (non-volatile memory express), объем которого нередко в 20 раз меньше, но при этом больше процессорных ресурсов и оперативной памяти за ту же стоимость. Все остальные характеристики этих продуктов идентичны: тот же гипервизор, тот же root shell, тот же образ Ubuntu, тот же сетевой стек.
Именно это различие определяет пригодность для конкретных задач. Storage VPS подходит для целей резервного копирования, медиабиблиотек, холодных архивов и любых данных, которые записываются один раз и редко считываются. Он не подходит для баз данных или любых веб-страниц, ожидание загрузки которых критично для пользователя, так как такие рабочие нагрузки требуют выполнения операций случайного чтения за миллисекунды, а дешевое дисковое пространство стоит недорого именно потому, что не способно обеспечить такую производительность.
Названия тарифных планов на страницах с ценами
Четыре категории охватывают почти всех провайдеров, но только две из них имеют конкретное значение.
- Standard VPS. Обычно от двух до восьми vCPU, от 2 ГБ до 32 ГБ оперативной памяти и от 20 ГБ до 400 ГБ NVMe или SATA SSD, размещенных на самом хосте. Некоторые линейки выходят далеко за эти рамки: на 2026-10-12 линейка Cloud VPS от Contabo достигала 18 vCPU, 96 ГБ оперативной памяти и 600 ГБ SSD.
- Storage VPS. От нескольких сотен ГБ до 20 ТБ и более, обычно на базе HDD или SATA SSD большой емкости, с общими vCPU (чаще от одного до четырех) и небольшим объемом оперативной памяти относительно дискового пространства. Начальные тарифы могут быть меньше 1 ТБ (самый маленький Storage VPS у Contabo на 2026-10-12 предлагал 300 ГБ SSD), а топовые тарифы могут включать больше ядер (Storage VPS 50 предлагал 14 vCPU и 50 ГБ оперативной памяти). Часто стоимость в месяц такая же, как у небольшого стандартного тарифа.
- VDS. Сокращение от virtual dedicated server. Единого определения у этого термина нет, поэтому ниже описано, на что следует обращать внимание вместо него.
- Block storage volume. Это не тарифный план, а сетевой диск, который подключается к существующему VPS и оплачивается за каждый ГБ в месяц. Это единственный из четырех вариантов, объем которого можно увеличить без переноса сервера.
Эти диапазоны отражают общую ситуацию на рынке, а не предложение какой-то конкретной компании. Название тарифа — это лишь категория, которая примерно указывает, на каком оборудовании размещен ваш сервер. Оно не говорит о типе диска, политике распределения CPU или лимитах пропускной способности сети, а именно эти параметры определяют, будет ли ваша нагрузка работать корректно.
В чем именно заключается разница между двумя тарифными планами
Тип и объем диска. Это единственное реальное различие продуктов. Стандартный план обычно предоставляет SSD, часто на базе NVMe flash с подключением по шине PCI Express, однако категория не гарантирует наличие именно NVMe: например, Contabo продает свои Core VPS «с хранилищем SSD», а «PCIe Gen 4 NVMe storage» оставляет для отдельной линейки Performance VPS. План хранения (storage plan) предоставляет массив из вращающихся жестких дисков или SATA SSD большой емкости. Если вы не уверены, что именно из этого важно для вас, начните с того, что такое SSD VPS и чем он отличается от устаревших дисковых планов, а затем изучите практическую разницу между NVMe и SATA SSD.
Соотношение CPU. Планы хранения имеют меньше vCPU на терабайт, и эти vCPU почти всегда разделяются с другими арендаторами. Это не является недостатком. Целевое хранилище для резервных копий большую часть времени ожидает данных по сети, поэтому ему не требуется высокая мощность ядер.
RAM. Планы хранения имеют малый объем RAM относительно своей цены. Это создает проблему в одном конкретном аспекте: метаданные файловой системы. Миллионы мелких файлов требуют памяти для кэша директорий и inode, без чего каждое обращение к списку файлов будет приводить к чтению с диска.
Сетевой лимит. Внимательно изучите этот пункт в плане хранения. Емкость, из которой невозможно восстановить данные, не является резервной копией. Проверьте ежемесячный лимит трафика в ТБ и скорость порта в Гбит/с, так как полное восстановление 4 ТБ через порт 1 Гбит/с занимает около девяти часов при работе на полной скорости, и значительно дольше, если порт является общим.
Данные, на которых построен график
[
{
"plan": "Storage VPS, HDD",
"usd_per_tb_month": 3
},
{
"plan": "Storage VPS, SATA SSD",
"usd_per_tb_month": 9
},
{
"plan": "Standard VPS, NVMe",
"usd_per_tb_month": 40
},
{
"plan": "Block storage add-on",
"usd_per_tb_month": 90
}
]Это усредненные показатели, взятые с публичных страниц цен нескольких провайдеров в августе 2026 года; они не являются предложением какой-либо конкретной компании и могут меняться. Структура цен остается неизменной. Терабайт на плане хранения с вращающимися дисками стоит около 3 долларов США в месяц. Тот же терабайт NVMe на стандартном плане стоит около 40, а сетевой блочный том является самым дорогим из 4 вариантов и стоит 90. Для более широкого обзора того, из чего складывается ежемесячный счет, см. из чего на самом деле складывается стоимость VPS в месяц.
Почему цена за ТБ и цена за ядро движутся в противоположных направлениях
Узел хранения данных — это шасси, вмещающее от 12 до 16 больших дисков с одним скромным процессором. Вычислительный узел устроен наоборот: много ядер, большой объем оперативной памяти и два или четыре NVMe-накопителя. Провайдер продает излишки ресурсов, имеющиеся в конкретном шасси. Поэтому тариф, выгодный по цене за терабайт, оказывается дорогим по цене за ядро, и наоборот. Не существует тарифа, который был бы дешевым по обоим параметрам, так как оборудование не проектируется подобным образом.
Именно поэтому честный ответ на вопрос «что мне выбрать» часто звучит как «и то, и другое». Небольшой NVMe VPS для запуска приложения плюс VPS для хранения данных с его резервными копиями стоят дешевле, чем одна машина, достаточно мощная для выполнения обеих задач. Если же одна машина действительно должна выполнять обе функции, вы выходите за рамки VPS: см. когда выделенный сервер лучше VPS.
Случайное чтение — это то, с чем не справляется дешевый диск
Данные, на которых построен график
[
{
"disk": "7200 rpm SATA HDD",
"random_read_iops": "180",
"typical_latency_ms": 8.5
},
{
"disk": "SATA SSD",
"random_read_iops": "75,000",
"typical_latency_ms": 0.2
},
{
"disk": "NVMe SSD",
"random_read_iops": "600,000",
"typical_latency_ms": 0.08
}
]Это показатели из спецификаций, а не результаты тестирования конкретного провайдера. Диск со скоростью 7200 об/мин выполняет примерно 180 операций случайного чтения 4k в секунду, так как головке необходимо физически переместиться на нужную дорожку, а затем дождаться поворота пластины, чтобы сектор оказался под ней. Это занимает около 8.5 мс каждый раз. У флеш-памяти нет движущихся частей, поэтому SATA SSD достигает примерно 75,000, а NVMe-устройство — около 600,000 IOPS при задержке 0.08 мс. Разрыв составляет более трех тысяч раз, и никакой объем RAM или мощность CPU не могут его компенсировать.
Последовательная работа — это совершенно иная задача, именно поэтому тарифы с хранилищами вообще имеют смысл. Один вращающийся диск по-прежнему обеспечивает потоковую передачу данных со скоростью от 150 МБ/с до 250 МБ/с, а массив из таких дисков — еще больше. На «голом» железе этого достаточно, чтобы полностью загрузить порт 1 Гбит/с, но ваша виртуальная машина может этого не получить: провайдеры могут ограничивать пропускную способность на сервер. Например, Time4VPS документирует лимит ввода-вывода 50 МБ/с для своих серверов хранения, что составляет примерно 400 Мбит/с. Проверьте тарифный план на наличие ограничений I/O, прежде чем рассчитывать, что загрузка резервной копии будет выполняться на полной скорости сети. Ваши показатели также зависят от того, как построен массив, поскольку чередование (striping) записывает данные блоками, которые распределяются по нескольким дискам. Таким образом, крупный запрос может обслуживаться несколькими дисками одновременно: как RAID 10 меняет производительность тарифа с хранилищем подробно описывает этот процесс.
Что означает VDS?
Обычно это маркетинговый термин. Существует три основных значения, и провайдеры редко уточняют, какое из них подразумевается. Некоторые используют VDS для обозначения выделенных (pinned) ядер CPU, чтобы другие арендаторы не конкурировали за вычислительные ресурсы. Другие используют его для обозначения полноценной виртуализации, например KVM, в противовес контейнерной виртуализации (LXC или OpenVZ), где вы используете общее ядро хоста. Третьи используют это название просто потому, что оно звучит солиднее, чем VPS.
Часть этих вопросов можно прояснить изнутри сервера. systemd-detect-virt выводит kvm на полноценной виртуальной машине и lxc в контейнере. Наличие контейнера означает, что вы не сможете загружать модули ядра или использовать собственное ядро. Заявление о выделенных ядрах CPU необходимо проверять самостоятельно, используя показатель steal time, описанный ниже. Относитесь к аббревиатурам в тарифном плане как к подсказке, а к техническим характеристикам — как к условиям договора.
Какие строки спецификации проверять вместо названия
- Слово, указанное рядом с объемом:
NVMe,SSD,SATAилиHDD. Если на странице нигде не упоминается тип диска, исходите из того, что используется самое дешевое оборудование, соответствующее цене. - Является ли диск локальным для узла или сетевым хранилищем. Сетевое хранилище увеличивает задержку при каждом запросе, но данные сохраняются при выходе узла из строя. Локальный диск работает быстрее, но его данные теряются вместе с узлом.
- Формулировка для CPU: «dedicated» или «pinned» в противовес «shared», «fair share» или отсутствию уточнений.
- Любые ограничения IOPS или МБ/с, указанные в тарифе. Ограничение в 500 IOPS делает тип диска практически неважным.
- Месячный лимит трафика и скорость порта, которые определяют время полного восстановления данных.
- Включены ли в стоимость снимки (snapshots), резервные копии и дополнительные IP-адреса или они оплачиваются отдельно.
Как проверить реальные характеристики диска
Начните с того, что сообщает ядро, а затем перестаньте ему доверять.
lsblk -d -o NAME,ROTA,SIZE,MODEL
df -h /
nproc
free -hROTA принимает значение 1 для вращающихся устройств и 0 для флеш-памяти. Не полагайтесь на этот параметр внутри VPS: virtio-диск обычно сообщает ROTA=0 независимо от того, что находится на физическом уровне, так как гипервизор предоставляет гостевой системе универсальное блочное устройство. MODEL по той же причине остается пустым. Этот флаг описывает настройки гипервизора, а не физический носитель в стойке, поэтому лучше провести измерения.
sudo apt update && sudo apt install -y fio
fio --name=randread --filename=/var/tmp/fio.test --size=1G --bs=4k --rw=randread \
--ioengine=libaio --direct=1 --iodepth=32 --runtime=30 --time_based --group_reporting
rm -f /var/tmp/fio.test--direct=1 позволяет обойти страничное кэширование, чтобы измерить производительность диска, а не оперативной памяти. Искомая строка — read: IOPS=, а распределение задержек приведено в clat percentiles (usec) ниже. Стандартный тариф с NVMe показывает десятки тысяч IOPS при 99-м перцентиле менее одной миллисекунды. Тариф с обычными HDD показывает несколько сотен IOPS при 99-м перцентиле в десятки миллисекунд. Если fio сообщает, что движок libaio недоступен, используйте --ioengine=psync --iodepth=1 и ожидайте более низких показателей, так как этот движок обрабатывает запросы по одному.
vmstat 1 5
sudo apt install -y sysstat
iostat -x 1 5В vmstat столбец st показывает steal time: долю времени, в течение которого ваш vCPU был готов к работе, но гипервизор отдал эти циклы другому гостю. Стабильное значение выше 5 означает, что узел переподписан (oversubscribed), что является реальной проверкой утверждения о «выделенном CPU». В iostat -x следите за %util, r_await и w_await. На устройстве, которое обрабатывает запросы последовательно (например, одиночный HDD), значение %util близкое к 100 при w_await в десятки миллисекунд означает, что диск перегружен, и помочь могут только изменения, сокращающие или оптимизирующие операции ввода-вывода. Для RAID-массивов и SSD, которые обрабатывают запросы параллельно, руководство к sysstat предупреждает, что %util не отражает пределы их производительности, поэтому ориентируйтесь на показатели задержек (await) и результаты тестов fio. Для специфических проверок флеш-памяти подробнее см. проверка того, что NVMe-диск действительно является NVMe.
Выбор по типу нагрузки
- Цель для резервного копирования restic, Borg или rsync. Это Storage VPS, и именно для таких задач он предназначен. Запись выполняется большими последовательными блоками, дедупликация происходит на исходной машине, и результат не является критичным по времени ожидания. Важное замечание:
restic pruneиrestic check --read-dataсчитывают весь репозиторий небольшими фрагментами, поэтому выделите на них достаточно времени и запускайте по расписанию. См. настройка резервного копирования restic на VPS. - Медиабиблиотека Immich или Jellyfin. Storage VPS подходит для хранения файлов, но стоит учитывать ограничения CPU. Immich создает миниатюры и выполняет задачи машинного обучения при импорте, а Jellyfin выполняет транскодирование при воспроизведении. Два общих vCPU будут очень медленно обрабатывать первый импорт 200 GB фотографий. Храните базу данных и кэш миниатюр на самом быстром диске в системе. В статье self-hosting Immich как замена Google Photos описаны требования к ресурсам.
- PostgreSQL или MySQL. Стандартный тариф с NVMe. При стандартных настройках надежности фиксации транзакций (
synchronous_commit = onв PostgreSQL), каждая фиксация ожидает завершенияfsyncна энергонезависимом носителе, прежде чем транзакция будет подтверждена. Таким образом, задержка фиксации равна задержке диска, а поиск по индексу — это случайное чтение одной страницы (8 kB в PostgreSQL, 16 kB по умолчанию в InnoDB MySQL), что является худшим сценарием для жесткого диска. - Веб-приложение, API или панель управления. Стандартный тариф. Этим сервисам нужны ядра и предсказуемая задержка, при этом им редко требуется более 100 GB дискового пространства.
- Кэш CI или хранилище артефактов. Зависит от размера файлов. Большие tar-архивы хорошо передаются с хранилища на скорости сети или на пределе I/O тарифа, в зависимости от того, что ниже. Кэш из сотен тысяч мелких файлов, которые параллельно запрашиваются несколькими раннерами, по сути является случайным вводом-выводом (random IO) и не обеспечит ожидаемой производительности.
Как это выглядит при неверной настройке
Сбой происходит не сразу. База данных на дисковом хранилище (HDD) работает нормально при одном пользователе, но «ложится» под нагрузкой в десять, так как запросы, которые раньше обрабатывались в оперативной памяти, начинают обращаться к диску. Каждый такой запрос теперь занимает миллисекунды вместо микросекунд. Load average растёт, в то время как top показывает, что процессор в основном простаивает, а значение %wa высоко: это означает, что процессы заблокированы в ожидании диска, а не выполняют вычисления. iostat -x 1 показывает, что %util достигает почти 100.
PostgreSQL прямо сообщает об этом в своём журнале, так как параметр log_checkpoints включён по умолчанию начиная с версии 15:
LOG: checkpoint complete: wrote 8241 buffers (2.5%); ... write=112.402 s, sync=9.318 s, total=121.914 sЗначение sync= — это то, на что нужно смотреть. Это время, которое контрольная точка (checkpoint) провела в ожидании завершения fsync. Значение в секундах означает, что диск не успевает записывать данные с той скоростью, с которой их генерирует база данных. Клиентские соединения зависают в этот промежуток времени, даже если сам запрос выполняется быстро. Решение заключается не в изменении конфигурации. Перенесите каталог данных на NVMe, а дисковое хранилище используйте по назначению — для хранения резервных копий этой базы данных.
FAQ
Работает ли storage VPS медленнее, чем обычный VPS?
При случайном чтении и записи — да, значительно. Тарифы с HDD-дисками обрабатывают несколько сотен мелких случайных запросов в секунду с задержкой около 8 мс каждый, тогда как NVMe-тарифы справляются с десятками тысяч запросов при задержке менее 1 мс. При последовательной передаче данных разница меньше, так как массив HDD на «железе» выдает 150 МБ/с и более, чего достаточно для заполнения 1 Гбит/с порта, если провайдер не ограничивает ввод-вывод для гостевых систем (Time4VPS ограничивает свои storage-серверы на уровне 50 МБ/с). Проведите замеры самостоятельно с помощью fio --rw=randread --bs=4k --direct=1, прежде чем принимать решение.
Можно ли запустить PostgreSQL на storage VPS?
Запустить можно, и он будет работать, пока рабочий набор данных помещается в RAM. После этого, при стандартном параметре synchronous commit, каждая транзакция будет ждать fsync на медленном диске. Postgres зафиксирует это в логах как значение sync= в секундах внутри checkpoint complete, а iostat -x 1 покажет %util около 100 при высоком w_await. Обычная схема: небольшой NVMe VPS для базы данных и storage VPS в качестве хранилища для её дампов.
Означает ли VDS, что я получаю выделенное оборудование?
Не всегда. Термин VDS не имеет единого стандарта. Некоторые провайдеры используют его для обозначения закрепленных ядер CPU, другие — для полноценной KVM-виртуализации в противовес контейнерам с общим ядром, а третьи используют это название просто как маркетинговый ход. Запустите systemd-detect-virt, чтобы увидеть, работаете ли вы на kvm или lxc, а также используйте vmstat 1 5 и следите за столбцом st, чтобы понять, не забирают ли другие арендаторы ресурсы вашего CPU.
Как узнать, действительно ли диск моего VPS — это NVMe?
Не доверяйте lsblk -d -o NAME,ROTA,MODEL, так как virtio-диск обычно сообщает ROTA=0 и пустую строку модели независимо от того, какое оборудование находится под ним. Запустите 30-секундный тест случайного чтения fio с помощью --direct=1 и оцените показатели IOPS и задержку на 99-м перцентиле. Сотни IOPS с задержкой в десятки миллисекунд означают HDD-массив. Десятки тысяч IOPS с задержкой менее миллисекунды — это flash-накопитель.