NVMeలో RAID శ్రేణులు

NVMeలో RAID శ్రేణులు
ఈ వ్యాసంలో మేము RAID శ్రేణులను నిర్వహించడానికి వివిధ మార్గాల గురించి మాట్లాడుతాము మరియు NVMe మద్దతుతో మొదటి హార్డ్‌వేర్ RAID కంట్రోలర్‌లలో ఒకదానిని కూడా చూపుతాము.

RAID సాంకేతికత యొక్క అన్ని రకాల అప్లికేషన్‌లు సర్వర్ విభాగంలో కనిపిస్తాయి. క్లయింట్ విభాగంలో, రెండు డిస్క్‌లలో సాఫ్ట్‌వేర్ RAID0 లేదా RAID1 మాత్రమే తరచుగా ఉపయోగించబడుతుంది.

ఈ కథనం RAID సాంకేతికత యొక్క సంక్షిప్త అవలోకనాన్ని అందిస్తుంది, మూడు వేర్వేరు సాధనాలను ఉపయోగించి RAID శ్రేణులను ఎలా సృష్టించాలి అనేదానిపై ఒక చిన్న ట్యుటోరియల్ మరియు ప్రతి పద్ధతిని ఉపయోగించి వర్చువల్ డిస్క్ పనితీరు యొక్క పోలిక.

RAID అంటే ఏమిటి?

వికీపీడియా RAID సాంకేతికత యొక్క సమగ్ర నిర్వచనాన్ని ఇస్తుంది:

