Drive Appearance

आज computing में एक सामान्य किंतु थोड़ा पेचीदा मूलभूत अवधारणा है drive appearance की अवधारणा, यानी दूसरे शब्दों में, कुछ ऐसा जो hard drive जैसा दिखे। यह सरल लग सकता है, और अधिकांशतः है भी, लेकिन यह उलझन भरा हो सकता है।
पहले, hard drive क्या है — यह सरल होना चाहिए। हम सामान्यतः पारंपरिक spinning disk Winchester device का मतलब लेते हैं जैसे कि दशकों से मानक साढ़े तीन इंच और ढाई इंच form factors में बनाए जाते रहे हैं। इनमें platters होते हैं जो घूमते हैं, एक drive head होता है जो आगे-पीछे चलता है और ये ATA या SCSI connectors से जुड़ते हैं। हममें से अधिकांश एक hard drive को हाथ में उठाकर निश्चित रूप से पहचान सकते हैं। इसे हम drive की physical manifestation कहते हैं।
लेकिन computer के लिए, वह drive की casing या connectors नहीं देखता। Computer को अपनी electronics के माध्यम से drive को digitally “देखना” पड़ता है। यह उस तरीके से बहुत, बहुत अलग है जिस तरह इंसान physical drive को देखते हैं। Computer के लिए, एक hard drive सबसे बुनियादी physical स्तर पर एक ATA, SCSI या Fibre Channel device के रूप में दिखती है और आमतौर पर एक block device के रूप में अमूर्त की जाती है। इसे हम logical appearance कहते हैं, न कि physical। हमारे उद्देश्य के लिए, हम इन सभी drive interfaces को block devices मानेंगे। इनमें अंतर हैं, लेकिन केवल थोड़ा और इस चर्चा के लिए महत्वहीन। महत्वपूर्ण यह है कि एक मानक interface या closely related interfaces का एक समूह है जिसे computer hard drive के रूप में देखता है।
यहाँ logical drive appearance के बारे में सोचने का एक और तरीका यह है कि जो भी computer को hard drive जैसा लगता है वह कुछ ऐसा है जिस पर computer एक filesystem से format कर सके। Filesystems स्वयं drives नहीं होते, बल्कि उन्हें रखे जाने के लिए एक drive की आवश्यकता होती है।
यहाँ interface की अवधारणा सबसे महत्वपूर्ण है। Computer के लिए, “जो भी hard drive interface implement करता है” वही वास्तव में hard drive के रूप में देखा जाता है। यह एक सरल और शक्तिशाली दोनों अवधारणा है।
मानक interface के उपयोग के कारण ही हम flash memory को ले सके, उसे एक disk controller से जोड़ सके जो उसे एक मानक protocol पर प्रस्तुत करता है (आज इसके लिए ATA और SCSI के SATA और SAS implementations सामान्य हैं) और SSDs बना सके जो computer को पारंपरिक Winchester drives जैसी दिखती और काम करती हैं, फिर भी physically उनसे बिल्कुल अलग होती हैं। वे परिचित physical form factor में हो भी सकती हैं और नहीं भी, लेकिन उनमें platters और drive head निश्चित रूप से नहीं होते। एक पारंपरिक hard drive और एक modern SSD की कार्यप्रणाली देखकर हम अनुमान नहीं लगा सकते कि वे एक ही उद्देश्य साझा करते हैं।
यह अवधारणा कई devices पर लागू होती है। स्पष्ट रूप से SD cards और USB memory sticks भी इसी तरह काम करते हैं। लेकिन महत्वपूर्ण रूप से, इसी तरह hard drives के ऊपर partitions काम करते हैं। Partitioning system drive impression interface की अवधारणा का उपयोग एक तरफ किसी device पर लागू होने के लिए करता है, और दूसरी तरफ drive impression interface को उस चीज़ के लिए प्रस्तुत करता है जो इसका उपयोग करना चाहती है — सामान्यतः एक filesystem। यह विचार कि कुछ दोनों तरफ drive impression interface का उपयोग करता है, बहुत महत्वपूर्ण है। ऐसा करने से हमें complex storage systems बनाने के लिए एक uniform और universal building block system मिलता है!
हम इस “drive in; drive out” अवधारणा को कई मामलों में देखते हैं। शायद सबसे प्रसिद्ध है RAID। एक RAID system hard drives की एक array लेता है, drives को एक team की तरह काम कराने के लिए कई algorithms में से एक लागू करता है, और फिर उन्हें “stack” में अगले system के लिए एक single drive impression के रूप में प्रस्तुत करता है। यह encapsulation ही RAID को उसकी शक्ति देती है: stack में आगे के systems एक RAID array को literally एक hard drive के रूप में देखते हैं। वे drives की array नहीं देखते, वे RAID के नीचे क्या है यह नहीं जानते। वे केवल resulting drive(s) देखते हैं जो RAID system प्रस्तुत करता है।
क्योंकि एक RAID system arbitrary संख्या में drives लेता है और उन्हें एक मानक drive के रूप में प्रस्तुत करता है, इसलिए हमारे पास सैद्धांतिक रूप से RAID को जितनी बार चाहें layer करने की क्षमता है। बेशक यह किसी बड़े हद तक करना बेहद अव्यावहारिक होगा। लेकिन इसी अवधारणा के माध्यम से nested RAID arrays संभव हैं। उदाहरण के लिए, यदि हमारे पास कई physical hard drives हों जिन्हें जोड़ों में विभाजित किया गया हो और प्रत्येक जोड़ा RAID 1 array में हो। प्रत्येक resulting array एक single drive के रूप में प्रस्तुत होता है। इन resulting logical drives को किसी अन्य RAID array में मिलाया जा सकता है, जैसे RAID 0। ऐसा करना ही RAID 10 का निर्माण करता है। आगे जाकर हम कई RAID 10 arrays ले सकते हैं, उन सभी को एक अन्य RAID system के सामने प्रस्तुत कर सकते हैं जो उन्हें फिर RAID 0 में रखे और RAID 100 प्राप्त करें, और इसी तरह अनिश्चित काल तक।
इसी तरह logical volume layer भी अपना जादू दिखाने के लिए RAID जैसी encapsulation का उपयोग करती है। Logical Volume Managers, जैसे Linux पर LVM और Windows पर Dynamic Disks, logical disks के ऊपर बैठते हैं और एक ऐसी layer प्रदान करते हैं जहाँ आप devices को लचीले ढंग से expand करना या snapshots enable करना जैसे शक्तिशाली management कर सकते हैं, और फिर stack की अगली layer के लिए logical disks (यानी drive impression interface) प्रस्तुत करते हैं।
Drive impressions की uniform प्रकृति के कारण stack किसी भी क्रम में हो सकता है। एक logical volume manager RAID के ऊपर बैठ सकता है, या RAID एक logical volume manager के ऊपर, और निश्चित रूप से आप किसी एक या दोनों को छोड़ भी सकते हैं!
Drive impressions या logical hard drives की अवधारणा अपनी सरलता में शक्तिशाली है और हमें storage systems को हमारी जरूरत के अनुसार अनुकूलित करने की महान संभावना देती है।
बेशक logical drive अवधारणा के अन्य उपयोग भी हैं। सबसे लोकप्रिय और सबसे कम समझा जाने वाला है SAN। एक SAN कुछ और नहीं बल्कि एक ऐसा device है जो एक या अधिक physical disks लेता है और उन्हें network पर logical drives (SAN से यह logical drive presentation LUN कहलाती है) के रूप में प्रस्तुत करता है। यह सचमुच, बस यही है SAN। अधिकांश SANs अंतिम LUNs, या disk impressions, को network पर प्रस्तुत करने से पहले एक RAID layer और संभवतः एक logical volume manager layer शामिल करेंगे, लेकिन SAN होने के लिए यह आवश्यक नहीं है।
इसका अर्थ है, निश्चित रूप से, कि कई SAN LUNs को एक single RAID में मिलाया जा सकता है या एक logical volume layer के माध्यम से नियंत्रित किया जा सकता है। और निश्चित रूप से इसका मतलब है कि एक SAN LUN, एक physical hard drive, एक RAID array, एक logical volume, एक partition.... सभी को एक filesystem से format किया जा सकता है क्योंकि ये सभी एक ही परिणाम प्राप्त करने के अलग-अलग तरीके हैं। सभी एक समान व्यवहार करते हैं। सभी drive appearance interface साझा करते हैं।
एक वास्तविक उदाहरण देने के लिए कि ये सभी भाग अक्सर कैसे मिलकर काम करते हैं, हम enterprise space में मिलने वाले सबसे सामान्य “storage stacks” में से एक की जांच करेंगे। बेशक storage stack बनाने के कई तरीके हैं इसलिए आश्चर्यचकित न हों अगर आपका अलग हो। Stack के निचले हिस्से में लगभग हमेशा physical hard drives होते हैं, जिनमें solid state drives भी शामिल हो सकते हैं। ये एक SAN के अंदर physically स्थित होते हैं। SAN छोड़ने से पहले stack में likely drives की actual storage layer, फिर उन drives को एक single entity में मिलाने वाली RAID layer शामिल होगी। फिर growth और snapshots जैसी features के लिए एक logical volume layer। फिर SAN और server के बीच physical demarcation होती है जिसे LUN के रूप में प्रस्तुत किया जाता है। LUN पर फिर server / operating system की ओर demarcation point पर एक logical volume manager लागू होता है। फिर उस LUN के ऊपर एक filesystem होती है जो हमारा अंतिम चरण है क्योंकि filesystem drive appearance interface नहीं बल्कि एक file interface प्रस्तुत करती है।
Drive appearance, या logical drives, को समझना और यह समझना कि ये components को कैसे एक-दूसरे के साथ interface करने और complex storage subsystems बनाने की अनुमति देते हैं, IT समझ का एक महत्वपूर्ण building block है और बड़ी संख्या में IT गतिविधियों पर व्यापक रूप से लागू है।
