स्थापित 2008 · डिजिटल संस्करण · 19 जून 2026

SMB IT Journal

लघु व्यवसाय के लिए सूचना प्रौद्योगिकी संसाधन

हिन्दी
भंडारण

व्यावहारिक RAID Performance

RAID level चुनना cost, reliability, capacity और निश्चित रूप से performance सहित कई कारकों को संतुलित करने का अभ्यास है। RAID performance को समझना कठिन हो सकता है विशेष रूप से जब अलग-अलग RAID levels अलग-अलग techniques का उपयोग करते हैं और कुछ मामलों में एक-दूसरे से काफी अलग व्यवहार करते हैं। इस लेख में मैं उनके बीच performance कैसे भिन्न होती है यह देखने के लिए RAID 0, 5, 6 और 10 के सामान्य RAID levels का पता लगाना चाहता हूँ।

इस लेख के प्रयोजनों के लिए, RAID 1 को RAID 10 का एक subset माना जाएगा। यह अक्सर RAID 1 के बारे में सोचने का एक उपयोगी तरीका है — बस एक single mirrored pair member के साथ RAID 10 array के रूप में। चूंकि RAID 1 वास्तव में एक single pair RAID 10 है और इस प्रकार behave करता है, यह RAID performance को समझने में आसान बनाने के लिए अद्भुत रूप से काम करता है क्योंकि यह simply RAID 10 performance curve में map होता है।

सभी storage के साथ देखने के लिए दो प्रकार की performance हैं: reading और writing। RAID के संदर्भ में reading बेहद आसान है और writing काफी complex है। Read performance सभी RAID types में effectively stable है। Writing, हालांकि, नहीं है।

Performance पर चर्चा को आसान बनाने के लिए हमें कुछ terms define करने की जरूरत है क्योंकि हम कुछ equations के साथ काम करेंगे। हमारी चर्चाओं में हम N का उपयोग हमारे array में drives की कुल संख्या, जिन्हें अक्सर spindles कहा जाता है, को दर्शाने के लिए करेंगे और X का उपयोग प्रत्येक drive की individually performance को दर्शाने के लिए करेंगे। यह हमें RAID array को abstract करते हुए individual drive performance के factor के रूप में relative performance के बारे में बात करने की अनुमति देता है।

यह भी याद रखना महत्वपूर्ण है कि हम केवल RAID array की performance के बारे में बात कर रहे हैं, पूरे storage subsystem की नहीं। Memory caches और solid state caches जैसी artifacts एक storage subsystem की overall performance को बदलने के लिए놀라uni चीजें करेंगे, लेकिन RAID array की performance को fundamentally नहीं बदलते। यहाँ तक कि सबसे बड़ा, सबसे तेज़, सबसे robust cache options भी एक array की long term, sustained performance को नहीं बदल सकते।

RAID complex है और कई कारक final performance को प्रभावित करते हैं। एक RAID system का implementation ही है। एक poor implementation latency का कारण बन सकता है या उपलब्ध spindles का लाभ उठाने में विफल हो सकता है। इसलिए हमें यह मानना होगा कि सभी specification की सीमाओं तक काम कर रहे हैं।

कुछ प्रकार के RAID में भी उनसे जुड़े dramatic amounts of computational overhead हैं जबकि अन्य में नहीं। मुख्य रूप से parity RAID levels को write operations को handle करने के लिए heavy processing की आवश्यकता होती है। यह latency introduce करता है, लेकिन throughput को curtail नहीं करता। Hardware RAID इसके लिए एक general purpose CPU (अक्सर एक Power या ARM RISC processor) या एक custom ASIC का उपयोग करेगा जबकि software RAID इसे server के अपने CPU पर off-hand करता है।

Read operations पर disk पर data के layout में efficiencies के कारण एक छोटा performance impact है। Parity RAID के लिए disks पर ऐसा data होना आवश्यक है जो एक healthy read operation के दौरान बेकार हो लेकिन इसे speed up करने के लिए use नहीं किया जा सकता। लेकिन यह impact हास्यास्पद रूप से छोटा है और सामान्यतः measure नहीं किया जाता इसलिए इसे ignore किया जा सकता है।

Storage operations के read to write ratio का final factor जिसे मैं mention करना चाहता हूँ वह है। कुछ RAID arrays लगभग purely read operations के लिए use किए जाएंगे, कुछ लगभग solely write operations के लिए लेकिन अधिकांश दोनों का blend use करते हैं, शायद eighty percent read और twenty percent write जैसा कुछ। मैं इसे read/write blend कहता हूँ।

