सारांश: एंटरप्राइज़ स्टोरेज में Hybrid RAID के तीन प्रमुख प्रकार RAID 10, RAID 50, और RAID 60 हैं। ये दो अलग-अलग RAID लेवल को मिलाकर बेहतर स्पीड, स्टोरेज क्षमता और फॉल्ट टॉलरेंस देने की कोशिश करते हैं। इस गाइड में बताया गया है कि RAID 10, RAID 50, और RAID 60 हार्डवेयर लेवल पर कैसे काम करते हैं, इनकी उपयोग करने योग्य स्टोरेज क्षमता कैसे तय होती है और पैरिटी की गणना कैसे की जाती है। इसमें यह भी समझाया गया है कि ड्राइव फेल होने के बाद ऐरे को कैसे रीबिल्ड किया जाता है। आगे, तीनों कॉन्फ़िगरेशन में जरूरी ड्राइव की संख्या, फॉल्ट टॉलरेंस, और राइट परफॉर्मेंस की तुलना की गई है। अंत में, रिकवरी शुरू करने से पहले डिग्रेडेड ऐरे को सुरक्षित रखने के जरूरी कदम बताए गए हैं।
Click here to read this post in English
हर स्टोरेज ऐरे को कभी न कभी हार्डवेयर फॉल्ट का सामना करना पड़ सकता है। यह फॉल्ट सिर्फ कुछ समय के लिए आउटेज का कारण बनेगा या हमेशा के लिए डेटा लॉस होगा, यह काफी हद तक उसे सपोर्ट करने वाले Hybrid RAID आर्किटेक्चर पर निर्भर करता है। Hybrid स्टोरेज सेटअप दो स्टैंडर्ड ऐरे लेवल को जोड़ता है, जिससे रीड स्पीड और फॉल्ट टॉलरेंस के बीच ऐसा बैलेंस मिलता है जो कोई एक लेवल अकेले नहीं दे सकता।
हार्डवेयर लेवल पर इन आर्किटेक्चर में पैरिटी मैनेजमेंट और मिररिंग का तरीका काफी अलग होता है। गलत आर्किटेक्चर चुनने पर खर्च बेवजह बढ़ सकता है और फेल्योर के बाद डेटा रिकवर करते समय गंभीर परेशानी हो सकती है। हर आर्किटेक्चर लोड के दौरान और फेल्योर की स्थिति में यह किस तरह काम करता है, इसे समझना जरूरी है। तभी फैसला सही जानकारी के आधार पर लिया जा सकता है, न कि सिर्फ अनुमान से।
RAID 10 (RAID 1+0): मिरर्स की स्ट्राइप
RAID 10 प्रोडक्शन डेटा सेंटर में सबसे ज्यादा इस्तेमाल होने वाले Hybrid कॉन्फ़िगरेशन में से एक है। स्टोरेज इंजीनियर अक्सर इस आर्किटेक्चर को चुनते हैं क्योंकि यह अच्छी रिडंडेंसी देता है और इनपुट और आउटपुट स्पीड को कम नहीं करता। पैरिटी-आधारित ऐरे के विपरीत, इसमें पैरिटी जनरेट करने के लिए किसी गणितीय कैलकुलेशन की जरूरत नहीं होती।
RAID 10 कैसे काम करता है
RAID 10 में कंट्रोलर पहले मिरर्ड पेयर बनाता है और फिर इन पेयर को एक साथ स्ट्राइप करता है। जब सर्वर कोई फाइल भेजता है, तो कंट्रोलर उसे बराबर साइज के ब्लॉक्स में बांटता है, जिन्हें स्ट्राइप्स कहा जाता है। स्ट्राइप साइज यह तय करता है कि कंट्रोलर अगले टियर पर जाने से पहले एक डिस्क पर कितना डेटा लिखेगा। भविष्य में डायग्नोस्टिक्स के लिए दोनों टियर का स्ट्राइप साइज नोट करके रखना बेहतर होता है।
डेटा को बांटने के बाद, हार्डवेयर स्टैंडर्ड RAID 0 लॉजिक के अनुसार इन ब्लॉक्स को टॉप टियर पर अलग-अलग ड्राइव्स में डिस्ट्रीब्यूट करता है। साथ ही, इनर टियर में मौजूद RAID 1 हर ब्लॉक की कॉपी बनाता है। हर राइट कमांड एक मिरर्ड पेयर की दोनों ड्राइव्स पर एक साथ पहुंचता है। कंट्रोलर को पैरिटी कैलकुलेट नहीं करनी पड़ती, इसलिए राइट परफॉर्मेंस काफी तेज रहती है।
हार्डवेयर फेल्योर के दौरान RAID 10 खास तौर पर अच्छा काम करता है। जब कोई डिस्क फेल हो जाती है, तो रीबिल्ड प्रक्रिया सिर्फ उसी ड्राइव की मिरर पार्टनर से डेटा लेती है। बाकी हेल्दी पेयर पर इसका कोई असर नहीं पड़ता। मिरर ड्राइव से वही सेक्टर सीधे रिप्लेसमेंट डिस्क पर कॉपी किए जाते हैं। इसमें किसी तरह की कैलकुलेशन नहीं करनी पड़ती, इसलिए RAID 10 का रीबिल्ड पैरिटी-आधारित कॉन्फ़िगरेशन की तुलना में काफी कम समय में पूरा हो जाता है।
न्यूनतम ड्राइव और उपयोग करने योग्य क्षमता
RAID 10 को सेटअप करने के लिए कम से कम चार फिजिकल ड्राइव्स की जरूरत होती है। ऐरे में बाद में कितनी भी ड्राइव्स जोड़ी जाएं, कुल रॉ स्टोरेज का सिर्फ आधा हिस्सा ही इस्तेमाल किया जा सकता है। उदाहरण के लिए, आठ 10-टेराबाइट ड्राइव्स से कुल 80 टेराबाइट रॉ स्टोरेज मिलता है, लेकिन उपयोग करने के लिए सिर्फ 40 टेराबाइट उपलब्ध रहता है।
रॉ स्टोरेज की आधी क्षमता मिररिंग के लिए इस्तेमाल होती है। यह RAID 10 में ऐरे के बेस लेवल पर फुल मिरर बनाए रखने का हिस्सा है। इसके बदले, अलग-अलग मिरर्ड पेयर में एक साथ कई ड्राइव फेल होने पर भी डेटा उपलब्ध रहता है और ऐरे ऑपरेशनल रहता है। अगर एक ड्राइव फेल होती है, तो उसका मिरर पार्टनर डेटा की दूसरी कॉपी उपलब्ध रखता है और ऐरे बिना रुकावट चलता रहता है।
इस कॉन्फ़िगरेशन में ड्राइव्स की संख्या के साथ उनका साइज भी महत्वपूर्ण है। हर मिरर्ड पेयर में एक ही साइज की ड्राइव्स रखना बेहतर होता है। अगर एक पेयर में अलग-अलग क्षमता वाली ड्राइव्स हैं, तो छोटी ड्राइव की क्षमता ही उस पेयर के लिए इस्तेमाल होगी। बड़ी ड्राइव की बची हुई जगह का इस्तेमाल नहीं किया जा सकता। अलग-अलग साइज के मिरर्ड पेयर होने पर RAID फेल्योर के बाद रिकवरी की प्लानिंग भी मुश्किल हो सकती है।
RAID 50 (RAID 5+0)
बड़े एंटरप्राइज़ स्टोरेज सिस्टम को सुरक्षित रखने के लिए पूरी तरह मिरर्ड ऐरे को बढ़ाना काफी महंगा पड़ सकता है। RAID 10 में कुल रॉ स्टोरेज का आधा हिस्सा मिररिंग के लिए इस्तेमाल होता है और सैकड़ों टेराबाइट की क्षमता वाले सिस्टम में यह खर्च काफी बढ़ जाता है। दूसरी ओर, एक बड़ा RAID 5 ऐरे अपने साथ अलग तरह का जोखिम लेकर आता है। जैसे-जैसे ड्राइव्स की संख्या बढ़ती है, रीबिल्ड में ज्यादा समय लगता है और इस दौरान दूसरी ड्राइव के फेल होने का जोखिम भी बढ़ जाता है। RAID 50 इन दोनों समस्याओं को कम करने के लिए डिस्ट्रीब्यूटेड पैरिटी को अलग-अलग ग्रुप में ब्लॉक-लेवल स्ट्राइपिंग के साथ जोड़ता है।
RAID 50 कैसे काम करता है
कंट्रोलर ड्राइव्स को कई अलग-अलग RAID 5 ग्रुप में बांटता है। हर ग्रुप में कम से कम तीन ड्राइव्स होती हैं। फिर RAID 0 की मदद से इन सभी ग्रुप में डेटा को स्ट्राइप किया जाता है। एक बड़े RAID 5 ऐरे की तुलना में इससे राइट परफॉर्मेंस बेहतर होती है, क्योंकि पैरिटी कैलकुलेशन पूरे ऐरे की बजाय छोटे-छोटे ग्रुप में किया जाता है। हर ग्रुप में एक ड्राइव फेल होने पर डेटा को सुरक्षित रखने के लिए पर्याप्त पैरिटी होती है। अगर किसी एक ड्राइव में फेल्योर होता है, तो रीबिल्ड सिर्फ उसी ग्रुप पर होता है। बाकी ग्रुप सामान्य रूप से चलते रहते हैं और रीबिल्ड के दौरान उनकी ड्राइव्स को पढ़ने की जरूरत नहीं पड़ती।
क्षमता और सही गणना
छह ड्राइव वाले RAID 50 में ड्राइव्स को तीन-तीन ड्राइव के दो RAID 5 सबग्रुप में बांटा जाता है। हर सबग्रुप में एक ड्राइव पैरिटी के लिए इस्तेमाल होती है। बाकी दो ड्राइव डेटा के लिए रहती हैं। इस तरह कुल छह में से चार ड्राइव डेटा स्टोरेज के लिए इस्तेमाल की जा सकती हैं।
यही तरीका बड़े सेटअप में भी लागू होता है। आठ ड्राइव वाले ऐरे को चार-चार ड्राइव के दो ग्रुप में बांटने पर हर ग्रुप में एक ड्राइव पैरिटी के लिए रखी जाती है और छह ड्राइव डेटा स्टोरेज के लिए रहती हैं। इसी तरह, बारह ड्राइव को छह-छह ड्राइव के दो ग्रुप में बांटने पर दस ड्राइव डेटा के लिए इस्तेमाल की जा सकती हैं। बड़े ग्रुप में भी पैरिटी के लिए एक ड्राइव ही रखी जाती है, जबकि बाकी ड्राइव्स डेटा स्टोरेज के लिए इस्तेमाल होती हैं।
इस बेहतर स्टोरेज रेशियो के साथ रीबिल्ड में ज्यादा समय लगता है। सबग्रुप जितना बड़ा होगा, रीबिल्ड पूरा होने में उतना ही ज्यादा समय लगेगा। इस दौरान उसी सबग्रुप में दूसरी ड्राइव फेल होने पर डेटा रिकवर करना संभव नहीं होगा।
रीबिल्ड समय और फ्लैट RAID 5 की तुलना में RAID 50
बड़े ऐरे पर सामान्य RAID 5 रीबिल्ड स्टोरेज मैनेजमेंट के दौरान सबसे अधिक जोखिम वाले समय में से एक होता है। सामान्य परिस्थितियों में एक 16TB मैकेनिकल ड्राइव की लगातार सीक्वेंशियल रीड स्पीड लगभग 200 से 250MB/s होती है। इस ड्राइव को रीबिल्ड करने के लिए ऐरे की बाकी सभी ड्राइव से डेटा पढ़ना और उसे दोबारा कैलकुलेट करना पड़ता है। 250MB/s की स्पीड से 16TB डेटा को स्कैन करने में लगभग 18 घंटे लग सकते हैं।
इस दौरान ऐरे की बाकी सभी ड्राइव पर गर्मी और मैकेनिकल स्ट्रेस बढ़ जाता है। अगर इसी समय उसी सबग्रुप की दूसरी ड्राइव फेल हो जाती है, तो वह सबग्रुप काम करना बंद कर देता है। इसके बाद डेटा को स्पेशलिस्ट की मदद के बिना रिकवर करना संभव नहीं होता।
RAID 50 इस जोखिम को कम करता है क्योंकि हर सबग्रुप का रीबिल्ड अलग से होता है। रीबिल्ड के दौरान केवल प्रभावित सबग्रुप की ड्राइव से डेटा पढ़ा जाता है। बाकी सबग्रुप इसमें शामिल नहीं होते।
RAID 60 (RAID 6+0)
RAID 60 में RAID 50 जैसा ही आर्किटेक्चर का इस्तेमाल होता है, लेकिन इनर टियर में RAID 5 की जगह RAID 6 का इस्तेमाल किया जाता है। इसमें सबसे बड़ा अंतर डुअल पैरिटी का है। हर इनर सबग्रुप दो अलग-अलग पैरिटी स्ट्रीम, P और Q, कैलकुलेट करता है। इसके लिए Reed-Solomon पॉलीनोमियल कोडिंग का इस्तेमाल किया जाता है। इसकी मदद से हर सबग्रुप एक ही समय में दो ड्राइव फेल होने पर भी बिना डेटा खोए काम करता रह सकता है।
RAID 60 कैसे काम करता है
कंट्रोलर सभी ड्राइव्स को अलग-अलग RAID 6 सबग्रुप में बांटता है। हर सबग्रुप में कम से कम 4 ड्राइव होती हैं। इसके बाद RAID 0 की मदद से इन ग्रुप को बाहरी टियर पर एक साथ स्ट्राइप किया जाता है। इस तरह RAID 60 के लिए कम से कम 8 ड्राइव चाहिए, जिसमें 4-4 ड्राइव के दो RAID 6 सबग्रुप होते हैं।
8-ड्राइव के सेटअप में, हर 4-ड्राइव वाले सबग्रुप की 2 ड्राइव डुअल पैरिटी के लिए इस्तेमाल होती हैं। बाकी 2 ड्राइव डेटा के लिए रहती हैं। दोनों ग्रुप को मिलाकर 8 में से 4 ड्राइव की यूज़ेबल कैपेसिटी डेटा स्टोरेज के लिए इस्तेमाल की जा सकती है। हर सबग्रुप में ज्यादा ड्राइव जोड़ने पर यूज़ेबल कैपेसिटी भी बढ़ती है। उदाहरण के लिए, 6-6 ड्राइव के दो सबग्रुप से बने 12-ड्राइव RAID 60 में 8 ड्राइव की कैपेसिटी डेटा स्टोरेज के लिए इस्तेमाल हो सकती है।
इस कॉन्फ़िगरेशन में राइट परफॉर्मेंस पर असर पड़ता है। हर राइट से पहले कंट्रोलर को दो अलग-अलग पैरिटी वैल्यू कैलकुलेट करनी होती हैं। इससे RAID 50 की तुलना में राइट प्रोसेस होने में ज्यादा समय लगता है। ज्यादा राइट थ्रूपुट वाले वर्कलोड में यह अतिरिक्त प्रोसेसिंग ऐरे की स्पीड को सीमित कर सकती है।
RAID 60 उन वातावरणों के लिए सही हो सकता है जहां हार्डवेयर फेल्योर के दौरान डेटा खोने का जोखिम धीमी राइट स्पीड और ज्यादा ड्राइव की जरूरत से बड़ी चिंता है। हेल्थकेयर स्टोरेज, फाइनेंशियल ट्रांजैक्शन लॉग और सरकारी आर्काइव इसके उदाहरण हैं। ज्यादातर SMB सेटअप में ज्यादा ड्राइव और कम राइट परफॉर्मेंस के कारण RAID 60 तभी इस्तेमाल किया जाता है जब दो ड्राइव के एक साथ फेल होने से सुरक्षा किसी खास कम्प्लायंस या ऑपरेशनल रिक्वायरमेंट का हिस्सा हो।
RAID 10 vs RAID 50 vs RAID 60: एक साथ तुलना
सही आर्किटेक्चर चुनने के लिए हार्डवेयर बजट और परफॉर्मेंस की जरूरत के बीच संतुलन बनाना जरूरी है। डेटाबेस एडमिनिस्ट्रेटर आमतौर पर हाई इनपुट ऑपरेशंस के लिए तेज परफॉर्मेंस चाहते हैं, इसलिए मिरर्ड स्ट्राइपिंग एक अच्छा विकल्प हो सकता है। वहीं, बड़े स्टोरेज रिपॉजिटरी में पैरिटी स्ट्राइपिंग से मिलने वाली सीक्वेंशियल रीड और राइट स्पीड ज्यादा उपयोगी हो सकती है। साथ ही, RAID कंट्रोलर फेल्योर जैसी स्थिति के लिए पहले से प्लानिंग करना भी जरूरी है।
नीचे दी गई टेबल में उन प्रमुख पहलुओं के आधार पर इन आर्किटेक्चर की तुलना की गई है, जिन्हें ड्राइव कॉन्फ़िगरेशन तय करते समय ध्यान में रखना जरूरी होता है।
| कॉन्फ़िगरेशन | न्यूनतम ड्राइव्सs | उपयोग करने योग्य क्षमता | कितनी ड्राइव फेल होने पर डेटा सुरक्षित रहता है | राइट परफॉर्मेंस | किसके लिए उपयुक्त |
|---|---|---|---|---|---|
| RAID 10 (1+0) | 4 | 50% | हर मिरर पेयर में 1 | अच्छी (पैरिटी नहीं) | डेटाबेस, VMs, हाई-IOPS वर्कलोड |
| RAID 50 (5+0) | 6 | 67–83% | हर RAID 5 ग्रुप में 1 | मध्यम | बड़े ऐरे, बेहतर स्टोरेज क्षमता |
| RAID 60 (6+0) | 8 | 50–75% | हर RAID 6 ग्रुप में 2 | कम | महत्वपूर्ण डेटा, ज्यादा रिडंडेंसी वाले वातावरण |
निष्कर्ष: मैकेनिकल फॉल्ट के बाद ऐरे को सुरक्षित रखना
इमरजेंसी के दौरान सिस्टम एडमिनिस्ट्रेटर अक्सर बिना मूल लॉजिकल पैरामीटर की जांच किए कंट्रोलर रीबिल्ड शुरू करने की गलती करते हैं। किसी भी Hybrid सेटअप में रीबिल्ड शुरू करने से पहले बाहरी टियर के स्ट्राइप पैरामीटर और इनर टियर की ज्योमेट्री को सही तरीके से समझना जरूरी है। स्ट्राइप साइज या पैरिटी रोटेशन का गलत अनुमान लगाने से जरूरी हेक्साडेसिमल मेटाडेटा ओवरराइट हो सकता है और डेटा रिकवरी हमेशा के लिए असंभव हो सकती है।
अगर स्टोरेज ऐरे से रीड एरर आने लगें, तो इसे तुरंत बंद कर देना चाहिए। कंट्रोलर के साथ दोबारा कोई काम करने से पहले हर मेंबर डिस्क का सेक्टर-बाय-सेक्टर क्लोन बनाया जाना चाहिए। इसके लिए ड्राइव्स को निकालकर हार्डवेयर राइट-ब्लॉकर से कनेक्ट किया जाता है। राइट-ब्लॉकर एक तरह के वन-वे फिजिकल गेट की तरह काम करता है, जो ऑपरेटिंग सिस्टम को खराब ड्राइव पर बैकग्राउंड डेटा लिखने से रोकता है।
इस सुरक्षित कनेक्शन के जरिए बिट-स्ट्रीम क्लोन बनाया जा सकता है, जिसमें हर सेक्टर को उसी तरह कॉपी करके एक स्थिर डेस्टिनेशन ड्राइव पर सेव किया जाता है। इन क्लोन से स्पेशलिस्ट मूल ड्राइव्स को और नुकसान के जोखिम में डाले बिना लॉजिकल ऐरे को दोबारा तैयार कर सकता है।
रिकवरी का प्रयास करने से पहले एक्सपर्ट की मदद लें
Stellar Data Recovery में फेल हो रहे फिजिकल हार्डवेयर को सुरक्षित तरीके से संभालने के लिए ISO 27001-सर्टिफाइड Class 100 क्लीनरूम का इस्तेमाल किया जाता है। हार्डवेयर की जांच के बाद, विशेषज्ञ ऐरे के लॉजिकल स्ट्रक्चर को समझकर रिकंस्ट्रक्शन की प्रक्रिया शुरू करते हैं। अगर Hybrid ऐरे ऑफलाइन हो गया है, तो RAID डेटा रिकवरी स्पेशलिस्ट से इसकी पूरी जांच कराना बेहतर है। रिकवरी शुरू करने से पहले विशेषज्ञ यह भी जांचते हैं कि ऐरे से कितना डेटा सुरक्षित तरीके से रिकवर किया जा सकता है।
अक्सर पूछे जाने वाले सवाल
1. अगर एक ही RAID 50 ग्रुप में दो ड्राइव फेल हो जाएं तो क्या होता है?
वह खास RAID 5 सबग्रुप तुरंत ऐसी स्थिति में चला जाता है जहां डेटा को रिकवर करना संभव नहीं रहता। एक XOR कैलकुलेशन से बनी पैरिटी केवल एक खराब ड्राइव का डेटा दोबारा बनाने के लिए पर्याप्त होती है, दो ड्राइव का नहीं। बाकी ऐरे सामान्य रूप से काम करता रहता है। ऐसी स्थिति में डेटा रिकवरी के लिए स्पेशलिस्ट द्वारा मैनुअल रिकंस्ट्रक्शन की जरूरत होती है और इसकी गारंटी नहीं होती। हालांकि, प्रभावित ग्रुप में कौन से डेटा ब्लॉक मौजूद थे, इसके आधार पर कुछ फाइलें रिकवर की जा सकती हैं।
2. डेडिकेटेड हार्डवेयर कंट्रोलर ऐरे की परफॉर्मेंस कैसे बेहतर करता है?
एक फिजिकल हार्डवेयर कंट्रोलर में डेडिकेटेड सेंट्रल प्रोसेसिंग यूनिट और ऑनबोर्ड कैश मेमोरी होती है। यह चिप पैरिटी कैलकुलेशन और डेटा स्ट्राइपिंग जैसे काम संभालती है। इससे मुख्य सर्वर के प्रोसेसर पर काम का लोड कम होता है और वह यूजर एप्लिकेशन को संभाल सकता है। सॉफ्टवेयर ऐरे में ये काम मुख्य सर्वर के प्रोसेसर पर निर्भर करते हैं, जिससे पूरे सिस्टम की परफॉर्मेंस प्रभावित हो सकती है।
3. डेटाबेस एडमिनिस्ट्रेटर पैरिटी के बजाय मिरर्ड सेटअप क्यों पसंद करते हैं?
डेटाबेस हर सेकंड हजारों छोटे और रैंडम रीड और राइट कमांड चला सकते हैं। पैरिटी कॉन्फ़िगरेशन में हर राइट कमांड के लिए कैलकुलेशन करना पड़ता है, जिससे कुछ प्रोसेसिंग समय लगता है। मिरर्ड सेटअप में यह कैलकुलेशन नहीं करना पड़ता। डेटा ब्लॉक को एक साथ दो डिस्क पर कॉपी किया जाता है, जिससे ट्रांजैक्शन तेजी से पूरे हो सकते हैं।
4. क्या लॉजिकल स्ट्राइप साइज वर्चुअल मशीन की स्पीड को प्रभावित करता है?
हां। स्ट्राइप साइज यह तय करता है कि डेटा के हिस्से स्टोरेज सेक्टर के साथ किस तरह से अलाइन होंगे। वर्चुअल मशीन आमतौर पर काफी रैंडम और छोटे डेटा ऑपरेशन करती हैं। अगर स्ट्राइप साइज बहुत बड़ा है, तो छोटे डेटा को बदलने के लिए कंट्रोलर को जरूरत से ज्यादा डेटा पढ़ना पड़ सकता है। हाइपरवाइजर की जरूरत के अनुसार स्ट्राइप साइज सेट करने से अनावश्यक रीड कम हो सकते हैं और परफॉर्मेंस बेहतर हो सकती है।
5. क्या डिग्रेडेड Hybrid ऐरे नेटवर्क यूजर्स को फाइलें उपलब्ध कराता रह सकता है?
हां, डिग्रेडेड ऐरे काम करता रह सकता है, लेकिन इस स्थिति में बाकी ड्राइव्स पर अधिक दबाव पड़ता है। प्रोसेसर को गायब डेटा ब्लॉक को दोबारा बनाने के लिए पैरिटी डेटा पढ़ना या बचे हुए मिरर पार्टनर से डेटा लेना पड़ता है। इससे रीड और राइट स्पीड काफी कम हो सकती है। डिग्रेडेड स्थिति में काम जारी रखने से बाकी सही ड्राइव्स पर भी ज्यादा काम का दबाव पड़ता है, जिससे उनमें गर्मी और मैकेनिकल वाइब्रेशन बढ़ सकता है।