--write-mostly
, --write-behind
द्वारा नियंत्रित किया जाता md
चालक आंतरिक रूप से। md
मेटाडेटा रखता है, जैसे कि राइट-इंट्रेंस बिटमैप (जो राइट-बैक फीचर के लिए अनिवार्य है) जो मूल रूप से लॉग करता है कि कौन सा डेटा अभी तक लिखा गया है। कौन सा डेटा अभी भी गायब है। बिजली हानि की घटना होने पर यह आवश्यक है, जब डेटा अभी तक ज्यादातर उपकरणों तक नहीं पहुंचा है। उस स्थिति में प्रभावित डेटा क्षेत्र फिर से सिंक हो जाएगा (आपके मामले में एसएसडी से पढ़ा गया, एचडीडी को लिखें)।
लेकिन यह कैसे कर्नेल स्तर पर कैश किया गया है?
लिखने के पीछे के मामले के लिए, md ड्राइवर मूल रूप से आंतरिक रूप से लिखने के अनुरोध को दोहराता है। मास्टर लिखने का अनुरोध प्राथमिक ड्राइव पर जाता है और ऊपरी परतों को बताता है "ठीक है मैंने यह पहले ही कर लिया है"; कॉपी किए गए राइट रिक्वेस्ट फिर लिखने के लिए ज्यादातर RAID के पीछे-पीछे घूमता रहता है और बिना किसी सूचना के उम्मीद के मुताबिक पूरा होने में अधिक समय लग सकता है।
फिर छापे की परत बहुत सारे कदम उठाती है, यह सुनिश्चित करने के लिए कि कोई भी डेटा लेखन-अधिकतर डिवाइस से नहीं पढ़ा जाएगा, जबकि कतार में अभी भी लंबित लेखन-पीछे अनुरोध हैं। डेटा ज्यादातर राइट-डिवाइस से क्यों पढ़ा जाएगा? ठीक है, SSD विफल हो सकता है तो यह सब वहाँ छोड़ दिया है। यह जटिल है, और लिखने के पीछे कुछ कोने के मामलों का परिचय देता है।
जो शायद यह भी है कि यह केवल RAID -1 स्तर के लिए समर्थित है, दूसरों में से कोई भी नहीं। यद्यपि SSDs को अनिवार्य रूप से RAID-0 और दो-समानता HDDs के रूप में लिखने-पीछे मोड में होने के लिए सिद्धांत रूप में यह समझ में आता है, इस तरह लिखने के पीछे RAID-6 के लिए कोई समर्थन नहीं है। यह केवल RAID-1 है और शायद ही कभी इसका उपयोग किया जाता है।
अन्य कैश सेटिंग्स इससे अप्रभावित रहती हैं, मूल रूप से समग्र कैशिंग तंत्र को इस बात की कोई परवाह नहीं है कि md
ड्राइवर ने आंतरिक रूप से चीजों को कैसे लागू किया है। कैश अपना काम करता है और md अपना काम करता है। तो एक फाइलसिस्टम कैशे md के ऊपर एक फाइलसिस्टम के लिए एक ही काम करता है। एक नंगे ड्राइव के ऊपर एक फाइलसिस्टम। (वास्तविकता इससे कहीं अधिक जटिल है, लेकिन आप इसे इस तरह से सोच सकते हैं।)