bcache

From alpha
Jump to navigation Jump to search

bcache
डेवलपर(ओं)Kent Overstreet and others
इसमें लिखा हुआC
ऑपरेटिंग सिस्टमLinux
प्रकारLinux kernel features
लाइसेंसGNU GPL
वेबसाइटbcache.evilpiepirate.org

bcache (ब्लॉक कैश से संक्षिप्त) लिनक्स कर्नेल की ब्लॉक लेयर में एक कैश (कंप्यूटिंग) है, जिसका उपयोग माध्यमिक भंडारण डिवाइस तक पहुँचने के लिए किया जाता है। यह एक या एक से अधिक तेज़ स्टोरेज डिवाइस, जैसे फ्लैश-आधारित ठोस राज्य ड्राइव (SSDs) को एक या एक से अधिक धीमी स्टोरेज डिवाइस, जैसे हार्ड डिस्क ड्राइव (HDDs) के लिए कैश के रूप में कार्य करने की अनुमति देता है; यह प्रभावी रूप से संकर मात्रा बनाता है और प्रदर्शन में सुधार प्रदान करता है।

SSDs की प्रकृति और प्रदर्शन विशेषताओं के आसपास डिज़ाइन किया गया, bcache यादृच्छिक लेखन ्स से बचकर और उन्हें अनुक्रमिक राइट्स में बदलकर प्रवर्धन लिखें को कम करता है। I/O संचालन का यह विलय कैश और प्राथमिक स्टोरेज दोनों के लिए किया जाता है, कैश के रूप में उपयोग किए जाने वाले फ्लैश-आधारित उपकरणों के जीवनकाल को बढ़ाने में मदद करता है, और लिखने के प्रति संवेदनशील प्राथमिक स्टोरेज, जैसे कि RAID 5 सेट के प्रदर्शन में सुधार करता है।

bcache को जीएनयू जनरल पब्लिक लाइसेंस (GPL) के तहत लाइसेंस दिया गया है, और केंट ओवरस्ट्रीट इसका प्राथमिक डेवलपर है। ओवरस्ट्रीट bcaches को bcachefs के विकास के लिए एक प्रोटोटाइप के रूप में मानता है, महत्वपूर्ण सुधारों के साथ एक फाइल सिस्टम।[1]


सिंहावलोकन

bcache का उपयोग करना SSDs को डेटा स्टोरेज एक्सेस पथ के भीतर एक अन्य स्तर के संकेत के रूप में रखना संभव बनाता है, जिसके परिणामस्वरूप घूर्णी चुंबकीय भंडारण के साथ धीमी यांत्रिक हार्ड डिस्क ड्राइव (HDDs) के लिए कैश के रूप में तेजी से फ्लैश मेमोरी-आधारित SSDs का उपयोग करके समग्र प्रदर्शन में सुधार होता है। इस तरह, SSDs और HDDs के बीच की खाई को पाटा जा सकता है – SSDs की महंगी गति पारंपरिक HDDs की सस्ती भंडारण क्षमता के साथ मिल जाती है।[2] एसएसडी की सबसे प्रमुख विशेषता के रूप में लगभग शून्य सीक समय का उपयोग करते हुए प्रदर्शन किए गए यादृच्छिक पढ़ा ्स और रैंडम राइट्स से जुड़े डेटा को स्टोर करने के लिए एसएसडी का उपयोग करके कैशिंग को लागू किया जाता है। अनुक्रमिक I/O को कैश नहीं किया जाता है, ऐसे कार्यों पर तेजी से SSD कैश अमान्यकरण से बचने के लिए जो पहले से ही HDD के लिए पर्याप्त उपयुक्त हैं; बड़े अनुक्रमिक लेखन के लिए कैश के चारों ओर जाने को लिखने के आसपास पॉलिसी के रूप में जाना जाता है। अनुक्रमिक इनपुट/आउटपुट को कैशिंग नहीं करना I/O कैश के रूप में उपयोग किए जाने वाले एसएसडी के जीवनकाल को बढ़ाने में भी मदद करता है।[3] एसएसडी को यादृच्छिक लेखन नहीं करने से लेखन प्रवर्धन से बचा जाता है; इसके बजाय, SSD कैश के लिए सभी रैंडम राइट्स को हमेशा ब्लॉक-लेवल राइट्स में जोड़ा जाता है, जो SSDs पर केवल पूर्ण मिटाए गए ब्लॉकों को फिर से लिखने के साथ समाप्त होता है।[4][5] कैशिंग राइट ऑपरेशंस के लिए वापस लिखना और इससे लिखो (जो कि डिफ़ॉल्ट है) दोनों नीतियों का समर्थन किया जाता है। राइट-बैक पॉलिसी के मामले में, लिखित डेटा पहले एसएसडी कैश के अंदर संग्रहीत किया जाता है, और बाद में HDDs को एक बैच तरीके से प्रोपेगेट किया जाता है, जबकि सीक-फ्रेंडली ऑपरेशन करते हैं। – bcache को I/O अनुसूचक के रूप में भी कार्य करने के लिए बनाना। राइट-थ्रू पॉलिसी के लिए, जो यह सुनिश्चित करती है कि कोई भी राइटिंग ऑपरेशन समाप्त के रूप में चिह्नित नहीं किया जाता है जब तक कि लिखित डेटा एसएसडी और एचडीडी दोनों तक नहीं पहुंच जाता है, केवल लिखित डेटा के कैशिंग को प्रभावी ढंग से निष्पादित करके प्रदर्शन में सुधार किया जाता है।[4][5]

