SSD Nodes Learn 8GB RAM — సంవత్సరానికి $66

SSD VPS అంటే ఏమిటి? ఫ్లాష్ స్టోరేజ్ వివరణ

SSD VPSలో తిరిగే డిస్క్‌లకు బదులుగా ఫ్లాష్ స్టోరేజ్ ఉంటుంది. దాంతో IOPS, తక్కువ latency లభిస్తాయి. కొనుగోలు ముందు అడగాల్సిన 3 ప్రశ్నలను తెలుసుకోండి.

SSD VPS అంటే ఏమిటి?

SSD VPS అనేది తిరిగే హార్డ్ డిస్క్‌కు బదులుగా ఫ్లాష్ మెమరీతో పనిచేసే డిస్క్ కలిగిన వర్చువల్ ప్రైవేట్ సర్వర్. SSD అంటే solid state drive. ఇది NAND ఫ్లాష్ చిప్‌లతో నిర్మించిన నిల్వ పరికరం. ఇందులో కదిలే భాగాలు ఉండవు. VPS అంటే virtual private server. ఇది భౌతిక host machineలో వేరుచేయబడిన ఒక భాగం. ఇది తన స్వంత operating systemను అమలు చేస్తుంది. ఇది మీకు మొత్తం serverలాగా అందించబడుతుంది. ఈ రెండు పదాలను కలిపితే, ఆ పేరు ఒక విషయాన్ని సూచిస్తుంది. మీ server డేటా యొక్క ఒక blockను చదివేటప్పుడు, ముందుగా ఏ యాంత్రిక భాగమూ కదలాల్సిన అవసరం ఉండదు.

ఇదే పూర్తి నిర్వచనం. ఈ పేరులో చెప్పని విషయాల గురించి క్రింది భాగం వివరిస్తుంది. ఎందుకంటే pricing pageలోని "SSD hosting" అనే పదాలు, వాటి వెనుక ఉన్న storage array గురించి చాలా తక్కువ సమాచారాన్ని ఇస్తాయి.

VPS సాధారణ virtual machineకి ఎలా భిన్నంగా ఉంటుందో ఇంకా తెలుసుకుంటున్నట్లయితే, VPS, VM మరియు VPC మధ్య తేడా గురించి ఉన్న పేజీని ముందుగా చదవడం మంచిది.

హోస్ట్‌లు నిల్వ పరిమాణం బదులుగా నిల్వ వేగాన్ని ఎందుకు ప్రకటిస్తాయి

ఒక ప్లాన్ పేజీలో CPU cores, memory, disk size మరియు bandwidth వివరాలను ఇచ్చి, disk గురించి size కాని మరో పదాన్ని కూడా చేర్చుతారు. నిల్వకు సంబంధించిన capacity చాలా సంవత్సరాల క్రితమే ఆసక్తికరమైన సంఖ్యగా ఉండటం ఆగిపోయింది. Server పనితీరు ఎలా అనిపిస్తుందో నిర్ణయించే రెండు సంఖ్యలు IOPS (input/output operations per second) మరియు latency (ఒక operation పూర్తయ్యే వరకు పట్టే సమయం).

దీనికి కారణం యాంత్రిక నిర్మాణంలోని తేడా. Hard disk డేటాను తిరిగే platters పై ఉంచి, కదిలే arm పై ఉన్న head తో చదువుతుంది. Platter పై వేరే చోటున్న block ను చేరుకోవాలంటే arm seek చేయాలి. ఆ తర్వాత సరైన sector head కిందకు వచ్చే వరకు disk తిరగాలి. 7200 revolutions per minute వద్ద, సగం చుట్టు తిరగడానికి సగటున 4 ms పడుతుంది. Seek కు మరికొన్ని ms పడతాయి. Flash లో arm లేదా platter ఉండదు. అందువల్ల read అనేది electrical lookup ద్వారా జరుగుతుంది మరియు పదుల 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
  }
]

