SSD Nodes Learn RAM 8GB — $66/mwaka
Mwongozo Matt ConnorNa Matt Connor

SSD VPS ni nini? Hifadhi ya flash imeelezwa

Jifunze SSD VPS inavyotumia flash badala ya diski zinazozunguka, na kwa nini IOPS na latency ndogo ni muhimu kabla ya kununua. Uliza maswali 3.

SSD VPS ni nini?

SSD VPS ni seva binafsi pepe ambayo diski yake inatumia kumbukumbu ya flash badala ya diski kuu inayozunguka. SSD ni kifupi cha solid state drive: hifadhi iliyoundwa kwa chipsi za NAND flash, bila sehemu zinazosogea ndani yake. VPS ni kifupi cha virtual private server: sehemu moja iliyotengwa kwenye mashine halisi mwenyeji, inayoendesha mfumo wake wa uendeshaji na kuuzwa kwako kana kwamba ni seva nzima. Ukichanganya dhana hizi mbili, jina hilo linaahidi jambo moja. Seva yako inaposoma kizuizi cha data, hakuna sehemu ya kimakanika inayohitaji kusogea kwanza.

Huo ndio ufafanuzi wote. Maelezo yote hapa chini yanahusu mambo ambayo jina hilo halielezi, kwa sababu maneno "SSD hosting" kwenye ukurasa wa bei hayatoi taarifa nyingi kuhusu safu ya hifadhi iliyo nyuma yake.

Ikiwa bado unachunguza tofauti kati ya VPS na mashine pepe ya kawaida, tofauti kati ya VPS, VM na VPC ni ukurasa bora wa kusoma kwanza.

Kwa nini watoa huduma hutangaza kasi ya hifadhi badala ya ukubwa wa hifadhi

Ukurasa wa mpango huorodhesha cores za CPU, memory, ukubwa wa disk na bandwidth, kisha huongeza neno moja kuhusu disk ambalo si ukubwa kabisa. Watoa huduma hufanya hivyo kwa sababu capacity iliacha kuwa kipimo muhimu zaidi cha hifadhi miaka iliyopita. Vipimo viwili vinavyoamua jinsi server inavyofanya kazi ni IOPS (input/output operations per second) na latency (muda unaohitajika kwa operesheni moja kurudi).

Tofauti ya kimwili ndiyo sababu. Hard disk huhifadhi data kwenye platter zinazozunguka na huisoma kwa head iliyo kwenye mkono unaosogea. Ili kufikia block iliyo sehemu nyingine ya platter, mkono lazima utafute eneo hilo, kisha disk izunguke hadi sector sahihi ifike chini ya head. Kwa mizunguko 7200 kwa dakika, nusu ya mzunguko huchukua wastani wa takriban 4 ms, na utafutaji huongeza milisekunde kadhaa. Flash haina mkono wala platter, kwa hiyo usomaji ni utafutaji wa kielektroniki unaorudi ndani ya makumi ya microseconds.

ChartRandom 4k read, published device class specifications rather than VPS measurements
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
  }
]

Hard disk ya 7200 rpm imekadiriwa kufanya takriban 125 usomaji wa random wa 4k kwa sekunde, na kila usomaji huchukua takriban 8 ms kurudi. NVMe drive imekadiriwa kufikia karibu 600,000 ya usomaji huo, kwa takriban 0.08 ms kwa kila usomaji. SATA SSD iliyo kati yao imekadiriwa kufikia karibu 90,000. Chukulia hizi kama tofauti za mpangilio wa ukubwa, si kama asilimia ya ongezeko la utendaji.

Kuna maonyo mawili kuhusu data hiyo. Hizi ni specifications zilizochapishwa za drives kamili za kila class, kwa hiyo ni takwimu kutoka kwenye karatasi za mtengenezaji, si vipimo vilivyofanywa kwenye VPS. Pia hupati drive nzima kamwe: volume yako ni sehemu ya device moja au sehemu ya array, ikiwa kando ya wateja wengine kwenye hardware hiyo hiyo.

