वास्तव में exactly allow-discards ’और t root_trim’ Linux पैरामीटर क्या करते हैं?


10

ऑनलाइन कई SSD- संबंधित निर्देश वर्तमान में कहते हैं कि आपको अपने GRUB_CMDLINE_LINUX में allow-discards और root_trim = yes जोड़ना चाहिए । मुझे अभी तक एक ऐसा नहीं मिला है जो कहता है कि आपको ऐसा क्यों करना चाहिए, अर्थात जो बिल्कुल (यदि कुछ भी हो!) उन मापदंडों को करें। इस पर प्रलेखन कहां है और यह उन दो मापदंडों के उद्देश्य के बारे में क्या कहता है?

क्रायसिपेटअप 1.4.0 रिलीज नोट्स के अनुसार ,

कर्नेल 3.1 के बाद से, dm- क्रिप्ट डिवाइस वैकल्पिक रूप से (डिफ़ॉल्ट रूप से नहीं) ब्लॉक डिस्कार्ड (TRIM) कमांड का समर्थन करते हैं। यदि आप इस ऑपरेशन को सक्षम करना चाहते हैं, तो आपको इसे प्रत्येक सक्रियण पर मैन्युअल रूप से सक्षम करना होगा -। -वार्ड का उपयोग करते हुए

cryptsetup luksOpen --allow-discards /dev/sdb test_disk 

लेकिन क्या यह वही है जब कर्नेल को (GRUB_CMDLINE_LINUX के माध्यम से) पास किया जाता है?

संपादित करें: कर्नेल.org की कर्नेल मापदंडों की सूची (वर्तमान में, जनवरी 2013, कम से कम) इनमें से कोई भी विकल्प नहीं है।


शायद webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html पर एक नज़र है, स्पष्टीकरण नहीं देता है, लेकिन एक त्वरित प्रक्रिया ...
alci

1
जैसा कि मैंने कहा, नेट स्पष्टीकरण के बिना निर्देशों से भरा है। मैं स्पष्टीकरण के बाद हूं, प्रक्रिया नहीं।
जानी उशीतालो

जवाबों:


6

मेरी समझ से बूट पैरामीटर root_trim=yesGentoo विशिष्ट है। भीतर genkernelएक स्क्रिप्ट है जो पैरामीटर की तलाश करता है और --allow-discardsक्रायसिपेटअप (उनके गिट रिपॉजिटरी देखें ) के साथ विकल्प सेट करता है । इसके अलावा मुझे उबंटू या डेबियन उपयोगकर्ताओं की कई रिपोर्टें मिलीं जिनमें कहा गया था कि यह root_trimपैरामीटर के बिना काम करता है। मुझे उबंटू update-initramfsलिपि में भी कोई रेखा नहीं मिली ।

तो सभी में यह कोई बूट पैरामीटर नहीं है, लेकिन अधिक पैरामीटर है cryptsetup। के प्रलेखन --allow-discardsका मैनपेज में पाया जा सकता cryptsetup (8) :

--allow-discards
डिवाइस के लिए डिस्क्स (TRIM) अनुरोधों का उपयोग करने की अनुमति दें। यह विकल्प केवल create , luksOpen या loopaesOpen के लिए प्रासंगिक है ।

चेतावनी : इस विकल्प को सक्षम करने से पहले विशिष्ट सुरक्षा जोखिमों का सावधानीपूर्वक आकलन करें। उदाहरण के लिए, एन्क्रिप्ट किए गए डिवाइस पर डिस्क की अनुमति देने से साइफरटेक्स्ट डिवाइस (फाइलसिस्टम टाइप, यूज्ड स्पेस आदि) के बारे में जानकारी लीक हो सकती है, अगर बाद में डिवाइस पर डिस्टर्ब ब्लॉक आसानी से स्थित हो सकते हैं।

कर्नेल संस्करण 3.1 या अधिक हाल ही में आवश्यक है। पुराने संस्करणों के लिए विकल्प को नजरअंदाज कर दिया गया है।