7200 rpm hard disk ప్రతి సెకనుకు సుమారు 125 random 4k reads చేయగలదని రేట్ చేయబడుతుంది. వాటిలో ఒక read తిరిగి రావడానికి సుమారు 8 ms పడుతుంది. NVMe drive అదే రకమైన reads ను సుమారు 600,000 చేయగలదని, ఒక్కో read కు సుమారు 0.08 ms పడుతుందని రేట్ చేయబడుతుంది. ఈ రెండింటి మధ్యలో ఉన్న SATA SSD సుమారు 90,000 వద్ద రేట్ చేయబడుతుంది. ఈ సంఖ్యలను శాతం మెరుగుదలగా కాకుండా, పరిమాణ స్థాయిలుగా చూడండి.

ఈ డేటాకు సంబంధించి రెండు హెచ్చరికలు ఉన్నాయి. ఇవి ప్రతి తరగతికి చెందిన పూర్తిస్థాయి drives కోసం ప్రచురించిన specifications. అందువల్ల ఇవి manufacturer sheet లోని సంఖ్యలు మాత్రమే; VPS పై కొలిచినవి కావు. మీకు ఎప్పుడూ పూర్తిస్థాయి drive లభించదు. మీ volume ఒక device లోని భాగం లేదా ఒక array లోని భాగం మాత్రమే. అదే hardware పై ఇతర customers కూడా ఉంటారు.

ఈ రెండు columns వేర్వేరు ప్రశ్నలకు సమాధానం ఇస్తాయి. అందువల్ల వాటిని కలిసి చూడండి. Latency అంటే ఒక operation కోసం మీరు ఎంతసేపు వేచి ఉండాలో. IOPS అంటే drive ఒకేసారి ఎన్ని operations పై పని చేయగలదో. Flash అధిక IOPS సంఖ్యలను parallelism ద్వారా సాధిస్తుంది. అనేక flash chips ఒకేసారి అనేక requests కు సమాధానం ఇస్తాయి. Deep queue వాటిని నిరంతరం busy గా ఉంచుతుంది. ఒకే thread ఉన్న program ఒక read పంపి, దాని కోసం వేచి, తర్వాతి read పంపితే, అది chart లోని గరిష్ఠ విలువను ఎప్పటికీ చూడదు. అది latency column లోని విలువను మాత్రమే చూస్తుంది.

SSD, NVMe, SATA మరియు PCIe: నాలుగు వేర్వేరు పొరలను సూచించే నాలుగు పదాలు

ప్రతి పదం సిస్టమ్‌లోని వేర్వేరు భాగాన్ని సూచించడం వల్ల కొనుగోలుదారులు ఈ పదాలను తరచుగా గందరగోళానికి గురిచేస్తారు.

  • SSD అనేది నిల్వ మాధ్యమం. డేటా magnetic plattersపై కాకుండా NAND flash chipsపై నిల్వ ఉంటుందని దీని అర్థం.
  • SATA అనేది mechanical disks కాలంలో రూపొందించిన interface. ఇది గరిష్ఠంగా 6 Gbit/s వేగాన్ని అందిస్తుంది. వాస్తవంగా లభించే throughput సుమారు 550 MB/s ఉంటుంది. దీని command queueలో ఒకేసారి 32 commands ఉంటాయి.
  • NVMe (non-volatile memory express) అనేది flash కోసం ప్రత్యేకంగా రూపొందించిన protocol. ఇది ఒక్కో queueలో వేలాది commands ఉండే అనేక queuesకు మద్దతు ఇస్తుంది. అందువల్ల అనేక CPU cores ఒకే సమయంలో driveతో సంప్రదించగలవు. అవి ఒకే పరిమిత queueను పంచుకోవాల్సిన అవసరం ఉండదు.
  • PCIe (peripheral component interconnect express) అనేది NVMe పనిచేసే bus. Graphics cardను అనుసంధానించే lanes కూడా ఇదే రకానికి చెందినవి.

అందువల్ల SATA SSD మరియు NVMe SSD రెండూ flashలో డేటాను నిల్వ చేస్తాయి. అవి ఉపయోగించే interfaceలో తేడా ఉంటుంది. SATA SSD ఏ hard diskకన్నా చాలా వేగంగా ఉంటుంది. అయితే దాని 32-command queue అది సమాంతరంగా నిర్వహించగల పనిని పరిమితం చేస్తుంది. Flashకు అనుకూలమైనది అదే సమాంతర పని. దేనికి చెల్లించడం ప్రయోజనకరమో మీ workloadపై ఆధారపడి ఉంటుంది. NVMe మరియు SATA SSD మధ్య నిర్ణయం ఈ విషయాన్ని సరిగ్గా వివరిస్తుంది.