HDDs को बैच राइट के साथ राइट-बैक पॉलिसी स्वतंत्र डिस्क (RAID) लेआउट जैसे RAID 5 और RAID 6 के राइट-सेंसिटिव रिडंडेंट ऐरे को अतिरिक्त लाभ प्रदान करती है, जो परमाणु संचालन पढ़ने के लिए संशोधित-लिखने सीक्वेंस के रूप में वास्तविक राइट ऑपरेशंस करते हैं। इस तरह, प्रदर्शन दंड[6] ऐसे RAID लेआउट के लिए छोटे यादृच्छिक लेखन को एक साथ समूहीकृत करके और बैच अनुक्रमिक लेखन के रूप में प्रदर्शन करके कम किया जाता है या टाला जाता है।[4][5]

bcache द्वारा किया गया कैशिंग ब्लॉक डिवाइस स्तर पर संचालित होता है, जब तक कि फाइल सिस्टम एक एम्बेडेड सार्वभौमिक अद्वितीय पहचानकर्ता (UUID) प्रदान करता है, तब तक यह खुद को फाइल सिस्टम-एग्नोस्टिक बना देता है; यह आवश्यकता वस्तुतः सभी मानक लिनक्स फाइल सिस्टम के साथ-साथ लिनक्स स्वैप द्वारा संतुष्ट है। कैशिंग विस्तार के रूप में bcache द्वारा आंतरिक रूप से उपयोग किए जाने वाले तार्किक ब्लॉकों के आकार एकल HDD सेक्टर के आकार तक नीचे जा सकते हैं।[7]


इतिहास

bcache की पहली बार जुलाई 2010 में केंट ओवरस्ट्रीट द्वारा पूरी तरह से काम करने वाले लिनक्स कर्नेल मॉड्यूल के रूप में घोषणा की गई थी, हालांकि यह अपने शुरुआती बीटा चरण में था।[8] विकास लगभग दो वर्षों तक जारी रहा, मई 2012 तक, जिस बिंदु पर bcache अपने उत्पादन के लिए तैयार स्थिति में पहुंच गया।[5]