Columns hizo mbili pia hujibu maswali tofauti, kwa hiyo zisome pamoja. Latency ni muda unaosubiri kwa operesheni moja. IOPS ni idadi ya operesheni ambazo drive inaweza kushughulikia kwa wakati mmoja. Flash hufikia takwimu zake kubwa za IOPS kupitia parallelism, kwa sababu chips nyingi za flash hujibu requests nyingi kwa wakati mmoja huku queue ndefu ikiendelea kuziweka zikiwa na kazi. Programu ya thread moja inayotoa usomaji mmoja, kuusubiri, kisha kutoa unaofuata, haitaona kiwango cha juu kwenye chart hiyo. Itaona column ya latency badala yake.

SSD, NVMe, SATA na PCIe: maneno manne katika tabaka nne tofauti

Wanunuzi huchanganya maneno haya kwa sababu kila moja hueleza sehemu tofauti ya mfumo.

  • SSD ni kifaa cha kuhifadhia data. Inamaanisha data huhifadhiwa kwenye chipu za NAND flash badala ya sahani za sumaku.
  • SATA ni kiolesura kilichoundwa katika kipindi cha diski za kimakanika. Kasi yake ya juu ni 6 Gbit/s, ambayo ni takriban 550 MB/s ya uhamishaji halisi wa data, na foleni yake ya amri inaweza kushikilia amri 32 zinazosubiri.
  • NVMe (non-volatile memory express) ni itifaki iliyoundwa mahususi kwa flash. Inaauni foleni nyingi zenye maelfu ya amri kila moja, hivyo core kadhaa za CPU zinaweza kuwasiliana na kifaa kwa wakati mmoja bila kushiriki foleni moja nyembamba.
  • PCIe (peripheral component interconnect express) ni basi ambalo NVMe hutumia, likiwa na aina ileile ya njia ambazo kadi ya michoro huunganishwa nazo.

Kwa hiyo, SATA SSD na NVMe SSD zote huhifadhi data kwenye flash. Tofauti iko kwenye kiolesura wanachotumia kuwasiliana. SATA SSD bado ni ya haraka zaidi kuliko diski yoyote ngumu, lakini foleni hiyo ya amri 32 hupunguza kiasi cha kazi sambamba inayoweza kuwasilishwa, ilhali kazi sambamba ndiyo nguvu kuu ya flash. Kifaa kinachostahili kulipiwa kinategemea mzigo wako wa kazi, na uamuzi kati ya NVMe na SATA SSD unaeleza jambo hilo kwa kina.

Flash ya ndani au hifadhi iliyoambatishwa kwenye mtandao?

Mipangilio miwili tofauti sana huuzwa kwa kutumia neno moja.

Hifadhi ya ndani inamaanisha kuwa viendeshi vya flash viko ndani ya hosti ileile ya kimwili yenye VPS yako. Ombi hupitia PCIe ndani ya mashine moja na kurudi moja kwa moja. Hivyo, ucheleweshaji hubaki katika makumi ya mikrosekunde.

Hifadhi iliyoambatishwa kwenye mtandao inamaanisha kuwa diski yako pepe iko kwenye klasta tofauti ya hifadhi, mara nyingi Ceph au SAN (storage area network), na kila usomaji na uandishi hupitia mtandao ili kuifikia. Watoa huduma kwa kawaida huiita "cloud block storage" au "elastic volumes". Flash ni halisi. Safari ya mtandao pia ni halisi, na huongezwa kwenye kila operesheni moja. Kwa hiyo, ucheleweshaji huwa katika mamia ya juu ya mikrosekunde au milisekunde za chini, badala ya makumi ya mikrosekunde.

Hakuna mojawapo iliyo jibu lisilo sahihi. Hifadhi ya mtandao hustahimili kuharibika kwa hosti, kwa sababu data haikuwahi kuwa kwenye hosti hiyo: mtoa huduma anaweza kuanzisha server yako kwenye maunzi mengine, na diski huifuata. NVMe ya ndani ni ya haraka zaidi na imefungwa kwenye mashine moja ya kimwili. Kwa hiyo, hitilafu ya maunzi hapo inamaanisha kurejesha data kutoka kwenye nakala rudufu. Uliza mpango huo unatumia ipi. Karibu hakuna anayefanya hivyo.

