NVMe मा RAID arrays

NVMe मा RAID arrays
यस लेखमा हामी RAID arrays व्यवस्थित गर्ने बिभिन्न तरिकाहरूको बारेमा कुरा गर्नेछौं, र NVMe समर्थनको साथ पहिलो हार्डवेयर RAID नियन्त्रकहरू मध्ये एक देखाउनेछौं।

RAID प्रविधिका सबै प्रकारका अनुप्रयोगहरू सर्भर खण्डमा पाइन्छ। क्लाइन्ट खण्डमा, केवल सफ्टवेयर RAID0 वा RAID1 दुई डिस्कहरूमा प्रायः प्रयोग गरिन्छ।

यस लेखले RAID टेक्नोलोजीको संक्षिप्त सिंहावलोकन प्रदान गर्नेछ, तीन फरक उपकरणहरू प्रयोग गरेर RAID arrays कसरी सिर्जना गर्ने भन्ने बारे छोटो ट्यूटोरियल, र प्रत्येक विधि प्रयोग गरेर भर्चुअल डिस्क प्रदर्शनको तुलना।

RAID के हो?

विकिपीडिया RAID प्रविधिको व्यापक परिभाषा दिन्छ:

RAID (eng। स्वतन्त्र डिस्कहरूको निरर्थक एर्रे - स्वतन्त्र (स्वतन्त्र) डिस्कहरूको अनावश्यक सरणी) - दोष सहिष्णुता र कार्यसम्पादन बढाउन धेरै भौतिक डिस्क उपकरणहरूलाई तार्किक मोड्युलमा संयोजन गर्नको लागि डाटा भर्चुअलाइजेशन प्रविधि।

डिस्क एरेहरूको कन्फिगरेसन र प्रयोग गरिएका प्रविधिहरू चयन गरिएकामा निर्भर हुन्छन् RAID स्तर। RAID स्तर निर्दिष्टीकरण मा मानकीकृत छन् साझा RAID डिस्क डाटा ढाँचा। यसले धेरै RAID स्तरहरू वर्णन गर्दछ, तर सबैभन्दा सामान्य RAID0, RAID1, RAID5 र RAID6 हुन्।

RAID0, वा धर्काहरू, एउटा RAID स्तर हो जसले दुई वा बढी भौतिक ड्राइभहरूलाई एउटा तार्किक ड्राइभमा जोड्दछ। तार्किक डिस्कको भोल्युम array मा समावेश भौतिक डिस्क को मात्रा को योग बराबर छ। यस RAID स्तरमा कुनै रिडन्डन्सी छैन, र एउटा ड्राइभको विफलताले भर्चुअल डिस्कमा सबै डाटा गुमाउन सक्छ।

स्तर RAID1, वा दर्पण, दुई वा बढी डिस्कहरूमा डाटाको समान प्रतिलिपिहरू सिर्जना गर्दछ। भर्चुअल डिस्कको साइज भौतिक डिस्कको न्यूनतम आकारभन्दा बढी हुँदैन। RAID1 भर्चुअल डिस्कमा डाटा उपलब्ध हुनेछ जबसम्म एरेबाट कम्तिमा एउटा भौतिक डिस्क सञ्चालनमा छ। RAID1 को प्रयोगले रिडन्डन्सी थप्छ, तर एक महँगो समाधान हो, किनकि दुई वा बढी डिस्कको एरेमा एउटा मात्र क्षमता उपलब्ध हुन्छ।

स्तर RAID5 उच्च लागतको समस्या समाधान गर्दछ। RAID5 स्तरको साथ एरे सिर्जना गर्न, तपाईंलाई कम्तिमा 3 डिस्कहरू चाहिन्छ, र एरे एउटा डिस्कको विफलतामा प्रतिरोधी हुन्छ। RAID5 मा डाटा चेकसमको साथ ब्लकहरूमा भण्डार गरिएको छ। डाटा डिस्क र चेकसम डिस्कहरू बीच कुनै कडा विभाजन छैन। RAID5 मा चेकसमहरू N-1 ब्लकहरूमा लागू गरिएको XOR सञ्चालनको परिणाम हो, प्रत्येक फरक डिस्कबाट लिइएको हो।

यद्यपि RAID array ले रिडन्डन्सी बढाउँछ र रिडन्डन्सी प्रदान गर्दछ, तिनीहरू ब्याकअपहरू भण्डारण गर्नका लागि उपयुक्त छैनन्।

RAID arrays को प्रकारहरूमा छोटो भ्रमण पछि, तपाइँ यन्त्रहरू र प्रोग्रामहरूमा जान सक्नुहुन्छ जसले तपाइँलाई डिस्क एरेहरू भेला गर्न र प्रयोग गर्न अनुमति दिन्छ।

RAID नियन्त्रकहरूको प्रकार

