Storage VPS чи звичайний VPS: що змінюється
Storage VPS дає терабайти дешевого, але повільного диска замість швидкого NVMe та CPU. Порівняйте характеристики й виберіть сервер для архівів, БД або сайтів.
Storage VPS проти звичайного VPS: коротка відповідь
Storage VPS — це віртуальний приватний сервер, який продають із розрахунку на терабайти, а звичайний VPS — із розрахунку на обсяг CPU. Тариф із великим сховищем надає кілька терабайтів повільного дискового простору та невелику частку CPU. Стандартний тариф надає швидкий диск NVMe (non-volatile memory express), який часто у двадцять разів менший, а також більше процесорних ресурсів і пам’яті за ті самі гроші. В іншому ці два продукти однакові: той самий hypervisor, та сама root shell, той самий образ Ubuntu, той самий network stack.
Саме ця відмінність визначає, для яких завдань підходить сервер. Storage VPS підходить для цілей резервного копіювання, медіатек, холодних архівів і даних, які записують один раз, а читають рідко. Він не підходить для бази даних або сторінки, на завантаження якої користувач чекає, оскільки такі робочі навантаження потребують завершення малих операцій довільного читання приблизно за одну мілісекунду. Низька ціна великого обсягу пояснюється саме тим, що таке сховище не може забезпечити цю швидкість.
Назви планів, які ви бачите на сторінці з тарифами
Майже всі провайдери використовують чотири назви, але конкретне значення мають лише дві з них.
- Standard VPS. Від двох до восьми vCPU, від 2 GB до 32 GB RAM і від 20 GB до 400 GB NVMe або SATA SSD, розміщених безпосередньо на хост-вузлі.
- Storage VPS. Від 1 TB до 20 TB або більше, зазвичай звичайні SATA-диски або SATA SSD великої ємності, від одного до чотирьох спільно використовуваних vCPU і помірний обсяг RAM. Такий тариф часто коштує стільки ж на місяць, як невеликий стандартний план.
- VDS. Скорочення від virtual dedicated server. У цього терміна немає загальноприйнятого визначення, тому нижче описано, на що слід звертати увагу натомість.
- Block storage volume. Це не план, а мережевий диск, який додають до наявного VPS і оплачують за кожен GB на місяць. Лише цей варіант можна збільшувати без перенесення сервера.
Ці діапазони є типовими для ринку загалом, а не характеристиками пропозиції якоїсь окремої компанії. Назва плану визначає категорію, тому приблизно показує, на якому типі серверного шасі розміщено ваш сервер. Вона не повідомляє тип диска, політику розподілу CPU або доступну пропускну здатність. Саме ці характеристики визначають, наскільки добре працюватиме ваше навантаження.
Що насправді змінюється між двома планами
Тип і обсяг диска. Це основна відмінність продуктів. Стандартний план використовує NVMe flash-пам’ять, підключену через шину PCI Express. План зі сховищем використовує великий масив HDD або SATA SSD високої ємності. Якщо ви не впевнені, який із цих параметрів для вас важливий, спочатку прочитайте що таке SSD VPS і чим він відрізняється від старих дискових планів, а потім — яка практична різниця між NVMe та SATA SSD.
Співвідношення CPU. На планах зі сховищем припадає менше vCPU на терабайт, і ці vCPU майже завжди спільно використовуються з іншими клієнтами. Це не недолік. Сервер резервних копій більшість часу очікує на мережу, тому йому не потрібна велика кількість ядер.
RAM. За свою ціну плани зі сховищем мають мало RAM. Це особливо важливо в одному випадку: для метаданих файлової системи. Для мільйонів малих файлів потрібна пам’ять під кеш каталогів та inode. Без неї кожен перегляд каталогу знову звертається до диска.
Доступний мережевий трафік. Уважно перевірте цей параметр у плані зі сховищем. Дані, які неможливо відновити, не є резервною копією. Перевірте місячний ліміт передавання в TB і швидкість порту в Gbit/s, оскільки повне відновлення 4 TB через порт 1 Gbit/s на швидкості каналу займає приблизно дев’ять годин, а зі спільним портом — значно довше.
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 року, а не пропозиція від якоїсь однієї компанії. Ціни змінюються. Стабільною залишається загальна картина. Один терабайт у плані зі сховищем на 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.
Довільне читання — те, з чим дешевий диск не впорається
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 rpm обробляє приблизно 180 довільних операцій читання блоків розміром 4k за секунду, оскільки головці потрібно фізично переміститися до потрібної доріжки, а потім дочекатися, поки пластина підведе до неї потрібний сектор. Щоразу це займає близько 8.5 мс. У flash-накопичувача немає рухомих частин, тому SATA SSD досягає приблизно 75,000, а пристрій NVMe — близько 600,000 IOPS із затримкою 0.08 мс. Різниця перевищує три тисячі разів, і збільшення обсягу RAM або потужності CPU її не усуває.
Послідовні операції — зовсім інша ситуація, тому плани зберігання взагалі мають сенс. Один HDD із рухомими пластинами все одно забезпечує швидкість потокового передавання від 150 MB/s до 250 MB/s, а масив із кількох таких дисків — вищу швидкість. Цього достатньо, щоб повністю завантажити порт 1 Gbit/s, тому завантаження резервної копії виконується з максимальною швидкістю мережі, а диск не стає вузьким місцем. Показники також залежать від структури масиву, оскільки 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 обходить кеш сторінок, тому ви вимірюєте диск, а не RAM. Потрібний рядок — read: IOPS=, а розподіл значень наведено нижче, у clat percentiles (usec). Стандартний план із NVMe зазвичай забезпечує десятки тисяч IOPS із 99-м перцентилем менше 1 мілісекунди. План зі звичайним обертовим сховищем забезпечує кілька сотень 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 передав ці такти іншій гостьовій системі. Стабільне значення понад 5 означає, що node перевантажений віртуальними машинами. Це справжня перевірка заяви про «dedicated 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 фотографій дуже повільно. Зберігайте базу даних і кеш мініатюр на найшвидшому диску сервера. У матеріалі самостійне розгортання Immich як заміни Google Photos наведено рекомендації щодо конфігурації.
- PostgreSQL або MySQL. Стандартний план із NVMe. Кожна операція commit завершується записом
fsync, який має потрапити на надійне сховище до повернення транзакції. Тому затримка commit дорівнює затримці диска, а пошук за індексом — це випадкове читання 8 kB, саме той тип операцій, з яким диски на шпинделі працюють найгірше. - Вебзастосунок, API або площина керування. Стандартний план. Для них потрібні обчислювальні ядра та передбачувана затримка. Зазвичай їм потрібно не більше 100 GB.
- Кеш CI або сховище артефактів. Це залежить від розміру файлів. Великі tar-архіви передаються зі storage 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 plan на дисках із магнітними пластинами обробляє кілька сотень малих випадкових запитів за секунду, приблизно по 8 ms кожен, тоді як NVMe plan обробляє десятки тисяч запитів із затримкою значно меншою за 1 ms. Для послідовної передачі даних різниця набагато менша, оскільки storage array усе ще передає 150 MB/s або більше. Цього достатньо, щоб завантажити порт 1 Gbit/s. Перед прийняттям рішення виміряйте показники власної системи за допомогою fio --rw=randread --bs=4k --direct=1.
Чи можна запускати PostgreSQL на storage VPS?
Запустити його можна, і він працюватиме, доки робочий набір даних вміщується в RAM. Після цього кожна операція commit очікує на fsync на повільному диску, а Postgres записує це як показник sync= у секундах у checkpoint complete, тоді як iostat -x 1 показує %util, близький до 100, із високим w_await. Зазвичай для бази даних використовують невеликий NVMe VPS, а storage VPS — як цільове сховище для її дампів.
Чи означає VDS, що я отримую виділене обладнання?
Не обов’язково. VDS не має стандартного значення. Деякі провайдери використовують цей термін для закріплених ядер CPU, деякі — для повної KVM-віртуалізації на відміну від контейнера зі спільним kernel, а деякі — лише як назву. Виконайте systemd-detect-virt, щоб перевірити, чи працюєте ви на kvm або lxc, а потім виконайте vmstat 1 5 і стежте за стовпцем st, щоб з’ясувати, чи інші клієнти використовують ваші цикли CPU.
Як визначити, чи диск мого VPS справді NVMe?
Не покладайтеся на lsblk -d -o NAME,ROTA,MODEL, оскільки virtio disk зазвичай повідомляє ROTA=0 і порожній рядок моделі незалежно від обладнання під ним. Виконайте 30-секундний тест випадкового читання fio за допомогою --direct=1 та перевірте IOPS і затримку на 99-му перцентилі. Сотні IOPS і двозначна затримка в мілісекундах означають storage array на дисках із магнітними пластинами. Десятки тисяч IOPS із затримкою меншою за 1 ms означають flash-накопичувач.