స్థానిక flash లేదా network attached storage?

ఒకే పదం కింద రెండు పూర్తిగా భిన్నమైన అమరికలను విక్రయిస్తారు.

స్థానిక storage అంటే flash drives మీ VPS ఉన్న అదే physical host లోపల ఉంటాయి. ఒక request ఒకే machine లోని PCIe మీదుగా ప్రయాణించి వెంటనే తిరిగి వస్తుంది. అందువల్ల latency పదుల microseconds పరిధిలో ఉంటుంది.

network attached storage అంటే మీ virtual disk ఒక ప్రత్యేక storage cluster లో ఉంటుంది. అది సాధారణంగా Ceph లేదా SAN (storage area network) అయి ఉంటుంది. ప్రతి read మరియు write దాన్ని చేరుకోవడానికి network మీదుగా ప్రయాణించాలి. Providers దీన్ని సాధారణంగా "cloud block storage" లేదా "elastic volumes" అని పిలుస్తారు. Flash నిజంగానే ఉంటుంది. Network ప్రయాణం కూడా నిజమే. అది ప్రతి ఒక్క operation కు జత అవుతుంది. అందువల్ల latency పదుల microseconds బదులుగా అధిక వందల microseconds లేదా తక్కువ milliseconds పరిధికి చేరుతుంది.

ఇవేవీ తప్పు ఎంపికలు కావు. Network storage ఒక host విఫలమైనా డేటాను కాపాడుతుంది. డేటా ఆ host లో ఎప్పుడూ ఉండదు కాబట్టి provider మీ server ను ఇతర hardware పై ప్రారంభించగలరు, అలాగే disk కూడా దానిని అనుసరిస్తుంది. Local NVMe వేగంగా ఉంటుంది, కానీ అది ఒక physical machine కు పరిమితమై ఉంటుంది. అందువల్ల ఆ machine లో hardware failure వస్తే backup నుండి restore చేయాలి. ఒక plan ఏ విధానాన్ని ఉపయోగిస్తుందో అడగండి. దాదాపు ఎవరూ అడగరు.

నిజమైన సర్వర్‌లో తేడా ఎలా కనిపిస్తుంది

సర్వర్ పనిలో ఎక్కువగా చిన్న, యాదృచ్ఛిక reads మరియు writes ఉంటాయి. దీర్ఘమైన sequential transfers సాధారణంగా ఉండవు. అందుకే marketing copyలోని MB/s విలువ పేజీలోని అత్యల్ప ఉపయోగకరమైన సంఖ్య.

  • Database commits. Durabilityకి హామీ ఇచ్చే database, transaction commit అయినప్పుడు fsyncను పిలుస్తుంది. ఆ తర్వాత data నిజంగా నిల్వైందని drive నిర్ధారించే వరకు వేచి ఉంటుంది. Hard diskలో ఈ వేచి ఉండే సమయం millisecondsలో ఉంటుంది. అందువల్ల చిన్న databaseలో commits per second సంఖ్య low hundredsకు పరిమితమవుతుంది. Flashలో ఇదే వేచి ఉండే సమయం millisecondలోని ఒక భాగం మాత్రమే. PostgreSQL, MySQL లేదా production databaseగా SQLiteను ఉపయోగించినా ఈ తేడా అత్యధికంగా కనిపిస్తుంది.
  • Package installs. apt install వేలాది చిన్న filesను unpack చేసి, ప్రక్రియ కొనసాగుతున్నప్పుడు వాటిని diskకు sync చేస్తుంది. ఈ పనిలో దాదాపు ఏదీ sequential కాదు. అందువల్ల ఇది IOPSపై ఆధారపడి ఉంటుంది.
  • Container image pulls. docker pull compressed layersను network ద్వారా fetch చేసి, వాటిని వేలాది చిన్న filesగా extract చేస్తుంది. Download networkపై ఆధారపడి ఉంటుంది. Extraction diskపై ఆధారపడి ఉంటుంది. Slow volumeలో మీరు వేచి ఉండే ప్రధాన భాగం extractionే.
  • Boot and reboot. Startup సమయంలో kernel మరియు initramfsను చదివిన తర్వాత, volume అంతటా విస్తరించి ఉన్న వందలాది చిన్న unit files మరియు shared librariesను చదువుతుంది.

ఇవేవీ పెద్ద sequential readలు కావు. 3,000 IOPS మాత్రమే అందిస్తూ 500 MB/s వేగంతో stream చేసే volume, docker compose pull సమయంలో అయినా slowగానే అనిపిస్తుంది. ఎందుకంటే వేచి ఉండే సమయం megabyteకు కాకుండా ప్రతి fileకు లెక్కించబడుతుంది.

ధరల పేజీలో "SSD cloud hosting" అని ఉండటం వల్ల దాదాపు ఏమీ తెలియదు

ఈ పదం కేవలం నిల్వ మాధ్యమాన్ని మాత్రమే వివరిస్తుంది. ఆ డ్రైవ్ ఏ ఇంటర్‌ఫేస్‌ను ఉపయోగిస్తుందో ఇది చెప్పదు. అలాగే ఆ డ్రైవ్ మీ server ఉన్న అదే machineలో ఉందో లేదో కూడా చెప్పదు. మీ planకు అనుమతించిన గరిష్ఠ పరిమితి ఎంత అనేది కూడా ఇది చెప్పదు.

ఆ గరిష్ఠ పరిమితే అత్యంత ముఖ్యమైనది. కానీ providers దానిని అతి తక్కువగా వెల్లడిస్తారు. ఒక hostలో అనేక customers ఉండటం వల్ల providers ప్రతి volumeకు IOPS మరియు throughput పరిమితులను విధిస్తారు. పరిమితి లేని ఒక పొరుగు workload మిగిలిన వాటి వనరులను పూర్తిగా వినియోగించకుండా ఉండటానికి ఇది అవసరం. వందల వేల IOPS సామర్థ్యం ఉన్న hardwareపై కొన్ని వేల IOPS పరిమితి ఉండటం సాధారణం మరియు పారదర్శకమైనదే. కానీ plan వివరణలో అది కనిపించదు. రెండు plansలో "SSD" అని ఉన్నా, ఒకటి ప్రతి volumeకు పరిమితి లేని local NVMe కావచ్చు. మరొకటి 3,000 IOPSకు పరిమితమైన shared cluster volume కావచ్చు.

పరిమితులు రెండు రకాలుగా ఉంటాయి. Sustained cap ఎప్పటికీ మారని స్థిరమైన గరిష్ఠ పరిమితి. Burst capలో తక్కువ baselineతో పాటు కొంతకాలం ఆ పరిమితిని మించేందుకు credits ఉంటాయి. volume idleగా ఉన్నప్పుడు ఆ credits మళ్లీ నిండుతాయి. ఐదు నిమిషాల testలో burst cap చాలా మంచిగా కనిపించవచ్చు. కానీ database import లేదా పెద్ద restore జరుగుతున్న మధ్యలో అది baseline స్థాయికి పడిపోవచ్చు. Provider పెద్ద సంఖ్యను పేర్కొంటే, దాన్ని ఎంతసేపు కొనసాగించడానికి అనుమతి ఉందో అడగండి.

మీ VPS నిజంగా ఏమి అందించిందో ఎలా తనిఖీ చేయాలి

Guest లోపల నుండి hypervisor తెలియజేసిన సమాచారాన్ని మాత్రమే చూడగలరు.

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

మీ disk కోసం ముద్రించబడిన device name lsblk తో vda ను భర్తీ చేయండి. Kernel కి device non-rotational అని తెలియజేసినప్పుడు ROTA మరియు rotational file 0 ను చదువుతుంది. దీనికి విరుద్ధంగా తెలియజేసినప్పుడు అది 1 ను చదువుతుంది. Hypervisor ప్రకటించిన సమాచారాన్ని బట్టి virtual disk ఆ flag ను సెట్ చేస్తుంది. అందువల్ల అది క్రింద ఉన్న physical hardware ను కాకుండా virtual device ను వివరిస్తుంది. MODEL సాధారణంగా vda వంటి virtio disk కు ఖాళీగా ఉంటుంది. Emulated SATA controller లో ఇది సాధారణంగా QEMU HARDDISK వంటి generic string గా ఉంటుంది. Guests కు host యొక్క array కనిపించదు. వాస్తవానికి అవి దాన్ని చూడలేవు.

కాబట్టి ఆ flag ను ఒక సూచనగా మాత్రమే పరిగణించి, మిగతా అంశాలను కొలవండి. Volume లోని file పై fio తో random 4k test ను అమలు చేయండి. మీ application వాస్తవంగా ఉపయోగించే queue depth ను ఉపయోగించండి. Burst credit పూర్తిగా ఉపయోగించబడేంత కాలం test ను అమలు చేయండి. VPS ను సరిగ్గా benchmark చేయడం లో fio commands మరియు ఆకర్షణీయంగా కనిపించే సంఖ్యలను ఇచ్చే సాధారణ తప్పులు ఉన్నాయి.

కొనుగోలు చేయడానికి ముందు ప్రొవైడర్‌ను అడగాల్సిన మూడు ప్రశ్నలు

  1. Storage hypervisor‌కు local‌గా ఉందా, లేక network‌కు attached‌గా ఉందా? ఈ సమాధానం మీ latencyకు కనిష్ఠ స్థాయిని నిర్ణయిస్తుంది. Physical host విఫలమైనప్పుడు మీ dataకు ఏమి జరుగుతుందో కూడా ఇది నిర్ణయిస్తుంది. దీనికి స్పష్టంగా సమాధానం ఇచ్చే provider ఈ విషయాన్ని పరిగణనలోకి తీసుకున్నాడు.
  2. నా volumeపై IOPS limit ఎంత? ఒక సంఖ్యను అడగండి. "Unlimited" మరియు "enterprise grade" సంఖ్యలు కావు. నిజంగా cap లేకపోతే, అదే hostలోని neighbour తమ backup windowలో మొత్తం arrayను ఉపయోగించకుండా ఏది నిరోధిస్తుందో అడగండి.
  3. ఆ limit sustained‌దా, లేక burst‌దా? Burst ఉంటే, baseline మరియు burst వ్యవధిని అడగండి. మీ nightly job పనిచేసే ప్రధాన పరిమితి baseline. అందువల్ల planning చేయాల్సిన సంఖ్య అదే.

Flash అరిగిపోతుందా? అది మీ సమస్యేనా?

Flash cells పరిమిత సంఖ్యలో write cycles ను మాత్రమే స్వీకరిస్తాయి. అందువల్ల drives endurance rating ను TBW (terabytes written) లేదా DWPD (drive writes per day)లో ప్రకటిస్తాయి. Drive తన cells అంతటా writes ను సమానంగా పంచుతుంది. దీనిని wear levelling అంటారు. విఫలమయ్యే cells స్థానంలో ఉపయోగించడానికి ఇది spare blocks ను కూడా రిజర్వ్‌లో ఉంచుతుంది. VPSలో ఈ wear provider సమస్య. Provider తన drives లోని SMART counters ను పర్యవేక్షించి, rating పూర్తయ్యేలోపు hardware ను మారుస్తుంది. మీ సమస్య flash కంటే పాతది. Drive backup కాదు. మీ volume కింద redundancy ఉన్నా అది backup కాదు. ఎందుకంటే అది data ను copy చేసినంత నమ్మకంగా deletion ను కూడా copy చేస్తుంది.

మీరు వాస్తవంగా చేస్తున్న మార్పిడి gigabyte కు ధర. Spinning disks కంటే Flash ప్రతి gigabyte కు ఎక్కువ ఖర్చవుతుంది. అందువల్ల అదే ధరకు SSD plan సాధారణంగా hard disk plan కంటే తక్కువ capacity ను అందిస్తుంది. Media లేదా archives కోసం మీకు ఎక్కువ bulk space అవసరమైతే, fast volume ను చిన్నదిగా ఉంచి bulk data ను తక్కువ ఖర్చు ఉన్న మరొక చోట ఉంచండి. ఇది backups ను server వెలుపల ఉంచడానికి సరైన విధానం కూడా. Storage మొత్తం bill లో ఎలా భాగమవుతుందో తెలుసుకోవడానికి, VPS వాస్తవంగా ఎంత ఖర్చవుతుంది అనే విభాగం line items ను విడదీసి చూపిస్తుంది.

FAQ

SSD VPS అనేది NVMe VPSతో సమానమేనా?

ప్రతి NVMe VPS ఒక SSD VPS అవుతుంది, ఎందుకంటే NVMe డ్రైవ్‌లు flash ఆధారితమైనవి. దీనికి విరుద్ధం తప్పనిసరిగా నిజం కాదు. "SSD"గా ప్రకటించిన ప్లాన్ SATA SSD కావచ్చు. ఇది యాంత్రిక డిస్క్‌ల కోసం రూపొందించిన interface వెనుక పనిచేసే flash storage. దీనికి 32 commands queue మరియు సుమారు 550 MB/s పరిమితి ఉంటాయి. రెండూ hard disk కంటే చాలా వేగంగా ఉంటాయి. ఈ రెండింటి మధ్య తేడా మీ workloadకు ముఖ్యమైతే, ప్లాన్ పేరును చూసి ఊహించకుండా, ఆ ప్లాన్ ఏ storageను ఉపయోగిస్తుందో providerను అడగండి.

SSD VPS నా websiteను వేగంగా చేస్తుందా?

ఇది disk పనిని మాత్రమే వేగంగా చేస్తుంది. ప్రతి requestకు అనేక database queries అమలు చేసే page వేగంగా పనిచేస్తుంది, ఎందుకంటే ఆ queries మరియు వాటి commits చిన్న random I/O కార్యకలాపాలు. memory లేదా cache నుంచి అందించబడే page బయటకు పంపే సమయంలో diskను తాకదు. అందువల్ల దాని వేగంలో పెద్దగా మార్పు ఉండదు. storageను మార్చి సమస్యను పరిష్కరించడానికి ముందు, requestలో ఏ భాగం నెమ్మదిగా ఉందో కొలవండి.

నా VPS నిజంగా SSD storageను ఉపయోగిస్తుందో ఎలా తనిఖీ చేయగలను?

guestలోపల నుంచి physical hardwareను నిర్ధారించలేరు. lsblk -d -o NAME,ROTA virtual device ప్రకటించే వివరాలను చూపిస్తుంది. ఆ విలువను hypervisor నిర్ణయిస్తుంది. కాబట్టి అక్కడ కనిపించే 0 ఒక సూచన మాత్రమే, నిర్ధారణ కాదు. ఆచరణాత్మక తనిఖీగా, random 4k read workloadతో fioను కొన్ని నిమిషాలు అమలు చేసి, అది చూపించే latencyను పరిశీలించండి. ఒక అంకె millisecondల random reads కనిపిస్తే, అది spinning disks లేదా congestion ఉన్న network volumeను సూచిస్తుంది. పదుల microseconds కనిపిస్తే, అది local flashను సూచిస్తుంది.

Network attached SSD storage, local NVMe కంటే అధ్వాన్నమా?

ప్రతి operationకు ఇది నెమ్మదిగా ఉంటుంది, అలాగే వైఫల్య విధానం కూడా భిన్నంగా ఉంటుంది. ప్రతి read మరియు ప్రతి writeకు network round trip జతకావడం వల్ల, రెండూ flash అయినప్పటికీ latency ఎక్కువగా ఉంటుంది. ప్రతిగా, మీ data ఒకే physical hostలో ఉండదు. అందువల్ల host విఫలమైనా volume దానితో పాటు పనిచేయకుండా పోదు. అలాగే snapshots మరియు live migration providerకు సులభంగా ఉంటాయి. latency-sensitive database కోసం local flashను ఎంచుకోండి. microseconds కంటే volume నిలిచి ఉండటం ముఖ్యమైతే network storageను ఎంచుకోండి.

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