Storage VPS против обычного VPS: в чем разница
Узнайте ключевые отличия Storage VPS от стандартных серверов. Разбираем, почему медленные HDD диски подходят для архивов, а NVMe необходимы для работы баз данных и сайтов.
Storage VPS против обычного VPS: краткий ответ
Storage VPS — это виртуальный выделенный сервер, который продается с расчетом на объем хранилища в терабайтах, тогда как обычный VPS продается с расчетом на вычислительные мощности процессора. Тарифный план для хранения данных предоставляет несколько терабайт медленного дискового пространства при ограниченной доле ресурсов CPU. Стандартный тариф предлагает быстрый NVMe (non-volatile memory express) диск, объем которого зачастую в 20 раз меньше, но при этом вы получаете больше оперативной памяти и процессорных мощностей за те же деньги. Все остальные характеристики этих продуктов идентичны: тот же гипервизор, тот же root shell, тот же образ Ubuntu и тот же сетевой стек.
Именно это различие определяет область применения. Storage VPS подходит для целей резервного копирования, медиабиблиотек, «холодных» архивов и любых данных, которые записываются один раз и редко считываются. Он не подходит для баз данных или любых веб-страниц, ожидание загрузки которых критично для пользователя, так как подобные задачи требуют выполнения случайных операций чтения за миллисекунды, а дешевое дисковое пространство стоит недорого именно потому, что не способно обеспечить такую производительность.
Названия тарифных планов на странице цен
Четыре категории охватывают почти всех провайдеров, и только две из них имеют конкретное значение.
- Standard VPS. От двух до восьми vCPU, от 2 GB до 32 GB RAM и от 20 GB до 400 GB NVMe или SATA SSD, расположенных на самом хосте.
- Storage VPS. От 1 TB до 20 TB и более, обычно на базе HDD или SATA SSD большой емкости, с одним-четырьмя общими vCPU и небольшим объемом RAM. Часто стоит столько же в месяц, сколько и небольшой стандартный тариф.
- VDS. Сокращение от virtual dedicated server. У этого термина нет общепринятого определения, поэтому ниже описано, на что стоит обращать внимание вместо него.
- Block storage volume. Это вообще не тарифный план: сетевой диск, который вы подключаете к существующему VPS и оплачиваете за каждый GB в месяц. Это единственный из четырех вариантов, объем которого можно увеличить без переноса сервера.
Эти диапазоны отражают общую ситуацию на рынке, а не предложение какой-то конкретной компании. Название тарифа — это лишь категория, которая дает примерное представление о том, на каком оборудовании работает ваш сервер. Оно не указывает тип диска, политику распределения CPU или лимит пропускной способности сети, а именно эти параметры определяют, будет ли ваша нагрузка работать корректно.
В чем заключается разница между двумя тарифными планами
Тип и количество дисков. Это единственное реальное различие между продуктами. Стандартный план предоставляет NVMe-накопители, подключенные по шине PCI Express. План для хранения данных (storage plan) предоставляет массив из жестких дисков или SATA SSD большой емкости. Если вы не уверены, что именно из этого вам нужно, начните с что такое SSD VPS и чем он отличается от старых дисковых планов, а затем изучите практическую разницу между NVMe и SATA SSD.
Соотношение vCPU. Планы для хранения данных имеют меньше vCPU на терабайт, и эти vCPU почти всегда разделяются с другими арендаторами. Это не является недостатком. Целевой сервер для резервных копий большую часть времени ожидает данных по сети, поэтому ему не требуется высокая вычислительная мощность.
Оперативная память. Планы для хранения данных имеют небольшой объем RAM относительно своей цены. Это создает проблему в одном конкретном случае: метаданные файловой системы. Для работы с миллионами мелких файлов требуется память под кэш директорий и inode; без этого каждое обращение к списку файлов будет приводить к чтению с диска.
Лимит сетевого трафика. Внимательно изучите этот пункт для планов хранения данных. Емкость, из которой невозможно восстановить данные, не является резервной копией. Проверьте ежемесячный лимит трафика в ТБ и скорость порта в Гбит/с, так как полное восстановление 4 ТБ через порт 1 Гбит/с занимает около девяти часов при работе на полной скорости, и значительно дольше, если порт является общим.
The data behind this chart
[
{
"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.
Произвольное чтение — это то, с чем не справляется дешевый диск
The data behind this chart
[
{
"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 Гбит/с, поэтому выгрузка резервных копий происходит на полной скорости сети, и диск не становится узким местом. Ваши показатели также зависят от того, как построен массив, поскольку чередование (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 для flash-накопителей. Не полагайтесь на этот параметр внутри 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 позволяет обойти page cache, чтобы измерить производительность диска, а не оперативной памяти. Искомая строка — 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 в десятки миллисекунд означает, что диск стал «узким местом», и никакая настройка приложений не поможет. Для специфических проверок flash-накопителей более подробно описано в проверке того, является ли 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. Каждая фиксация транзакции завершается
fsync, которая должна быть записана на энергонезависимый носитель до подтверждения транзакции, поэтому задержка фиксации равна задержке диска, а поиск по индексу — это случайное чтение 8 kB, с чем жесткие диски справляются хуже всего. - Веб-приложение, API или панель управления. Стандартный тариф. Таким сервисам нужны вычислительные ядра и предсказуемая задержка, при этом им редко требуется более 100 GB дискового пространства.
- Кэш CI или хранилище артефактов. Зависит от размера файлов. Большие архивы tar передаются с хранилища на полной скорости сети. Кэш из сотен тысяч мелких файлов, которые параллельно запрашиваются несколькими раннерами, по сути является случайным вводом-выводом (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 мс. При последовательной передаче данных показатели различаются меньше, так как дисковый массив обеспечивает скорость потока от 150 МБ/с, чего достаточно для полной загрузки 1 Гбит/с порта. Проведите собственные измерения с помощью fio --rw=randread --bs=4k --direct=1 перед принятием решения.
Можно ли запускать PostgreSQL на storage VPS?
Вы можете запустить его, и он будет работать, пока рабочее множество данных помещается в ОЗУ. После этого каждый коммит будет ожидать 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-памяти.