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 GB до 32 GB оперативной памяти и от 20 GB до 400 GB NVMe или SATA SSD, размещенных на самом хост-узле. Некоторые линейки выходят далеко за эти пределы: на 2026-10-17 линейка Cloud VPS от Contabo достигала 18 vCPU, 96 GB оперативной памяти и 600 GB SSD (или 300 GB NVMe).
- Storage VPS. От нескольких сотен GB до 20 TB и более, обычно на базе вращающихся SATA-дисков или SATA SSD большой емкости, с общими vCPU, часто от одного до четырех, и умеренным объемом оперативной памяти относительно емкости диска. Начальные тарифы могут быть значительно меньше 1 TB (самый маленький Storage VPS у Contabo на 2026-10-17 предлагал 300 GB SSD), а самые крупные тарифы могут включать больше ядер (тариф Storage VPS 50 включал 14 vCPU и 50 GB оперативной памяти). Часто такой тариф стоит столько же в месяц, сколько небольшой стандартный план.
- VDS. Сокращение от virtual dedicated server. Единого определения у этого термина нет, и в разделе ниже описано, на что следует обращать внимание вместо него.
- Block storage volume. Это вовсе не тариф: это сетевой диск, который вы подключаете к существующему VPS и оплачиваете за каждый GB в месяц. Это единственный из четырех вариантов, объем которого можно увеличить без переноса сервера.
Эти диапазоны отражают общую ситуацию на рынке, а не предложение какой-то одной компании. Название тарифа — это лишь категория, которая примерно указывает, на каком шасси размещен ваш сервер. Оно не говорит о типе диска, политике распределения CPU или лимите пропускной способности сети, а именно эти параметры определяют, будет ли ваша рабочая нагрузка выполняться эффективно.
В чем именно заключается разница между двумя тарифными планами
Тип и объем диска. Это единственное различие в продуктах. Стандартный тариф обычно предоставляет SSD, часто NVMe-накопители, работающие через шину PCI Express, однако категория не гарантирует наличие именно NVMe: например, компания Contabo по состоянию на 2026-10-17 указывала для своих планов Cloud VPS 6 — Cloud VPS 18 либо SSD, либо диски NVMe меньшего объема («200GB SSD / 100GB NVMe» для Cloud VPS 6), в то время как для начального плана Cloud VPS 4 был указан только «100 GB SSD». Тарифный план для хранения данных (storage plan) предоставляет массив из вращающихся жестких дисков или SATA SSD большой емкости. Если вы не уверены, что именно из этого для вас важно, начните с того, что такое SSD VPS и чем он отличается от устаревших дисковых планов, а затем ознакомьтесь с практической разницей между NVMe и SATA SSD.
Соотношение CPU. Тарифы для хранения данных имеют меньше vCPU на терабайт, и эти vCPU почти всегда разделяются с другими арендаторами. Это не является недостатком. Целевое хранилище для резервных копий большую часть времени ожидает данных по сети, поэтому ему не требуется высокая вычислительная мощность ядер.
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=1 независимо от того, что находится на физическом уровне, даже если это NVMe. Драйвер virtio-blk помечает каждый созданный им диск как вращающийся, и гостевая система никогда не видит физический накопитель. 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. На устройстве, которое обслуживает запросы по одному, например, на одном вращающемся диске, %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 ограничивает свои серверы хранения на уровне 50 МБ/с). Перед принятием решения измерьте показатели самостоятельно с помощью fio --rw=randread --bs=4k --direct=1.
Могу ли я запустить PostgreSQL на storage VPS?
Вы можете запустить его, и он будет работать, пока рабочий набор данных помещается в RAM. После этого, при стандартном синхронном коммите, каждая транзакция будет ожидать 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, чтобы понять, не забирают ли другие арендаторы циклы вашего процессора.
Как узнать, действительно ли диск моего VPS является NVMe?
Не доверяйте lsblk -d -o NAME,ROTA,MODEL, так как диск virtio обычно сообщает ROTA=1, даже если под ним находится NVMe, а также пустую строку модели независимо от используемого оборудования. Запустите 30-секундный тест случайного чтения fio с помощью --direct=1 и посмотрите на IOPS и 99-й перцентиль задержки. Сотни IOPS с задержкой в десятки миллисекунд означают массив HDD. Десятки тысяч с задержкой менее миллисекунды — это флеш-память.