RAID arrays सिर्जना र प्रयोग गर्ने दुई तरिकाहरू छन्: हार्डवेयर र सफ्टवेयर। हामी निम्न समाधानहरू विचार गर्नेछौं:

  • लिनक्स सफ्टवेयर RAID।
  • Intel® भर्चुअल RAID CPU मा।
  • LSI MegaRAID 9460-8i।

नोट गर्नुहोस् कि Intel® समाधान चिपसेटमा चल्छ, जसले यो हार्डवेयर वा सफ्टवेयर समाधान हो कि भन्ने प्रश्न उठाउँछ। उदाहरणका लागि, VMWare ESXi हाइपरवाइजरले VROC सफ्टवेयरलाई मान्दछ र यसलाई आधिकारिक रूपमा समर्थन गर्दैन।

लिनक्स सफ्टवेयर RAID

लिनक्स OS परिवारमा सफ्टवेयर RAID arrays दुबै ग्राहक र सर्भर खण्डहरूमा एक सामान्य समाधान हो। तपाईँलाई एरे सिर्जना गर्न आवश्यक छ mdadm उपयोगिता र केही ब्लक उपकरणहरू। लिनक्स सफ्टवेयर RAID ले यो प्रयोग गर्ने ड्राइभहरूमा स्थानहरू प्रणालीमा पहुँचयोग्य ब्लक उपकरण हुनु मात्र आवश्यक छ।

उपकरण र सफ्टवेयर को लागी लागत को अभाव यो विधि को एक स्पष्ट लाभ हो। लिनक्स सफ्टवेयर 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 ब्लक यन्त्र देखा पर्नेछ, जसले तपाईंलाई भर्चुअल डिस्कको रूपमा प्रतिनिधित्व गर्दछ।

Intel® भर्चुअल RAID CPU मा

NVMe मा RAID arraysIntel® VROC मानक हार्डवेयर कुञ्जी
Intel® Virtual RAID On CPU (VROC) Intel® चिपसेटहरूमा आधारित RAID arrays सिर्जना गर्नका लागि हार्डवेयर र सफ्टवेयर प्रविधि हो। यो प्रविधि मुख्यतया Intel® Xeon® स्केलेबल प्रोसेसरहरूलाई समर्थन गर्ने मदरबोर्डहरूको लागि उपलब्ध छ। पूर्वनिर्धारित रूपमा, VROC उपलब्ध छैन। यसलाई सक्रिय गर्न, तपाईंले VROC हार्डवेयर इजाजतपत्र कुञ्जी स्थापना गर्नुपर्छ।

मानक VROC इजाजतपत्रले तपाईंलाई 0, 1 र 10 RAID स्तरहरूसँग डिस्क एरेहरू सिर्जना गर्न अनुमति दिन्छ। प्रिमियम संस्करणले RAID5 समर्थनको साथ यो सूची विस्तार गर्दछ।

आधुनिक मदरबोर्डहरूमा Intel® VROC प्रविधिले Intel® भोल्युम म्यानेजमेन्ट डिभाइस (VMD) सँग संयोजनमा काम गर्छ, जसले NVMe ड्राइभहरूका लागि हट-स्वैप क्षमता प्रदान गर्दछ।

NVMe मा RAID arraysIntel® VROC मानक लाइसेन्स सर्भर बुट हुँदा एरे सेटअप उपयोगिता मार्फत कन्फिगर गरिन्छ। ट्याबमा विकसित CPU वस्तुमा Intel® Virtual RAID देखा पर्दछ, जहाँ तपाइँ डिस्क arrays कन्फिगर गर्न सक्नुहुन्छ।

NVMe मा RAID arraysदुई ड्राइभहरूमा RAID1 एरे सिर्जना गर्दै
Intel® VROC टेक्नोलोजीको आफ्नै आस्तीन छ। VROC प्रयोग गरी निर्मित डिस्क एरेहरू लिनक्स सफ्टवेयर RAID सँग उपयुक्त छन्। यसको मतलब arrays को स्थिति /proc/mdstat मा निगरानी गर्न सकिन्छ र mdadm मार्फत प्रशासित गर्न सकिन्छ। यो "सुविधा" आधिकारिक रूपमा Intel द्वारा समर्थित छ। सेटअप उपयोगितामा 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 प्रयोग गरेर VROC मा arrays जम्मा गर्न सक्नुहुन्न (एकत्रित arrays Linux SW RAID हुनेछ), तर तपाइँ तिनीहरूमा डिस्कहरू परिवर्तन गर्न सक्नुहुन्छ र arrays छुट्याउन सक्नुहुन्छ।

LSI MegaRAID 9460-8i