टीआरआईएम और डीएम-क्रिप्ट पर इस ब्लॉग के आधार पर , टीआरआईएम ऑपरेशन है जहां ऊपरी परत (जैसे फाइल सिस्टम) डिवाइस को सूचित करता है कि कौन से सेक्टर अब उपयोग नहीं किए जाते हैं (अब वैध डेटा नहीं है) और डिवाइस को उस डेटा सामग्री को रखने की आवश्यकता नहीं है ।

लिनक्स शब्दावली में इस ऑपरेशन को त्याग कहा जाता है। SCSI दुनिया में इसे UNMAP कमांड के रूप में जाना जाता है।

डिसकस ऑपरेशन का इस्तेमाल दो उद्देश्यों के लिए किया जा सकता है: पतली प्रोविजनिंग (यह बताती है कि डेटा क्षेत्र आवंटन पूल में वापस आ सकता है) और एसएसबी ऑपरेशन ऑप्टिमाइज़ेशन के लिए।

SSD अनुकूलन के लिए डिस्क सबसे अधिक उपयोगी है क्योंकि आंतरिक आर्किटेक्चर सेक्टरों की तुलना में बड़े ब्लॉक का उपयोग करता है और यह कि ब्लॉक को मिटा दिया जाना चाहिए इससे पहले कि एक लिखित ऑपरेशन किया जा सके। उन क्षेत्रों के बारे में जानकारी, जिन्हें डेटा रखने की आवश्यकता नहीं है, क्योंकि फाइल सिस्टम अधिक प्रभावी ढंग से ब्लॉक को व्यवस्थित करने में सक्षम होगा, ताकि डेटा विखंडन कम से कम हो और डिस्क का जीवनकाल भी बढ़ जाए।


अगर फाइलसिस्टम को अतिक्रमित नहीं किया जाता है, तो दोनों में से किसी भी विकल्प की आवश्यकता नहीं है? यदि वे करते हैं तो दो विकल्प क्यों एक कमांड को काम करने में सक्षम बनाते हैं?
जानी उस्तितालो

अपने अद्यतन उत्तर में कर्नेल पैरामीटर और माउंट / डेविक्मेपर विकल्प के बीच संबंध को इंगित करने के लिए धन्यवाद। इस बार +1। :)
gertvdijk

यह जवाब अच्छा लगने लगा है। मुझे dm-crypt के मौजूदा दस्तावेज में allow_discards भी मिला ; सब कुछ लगता है कि यह कर्नेल पैरामीटर नहीं है, लेकिन डीएम-क्रिप्ट डिवाइस-मैपर लक्ष्य के लिए एक विकल्प है। मैं अभी भी यह पता लगाने की कोशिश कर रहा हूं कि क्या वे लिनक्स कमांड लाइन पर पारित हो सकते हैं। यह निर्देश सभी पर तोते को समझाता है, अन्यथा यह शायद गलत सूचना है।
जानी उस्तितालो १६'१३

1
@ जनीयुसिटालो यह वास्तव में मेरे लिए यह (वैश्विक) कर्नेल पैरामेटर बनाने का कोई मतलब नहीं है। 1) आप वास्तव में सिस्टम-वाइड के बजाय इस फाइलसिस्टम / डिवाइस-विशिष्ट को निर्दिष्ट करना चाहते हैं, 2) माउंट / fstab विकल्प आपको पहले से ही ऐसा करने की सुविधा देता है, 3) बूट समय पर (initramfs द्वारा आपके /पढ़ने / लिखने के दौरान आपके माउंट होने से पहले ) इस कार्यक्षमता की आवश्यकता होने की संभावना नहीं है।
gertvdijk

4
अनुमति-डिस्र्ड का कर्नेल पैरामीटरिंग एक आर्किज़्म हो सकता है: स्पष्ट रूप से आर्क में, आप एक एन्क्रिप्टेड रूट के GRUB को सूचित करते हैं (उदाहरण के लिए) "cryptdevice = / dev / mapper / root: root: allow-discards"। यह उबंटू के उपयोगकर्ताओं द्वारा उठाया जा रहा है, आर्क के विकी को उबंटू विकी के एनक्रिप्टेड फ़ाइल्स सिस्टम द्वारा "सर्वश्रेष्ठ संदर्भ" के रूप में संदर्भित किए जाने के कारण हो सकता है ।
जानी उस्तितालो १६'१३
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.