RAID (Eng. స్వతంత్ర డిస్కుల పునరావృత శ్రేణి - స్వతంత్ర (స్వతంత్ర) డిస్క్‌ల యొక్క పునరావృత శ్రేణి - తప్పు సహనం మరియు పనితీరును పెంచడానికి అనేక భౌతిక డిస్క్ పరికరాలను లాజికల్ మాడ్యూల్‌గా కలపడానికి డేటా వర్చువలైజేషన్ టెక్నాలజీ.

డిస్క్ శ్రేణుల కాన్ఫిగరేషన్ మరియు ఉపయోగించిన సాంకేతికతలు ఎంచుకున్నదానిపై ఆధారపడి ఉంటాయి RAID స్థాయి. RAID స్థాయిలు స్పెసిఫికేషన్‌లో ప్రమాణీకరించబడ్డాయి సాధారణ RAID డిస్క్ డేటా ఫార్మాట్. ఇది అనేక RAID స్థాయిలను వివరిస్తుంది, అయితే అత్యంత సాధారణమైనవి RAID0, RAID1, RAID5 మరియు RAID6.

RAID0లేదా చారలు, అనేది రెండు లేదా అంతకంటే ఎక్కువ భౌతిక డ్రైవ్‌లను ఒక లాజికల్ డ్రైవ్‌లో మిళితం చేసే RAID స్థాయి. లాజికల్ డిస్క్ యొక్క వాల్యూమ్ శ్రేణిలో చేర్చబడిన భౌతిక డిస్క్‌ల వాల్యూమ్‌ల మొత్తానికి సమానం. ఈ RAID స్థాయిలో రిడెండెన్సీ లేదు, మరియు ఒక డ్రైవ్ యొక్క వైఫల్యం వర్చువల్ డిస్క్‌లోని మొత్తం డేటాను కోల్పోయేలా చేస్తుంది.

స్థాయి RAID1లేదా మిర్రర్, రెండు లేదా అంతకంటే ఎక్కువ డిస్క్‌లలో డేటా యొక్క ఒకే విధమైన కాపీలను సృష్టిస్తుంది. వర్చువల్ డిస్క్ యొక్క పరిమాణం భౌతిక డిస్క్‌ల కనీస పరిమాణాన్ని మించదు. RAID1 వర్చువల్ డిస్క్‌లోని డేటా శ్రేణి నుండి కనీసం ఒక ఫిజికల్ డిస్క్ పని చేస్తున్నంత వరకు అందుబాటులో ఉంటుంది. RAID1ని ఉపయోగించడం రిడెండెన్సీని జోడిస్తుంది, అయితే ఇది చాలా ఖరీదైన పరిష్కారం, ఎందుకంటే రెండు లేదా అంతకంటే ఎక్కువ డిస్కుల శ్రేణులలో ఒకదాని సామర్థ్యం మాత్రమే అందుబాటులో ఉంటుంది.

స్థాయి RAID5 అధిక ధరల సమస్యను పరిష్కరిస్తుంది. RAID5 స్థాయితో శ్రేణిని సృష్టించడానికి, మీకు కనీసం 3 డిస్క్‌లు అవసరం, మరియు శ్రేణి ఒక డిస్క్ వైఫల్యానికి నిరోధకతను కలిగి ఉంటుంది. RAID5లోని డేటా చెక్‌సమ్‌లతో బ్లాక్‌లలో నిల్వ చేయబడుతుంది. డేటా డిస్క్‌లు మరియు చెక్‌సమ్ డిస్క్‌ల మధ్య కఠినమైన విభజన లేదు. RAID5లోని చెక్‌సమ్‌లు N-1 బ్లాక్‌లకు వర్తించే XOR ఆపరేషన్ యొక్క ఫలితం, ప్రతి ఒక్కటి వేరే డిస్క్ నుండి తీసుకోబడింది.

RAID శ్రేణులు రిడెండెన్సీని పెంచుతాయి మరియు రిడెండెన్సీని అందించినప్పటికీ, అవి బ్యాకప్‌లను నిల్వ చేయడానికి తగినవి కావు.

RAID శ్రేణుల రకాల్లో క్లుప్త విహారం తర్వాత, మీరు డిస్క్ శ్రేణులను సమీకరించడానికి మరియు ఉపయోగించడానికి మిమ్మల్ని అనుమతించే పరికరాలు మరియు ప్రోగ్రామ్‌లకు వెళ్లవచ్చు.

RAID కంట్రోలర్‌ల రకాలు

RAID శ్రేణులను సృష్టించడానికి మరియు ఉపయోగించడానికి రెండు మార్గాలు ఉన్నాయి: హార్డ్‌వేర్ మరియు సాఫ్ట్‌వేర్. మేము ఈ క్రింది పరిష్కారాలను పరిశీలిస్తాము:

  • Linux సాఫ్ట్‌వేర్ RAID.
  • CPUలో Intel® వర్చువల్ RAID.
  • LSI MegaRAID 9460-8i.

Intel® సొల్యూషన్ చిప్‌సెట్‌పై నడుస్తుందని గమనించండి, ఇది హార్డ్‌వేర్ లేదా సాఫ్ట్‌వేర్ పరిష్కారమా అనే ప్రశ్నను లేవనెత్తుతుంది. ఉదాహరణకు, VMWare ESXi హైపర్‌వైజర్ VROC సాఫ్ట్‌వేర్‌ను పరిగణిస్తుంది మరియు అధికారికంగా దీనికి మద్దతు ఇవ్వదు.

Linux సాఫ్ట్‌వేర్ RAID

Linux OS కుటుంబంలోని సాఫ్ట్‌వేర్ RAID శ్రేణులు క్లయింట్ మరియు సర్వర్ విభాగాలు రెండింటిలోనూ చాలా సాధారణ పరిష్కారం. మీరు శ్రేణిని సృష్టించడానికి కావలసినదల్లా mdadm యుటిలిటీ మరియు కొన్ని బ్లాక్ పరికరాలు. Linux సాఫ్ట్‌వేర్ RAID ఉపయోగించే డ్రైవ్‌లలో ఉంచాల్సిన ఏకైక అవసరం సిస్టమ్‌కు యాక్సెస్ చేయగల బ్లాక్ పరికరం.

పరికరాలు మరియు సాఫ్ట్‌వేర్ కోసం ఖర్చులు లేకపోవడం ఈ పద్ధతి యొక్క స్పష్టమైన ప్రయోజనం. Linux సాఫ్ట్‌వేర్ RAID CPU సమయం ఖర్చుతో డిస్క్ శ్రేణులను నిర్వహిస్తుంది. మద్దతు ఉన్న RAID స్థాయిల జాబితా మరియు ప్రస్తుత డిస్క్ శ్రేణుల స్థితిని mdstat ఫైల్‌లో చూడవచ్చు, ఇది procfs రూట్‌లో ఉంది:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] 
unused devices: <none>

తగిన కెర్నల్ మాడ్యూల్‌ను కనెక్ట్ చేయడం ద్వారా RAID స్థాయిలకు మద్దతు జోడించబడుతుంది, ఉదాహరణకు:

root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
unused devices: <none>

డిస్క్ శ్రేణులతో అన్ని కార్యకలాపాలు mdadm కమాండ్ లైన్ యుటిలిటీ ద్వారా నిర్వహించబడతాయి. డిస్క్ శ్రేణి ఒక కమాండ్‌లో అసెంబుల్ చేయబడింది:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1

ఈ ఆదేశాన్ని అమలు చేసిన తర్వాత, /dev/md0 బ్లాక్ పరికరం సిస్టమ్‌లో కనిపిస్తుంది, ఇది వర్చువల్ డిస్క్‌ను సూచిస్తుంది.

CPUలో Intel® వర్చువల్ RAID

NVMeలో RAID శ్రేణులుIntel® VROC స్టాండర్డ్ హార్డ్‌వేర్ కీ
Intel® Virtual RAID On CPU (VROC) అనేది Intel® చిప్‌సెట్‌ల ఆధారంగా RAID శ్రేణులను రూపొందించడానికి ఒక హార్డ్‌వేర్ మరియు సాఫ్ట్‌వేర్ సాంకేతికత. ఈ సాంకేతికత ప్రధానంగా Intel® Xeon® స్కేలబుల్ ప్రాసెసర్‌లకు మద్దతు ఇచ్చే మదర్‌బోర్డుల కోసం అందుబాటులో ఉంది. డిఫాల్ట్‌గా, VROC అందుబాటులో లేదు. దీన్ని సక్రియం చేయడానికి, మీరు తప్పనిసరిగా VROC హార్డ్‌వేర్ లైసెన్స్ కీని ఇన్‌స్టాల్ చేయాలి.

ప్రామాణిక VROC లైసెన్స్ 0, 1 మరియు 10 RAID స్థాయిలతో డిస్క్ శ్రేణులను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది. ప్రీమియం వెర్షన్ RAID5 మద్దతుతో ఈ జాబితాను విస్తరిస్తుంది.

ఆధునిక మదర్‌బోర్డులపై Intel® VROC సాంకేతికత Intel® వాల్యూమ్ మేనేజ్‌మెంట్ పరికరం (VMD)తో కలిసి పని చేస్తుంది, ఇది NVMe డ్రైవ్‌ల కోసం హాట్-స్వాప్ సామర్థ్యాన్ని అందిస్తుంది.

NVMeలో RAID శ్రేణులుIntel® VROC ప్రామాణిక లైసెన్స్ సర్వర్ బూట్ అయినప్పుడు శ్రేణులు సెటప్ యుటిలిటీ ద్వారా కాన్ఫిగర్ చేయబడతాయి. ట్యాబ్‌లో అధునాతన CPU అంశంలో Intel® వర్చువల్ RAID కనిపిస్తుంది, ఇక్కడ మీరు డిస్క్ శ్రేణులను కాన్ఫిగర్ చేయవచ్చు.

NVMeలో RAID శ్రేణులురెండు డ్రైవ్‌లపై RAID1 శ్రేణిని సృష్టిస్తోంది
Intel® VROC సాంకేతికత దాని స్వంత స్లీవ్‌లను కలిగి ఉంది. VROC ఉపయోగించి నిర్మించిన డిస్క్ శ్రేణులు Linux సాఫ్ట్‌వేర్ RAIDకి అనుకూలంగా ఉంటాయి. దీనర్థం శ్రేణుల స్థితిని /proc/mdstatలో పర్యవేక్షించవచ్చు మరియు mdadm ద్వారా నిర్వహించబడుతుంది. ఈ "ఫీచర్"కి అధికారికంగా ఇంటెల్ మద్దతు ఇస్తుంది. సెటప్ యుటిలిటీలో RAID1ని అసెంబ్లింగ్ చేసిన తర్వాత, మీరు OSలో డ్రైవ్‌ల సమకాలీకరణను గమనించవచ్చు:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 nvme2n1[1] nvme1n1[0]
      1855832064 blocks super external:/md127/0 [2/2] [UU]
      [>....................]  resync =  1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
      
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
      10402 blocks super external:imsm
       
unused devices: <none>

మీరు mdadm (సమీకరించిన శ్రేణులు Linux SW RAID) ఉపయోగించి VROCలో శ్రేణులను సమీకరించలేరని గమనించండి, కానీ మీరు వాటిలో డిస్క్‌లను మార్చవచ్చు మరియు శ్రేణులను విడదీయవచ్చు.

