Storage VPS чи звичайний VPS: що змінюється
Storage VPS дає терабайти дешевого, але повільного диска замість швидкого NVMe та CPU. Порівняйте характеристики й виберіть сервер для архівів, БД або сайтів.
Storage VPS проти звичайного VPS: коротка відповідь
Storage VPS — це virtual private server, вартість якого визначається обсягом у терабайтах, а звичайний VPS продається з розрахунком на обчислювальні ядра. Тариф із великим сховищем дає значно більше дискового простору за ті самі гроші, зазвичай на повільнішому диску та з меншою кількістю CPU на терабайт. Стандартний тариф дає швидкий SSD, дуже часто NVMe (non-volatile memory express), який зазвичай у twenty разів менший, а також більше процесорних ресурсів і оперативної пам’яті за ті самі гроші. В інших аспектах ці два продукти однакові: той самий hypervisor, той самий root shell, той самий образ Ubuntu, той самий network stack.
Саме ця відмінність визначає сферу застосування. Storage VPS підходить для backup targets, медіатек, cold archives і будь-яких даних, які записують один раз і рідко читають. Він не підходить для бази даних або будь-якої сторінки, завантаження якої користувач очікує, оскільки такі навантаження потребують виконання малих довільних операцій читання приблизно за millisecond. Дешева ємність має низьку ціну саме тому, що не може забезпечити таку швидкість.
Назви тарифів, які ви бачите на сторінці з цінами
Майже всі провайдери використовують чотири назви, але конкретне значення мають лише дві з них.
- Standard VPS. Зазвичай від 2 до 8 vCPU, від 2 GB до 32 GB RAM і від 20 GB до 400 GB NVMe або SATA SSD, розміщених безпосередньо на host node. Деякі лінійки значно перевищують ці показники: станом на 2026-10-12 лінійка Cloud VPS у Contabo сягала 18 vCPU, 96 GB RAM і 600 GB SSD.
- Storage VPS. Від кількох сотень GB до 20 TB і більше. Зазвичай це звичайні SATA-диски або SATA SSD великої ємності, зі спільними vCPU, часто від 1 до 4, і помірним обсягом RAM для такого сховища. Початкові тарифи можуть бути значно меншими за 1 TB: найменший Storage VPS у Contabo мав 300 GB SSD станом на 2026-10-12. Найбільші тарифи можуть мати більше ядер: у Storage VPS 50 було заявлено 14 vCPU і 50 GB RAM. Такий тариф часто коштує стільки ж на місяць, як невеликий Standard VPS.
- VDS. Скорочення від virtual dedicated server. Загальноприйнятого визначення цього терміна немає. Нижче пояснено, на які характеристики слід звертати увагу натомість.
- Block storage volume. Це взагалі не тариф, а підключений до мережі диск, який додають до наявного VPS і оплачують за GB на місяць. Лише його можна збільшувати без перенесення сервера.
Ці діапазони описують типову структуру ринку, а не пропозицію якоїсь однієї компанії. Назва тарифу позначає категорію, тому приблизно показує, на якому chassis розміщено ваш сервер. Вона не повідомляє тип диска, політику розподілу CPU або доступну пропускну здатність. Саме ці характеристики визначають, наскільки добре працюватиме ваше навантаження.
Що насправді змінюється між двома планами
Тип і обсяг диска. Це основна відмінність між продуктами. Стандартний план зазвичай передбачає SSD, часто NVMe-накопичувач із підключенням через шину PCI Express. Однак категорія не гарантує NVMe: наприклад, Contabo продає свій Core VPS "with SSD storage", а "PCIe Gen 4 NVMe storage" залишає для окремої лінійки Performance VPS. План зі сховищем передбачає великий масив HDD або SATA SSD великої місткості. Якщо ви не впевнені, яке з цих понять для вас важливе, спочатку прочитайте що таке SSD VPS і чим він відрізняється від старих планів із дисками, а потім — яка практична різниця між NVMe і SATA SSD.
Співвідношення CPU. На плани зі сховищем припадає менше vCPU на кожен терабайт, і ці vCPU майже завжди спільно використовуються з іншими клієнтами. Це не недолік. Сервер для резервних копій переважно очікує на мережеві операції, тому додаткові ядра йому не потрібні.
RAM. Порівняно з ціною плани зі сховищем мають мало RAM. Це особливо помітно під час роботи з метаданими файлової системи. Для мільйонів невеликих файлів потрібна пам’ять для кешу каталогів та inode. Якщо пам’яті недостатньо, кожне отримання списку файлів знову звертається до диска.
Мережевий ліміт. Уважно перевірте цей параметр у плані зі сховищем. Дані, з яких неможливо відновитися через мережеве обмеження, не є резервною копією. Перевірте місячний ліміт передавання в TB і швидкість порту в Gbit/s. Повне відновлення 4 TB через порт 1 Gbit/s займає приблизно дев’ять годин за пропускної здатності лінії, а якщо порт спільний — значно довше.
Дані, на яких побудовано графік
[
{
"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 року, а не пропозиція від якоїсь однієї компанії. Ціни змінюються. Важливою є загальна закономірність. Один терабайт на storage plan зі HDD коштує приблизно 3 доларів США на місяць. Такий самий обсяг NVMe на стандартному плані коштує близько 40, а мережевий block volume є найдорожчим із 4 варіантів — 90. Докладніше про складові щомісячного рахунку див. у матеріалі скільки насправді коштує VPS на місяць.
Чому ціна за TB і ціна за core рухаються в протилежних напрямках
Storage node — це шасі з дванадцятьма-шістнадцятьма великими дисками та одним помірним процесором, який обслуговує ці диски. Compute node — протилежний варіант: багато ядер, великий обсяг RAM і два або чотири NVMe-диски. Провайдер продає вільні ресурси конкретного шасі. Тому тариф із низькою ціною за TB має високу ціну за core, а тариф із низькою ціною за core — високу ціну за TB. Тарифу, який був би дешевим за обома показниками, не існує, оскільки шасі не проєктують із таким поєднанням ресурсів.
Тому чесна відповідь на запитання «який тариф мені обрати» часто звучить як «обидва». Невеликий NVMe VPS для запуску застосунку разом зі storage VPS для зберігання резервних копій коштує менше, ніж одна машина, достатньо потужна для якісного виконання обох завдань. Якщо одна машина справді має виконувати обидва завдання, це вже вихід за межі VPS: див. коли dedicated server кращий за 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 rpm виконує приблизно 180 випадкових операцій читання блоків 4k за секунду, оскільки головка має фізично переміститися до потрібної доріжки, а потім дочекатися, поки пластина підведе під неї потрібний сектор. Це займає близько 8.5 мс щоразу. У flash-накопичувачів немає рухомих частин, тому SATA SSD досягає приблизно 75,000, а NVMe-пристрій — близько 600,000 IOPS із затримкою 0.08 мс. Різниця перевищує три тисячі разів, і збільшення обсягу RAM або потужності CPU її не усуне.
Послідовні операції — зовсім інша ситуація, тому плани сховища взагалі мають значення. Один механічний диск усе ще забезпечує послідовну швидкість 150 MB/s–250 MB/s, а масив із кількох таких дисків — вищу. На рівні фізичного обладнання цього достатньо, щоб повністю використати порт 1 Gbit/s, але віртуальна машина може не отримати таку швидкість: провайдери можуть обмежувати пропускну здатність для кожного сервера. Наприклад, Time4VPS документує обмеження I/O на рівні 50 MB/s для своїх storage servers, тобто приблизно 400 Mbit/s. Перевірте план на наявність обмеження I/O, перш ніж припускати, що резервна копія передаватиметься на максимальній мережевій швидкості. Показники також залежать від структури масиву: під час striping дані записуються блоками, які почергово розподіляються між кількома дисками, тому великий запит можуть одночасно обробляти кілька дисків: як RAID 10 змінює продуктивність плану сховища описує це докладніше.
Що означає VDS?
Зазвичай це маркетингове позначення. У вжитку є три поширені значення, але провайдер рідко уточнює, яке саме має на увазі. Деякі провайдери називають VDS сервер із закріпленими або виділеними ядрами CPU, тому інші клієнти не конкурують за процесорний час. Інші використовують VDS для повної віртуалізації, наприклад KVM, на відміну від контейнерної віртуалізації, як-от LXC або OpenVZ, де використовується спільне ядро хоста. Для деяких провайдерів VDS не означає нічого, крім назви, яка звучить переконливіше за VPS.
Частково перевірити це можна з самого сервера. systemd-detect-virt виводить kvm на повністю віртуальній машині та lxc у контейнері. Контейнер означає, що ви не можете завантажувати модулі ядра або запускати власне ядро. Заявлену виділену потужність CPU потрібно перевірити вимірюванням за допомогою перевірки steal time нижче. Сприймайте позначення в тарифному плані як орієнтир, а рядки зі специфікаціями — як умови договору.
Які характеристики перевіряти замість назви
- Слово, указане поруч із місткістю:
NVMe,SSD,SATAабоHDD. Якщо на сторінці ніде не вказано тип диска, припускайте найдешевше обладнання, яке відповідає ціні. - Чи є диск локальним для вузла, чи підключеним через мережу. Мережеве сховище додає затримку до кожного запиту та продовжує працювати в разі відмови вузла. Локальний диск швидший, але виходить з ладу разом із вузлом.
- Формулювання щодо CPU: "dedicated" або "pinned" порівняно з "shared", "fair share" або повною відсутністю уточнення.
- Обмеження IOPS або MB/s, зазначене в тарифному плані. Обмеження 500 IOPS майже нівелює різницю між типами дисків.
- Місячний ліміт передавання даних і швидкість порту, від яких залежить тривалість повного відновлення.
- Чи входять snapshots, backups і додаткові 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, тому ви вимірюєте диск, а не RAM. Потрібний рядок — read: IOPS=, а розподіл значень указано нижче в clat percentiles (usec). Стандартний план із NVMe зазвичай дає десятки тисяч IOPS із 99-м перцентилем менше 1 мілісекунди. План зі storage на обертових дисках зазвичай дає кілька сотень IOPS із 99-м перцентилем у межах двозначної кількості мілісекунд. Якщо fio повідомляє, що engine libaio не можна завантажити, використайте --ioengine=psync --iodepth=1 і очікуйте нижчих показників, оскільки цей engine надсилає лише один запит за раз.
vmstat 1 5
sudo apt install -y sysstat
iostat -x 1 5У vmstat стовпець st показує steal time: частку часу, коли ваш vCPU був готовий до виконання, але host віддав ці цикли іншій guest system. Стабільне значення понад 5 означає, що node перевантажений, і це є реальною перевіркою заяви про «dedicated CPU». У iostat -x стежте за %util, r_await і w_await. На пристрої, який обробляє запити по одному, наприклад на одному обертовому диску, значення %util, близьке до 100, разом із w_await у десятках мілісекунд означає, що диск насичений, і допоможуть лише зміни, які зменшують обсяг IO або змінюють його організацію. Для RAID-масивів і SSD, які обробляють запити паралельно, у sysstat manual зазначено, що %util не відображає межі їхньої продуктивності, тому орієнтуйтеся на значення await і результат запуску fio. Докладніше про перевірки, специфічні для flash-накопичувачів, читайте в матеріалі як перевірити, що NVMe-диск справді є NVMe-диском.
Вибір за робочим навантаженням
- Ціль для резервних копій restic, Borg або rsync. Storage VPS — саме для цього його і створено. Записи великі й послідовні, дедуплікація відбувається на вихідній машині, а результат ніхто не очікує в режимі реального часу. Є один нюанс:
restic pruneіrestic check --read-dataчитають увесь репозиторій невеликими частинами, тому закладайте на це кілька годин і запускайте їх за розкладом. Див. резервне копіювання restic на VPS. - Медіатека Immich або Jellyfin. Storage VPS підходить для зберігання файлів, але враховуйте обмеження CPU. Immich створює мініатюри та виконує завдання машинного навчання під час імпорту, а Jellyfin транскодує медіа під час відтворення. Два shared vCPU повільно оброблятимуть перший імпорт 200 GB фотографій. Зберігайте базу даних і кеш мініатюр на найшвидшому диску сервера. У матеріалі самостійне розгортання Immich як заміни Google Photos описано вибір ресурсів.
- PostgreSQL або MySQL. Стандартний NVMe plan. За стандартних параметрів надійного підтвердження транзакцій (
synchronous_commit = onу PostgreSQL) кожне підтвердження очікує, докиfsyncне буде записано на надійний носій, перш ніж транзакція поверне результат. Тому затримка підтвердження дорівнює затримці диска, а пошук за індексом є випадковим читанням однієї сторінки (8 kB у PostgreSQL, 16 kB за замовчуванням у MySQL InnoDB) — саме такого типу операцій, у якому HDD працює найгірше. - Вебзастосунок, API або control plane. Стандартний plan. Для них потрібні ядра CPU і передбачувана затримка. Зазвичай їм достатньо не більше ніж 100 GB.
- Кеш CI або сховище артефактів. Це залежить від розміру файлів. Великі tar-архіви добре передаються зі storage plan зі швидкістю мережі або до ліміту I/O plan — залежно від того, яке значення нижче. Кеш із сотень тисяч малих файлів, які кілька runner-ів завантажують паралельно, фактично створює випадкові операції введення-виведення і може вас розчарувати.
Як це виглядає, коли ви припускаєтеся цієї помилки
Збій ніколи не відбувається одразу. База даних на тарифі зі сховищем на дисках із обертанням працює нормально для одного користувача, але перестає справлятися з десятьма, оскільки запити, які раніше оброблялися з RAM, починають звертатися до диска, і кожен із них тепер займає мілісекунди замість мікросекунд. Load average зростає, тоді як top показує, що CPU переважно простоює, а показник %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?
Для випадкових операцій читання та запису — так, і з великим відривом. Тариф storage зі spinning disk обробляє кілька сотень невеликих випадкових запитів за секунду, приблизно по 8 ms кожен, тоді як тариф NVMe обробляє десятки тисяч запитів із затримкою значно меншою за 1 ms. Для послідовної передачі даних різниця набагато менша, оскільки масив зі spinning disk на необробленому обладнанні передає 150 MB/s або більше. Цього достатньо, щоб заповнити порт 1 Gbit/s, якщо провайдер не обмежує I/O гостьової системи нижче. Time4VPS обмежує storage-сервери до 50 MB/s. Перед вибором виміряйте показники на власній системі за допомогою fio --rw=randread --bs=4k --direct=1.
Чи можна запускати PostgreSQL на storage VPS?
Запустити PostgreSQL можна, і він працюватиме, доки робочий набір даних поміщається в 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 і двозначна затримка в мілісекундах означають масив зі spinning disk. Десятки тисяч IOPS із затримкою меншою за 1 ms означають flash-накопичувач.