Storage VPS a zwykły VPS: różnice w parametrach
Dowiedz się, czym różni się Storage VPS od standardowego serwera NVMe. Porównujemy wydajność CPU oraz pojemność dyskową, aby pomóc w wyborze odpowiedniego rozwiązania.
Storage VPS a zwykły VPS: krótka odpowiedź
Storage VPS to serwer wirtualny sprzedawany w oparciu o pojemność w terabajtach, natomiast zwykły VPS sprzedawany jest w oparciu o liczbę rdzeni procesora. Plan typu storage oferuje kilka terabajtów wolnej przestrzeni dyskowej przy niewielkim udziale mocy CPU. Plan standardowy zapewnia szybki dysk NVMe (non-volatile memory express), który jest często dwudziestokrotnie mniejszy, ale oferuje więcej procesora i pamięci w tej samej cenie. Wszystkie pozostałe parametry obu produktów są identyczne: ten sam hypervisor, ten sam dostęp do root shell, ten sam obraz Ubuntu oraz ten sam stos sieciowy.
Ta jedna różnica decyduje o przeznaczeniu. Storage VPS jest odpowiedni jako cel kopii zapasowych, biblioteka multimediów, archiwum danych typu cold storage oraz do wszelkich zadań typu "zapisz raz, czytaj rzadko". Nie nadaje się natomiast do baz danych ani stron internetowych, na których użytkownik oczekuje na odpowiedź, ponieważ takie obciążenia wymagają krótkiego czasu dostępu przy operacjach losowego odczytu, a tania pojemność jest tania właśnie dlatego, że nie jest w stanie tego zapewnić.
Nazwy planów spotykane na stronach z cennikami
Cztery etykiety obejmują niemal każdego dostawcę, przy czym tylko dwie z nich mają konkretne znaczenie.
- Standard VPS. Od dwóch do ośmiu vCPU, od 2 GB do 32 GB pamięci RAM oraz od 20 GB do 400 GB przestrzeni na dyskach NVMe lub SATA, znajdujących się bezpośrednio w węźle hosta.
- Storage VPS. Od 1 TB do 20 TB lub więcej, zazwyczaj na dyskach talerzowych SATA lub pojemnych dyskach SATA SSD, z jednym do czterech współdzielonych vCPU i niewielką ilością pamięci RAM. Często kosztuje miesięcznie tyle samo, co mały plan standardowy.
- VDS. Skrót od virtual dedicated server. Nie istnieje jedna, powszechnie przyjęta definicja tego terminu, dlatego poniższa sekcja wyjaśnia, na co zwracać uwagę zamiast na tę nazwę.
- Block storage volume. To w ogóle nie jest plan: to dysk sieciowy dołączany do istniejącego serwera VPS, za który płaci się miesięcznie w przeliczeniu na GB. Jest to jedyny z wymienionych czterech typów, którego pojemność można zwiększyć bez przenoszenia serwera.
Powyższe zakresy stanowią typowy obraz rynku, a nie ofertę konkretnej firmy. Etykieta planu to kategoria, która informuje jedynie o tym, na jakim typie infrastruktury znajduje się serwer. Nie określa ona typu dysku, polityki przydziału CPU ani limitu przepustowości, a to właśnie te parametry decydują o tym, czy dane obciążenie będzie działać wydajnie.
Co faktycznie zmienia się między tymi dwoma planami
Typ i ilość dysków. To jedyna różnica w produkcie. Plan standardowy zapewnia pamięć flash NVMe dostępną przez magistralę PCI Express. Plan storage oferuje dużą macierz dysków talerzowych lub pojemnych dysków SATA SSD. Jeśli nie masz pewności, które z tych pojęć jest dla Ciebie istotne, zacznij od czym jest VPS SSD i czym różni się od starszych planów dyskowych, a następnie sprawdź praktyczne różnice między NVMe a SATA SSD.
Stosunek liczby procesorów. Plany storage oferują mniej vCPU na terabajt, a te vCPU prawie zawsze są współdzielone z innymi użytkownikami. Nie jest to wada. Cel backupu większość czasu spędza na oczekiwaniu na sieć, więc nie wymaga dużej mocy obliczeniowej.
Pamięć RAM. Plany storage mają stosunkowo mało pamięci RAM w stosunku do ceny. Jest to odczuwalne w jednym konkretnym przypadku: metadanych systemu plików. Miliony małych plików wymagają pamięci na cache katalogów i i-węzłów; bez tego każda operacja listowania plików odwołuje się bezpośrednio do dysku.
Limit sieciowy. Przeczytaj uważnie ten punkt w planie storage. Pojemność, z której nie można przywrócić danych, nie jest backupem. Sprawdź miesięczny limit transferu w TB oraz prędkość portu w Gbit/s, ponieważ pełne przywrócenie 4 TB przez port 1 Gbit/s zajmuje około dziewięciu godzin przy pełnym wykorzystaniu łącza, a znacznie dłużej, jeśli port jest współdzielony.
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
}
]Są to zaokrąglone wartości pobrane z publicznych cenników kilku dostawców w sierpniu 2026 roku; nie stanowią one oferty żadnej konkretnej firmy i ulegają zmianom. Istotny jest sam model. Terabajt w planie storage na dyskach talerzowych kosztuje około 3 dolarów amerykańskich miesięcznie. Ten sam terabajt NVMe w planie standardowym kosztuje około 40, a sieciowy wolumen blokowy jest najdroższą z 4 opcji, kosztując 90. Aby uzyskać szerszy obraz tego, z czego składa się miesięczny rachunek, zobacz ile faktycznie kosztuje VPS miesięcznie.
Dlaczego cena za TB i cena za rdzeń zmieniają się w przeciwnych kierunkach
Węzeł pamięci masowej to obudowa mieszcząca od dwunastu do szesnastu dużych dysków z jednym skromnym procesorem. Węzeł obliczeniowy to przeciwieństwo: wiele rdzeni, duża ilość pamięci RAM oraz dwa lub cztery dyski NVMe. Dostawca sprzedaje to, co w danej obudowie pozostaje wolne. Zatem plan tani w przeliczeniu na terabajt jest drogi w przeliczeniu na rdzeń, a plan tani w przeliczeniu na rdzeń jest drogi w przeliczeniu na terabajt. Nie istnieje plan tani w obu kategoriach, ponieważ żadna obudowa nie jest w ten sposób skonstruowana.
Dlatego uczciwa odpowiedź na pytanie „co powinienem kupić” często brzmi: „jedno i drugie”. Mały VPS z dyskami NVMe obsługujący aplikację oraz VPS z pamięcią masową przechowujący kopie zapasowe kosztują mniej niż jedna maszyna wystarczająco wydajna, by dobrze wykonywać oba zadania. Gdy jedna maszyna musi realizować oba te cele, wykraczasz poza zakres VPS: zobacz kiedy serwer dedykowany przewyższa VPS.
Losowe odczyty to operacje, których tani dysk nie obsłuży
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
}
]Podane wartości pochodzą z kart katalogowych, a nie z testów wydajności konkretnego dostawcy. Dysk 7200 rpm obsługuje około 180 losowych odczytów 4k na sekundę, ponieważ głowica musi fizycznie przemieścić się na odpowiednią ścieżkę, a następnie poczekać, aż talerz ustawi sektor pod nią, co każdorazowo zajmuje około 8.5 ms. Pamięć flash nie posiada ruchomych części, dlatego dysk SATA SSD osiąga około 75,000, a urządzenie NVMe około 600,000 IOPS przy opóźnieniu 0.08 ms. Różnica przekracza trzy tysiące razy i nie zniweluje jej żadna ilość pamięci RAM ani moc procesora.
Praca sekwencyjna to zupełnie inne zagadnienie, dlatego plany pamięci masowej w ogóle mają sens. Pojedynczy dysk talerzowy nadal przesyła dane z prędkością od 150 MB/s do 250 MB/s, a macierz dyskowa osiąga jeszcze wyższe wartości. Pozwala to w pełni wysycić port 1 Gbit/s, dzięki czemu przesyłanie kopii zapasowych odbywa się z pełną prędkością sieci, a dysk nie stanowi wąskiego gardła. Wyniki zależą również od konfiguracji macierzy, ponieważ striping rozprasza jedno żądanie na kilka dysków: jak RAID 10 zmienia wydajność planu pamięci masowej szczegółowo omawia to zagadnienie.
Co oznacza skrót VDS?
Zazwyczaj jest to określenie marketingowe. W powszechnym użyciu funkcjonują trzy znaczenia, a dostawcy rzadko precyzują, które z nich ma zastosowanie. Niektórzy używają VDS dla określenia przypisanych lub dedykowanych rdzeni CPU, dzięki czemu inni użytkownicy nie rywalizują o cykle procesora. Inni stosują ten termin dla pełnej wirtualizacji, takiej jak KVM, w przeciwieństwie do wirtualizacji kontenerowej typu LXC lub OpenVZ, gdzie współdzielone jest jądro systemu operacyjnego hosta. Jeszcze inni używają tego skrótu wyłącznie jako nazwy brzmiącej lepiej niż VPS.
Część tych wątpliwości można rozstrzygnąć z poziomu serwera. Polecenie systemd-detect-virt wyświetla kvm na pełnej maszynie wirtualnej oraz lxc w przypadku kontenera, przy czym kontener oznacza brak możliwości ładowania modułów jądra lub uruchomienia własnego jądra systemu. Deklarację o dedykowanych rdzeniach CPU należy zweryfikować samodzielnie, używając opisanego poniżej pomiaru czasu kradzieży (steal time). Należy traktować oznaczenia w planie taryfowym jako wskazówkę, a specyfikację techniczną jako wiążącą umowę.
Które linie specyfikacji sprawdzić zamiast nazwy
- Słowo wydrukowane obok pojemności:
NVMe,SSD,SATAlubHDD. Jeśli na stronie nie pojawia się żadne określenie dysku, należy przyjąć najtańszy sprzęt mieszczący się w cenie. - Czy dysk jest lokalny dla węzła, czy podłączony przez sieć. Pamięć masowa podłączona przez sieć zwiększa opóźnienia każdego żądania i przetrwa awarię węzła. Dysk lokalny jest szybszy, ale ulega awarii wraz z węzłem.
- Sformułowanie dotyczące CPU: "dedicated" lub "pinned" w zestawieniu z "shared", "fair share" lub brakiem jakiegokolwiek określenia.
- Wszelkie limity IOPS lub MB/s wpisane w plan. Limit 500 IOPS sprawia, że typ dysku staje się niemal nieistotny.
- Miesięczny limit transferu oraz prędkość portu, które określają, jak długo potrwa pełne przywracanie danych.
- Czy migawki, kopie zapasowe i dodatkowe adresy IP są wliczone w cenę, czy rozliczane oddzielnie.
Jak sprawdzić faktycznie otrzymany dysk
Zacznij od raportu jądra, a następnie przestań mu ufać.
lsblk -d -o NAME,ROTA,SIZE,MODEL
df -h /
nproc
free -hROTA przyjmuje wartość 1 dla urządzenia talerzowego i 0 dla pamięci flash. Nie polegaj na tym wewnątrz VPS: dysk virtio zazwyczaj raportuje ROTA=0 niezależnie od tego, co znajduje się pod spodem, ponieważ hypervisor prezentuje ogólne urządzenie blokowe, a system gościa nigdy nie widzi fizycznego nośnika. MODEL jest puste z tego samego powodu. Flaga opisuje to, co zadeklarował hypervisor, a nie to, co faktycznie znajduje się w szafie serwerowej, dlatego należy przeprowadzić pomiar.
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 pomija pamięć podręczną stron (page cache), dzięki czemu mierzysz dysk, a nie pamięć RAM. Wiersz do odczytania to read: IOPS=, z rozkładem podanym w clat percentiles (usec) poniżej. Standardowy plan NVMe raportuje dziesiątki tysięcy IOPS z 99. percentylem poniżej jednej milisekundy. Plan oparty na dyskach talerzowych raportuje kilkaset IOPS z 99. percentylem w dwucyfrowych wartościach milisekund. Jeśli fio zgłasza, że silnik libaio nie może zostać załadowany, użyj --ioengine=psync --iodepth=1 i spodziewaj się niższych wyników, ponieważ ten silnik wysyła tylko jedno żądanie na raz.
vmstat 1 5
sudo apt install -y sysstat
iostat -x 1 5W vmstat kolumna st to steal time: udział czasu, w którym vCPU było gotowe do pracy, podczas gdy host przydzielił te cykle innemu gościowi. Stała wartość powyżej 5 oznacza, że węzeł jest przesycony (oversubscribed), co stanowi rzeczywisty test twierdzenia o "dedykowanym CPU". W iostat -x obserwuj %util, r_await oraz w_await. Wartość %util bliska 100 przy w_await rzędu dziesiątek milisekund oznacza, że dysk jest wąskim gardłem i żadna optymalizacja aplikacji nie pomoże. W kwestii kontroli specyficznych dla pamięci flash, weryfikacja czy dysk NVMe jest rzeczywiście NVMe zawiera bardziej szczegółowe informacje.
Wybór według obciążenia
- Miejsce docelowe kopii zapasowych dla restic, Borg lub rsync. VPS typu Storage, stworzony właśnie do tego celu. Zapisy są duże i sekwencyjne, deduplikacja odbywa się na maszynie źródłowej, a procesy nie oczekują na wynik. Uwaga:
restic pruneorazrestic check --read-dataodczytują całe repozytorium w małych fragmentach, więc należy zaplanować na to odpowiednią ilość czasu i uruchamiać je zgodnie z harmonogramem. Zobacz uruchamianie kopii zapasowych restic na VPS. - Biblioteka multimediów Immich lub Jellyfin. VPS typu Storage dla plików, z zastrzeżeniem dotyczącym procesora. Immich generuje miniatury i wykonuje zadania uczenia maszynowego podczas importu, a Jellyfin transkoduje materiały w trakcie odtwarzania. Dwa współdzielone vCPU będą bardzo wolno przetwarzać pierwszy import 200 GB zdjęć. Bazę danych oraz pamięć podręczną miniatur należy przechowywać na najszybszym dostępnym dysku. Self-hosting Immich jako zamiennik Google Photos zawiera informacje o doborze zasobów.
- PostgreSQL lub MySQL. Plan Standard NVMe. Każdy commit kończy się operacją
fsync, która musi dotrzeć do trwałego nośnika przed zakończeniem transakcji, więc opóźnienie commitu jest równe opóźnieniu dysku, a wyszukiwanie w indeksie to losowy odczyt 8 kB, czyli operacja, w której dyski talerzowe radzą sobie najgorzej. - Aplikacja webowa, API lub panel sterowania. Plan Standard. Wymagają one rdzeni i przewidywalnych opóźnień, rzadko potrzebując więcej niż 100 GB przestrzeni.
- Cache CI lub magazyn artefaktów. Zależy od rozmiaru plików. Duże archiwa tarball przesyłają się z planu Storage z pełną prędkością sieci. Cache składający się z setek tysięcy małych plików, pobieranych równolegle przez kilka runnerów, jest w rzeczywistości operacjami losowego IO i może nie spełnić oczekiwań pod względem wydajności.
Jak wyglądają skutki błędnej konfiguracji
Awaria nigdy nie następuje natychmiast. Baza danych na wolnym nośniku talerzowym działa poprawnie przy jednym użytkowniku, ale załamuje się przy dziesięciu. Zapytania, które wcześniej trafiały do pamięci RAM, zaczynają obciążać dysk, a każde z nich kosztuje teraz milisekundy zamiast mikrosekund. Średnie obciążenie systemu rośnie, podczas gdy top wskazuje, że procesor pozostaje w większości bezczynny przy wysokiej wartości %wa, co oznacza, że procesy są blokowane w oczekiwaniu na dysk, zamiast wykonywać obliczenia. iostat -x 1 pokazuje %util na poziomie bliskim 100.
PostgreSQL informuje o tym wprost w swoim dzienniku, ponieważ log_checkpoints jest domyślnie włączone od wersji 15:
LOG: checkpoint complete: wrote 8241 buffers (2.5%); ... write=112.402 s, sync=9.318 s, total=121.914 sWartość sync= jest kluczowa. Określa ona czas, przez który punkt kontrolny (checkpoint) oczekiwał na odpowiedź fsync, więc wynik podany w sekundach oznacza, że dysk nie jest w stanie przyjmować zapisów tak szybko, jak generuje je baza danych. Połączenia klientów zawieszają się w tym czasie, nawet jeśli samo zapytanie jest mało kosztowne. Rozwiązaniem nie jest zmiana konfiguracji. Należy przenieść katalog danych na nośnik NVMe, a dotychczasowy plan przechowywania wykorzystać zgodnie z jego przeznaczeniem, czyli do składowania kopii zapasowych tej bazy danych.
FAQ
Czy storage VPS jest wolniejszy od zwykłego VPS?
W przypadku losowych operacji odczytu i zapisu – tak, znacząco. Plan oparty na dyskach talerzowych obsługuje kilkaset małych, losowych żądań na sekundę przy czasie dostępu około 8 ms, podczas gdy plan NVMe obsługuje dziesiątki tysięcy żądań w czasie znacznie poniżej 1 ms. W przypadku transferów sekwencyjnych różnica jest mniejsza, ponieważ macierz dyskowa nadal osiąga przepustowość 150 MB/s lub więcej, co pozwala w pełni wysycić port 1 Gbit/s. Przed podjęciem decyzji warto wykonać własne pomiary za pomocą fio --rw=randread --bs=4k --direct=1.
Czy mogę uruchomić PostgreSQL na storage VPS?
Można go uruchomić i będzie działał, dopóki zbiór roboczy mieści się w pamięci RAM. Po przekroczeniu tego limitu każdy commit oczekuje na fsync na wolnym dysku, co Postgres rejestruje jako wartość sync= wyrażoną w sekundach wewnątrz checkpoint complete, podczas gdy iostat -x 1 wykazuje %util bliskie 100 przy wysokim w_await. Standardową praktyką jest użycie małego VPS z NVMe dla bazy danych oraz storage VPS jako miejsca docelowego dla jej zrzutów.
Czy VDS oznacza dedykowany sprzęt?
Nie zawsze. Termin VDS nie posiada ustandaryzowanego znaczenia. Niektórzy dostawcy używają go w odniesieniu do przypisanych rdzeni CPU, inni dla pełnej wirtualizacji KVM w przeciwieństwie do kontenerów współdzielących jądro, a jeszcze inni traktują to wyłącznie jako nazwę marketingową. Uruchom systemd-detect-virt, aby sprawdzić, czy korzystasz z kvm czy lxc, oraz wykonaj vmstat 1 5 i obserwuj kolumnę st, aby sprawdzić, czy inni użytkownicy nie obciążają Twoich cykli procesora.
Jak sprawdzić, czy dysk VPS to rzeczywiście NVMe?
Nie należy ufać lsblk -d -o NAME,ROTA,MODEL, ponieważ dysk virtio zazwyczaj raportuje ROTA=0 oraz pusty ciąg modelu niezależnie od fizycznego sprzętu. Uruchom 30-sekundowy test losowego odczytu fio za pomocą --direct=1 i sprawdź wartość IOPS oraz 99. percentyl opóźnienia. Setki IOPS przy dwucyfrowych wartościach opóźnienia w milisekundach oznaczają macierz talerzową. Dziesiątki tysięcy IOPS przy opóźnieniu poniżej jednej milisekundy oznaczają pamięć flash.