LSI MegaRAID 9460-8i

NVMeలో RAID శ్రేణులుLSI MegaRAID 9460-8i కంట్రోలర్ యొక్క స్వరూపం
RAID కంట్రోలర్ అనేది ఒక స్వతంత్ర హార్డ్‌వేర్ పరిష్కారం. కంట్రోలర్ నేరుగా దానికి కనెక్ట్ చేయబడిన డ్రైవ్‌లతో మాత్రమే పని చేస్తుంది. ఈ RAID కంట్రోలర్ గరిష్టంగా 24 NVMe డ్రైవ్‌లకు మద్దతు ఇస్తుంది. NVMe మద్దతు ఈ కంట్రోలర్‌ను అనేక ఇతర వాటి నుండి వేరు చేస్తుంది.

NVMeలో RAID శ్రేణులుహార్డ్‌వేర్ కంట్రోలర్ యొక్క ప్రధాన మెను
UEFI మోడ్‌ని ఉపయోగిస్తున్నప్పుడు, కంట్రోలర్ సెట్టింగ్‌లు సెటప్ యుటిలిటీకి అనుసంధానించబడతాయి. VROCతో పోలిస్తే, హార్డ్‌వేర్ కంట్రోలర్ మెను చాలా క్లిష్టంగా కనిపిస్తుంది.

NVMeలో RAID శ్రేణులురెండు డిస్కులపై RAID1 సృష్టిస్తోంది
హార్డ్‌వేర్ కంట్రోలర్‌పై డిస్క్ శ్రేణులను ఎలా కాన్ఫిగర్ చేయాలో వివరించడం చాలా సున్నితమైన అంశం మరియు పూర్తి స్థాయి కథనానికి కారణం కావచ్చు. ఇక్కడ మనం కేవలం డిఫాల్ట్ సెట్టింగ్‌లతో RAID0 మరియు RAID1ని సృష్టించడానికి పరిమితం చేస్తాము.

హార్డ్‌వేర్ కంట్రోలర్‌కు కనెక్ట్ చేయబడిన డిస్క్‌లు ఆపరేటింగ్ సిస్టమ్‌కు కనిపించవు. బదులుగా, కంట్రోలర్ అన్ని RAID శ్రేణులను SAS డ్రైవ్‌లుగా "మాస్క్" చేస్తుంది. డిస్క్ శ్రేణిలో భాగం కాకుండా కంట్రోలర్‌కు కనెక్ట్ చేయబడిన డ్రైవ్‌లు OS ద్వారా ప్రాప్యత చేయబడవు.

root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9460-8i
Revision:             5.14
Compliance:           SPC-3
User Capacity:        1,999,844,147,200 bytes [1.99 TB]
Logical block size:   512 bytes
Rotation Rate:        Solid State Device
Logical Unit id:      0x000000000000000000000000000000
Serial number:        00000000000000000000000000000000
Device type:          disk
Local Time is:        Sun Oct 11 16:27:59 2020 MSK
SMART support is:     Unavailable - device lacks SMART capability.

SAS డ్రైవ్‌ల వలె మారువేషంలో ఉన్నప్పటికీ, NVMe శ్రేణులు PCIe వేగంతో పనిచేస్తాయి. అయితే, ఈ ఫీచర్ మిమ్మల్ని లెగసీలో NVMe నుండి బూట్ చేయడానికి అనుమతిస్తుంది.

పరీక్షా బల్ల

డిస్క్ శ్రేణులను నిర్వహించే ప్రతి పద్ధతి దాని స్వంత భౌతిక లాభాలు మరియు నష్టాలను కలిగి ఉంటుంది. కానీ డిస్క్ శ్రేణులతో పని చేస్తున్నప్పుడు పనితీరు వ్యత్యాసం ఉందా?

గరిష్ట న్యాయాన్ని సాధించడానికి, అన్ని పరీక్షలు ఒకే సర్వర్‌లో నిర్వహించబడతాయి. దీని కాన్ఫిగరేషన్:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Intel® VROC ప్రామాణిక హార్డ్‌వేర్ కీ;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO ప్లస్ M.2 500GB.