NVMe मा RAID arraysLSI MegaRAID 9460-8i नियन्त्रक को उपस्थिति
RAID नियन्त्रक एक स्ट्यान्ड-अलोन हार्डवेयर समाधान हो। नियन्त्रकले सीधा जडान भएका ड्राइभहरूसँग मात्र काम गर्दछ। यो RAID नियन्त्रकले 24 NVMe ड्राइभहरूलाई समर्थन गर्दछ। यो NVMe समर्थन हो जसले यो नियन्त्रकलाई अन्य धेरै भन्दा अलग सेट गर्दछ।

NVMe मा RAID arraysहार्डवेयर नियन्त्रक को मुख्य मेनु
UEFI मोड प्रयोग गर्दा, कन्ट्रोलर सेटिङहरू सेटअप उपयोगितामा एकीकृत हुन्छन्। VROC को तुलनामा, हार्डवेयर नियन्त्रक मेनु धेरै जटिल देखिन्छ।

NVMe मा RAID arraysदुई डिस्कहरूमा RAID1 सिर्जना गर्दै
हार्डवेयर नियन्त्रकमा डिस्क एरेहरू कसरी कन्फिगर गर्ने भनेर व्याख्या गर्नु एकदम नाजुक विषय हो र पूर्ण लेखको कारण हुन सक्छ। यहाँ हामी केवल पूर्वनिर्धारित सेटिङहरूसँग RAID0 र RAID1 सिर्जना गर्न आफैलाई सीमित गर्नेछौं।

हार्डवेयर नियन्त्रकमा जडान भएका डिस्कहरू अपरेटिङ सिस्टममा देखिँदैनन्। यसको सट्टा, नियन्त्रकले सबै RAID arrayहरूलाई 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 arrays PCIe गतिमा सञ्चालन हुनेछ। यद्यपि, यो सुविधाले तपाइँलाई लिगेसीमा NVMe बाट बुट गर्न अनुमति दिन्छ।

परीक्षण स्ट्यान्ड

डिस्क एरेहरू व्यवस्थित गर्ने प्रत्येक विधिको आफ्नै भौतिक फाइदा र विपक्षहरू छन्। तर डिस्क arrays संग काम गर्दा प्रदर्शन भिन्नता छ?

अधिकतम निष्पक्षता प्राप्त गर्न, सबै परीक्षणहरू एउटै सर्भरमा सञ्चालन गरिनेछ। यसको कन्फिगरेसन:

  • 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 Plus M.2 500GB।

परीक्षण एकाइहरू P4510 हुन्, जसको एक आधा मदरबोर्डमा जोडिएको छ, र अर्को आधा RAID नियन्त्रकमा। M.2 Ubuntu 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>

फिओ नतिजाबाट हामीले क्ल्याट ९९.००% लिन्छौँ। नतिजा तलको तालिकामा देखाइएको छ।

अनियमित पढाइ, μs
अनियमित रेकर्डिङ, μs

डिस्क
112
78

लिनक्स SW RAID, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

लिनक्स SW RAID, RAID1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

डाटा पहुँच गर्दा ढिलाइको अतिरिक्त, म भर्चुअल ड्राइभहरूको प्रदर्शन हेर्न चाहन्छु र तिनीहरूलाई भौतिक डिस्कको प्रदर्शनसँग तुलना गर्न चाहन्छु। fio चलाउन आदेश:

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

लिनक्स SW RAID, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

लिनक्स SW RAID, RAID1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

यो हेर्न सजिलो छ कि हार्डवेयर नियन्त्रक प्रयोग गर्दा विलम्बता बढ्छ र सफ्टवेयर समाधानहरूको तुलनामा प्रदर्शन हिट हुन्छ।

निष्कर्षमा

दुई डिस्कबाट डिस्क एरेहरू सिर्जना गर्न हार्डवेयर समाधानहरू प्रयोग गरेर तर्कहीन देखिन्छ। यद्यपि, त्यहाँ कार्यहरू छन् जहाँ RAID नियन्त्रकहरूको प्रयोग उचित छ। NVMe इन्टरफेसलाई समर्थन गर्ने नियन्त्रकहरूको आगमनको साथ, प्रयोगकर्ताहरूसँग उनीहरूको परियोजनाहरूमा छिटो SSDs प्रयोग गर्ने अवसर छ।

NVMe मा RAID arrays

दर्ता भएका प्रयोगकर्ताहरूले मात्र सर्वेक्षणमा भाग लिन सक्छन्। साइन इन गर्नुहोस्कृपया

के तपाइँ RAID समाधानहरू प्रयोग गर्दै हुनुहुन्छ?

  • 29,6%हो, हार्डवेयर समाधान32

  • 50,0%हो, सफ्टवेयर समाधान54

  • 16,7%नम्बर ८०

  • 3,7%कुनै RAID आवश्यक छैन 4

108 प्रयोगकर्ताहरूले मतदान गरे। 14 प्रयोगकर्ताहरू रोकिए।

स्रोत: www.habr.com

एक टिप्पणी थप्न