Tofauti inavyoonekana kwenye seva halisi

Kazi za seva kwa kiasi kikubwa huhusisha kusoma na kuandika kwa nasibu kwa vipande vidogo, si uhamishaji mrefu wa mfululizo. Ndiyo maana kipimo cha MB/s katika maelezo ya matangazo ndicho namba isiyofaa zaidi kwenye ukurasa huo.

  • Kukamilisha miamala ya hifadhidata. Hifadhidata inayoahidi uimara huita fsync muamala unapokamilika, kisha husubiri diski ithibitishe kwamba data imehifadhiwa kweli. Kwenye diski kuu, kusubiri huko huchukua milisekunde, jambo linaloifanya hifadhidata ndogo ishikiliwe kwenye kiwango cha miamala mia chache kwa sekunde. Kwenye flash, kusubiri huko huko huchukua sehemu ya milisekunde. Hapa ndipo tofauti huwa kubwa zaidi, iwe unaendesha PostgreSQL, MySQL au SQLite kama hifadhidata ya uzalishaji.
  • Kusakinisha vifurushi. apt install hufungua maelfu ya faili ndogo na kuyasawazisha kwenye diski inapoendelea. Takriban hakuna sehemu ya kazi hiyo inayofanyika kwa mfululizo, kwa hiyo utendaji wake huamuliwa na IOPS.
  • Kupakua picha za kontena. docker pull hupakua tabaka zilizobanwa kupitia mtandao, kisha huzifungua katika maelfu ya faili ndogo. Upakuaji huamuliwa na mtandao. Ufunguaji huamuliwa na diski, na kwenye hifadhi yenye kasi ndogo, ufunguaji ndiyo sehemu unayosubiri.
  • Kuwasha na kuwasha upya. Uanzishaji husoma kernel na initramfs, kisha mamia ya faili ndogo za unit na maktaba zinazoshirikiwa zilizotawanyika kwenye hifadhi.

Hakuna kati ya kazi hizo inayohusisha usomaji mkubwa wa mfululizo. Hifadhi inayotiririsha 500 MB/s huku ikihudumia IOPS 3,000 pekee bado itaonekana kuwa ya polepole wakati wa docker compose pull, kwa sababu muda wa kusubiri huhesabiwa kwa kila faili, si kwa kila megabaiti.

Kwa nini "SSD cloud hosting" kwenye ukurasa wa bei hakukupi karibu taarifa yoyote

Neno hilo linaeleza aina ya kifaa cha kuhifadhi data, na linaishia hapo. Halielezi kiolesura ambacho hifadhi hiyo hutumia, wala kama hifadhi hiyo iko kwenye mashine moja na seva yako. Pia halielezi kiwango cha juu ambacho mpango wako unaruhusiwa kufikia.

Kiwango hicho cha juu ndicho muhimu zaidi, lakini ndicho kinachotangazwa kwa uchache zaidi. Watoa huduma huweka ukomo wa IOPS na throughput kwa kila volume, kwa sababu host moja huhudumia wateja wengi na jirani asiye na ukomo anaweza kuwanyima wengine rasilimali. Ukomo wa IOPS elfu chache kwenye maunzi yenye uwezo wa kufikia mamia ya maelfu ni jambo la kawaida na la wazi, lakini hauonekani katika maelezo ya mpango. Mipango miwili inaweza yote kutaja "SSD", huku mmoja ukiwa local NVMe bila ukomo wa kila volume na mwingine ukiwa shared cluster volume uliowekewa ukomo wa 3,000 IOPS.

Miamala ya ukomo hujitokeza katika aina mbili. Ukomo endelevu ni kiwango cha juu kisichobadilika. Ukomo wa burst hukupa kiwango cha msingi cha chini pamoja na credits zinazokuruhusu kukizidi kwa muda, na credits hizo hujazwa tena volume inapokuwa haitumiki. Ukomo wa burst unaweza kuonekana bora katika jaribio la dakika tano, kisha kushuka hadi kiwango cha msingi katikati ya uingizaji wa database au urejeshaji mkubwa. Mtoa huduma akitaja nambari kubwa, uliza unaruhusiwa kuidumisha kwa muda gani.

Jinsi ya kuangalia VPS yako imekupa nini hasa

Ukiwa ndani ya guest, unaweza kuona tu taarifa ambazo hypervisor inakupa.

lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotational

Badilisha vda kwa jina la kifaa lsblk lililoonyeshwa kwa diski yako. ROTA na faili ya rotational husoma 0 kernel imeambiwa kuwa kifaa hakizunguki, na 1 imeambiwa kinyume. Diski pepe huweka alama hiyo kulingana na kile hypervisor inachotangaza. Kwa hiyo, alama hiyo inaeleza kifaa pepe, si maunzi halisi yaliyo chini yake. MODEL huwa tupu kwa diski ya virtio kama vda, au huwa mfuatano wa jumla kama QEMU HARDDISK kwenye kidhibiti cha SATA kilichoigwa. Guests hawapaswi kuona array ya host, na hawaioni.

Kwa hiyo, ichukulie alama hiyo kama kidokezo na pima vipengele vingine. Endesha jaribio la nasibu la 4k kwa kutumia fio dhidi ya faili kwenye volume, kwa kina cha foleni ambacho programu yako hutumia kwa kweli. Liendeshe kwa muda wa kutosha kutumia salio lolote la burst. Kupima VPS ipasavyo kuna amri za fio na makosa ya kawaida yanayozalisha namba zinazoonekana nzuri kuliko uhalisia.

Maswali matatu ya kumuuliza mtoa huduma kabla ya kununua

  1. Hifadhi iko ndani ya hypervisor, au imeunganishwa kupitia mtandao? Jibu huweka kiwango cha chini cha ucheleweshaji wako, na huamua kitakachotokea kwa data yako seva halisi inaposhindwa. Mtoa huduma anayejibu hili kwa uwazi amelishughulikia suala hilo.
  2. Kikomo cha IOPS kwenye volume yangu ni kipi? Omba nambari. “Bila kikomo” na “ya kiwango cha biashara” si nambari. Ikiwa kwa kweli hakuna kikomo, uliza ni nini kinachomzuia mtumiaji mwingine kwenye host hiyo hiyo kutumia array nzima wakati wa kuhifadhi nakala.
  3. Je, kikomo hicho ni cha kudumu au cha burst? Ikiwa kuna burst, uliza baseline na muda wa burst. Baseline ndiyo thamani ambayo kazi yako ya kila usiku itatumia, kwa hiyo ndiyo ya kupanga kulingana nayo.

Je, flash huisha, na je, hilo ni tatizo lako?

Seli za flash zina idadi ndogo ya mizunguko ya kuandikwa. Kwa hiyo, hifadhi hutangaza ukadiriaji wa ustahimilivu kwa TBW (terabaiti zilizoandikwa) au DWPD (maandishi ya hifadhi kwa siku). Hifadhi husambaza maandishi kwa usawa kwenye seli zake. Mchakato huu huitwa wear levelling. Pia huhifadhi vizuizi vya ziada ili kuchukua nafasi ya seli zinazoharibika. Kwenye VPS, uchakavu ni jukumu la mtoa huduma. Mtoa huduma hufuatilia vihesabio vya SMART kwenye hifadhi zake na hubadilisha maunzi kabla ukadiriaji haujaisha. Tatizo lako ni la zamani kuliko flash. Hifadhi si nakala rudufu. Uwekaji wa redundancy chini ya volume yako pia si nakala rudufu, kwa sababu hunakili ufutaji kwa uaminifu sawa na inavyonakili data.