పరీక్ష యూనిట్లు P4510, వీటిలో సగం మదర్‌బోర్డుకు మరియు మిగిలిన సగం RAID కంట్రోలర్‌కు కనెక్ట్ చేయబడింది. M.2 ఉబుంటు 20.04ను అమలు చేస్తోంది మరియు పరీక్షలు fio వెర్షన్ 3.16 ఉపయోగించి అమలు చేయబడతాయి.

పరీక్ష

అన్నింటిలో మొదటిది, డిస్క్‌తో పనిచేసేటప్పుడు ఆలస్యాలను తనిఖీ చేద్దాం. పరీక్ష ఒక థ్రెడ్‌లో అమలు చేయబడుతుంది, బ్లాక్ పరిమాణం 4 KB. ఒక్కో పరీక్ష 5 నిమిషాలు ఉంటుంది. ప్రారంభించడానికి ముందు, సంబంధిత బ్లాక్ పరికరం I/O షెడ్యూలర్‌గా ఏదీ సెట్ చేయబడదు. fio కమాండ్ ఇలా కనిపిస్తుంది:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --iodepth=1 --loops=1000 --runtime=300  --rw=<mode> --filename=<blkdev>

ఫియో ఫలితాల నుండి మేము క్లాట్ 99.00% తీసుకుంటాము. ఫలితాలు క్రింది పట్టికలో చూపబడ్డాయి.

యాదృచ్ఛిక పఠనం, μs
యాదృచ్ఛిక రికార్డింగ్, μs

డిస్క్
112
78

Linux SW RAID, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

Linux SW RAID, RAID1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

డేటాను యాక్సెస్ చేసేటప్పుడు ఆలస్యం కాకుండా, నేను వర్చువల్ డ్రైవ్‌ల పనితీరును చూడాలనుకుంటున్నాను మరియు వాటిని ఫిజికల్ డిస్క్ పనితీరుతో పోల్చాలనుకుంటున్నాను. ఫియోను అమలు చేయమని ఆదేశం:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --loops=1000 --runtime=300  --iodepth=<threads> --rw=<mode> --filename=<blkdev>

పనితీరు I/O ఆపరేషన్ల పరంగా కొలుస్తారు. ఫలితాలు దిగువ పట్టికలో ప్రదర్శించబడ్డాయి.

రాండమ్ రీడ్ 1 థ్రెడ్, IOPS
రాండమ్ రైట్ 1 థ్రెడ్, IOPS
రాండమ్ రీడ్ 128 థ్రెడ్‌లు, IOPS
రాండమ్ రైట్ 128 థ్రెడ్‌లు, IOPS

డిస్క్
11300
40700
453000
105000

Linux SW RAID, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

Linux SW RAID, RAID1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

సాఫ్ట్‌వేర్ సొల్యూషన్‌లతో పోలిస్తే హార్డ్‌వేర్ కంట్రోలర్‌ను ఉపయోగించడం వలన జాప్యం పెరుగుతుంది మరియు పనితీరు దెబ్బతింటుందని చూడటం సులభం.

తీర్మానం

రెండు డిస్క్‌ల నుండి డిస్క్ శ్రేణులను సృష్టించడానికి హార్డ్‌వేర్ సొల్యూషన్‌లను ఉపయోగించడం అహేతుకంగా కనిపిస్తుంది. అయితే, RAID కంట్రోలర్‌ల ఉపయోగం సమర్థించబడే పనులు ఉన్నాయి. NVMe ఇంటర్‌ఫేస్‌కు మద్దతు ఇచ్చే కంట్రోలర్‌ల ఆగమనంతో, వినియోగదారులు తమ ప్రాజెక్ట్‌లలో వేగవంతమైన SSDలను ఉపయోగించుకునే అవకాశం ఉంది.

NVMeలో RAID శ్రేణులు

నమోదు చేసుకున్న వినియోగదారులు మాత్రమే సర్వేలో పాల్గొనగలరు. సైన్ ఇన్ చేయండిదయచేసి.

మీరు RAID పరిష్కారాలను ఉపయోగిస్తున్నారా?

  • 29,6%అవును, హార్డ్‌వేర్ సొల్యూషన్స్32

  • 50,0%అవును, సాఫ్ట్‌వేర్ పరిష్కారాలు54

  • 16,7%No18

  • 3,7%RAID అవసరం లేదు4

108 మంది వినియోగదారులు ఓటు వేశారు. 14 మంది వినియోగదారులు దూరంగా ఉన్నారు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి