Ano ang SSD VPS at Bakit Mas Mabilis ang Storage?
Alamin kung ano ang SSD VPS, paano naiiba ang flash sa umiikot na disk, at bakit mahalaga ang IOPS at low latency bago bumili ng hosting plan.
Ano ang SSD VPS?
Ang SSD VPS ay isang virtual private server na gumagamit ng flash memory para sa disk sa halip na umiikot na hard disk. Ang SSD ay nangangahulugang solid state drive: storage na binubuo ng NAND flash chips at walang gumagalaw na bahagi sa loob. Ang VPS ay nangangahulugang virtual private server: isang hiwalay na bahagi ng isang physical host machine na nagpapatakbo ng sarili nitong operating system at ibinebenta sa iyo na para bang isang buong server. Kapag pinagsama ang dalawa, iisa ang ipinapangako ng label. Kapag nagbabasa ang iyong server ng data block, walang mechanical na bahaging kailangang gumalaw muna.
Iyan ang buong depinisyon. Ang lahat sa ibaba ay tungkol sa hindi sinasabi ng label, dahil kakaunti lamang ang ipinahihiwatig ng mga salitang "SSD hosting" sa isang pricing page tungkol sa storage array na ginagamit nito.
Kung inaalam mo pa kung paano naiiba ang VPS sa isang karaniwang virtual machine, ang pagkakaiba ng VPS, VM at VPC ang mas angkop na basahin muna.
Bakit ina-advertise ng mga host ang bilis ng storage sa halip na laki nito
Naglilista ang isang plan page ng CPU cores, memory, disk size at bandwidth, at pagkatapos ay nagdaragdag ng isang salita tungkol sa disk na hindi naman sukat. Ginagawa ito ng mga host dahil matagal nang hindi ang capacity ang pinakamahalagang numero tungkol sa storage. Ang dalawang numerong tumutukoy sa magiging bilis ng server ay IOPS (input/output operations per second) at latency (kung gaano katagal bago bumalik ang isang operation).
Ang mekanikal na pagkakaiba ang dahilan. Nag-iimbak ang hard disk ng data sa umiikot na platters at binabasa ito gamit ang head sa isang gumagalaw na arm. Para maabot ang isang block sa ibang bahagi ng platter, kailangang mag-seek ang arm, at pagkatapos ay kailangang umikot ang disk hanggang mapunta ang tamang sector sa ilalim ng head. Sa 7200 revolutions per minute, ang kalahating ikot ay karaniwang humigit-kumulang 4 ms, at nagdaragdag ang seek ng ilan pang millisecond. Walang arm o platter ang flash, kaya electrical lookup ang isang read at bumabalik ito sa loob ng sampu-sampung microsecond.
The data behind this chart
[
{
"device": "7200 rpm hard disk",
"random_read_iops": "125",
"read_latency_ms": 8
},
{
"device": "SATA SSD",
"random_read_iops": "90,000",
"read_latency_ms": 0.15
},
{
"device": "NVMe SSD",
"random_read_iops": "600,000",
"read_latency_ms": 0.08
}
]Ang isang 7200 rpm hard disk ay may rating na humigit-kumulang 125 random 4k reads bawat segundo, at tumatagal nang humigit-kumulang 8 ms bago bumalik ang bawat read. Ang isang NVMe drive ay may rating na malapit sa 600,000 ng parehong mga read, na tumatagal nang humigit-kumulang 0.08 ms bawat isa. Ang SATA SSD na nasa pagitan ng mga ito ay may rating na malapit sa 90,000. Ituring ang mga ito bilang orders of magnitude, hindi bilang porsiyento ng improvement.
May dalawang babala tungkol sa data na ito. Mga published specification ito para sa buong drives ng bawat class, kaya mga manufacturer sheet figure ang mga ito at hindi mga sukat mula sa isang VPS. Hindi ka kailanman makakakuha ng buong drive: ang volume mo ay bahagi ng isang device o bahagi ng isang array, at may iba pang customer sa katabing bahagi ng parehong hardware.
Magkaibang tanong ang sinasagot ng dalawang column, kaya basahin ang mga ito nang magkasama. Ang latency ay kung gaano katagal kang naghihintay para sa isang operation. Ang IOPS ay kung ilang operation ang kayang iproseso ng drive nang sabay-sabay. Nakakamit ng flash ang mataas nitong IOPS figures sa pamamagitan ng parallelism, dahil maraming flash chip ang sumasagot sa maraming request nang sabay-sabay habang pinananatiling abala ng deep queue ang mga ito. Hindi kailanman makikita ng isang single-threaded program na nag-iisyu ng isang read, naghihintay dito, at saka nag-iisyu ng kasunod na read ang pinakamataas na value sa chart na iyon. Ang latency column ang makikita nito.
SSD, NVMe, SATA at PCIe: apat na salita sa apat na magkaibang layer
Nalilito ang mga buyer sa mga salitang ito dahil bawat isa ay naglalarawan ng ibang bahagi ng system.
- Ang SSD ay ang storage medium. Ibig sabihin, nasa NAND flash chips ang data, hindi sa mga magnetic platter.
- Ang SATA ay isang interface na idinisenyo noong panahon ng mechanical disk. Umaabot ito sa 6 Gbit/s, o humigit-kumulang 550 MB/s na aktuwal na throughput. Ang command queue nito ay may kapasidad na 32 kasalukuyang command.
- Ang NVMe (non-volatile memory express) ay isang protocol na partikular na ginawa para sa flash. Sinusuportahan nito ang maraming queue na may tig-libong command. Dahil dito, maaaring sabay na makipag-ugnayan ang ilang CPU core sa drive nang hindi gumagamit ng iisang makitid na queue.
- Ang PCIe (peripheral component interconnect express) ay ang bus na ginagamit ng NVMe. Ito rin ang uri ng lane na kinakabitan ng graphics card.
Kaya parehong nag-iimbak ng data sa flash ang SATA SSD at NVMe SSD. Magkaiba ang interface na ginagamit nila. Mas mabilis pa rin nang malaki ang SATA SSD kaysa sa anumang hard disk. Ngunit nililimitahan ng 32-command queue nito ang dami ng parallel na work na kaya nitong iproseso. Ang parallel na work ang pangunahing lakas ng flash. Nakadepende sa workload mo kung alin ang sulit bilhin. Tinutalakay nang maayos ng desisyon sa pagitan ng NVMe at SATA SSD ang pagkakaibang ito.
Lokal na flash o network attached storage?
Dalawang magkaibang setup ang ibinibigay sa ilalim ng parehong termino.
Lokal na storage ay nangangahulugang nasa loob ng parehong physical host ng iyong VPS ang mga flash drive. Dumadaan ang request sa PCIe sa loob ng isang machine at agad na bumabalik. Dahil dito, nananatili sa sampu-sampung microsecond ang latency.
Network attached storage ay nangangahulugang nasa hiwalay na storage cluster ang iyong virtual disk, kadalasan ay Ceph o isang SAN (storage area network). Dumadaan sa network ang bawat read at write para maabot ito. Karaniwang tinatawag ito ng mga provider na "cloud block storage" o "elastic volumes". Totoong flash ang storage. Totoo rin ang network trip, at idinadagdag ito sa bawat operation. Kaya umaabot ang latency sa mataas na daan-daang microsecond o mababang millisecond sa halip na sampu-sampung microsecond.
Walang maling sagot sa dalawa. Nakakaligtas ang network storage kapag nasira ang isang host dahil hindi kailanman nasa host na iyon ang data. Maaaring simulan ng provider ang iyong server sa ibang hardware, at susunod dito ang disk. Mas mabilis ang lokal na NVMe at nakatali ito sa isang physical machine. Kaya kapag nagkaroon ng hardware failure, kailangan itong i-restore mula sa backup. Itanong kung alin ang ginagamit ng isang plan. Halos walang gumagawa nito.
Ano ang pagkakaiba sa aktuwal na server
Ang gawain ng server ay karaniwang binubuo ng maliliit at random na pagbasa at pagsulat, hindi ng mahahabang sequential transfer. Kaya ang bilang na MB/s sa marketing copy ang hindi gaanong kapaki-pakinabang na numero sa page.
- Mga database commit. Ang database na nangangako ng durability ay tumatawag sa
fsynckapag nag-commit ang isang transaction, pagkatapos ay naghihintay na kumpirmahin ng drive na tunay nang naka-store ang data. Sa hard disk, milliseconds ang tagal ng paghihintay na ito. Nililimitahan nito ang maliit na database sa mababang daan-daang commit bawat segundo. Sa flash, fraction ng isang millisecond lamang ang parehong paghihintay. Dito pinakamalaki ang agwat, PostgreSQL, MySQL, o SQLite bilang production database man ang ginagamit mo. - Mga package install. Ang
apt installay nag-u-unpack ng libo-libong maliliit na file at sini-sync ang mga ito sa disk habang nagpapatuloy. Halos wala sa gawaing ito ang sequential, kaya nalilimitahan ito ng IOPS. - Mga container image pull. Kumukuha ang
docker pullng mga compressed layer sa network, pagkatapos ay ine-extract ang mga ito sa libo-libong maliliit na file. Network-bound ang download. Disk-bound ang extraction, at sa mabagal na volume, ang extraction ang bahaging hinihintay mo. - Boot at reboot. Nagbabasa ang startup ng kernel at initramfs, pagkatapos ay ng daan-daang maliliit na unit file at shared library na nakakalat sa volume.
Wala sa mga ito ang malaking sequential read. Ang volume na may streaming speed na 500 MB/s ngunit 3,000 IOPS lamang ay mabagal pa rin sa aktuwal na paggamit habang nagsasagawa ng docker compose pull, dahil binibilang ang paghihintay bawat file, hindi bawat megabyte.
Bakit halos walang sinasabi ang “SSD cloud hosting” sa pricing page
Inilalarawan lamang ng termino ang medium. Wala itong sinasabi tungkol sa interface na ginagamit ng drive, o kung nasa parehong machine ang drive at ang iyong server. Wala rin itong sinasabi tungkol sa maximum na maaabot ng iyong plan.
Pinakamahalaga ang maximum na ito, pero ito ang pinakamadalang i-advertise. Nililimitahan ng mga provider ang IOPS at throughput sa bawat volume dahil maraming customer ang gumagamit ng isang host. Maaari ring maubusan ng resources ang iba kapag walang limitasyon ang isang katabing customer. Normal at tapat ang limitasyong ilang libong IOPS sa hardware na kayang umabot sa daan-daang libo. Gayunman, karaniwan itong hindi nakikita sa paglalarawan ng plan. Maaaring parehong “SSD” ang nakalagay sa dalawang plan, pero ang isa ay lokal na NVMe na walang per-volume cap, habang ang isa naman ay shared cluster volume na limitado sa 3,000 IOPS.
May dalawang anyo ang mga cap. Ang sustained cap ay nakapirming maximum na hindi nagbabago. Ang burst cap ay nagbibigay ng mababang baseline at credits na nagpapahintulot lumampas dito nang ilang sandali. Napupunan muli ang mga credit habang idle ang volume. Maaaring mahusay ang resulta ng burst cap sa limang minutong test, ngunit babalik ito sa baseline habang nag-i-import ng database o nagsasagawa ng malaking restore. Kung nagbanggit ang provider ng malaking numero, itanong kung gaano katagal mong maaaring panatilihin ang bilis na iyon.
Paano tingnan kung ano talaga ang ibinigay sa iyo ng iyong VPS
Mula sa loob ng guest, makikita mo lamang ang sinasabi ng hypervisor sa iyo.
lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotationalPalitan ang vda ng pangalan ng device na lsblk na naka-print para sa iyong disk. Binabasa ng ROTA at ng rotational file ang 0 kapag sinabi sa kernel na non-rotational ang device, at ang 1 kapag sinabi sa kernel ang kabaligtaran. Itinatakda ng virtual disk ang flag na iyon batay sa ina-advertise ng hypervisor, kaya inilalarawan nito ang virtual device at hindi ang pisikal na hardware sa ilalim nito. Karaniwang walang laman ang MODEL para sa virtio disk gaya ng vda, o naglalaman ito ng generic na string gaya ng QEMU HARDDISK sa emulated SATA controller. Hindi dapat makita ng mga guest ang array ng host, at hindi nila ito nakikita.
Kaya ituring ang flag bilang pahiwatig at sukatin ang iba pang katangian. Magpatakbo ng random 4k test gamit ang fio laban sa isang file sa volume, sa queue depth na aktuwal na ginagamit ng iyong application, at patakbuhin ito nang sapat na katagalan upang maubos ang anumang burst credit. Nasa Tamang pag-benchmark ng VPS ang mga fio command at karaniwang pagkakamaling nagbubunga ng mga numerong mas maganda kaysa sa aktuwal.
Tatlong tanong na dapat itanong sa provider bago bumili
- Local ba ang storage sa hypervisor, o naka-attach ito sa network? Itinatakda ng sagot ang pinakamababang latency na makukuha mo, at tinutukoy nito kung ano ang mangyayari sa iyong data kapag nag-fail ang isang physical host. Ang provider na malinaw sumagot dito ay pinag-isipan na ang usaping ito.
- Ano ang IOPS limit sa volume ko? Humingi ng numero. Ang “Unlimited” at “enterprise grade” ay hindi mga numero. Kung talagang walang cap, itanong kung ano ang pumipigil sa isang kapitbahay sa parehong host na gamitin ang buong array habang isinasagawa ang backup window nito.
- Sustained ba o burst ang limit na iyon? Kung burst ito, itanong ang baseline at kung gaano ito katagal. Ang baseline ang value na gagamitin ng nightly job mo, kaya iyon ang dapat pagbatayan sa pagpaplano.
Nauubos ba ang flash, at problema mo ba iyon?
Tumatanggap ang flash cells ng limitadong bilang ng write cycle, kaya naglalabas ang mga drive ng endurance rating sa TBW (terabytes written) o DWPD (drive writes per day). Pantay na ipinapamahagi ng drive ang mga write sa mga cell nito. Tinatawag itong wear levelling. Naglalaan din ito ng mga ekstrang block para palitan ang mga cell na pumalya. Sa isang VPS, problema ito ng provider. Minomonitor nila ang SMART counters sa sarili nilang mga drive at pinapalitan ang hardware bago maabot ang rating. Mas luma pa sa flash ang problema mo. Hindi backup ang drive. Hindi rin backup ang redundancy sa ilalim ng iyong volume, dahil kinokopya nito ang deletion nang kasingtapat ng pagkopya nito sa data.
Ang aktuwal na trade-off na ginagawa mo ay presyo bawat gigabyte. Mas mahal bawat gigabyte ang flash kaysa sa spinning disk, kaya karaniwang mas maliit ang capacity ng SSD plan kaysa sa hard disk plan sa parehong presyo. Kung kailangan mo ng malaking espasyo para sa media o archive, panatilihing maliit ang fast volume at ilagay ang maramihang data sa mas murang storage. Ito rin ang tamang setup para sa pagpapanatili ng mga backup sa labas ng server. Para sa posisyon ng storage sa kabuuang bill, hinahati ng aktuwal na halaga ng isang VPS ang mga item sa singil.
FAQ
Ang SSD VPS ba ay kapareho ng NVMe VPS?
Ang bawat NVMe VPS ay SSD VPS dahil flash ang mga NVMe drive. Hindi totoo ang kabaligtaran. Ang planong ina-advertise bilang “SSD” ay maaaring SATA SSD. Flash ito na gumagamit ng interface na idinisenyo para sa mga mechanical disk, na may 32 command queue at maximum na humigit-kumulang 550 MB/s. Pareho silang mas mabilis kaysa hard disk. Kung mahalaga sa iyong workload ang pagkakaiba ng bilis, tanungin ang provider kung alin ang ginagamit ng plan sa halip na umasa sa pangalan ng plan.
Pinapabilis ba ng SSD VPS ang website ko?
Pinapabilis nito ang disk operations lamang. Mas mabilis ang page na nagpapatakbo ng ilang database query sa bawat request dahil maliit at random I/O ang mga query at commit na iyon. Ang page na nagseserve mula sa memory o cache ay hindi dumadaan sa disk habang ipinapadala, kaya kaunti lang ang pagbabago sa bilis nito. Sukatin muna kung aling bahagi ng request ang mabagal bago gumastos sa storage para ayusin ito.
Paano ko malalaman kung SSD storage talaga ang ginagamit ng VPS ko?
Mula sa loob ng guest, hindi mo mabe-verify ang pisikal na hardware. Ipinapakita ng lsblk -d -o NAME,ROTA kung ano ang ina-advertise ng virtual device, at hypervisor ang nagtatakda ng value na iyon. Kaya ang 0 doon ay palatandaan lamang, hindi patunay. Ang praktikal na pagsusuri ay pagsukat: patakbuhin ang fio gamit ang random 4k read workload sa loob ng ilang minuto, at tingnan ang latency na iniulat nito. Ang single digit na millisecond sa random reads ay karaniwang tumutukoy sa spinning disk o congested network volume. Ang latency na sampu-sampung microsecond ay tumutukoy sa local flash.
Mas masama ba ang network attached SSD storage kaysa local NVMe?
Mas mabagal ito sa bawat operation at iba ang paraan ng pag-fail nito. Idinadagdag ang network round trip sa bawat read at write, kaya mas mataas ang latency kahit parehong flash ang mga ito. Bilang kapalit, hindi nakalagay ang data mo sa iisang pisikal na host. Kaya kapag nag-fail ang host, hindi nito kasama ang volume, at mas madali para sa provider ang snapshots at live migration. Piliin ang local flash para sa database na sensitibo sa latency. Piliin ang network storage kapag mas mahalaga ang kaligtasan ng volume kaysa microseconds.