हम storage performance को primarily IOPS में measure करते हैं। IOPS का मतलब है Input/Output Operations Per Second। मैं आगे RIOPS को Read IOPS के लिए, WIOPS को Write IOPS के लिए और BIOPS को Blended IOPS के लिए use करता हूँ जो 80/20 या जो भी ratio हो के साथ आएगा। उदाहरण के लिए, 50/50 blend (RIOPS * .5) + (WIOPS * .5) जितना simple है। अधिक सामान्य 80/20 blend (RIOPS * .8) + (WIOPS * .2) होगा।

अब जबकि हमने कुछ criteria और background understanding स्थापित कर ली है, हम अपने RAID levels में dive करेंगे और देखेंगे कि उनमें performance कैसे vary करती है।

सभी RAID levels के लिए, Read IOPS number की गणना NX का उपयोग करके की जाती है। यह ऊपर mention किए गए nominal overhead numbers को address नहीं करता, निश्चित रूप से। यह एक “best case” number है लेकिन real world number इतना करीब है कि simply इस formula का उपयोग करना बहुत practical है। ध्यान रखें कि drives में अक्सर अलग-अलग read और write performance होती है इसलिए Read IOPS calculation के लिए drives की Read IOPS rating या tested speed और Write IOPS calculation के लिए Write IOPS rate या tested speed का उपयोग करना सुनिश्चित करें।

RAID 0

RAID 0 सबसे आसान RAID level है जिसे समझना है क्योंकि effectively कोई overhead नहीं है जिसके बारे में चिंता करनी हो, इसे power करने के लिए कोई resources consume नहीं होते और read और write दोनों को हर समय हर spindle का पूरा लाभ मिलता है। तो RAID 0 के लिए write performance का हमारा formula बहुत simple है: NX। RAID 0 हमेशा सबसे performant RAID level है।

एक उदाहरण eight spindle RAID 0 array होगा। यदि array में एक individual drive 125 IOPS deliver करता है तो हमारी calculation N = 8 और X = 125 से होगी तो 8 * 125 yielding 1,000 IOPS। चूंकि read और write IOPS दोनों यहाँ समान हैं, यह बेहद simple है क्योंकि हमें 1K RIOPS, 1K WIOPS और किसी भी blending के साथ 1K मिलता है। यदि हम एक individual spindle के absolute IOPS को नहीं जानते थे तो हम eight spindle RAID 0 को 8X Blended IOPS deliver करने के रूप में refer कर सकते थे।

RAID 10

RAID 10 को calculate करने का दूसरा सबसे simple RAID level है। क्योंकि RAID 10 mirror sets का RAID 0 stripe है, stripe से कोई overhead नहीं है लेकिन प्रत्येक mirror को mirroring बनाने के लिए same data को दो बार लिखना होता है। यह हमारी write performance को same number of drives के RAID 0 array की तुलना में आधा कर देता है। हमें write performance formula देता है: NX/2 या .5NX।

यह ध्यान दिया जाना चाहिए कि same capacity पर, same number of spindles के बजाय, RAID 10 में RAID 0 के समान write performance है लेकिन double read performance है — simply इसलिए कि same capacity match करने के लिए इसे twice as many spindles की आवश्यकता होती है।

तो एक eight spindle RAID 10 array N = 8 और X = 125 होगा और हमारी resulting calculation (8 * 125)/2 होगी जो 500 WIOPS या 4X WIOPS है। 50/50 blend 750 Blended IOPS (1,000 Read IOPS और 500 Write IOPS) में result होगा।

यह formula RAID 1, RAID 10, RAID 100 और RAID 01 पर equally apply होता है।

RAID 10 में triple mirroring जैसे uncommon options इस write penalty को alter करेंगे। Triple mirroring के साथ RAID 10 NX/3 होगा, उदाहरण के लिए।

RAID 5

जबकि RAID 5 deprecated है और new arrays में कभी उपयोग नहीं किया जाना चाहिए, मैं इसे यहाँ include करता हूँ क्योंकि यह एक well known और commonly used RAID level है और इसकी performance को समझना आवश्यक है। RAID 5 modern parity RAID levels में सबसे basic है। RAID 2, 3 & 4 अब production systems में नहीं पाए जाते इसलिए हम यहाँ उनकी performance नहीं देखेंगे।

Parity RAID disk पर जाने वाले हर write के साथ parity को verify और re-write करने की एक somewhat complicated जरूरत जोड़ता है। इसका मतलब है कि एक RAID 5 array को data read करना, parity read करना, data write करना और finally parity write करना होगा। प्रत्येक effective एक के लिए चार operations। यह हमें RAID 5 पर चार का write penalty देता है। तो RAID 5 write performance का formula है NX/4।