इसे 30 जून, 2013 को जारी कर्नेल संस्करण 3.10 में लिनक्स कर्नेल मेनलाइन में विलय कर दिया गया था।[9][10] ओवरस्ट्रीट तब से फ़ाइल सिस्टम bcachefs विकसित कर रहा है, जो पहले bcache में विकसित विचारों पर आधारित था, जो उसने कहा कि विकसित होना शुरू हुआ ... एक पूर्ण विकसित, सामान्य-उद्देश्य POSIX फ़ाइल सिस्टम में।[11] वह bcache को उन विचारों के लिए एक प्रोटोटाइप के रूप में वर्णित करता है जो bcachefs बन गए और bcachefs को bcache को बदलने का इरादा रखता है।[12] उन्होंने आधिकारिक तौर पर 2015 में bcachefs की घोषणा की, और 2018 तक इसे मेनलाइन लिनक्स कर्नेल में शामिल करने के लिए विचार के लिए प्रस्तुत कर रहे हैं।[13]


सुविधाएँ

लिनक्स कर्नेल के संस्करण 3.10 के अनुसार, निम्नलिखित सुविधाएँ bcache द्वारा प्रदान की जाती हैं:[4]

  • एक ही कैश डिवाइस का उपयोग प्राथमिक स्टोरेज डिवाइस की मनमानी संख्या को कैश करने के लिए किया जा सकता है
  • माउंटेड और उपयोग में होने पर प्राथमिक स्टोरेज डिवाइस को उनके कैश से अटैच और डिटैच करने का रनटाइम (कैश नहीं होने पर पासथ्रू मोड में चल रहा है)
  • अशुद्ध शटडाउन से स्वचालित पुनर्प्राप्ति – लिखना तब तक पूरा नहीं होता जब तक कि कैश प्राथमिक स्टोरेज डिवाइस के संबंध में सुसंगत न हो; आंतरिक रूप से, bcache स्वच्छ और अशुद्ध शटडाउन के बीच कोई अंतर नहीं करता है
  • कैश उपकरणों द्वारा उत्पन्न I/O त्रुटियों की पारदर्शी हैंडलिंग[3]* बाधा लिखें और संबंधित कैश फ्लश को ठीक से संभाला जाता है
  • राइट-थ्रू (जो डिफ़ॉल्ट है), राइट-बैक और राइट-अराउंड नीतियां
  • अनुक्रमिक I/O का पता लगाया जाता है और कॉन्फ़िगर करने योग्य थ्रेसहोल्ड के साथ बायपास किया जाता है; बाईपास को भी निष्क्रिय किया जा सकता है
  • SSD के लिए I/O का थ्रॉटलिंग यदि यह भीड़भाड़ हो जाता है, जैसा कि SSD के I/O संचालन की मापी गई विलंबता एक विन्यास योग्य सीमा से अधिक होने से पता चलता है; कई HDD के लिए कैशिंग प्रदान करने वाले एक SSD वाले कॉन्फ़िगरेशन के लिए उपयोगी
  • कैश मिस पर आगे पढ़ें (डिफ़ॉल्ट रूप से अक्षम)
  • अत्यधिक कुशल राइट-बैक कार्यान्वयन – गंदे डेटा को हमेशा क्रमबद्ध क्रम में लिखा जाता है, और वैकल्पिक रूप से बैकग्राउंड राइट-बैक को कैश के कॉन्फ़िगर किए गए प्रतिशत को गंदा रखने के लिए आसानी से थ्रॉटल किया जाता है
  • उच्च-निष्पादन B+ वृक्ष आंतरिक रूप से उपयोग किए जाते हैं – यदि हार्डवेयर पर्याप्त तेज़ है तो bcache रैंडम रीड्स पर लगभग 1,000,000 IOPS करने में सक्षम है
  • विभिन्न रनटाइम आँकड़े और कॉन्फ़िगरेशन विकल्प sysfs के माध्यम से सामने आते हैं[3]


सुधार

As of February 2014, bcache के भावी रिलीज़ के लिए निम्नलिखित नई सुविधाओं की योजना बनाई गई है:[10]

  • RAID 5 और RAID 6 लेआउट में डेटा स्ट्रिपिंग के बारे में जागरूकता – राइट-बैक पॉलिसी में स्ट्राइप लेआउट के बारे में जागरूकता जोड़ना, इसलिए कैशिंग पर निर्णय पहले से ही गंदी स्ट्राइप्स को प्राथमिकता देना होगा, और वास्तविक बैकग्राउंड फ्लश में पहले पूरी स्ट्राइप्स लिखना होगा
  • पहले से ही पूर्ण बी + ट्री नोड्स के साथ कैशे को संभालना याद आता है – Linux कर्नेल 3.10 में bcache संस्करण के अनुसार, आंतरिक रूप से उपयोग किए जाने वाले B+ ट्री नोड्स का विभाजन राइट्स पर होता है, प्रारंभिक कैश वार्म-अप को मुश्किल से प्राप्त किया जा सकता है
  • एक कैश सेट में एकाधिक एसएसडी – साफ डेटा और रीड कैश के लिए एसएसडी स्पेस को बर्बाद किए बिना केवल गंदे डेटा (राइट-बैक पॉलिसी के लिए) और मेटा डेटा को मिरर किया जाएगा।
  • डेटा अंततः, िंग

यह भी देखें

  • डीएम-कैश – Linux कर्नेल का डिवाइस मैपर लक्ष्य जो हाइब्रिड वॉल्यूम के निर्माण की अनुमति देता है
  • एन्हांसियो – लिनक्स कर्नेल के लिए एक डिस्क कैश मॉड्यूल।
  • फ़्लैश कैश – लिनक्स कर्नेल के लिए एक डिस्क कैश घटक, जिसे शुरू में फेसबुक द्वारा विकसित किया गया था
  • हाइब्रिड ड्राइव – एक स्टोरेज डिवाइस जो फ्लैश-आधारित और स्पिनिंग मैग्नेटिक मीडिया स्टोरेज तकनीकों को जोड़ती है
  • रेडी बूस्ट – Windows Vista और बाद में Microsoft ऑपरेटिंग सिस्टम का एक डिस्क कैशिंग सॉफ़्टवेयर घटक
  • स्मार्ट रिस्पांस टेक्नोलॉजी (SRT) – इंटेल द्वारा अपने चिपसेट के लिए विकसित एक मालिकाना डिस्क स्टोरेज कैशिंग तंत्र

संदर्भ

  1. "bcache FAQ". bcache.evilpiepirate.org. Retrieved May 7, 2021.
  2. Petros Koutoupis (November 25, 2013). "Advanced Hard Drive Caching Techniques". Linux Journal. Retrieved December 2, 2013.
  3. 3.0 3.1 3.2 "Linux kernel documentation: Documentation/bcache.txt". kernel.org. August 12, 2013. Retrieved January 24, 2014.
  4. 4.0 4.1 4.2 4.3 Kent Overstreet. "bcache: Linux kernel block layer cache". bcache.evilpiepirate.org. Retrieved December 2, 2013.
  5. 5.0 5.1 5.2 5.3 Jonathan Corbet (May 12, 2012). "A bcache update". LWN.net. Retrieved October 4, 2013.
  6. "Basic RAID Organizations". ecs.umass.edu. Retrieved October 4, 2013.
  7. William Stearns; Kent Overstreet (July 2, 2010). "bcache: Caching beyond just RAM". LWN.net. Retrieved October 4, 2013.
  8. Kent Overstreet (July 4, 2010). "bcache: Version 6". LWN.net. Retrieved October 4, 2013.
  9. "Linux kernel 3.10, Section 1.2. bcache, a block layer cache for SSD caching". kernelnewbies.org. June 30, 2013. Retrieved October 4, 2013.
  10. 10.0 10.1 Libby Clark (June 11, 2013). "All About the Linux Kernel: bcache". linux.com. Archived from the original on September 29, 2013. Retrieved October 9, 2013.
  11. Larabel, Michael (August 21, 2015). "A New Linux File-System Aims For Speed While Having ZFS/Btrfs-Like Features". Phoronix. Retrieved November 22, 2018.
  12. Edge, Jake (May 23, 2018). "An update on bcachefs". LWN.net. Retrieved November 22, 2018.
  13. Larabel, Michael (May 9, 2018). "bcachefs File-System Is Working On Going Upstream In The Linux Kernel". Phoronix. Retrieved November 22, 2018.


बाहरी संबंध