Ubadilishanaji unaoufanya kwa kweli ni wa bei kwa kila gigabaiti. Flash hugharimu zaidi kwa kila gigabaiti kuliko diski zinazozunguka. Kwa hiyo, mpango wa SSD kwa kawaida hutoa uwezo mdogo kuliko mpango wa hard disk kwa bei ileile. Ikiwa unahitaji nafasi kubwa kwa media au kumbukumbu, weka volume yenye kasi ikiwa ndogo na uweke nafasi kubwa mahali pa bei nafuu. Huu pia ndio mpangilio unaofaa kwa kuweka nakala rudufu nje ya server. Ili kuona jinsi hifadhi inavyoingia kwenye gharama nyingine za jumla, gharama halisi ya VPS inafafanua vipengele vya bili.

FAQ

Je, VPS yenye SSD ni kitu sawa na VPS yenye NVMe?

Kila VPS yenye NVMe ni VPS yenye SSD, kwa sababu diski za NVMe hutumia flash. Kinyume chake si kweli. Mpango uliotangazwa kuwa “SSD” unaweza kutumia SATA SSD, ambayo ni flash inayopitia kiolesura kilichoundwa kwa ajili ya diski za kimakanika, ikiwa na foleni ya amri 32 na kikomo cha karibu 550 MB/s. Zote mbili zina kasi kubwa zaidi kuliko diski kuu. Ikiwa tofauti hiyo ni muhimu kwa mzigo wako wa kazi, muulize mtoa huduma ni aina ipi inayotumiwa na mpango huo badala ya kukisia kutoka kwa jina la mpango.

Je, VPS yenye SSD huifanya tovuti yangu iwe na kasi zaidi?

Hufanya kazi za diski ziwe na kasi zaidi, na kazi za diski pekee. Ukurasa unaoendesha maswali kadhaa ya hifadhidata kwa kila ombi huwa na kasi zaidi, kwa sababu maswali hayo na commits zake ni shughuli ndogo za I/O za nasibu. Ukurasa unaotolewa kutoka kwenye kumbukumbu au cache haugusi diski wakati wa kutumwa, kwa hiyo kasi yake hubadilika kidogo sana. Pima ni sehemu gani ya ombi iliyo polepole kabla ya kulipia hifadhi ili kutatua tatizo hilo.

Ninawezaje kuangalia ikiwa VPS yangu kweli inatumia hifadhi ya SSD?

Kutoka ndani ya guest huwezi kuthibitisha maunzi halisi. lsblk -d -o NAME,ROTA huonyesha kile ambacho kifaa pepe kinatangaza, na hypervisor huamua thamani hiyo, kwa hiyo 0 hapo ni dalili tu, si uthibitisho. Ukaguzi wa vitendo ni kufanya kipimo: endesha fio kwa mzigo wa kusoma 4k wa nasibu kwa dakika kadhaa, kisha angalia muda wa kusubiri unaoripotiwa. Usomaji wa nasibu wa millisekunde moja hadi chache unaonyesha diski zinazozunguka au volume ya mtandao iliyojaa. Muda wa kusubiri wa makumi ya mikrosekunde unaonyesha flash ya ndani.

Je, hifadhi ya SSD iliyoambatishwa kupitia mtandao ni mbaya kuliko NVMe ya ndani?

Ni ya polepole zaidi kwa kila operesheni, na hushindwa kwa namna tofauti. Muda wa mzunguko wa mtandao huongezwa kwenye kila usomaji na kila uandishi, kwa hiyo muda wa kusubiri huwa mkubwa zaidi ingawa zote zinatumia flash. Kwa upande mwingine, data yako haihifadhiwi kwenye host moja ya kimwili, hivyo hitilafu ya host moja haiondoi volume pamoja nayo, na snapshots na live migration huwa rahisi zaidi kwa mtoa huduma. Chagua flash ya ndani kwa hifadhidata inayohitaji muda mdogo wa kusubiri. Chagua hifadhi ya mtandao wakati kuendelea kuwepo kwa volume ni muhimu zaidi kuliko mikrosekunde.

#vps#ssd#nvme#storage#hosting-basics