तो eight spindle example के बाद जहाँ एक individual spindle का write IOPS 125 है हमें निम्नलिखित calculation मिलेगी: (8 * 125)/4 या 2X Write IOPS जो 250 WIOPS आता है। 50/50 blend में यह 625 Blended IOPS में result होगा।

RAID 6

RAID 6, RAID 10 के बाद, शायद आज उपयोग में सबसे common और useful RAID level है। RAID 6, हालांकि, RAID 5 पर based है और इसमें parity का एक और level है। यह इसे RAID 5 की तुलना में dramatically safer बनाता है, जो बहुत important है, लेकिन एक dramatic write penalty भी impose करता है क्योंकि प्रत्येक write operation के लिए disks को data read करना, first parity read करना, second parity read करना, data write करना, first parity write करना और then finally second parity write करना होता है। यह six times write penalty आती है। तो हमारा formula है NX/6।

हमारे example को continue करते हुए हमें (8 * 125)/6 मिलता है जो ~167 Write IOPS या 1.33X आता है। हमारे 50/50 blend example में यह 583.5 Blended IOPS की performance है। जैसा कि आप देख सकते हैं, parity writes write performance में बहुत तेज़ decrease और blended performance में एक noticeable drop का कारण बनती हैं।

RAID 7 (जिसे RAID 5.3 या RAID 7.3 भी कहा जाता है)

RAID 7 एक somewhat non-standard RAID level है जिसमें RAID 5 की existing single parity और RAID 6 की existing double parity पर based triple parity है। RAID 7 का एकमात्र current implementation ZFS का RAIDZ3 है। क्योंकि RAID 7 में RAID 5 और RAID 6 दोनों के overhead के साथ-साथ third parity component का additional overhead है, हमारे पास staggering eight times का write penalty है। तो RAID 7 write performance find करने का हमारा formula है NX/8।

हमारे example में इसका मतलब होगा कि (8 * 125)/8 125 Write IOPS या 1X आएगा। तो हमारे array में eight drives के साथ हमें केवल एक single, stand alone drive की write performance मिलेगी। हमारा blended 50/50 IOPS केवल 562.5 आएगा।

Complex RAID

Complex RAID levels या Nested RAID levels जैसे RAID 50, 60, 61, 16, आदि ऊपर दी गई जानकारी का उपयोग करके और RAID को उसके components में break करके और ऊपर दिए गए formulæ का उपयोग करके प्रत्येक को apply करके पाया जा सकता है।

RAID 60 बारह drives के साथ, six drives के दो sets, जहाँ प्रत्येक drive 150 IOPS है, दो RAID 6s के साथ किया जाएगा। यह RAID 0 का NX होगा जहाँ N दो है (दो RAID 6 arrays के लिए) और X प्रत्येक RAID 6 की resultant performance है। प्रत्येक RAID 6 set (6 * 150)/6 होगा। तो full array 2((6 * 150)/6) होगा। जो 300 Write IOPS में result होता है।

ऊपर के same example को लेकिन RAID 61 के रूप में configured किया, RAID 6 arrays का एक mirrored pair, प्रत्येक RAID 6 array के लिए same performance होगी, लेकिन RAID 1 formula NX/2 पर applied होगी (जहाँ X प्रत्येक RAID array की resultant performance है।) तो final formula 2((6 * 150)/6)/2 होगा जो twelve drives से 150 Write IOPS आता है।

Capacity के Factor के रूप में Performance

जब हम RAID performance formulæ produce करते हैं तो हम इन्हें spindles की संख्या के संदर्भ में सोचते हैं जो अविश्वसनीय रूप से sensible है। यह एक proposed array या यहाँ तक कि एक existing array की performance निर्धारित करने में बहुत useful है जहाँ measurement possible नहीं है और हमें different proposed options के बीच relative performance की तुलना करने की अनुमति देता है।

यह हमेशा एक अच्छा दृष्टिकोण नहीं है, हालांकि, क्योंकि आम तौर पर हम RAID को performance या spindle count के बजाय capacity के factor के रूप में देखते हैं। यह odd है, इसलिए, कि हम तब RAID performance को spindle count के function के रूप में देखने के लिए switch करते हैं।

यदि हम अपना viewpoint change करते हैं और capacity को common factor के रूप में pivot करते हैं, जबकि अभी भी यह मानते हैं कि individual drive capacity और performance (X) comparators के बीच constant रहती है, तो हम performance का पूरी तरह से अलग landscape पर पहुँचते हैं। ऐसा करने में हम देखते हैं, उदाहरण के लिए, कि RAID 0 अब सबसे performant RAID level नहीं है और read performance एक constant के बजाय dramatically vary करती है।

Capacity एक fickle चीज है लेकिन हम इसे desired capacity तक पहुँचने के लिए आवश्यक spindles की संख्या तक distill कर सकते हैं। हम अपने spindle count को R के रूप में refer करेंगे। जैसा पहले, individual drive की performance X के रूप में represent की जाती है। (R यहाँ उपयोग किया जाता है यह denote करने के लिए कि यह Raw Capacity Count है, spindles की कुल Number के बजाय।)

RAID 0 simple रहता है, performance अभी भी RX है। दोनों read और write IOPS simply NX हैं।

RAID 10 में RX Write IOPS हैं लेकिन 2RX Read IOPS हैं। यह dramatic है। अचानक जब stable capacity के factor के रूप में performance देखी जाती है तो हम पाते हैं कि RAID 10 में RAID 0 की तुलना में double read performance है!

RAID 5 थोड़ा trickier हो जाता है। Write IOPS को ((R + 1) * X)/4 के रूप में व्यक्त किया जाएगा। Read IOPS को ((R +1) * X) के रूप में व्यक्त किया जाता है।

RAID 6, जैसा कि हम expect करते हैं, उस pattern को follow करता है जो RAID 5 project करता है। RAID 6 के लिए Write IOPS ((R + 2) * X)/6 हैं। और Read IOPS ((R + 2) * X) के रूप में व्यक्त किए जाते हैं।

RAID 7 ठीक उसी line में आता है। RAID 7 Write IOPS ((R + 3) * X)/8 होगा। और Read IOPS ((R + 3) * X) हैं।

यह vantage point हमारे performance के बारे में सोचने के तरीके को बदलता है और, purely read performance को देखते समय, RAID 0 सबसे fast के बजाय सबसे slow RAID level बन जाता है और RAID 10 R और X के किसी भी values के लिए read और write दोनों के लिए fastest बन जाता है!

यदि हम 20TB usable capacity प्राप्त करने के लिए 10 2TB drives का एक real world example लेते हैं जिसमें प्रत्येक drive में 100 IOPS की performance है और 50/50 blend मानते हैं, तो resultant IOPS होंगे: RAID 0 के साथ 1,000 Blended IOPS, RAID 10 के साथ 1,500 Blended IOPS (2,000 RIOPS / 1,000 WIOPS), RAID 5 के साथ 687.5 Blended IOPS (1,100 RIOPS / 275 WIOPS), RAID 6 के साथ 700 Blended IOPS (1,200 RIOPS / 200 WIOPS) और finally RAID 7 के साथ 731.25 Blended IOPS (1,300 RIOPS / 162.5 WIOPS।) RAID 10 यहाँ एक dramatic winner है।

Software RAID के साथ Latency और System Impact

जैसा कि मैंने पहले कहा है, RAID 0 और RAID 10 में effectively कोई system overhead नहीं है। Mirroring operation के लिए essentially कोई computational effort नहीं चाहिए। Parity RAID में computational overhead है और यह storage layer पर latency और system resources consume होने में result होती है। निश्चित रूप से, यदि हम hardware RAID का उपयोग कर रहे हैं तो वे resources RAID array के लिए dedicated हैं। यदि हम software RAID का उपयोग कर रहे हैं, हालांकि, ये general purpose system resources (primarily CPU) हैं जो RAID array processing के purposes के लिए consume किए जाते हैं।

यहाँ तक कि RAID की large amount के साथ एक बहुत छोटे system पर impact अभी भी बहुत छोटा है लेकिन इसे measure किया जा सकता है और इसे, यदि केवल lightly, consider किया जाना चाहिए।

Different RAID levels के लिए latency और system impact को state करने का कोई simple तरीका नहीं है सिवाय इस तरह से: RAID 0 और RAID 10 में effectively कोई latency या impact नहीं है, RAID 5 में कुछ latency और impact है, RAID 6 में RAID 5 की तुलना में roughly twice as much computational latency और impact है और RAID 7 में RAID 5 की तुलना में roughly triple the computational latency और impact है।

कई मामलों में यह latency और system impact इतनी छोटी होगी कि उन्हें standard system tools से measure नहीं किया जा सकता और जैसे-जैसे modern processors increasingly powerful होते जाते हैं, latency और system impact घटती रहेगी। लगभग 2001 से low end, commodity hardware पर भी RAID 5 और RAID 6 systems के लिए impact को negligible माना गया है।

Reference: The IT Hollow – Understanding the RAID Penalty

लेख मूल रूप से StorageCraft Blog – RAID Performance पर posted।

टैग किया गयाperformance raid

विज्ञापन

SMB IT Journal — the IT resource for small business