TRIM कैसे सक्षम करें?


189

मुझे पता है कि लिनक्स कर्नेल 2.6.33 संस्करण के रूप में TRIM का समर्थन करता है, इसलिए ubuntu में TRIM समर्थन होना चाहिए।

क्या TRIM डिफ़ॉल्ट रूप से सक्षम है या क्या मुझे कुछ सेटिंग्स बदलने या इसके लिए अतिरिक्त सॉफ़्टवेयर स्थापित करने की आवश्यकता है? यदि हां, तो कैसे?


मैंने बस webupd8 पर इन निर्देशों का पालन किया है जो कुछ बहुत अच्छे विकल्प देता है :-) webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html मैंने ऊपर बताए अनुसार स्वचालित ट्रिम के विकल्प की कोशिश की "स्वचालित TRIM" लेकिन पाया कि एक दैनिक क्रोन स्थापित करना मेरे सेटअप के साथ बेहतर काम करता है।
बंबेकर

जवाबों:


197

उबंटू 14.10 आगे

उबंटू 14.10 और 15.04 में, ट्राइमिंग हर सप्‍ताह सभी एसएसडी द्वारा समर्थित हर हफ्ते होता है fstrim

$ tail -n1 /etc/cron.weekly/fstrim 
/sbin/fstrim --all || true

15.04 के बाद से उबंटू सिस्टमड और इसके टाइमर ( man systemd.timer, आर्क विकी ) का उपयोग करता है

systemctl list-timers
systemctl status fstrim.timer

उबंटू 14.04

Ubuntu 14.04 के रूप में, अनुसूचित TRIM इंटेल, सैमसंग, OCZ, पैट्रियट और सैंडिस्क SSDs के लिए डिफ़ॉल्ट रूप से सक्षम है। यदि आपके पास एक और ब्रांड है, तो आप निम्न कमांड को चलाकर विक्रेता की जांच को अक्षम कर सकते हैं:

sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim

(या बस फ़ाइल को संपादित करें /etc/cron.weekly/fstrimऔर जोड़ें --no-model-check)

Ubuntu 13.10 और पहले

TRIM, मैनुअल, शेड्यूल और स्वचालित करने के तीन तरीके हैं:

मैनुअल TRIM

उबंटू में इसके साथ प्रदर्शन किया जा सकता है fstrim:

sudo fstrim /

हालांकि अनुसूचित या स्वचालित TRIM सक्षम होने पर इसकी आवश्यकता नहीं है, जैसा कि नीचे दिए गए अनुभागों में विस्तृत है।

नोट: के लिए Ubuntu 11.04 और पहले की प्रणालियों, fstrim उपलब्ध नहीं है तो आप का उपयोग करने की wiper.shके साथ आपूर्ति hdparmमें/usr/share/doc/hdparm/contrib/wiper.sh.gz

अनुसूचित TRIM (अनुशंसित)

यह वर्तमान में पुनःप्राप्त विधि है, और इसे Ubuntu 14.04 के लिए प्रति डिफ़ॉल्ट सक्रिय करने की योजना है । Ubuntu (11.10 से 13.10) के पुराने संस्करणों में इसे मैन्युअल रूप से सक्रिय करने का तरीका बताया गया है:

एक साप्ताहिक CRON जॉब स्क्रिप्ट फ़ाइल बनाएँ:

gksudo gedit /etc/cron.weekly/fstrim

फ़ाइल में निम्न कोड चिपकाएँ, फिर फ़ाइल को सहेजें और बंद करें:

#! /bin/sh  

# By default we assume only / is on an SSD. 
# You can add more SSD mount points, separated by spaces.
# Make sure all mount points are within the quotes. For example:
# SSD_MOUNT_POINTS='/ /boot /home /media/my_other_ssd'  

SSD_MOUNT_POINTS='/'  

for mount_point in $SSD_MOUNT_POINTS
do  
    fstrim $mount_point  
done

ध्यान दें कि ऊपर मान लिया गया है कि केवल आपका रूट फाइल सिस्टम /एक SSD पर स्थित है। यदि आपके पास अधिक आरोह बिंदु हैं जो एक या अधिक एसएसडी पर रहते हैं, तो उन्हें SSD_MOUNT_POINTSकोड में बताए अनुसार जोड़ें ।

स्क्रिप्ट को निष्पादन योग्य बनाएं:

sudo chmod +x /etc/cron.weekly/fstrim

और अंत में इसका परीक्षण करें:

sudo /etc/cron.weekly/fstrim

यदि आपको कोई त्रुटि नहीं दिखती है, तो आपकी क्रोन जॉब ठीक काम कर रही है।

स्वचालित TRIM (पदावनत, धीमा)

EXT4 फ़ाइल सिस्टम के साथ उबंटू 10.10 (कर्नेल 2.6.33) के बाद से स्वचालित TRIM का समर्थन किया गया है। हालाँकि, रीयल-टाइम में SSD को TRIM कमांड भेजना - हर डिलीट के बाद - डिलीट करने को कुछ ड्राइव्स पर सामान्य से ज्यादा धीमा बनाने के लिए पहचाना गया है। इसलिए एक क्रोन जॉब (ऊपर वर्णित) के माध्यम से एक साप्ताहिक अनुसूचित TRIM को फिर से शामिल किया गया है।

एक ड्राइव या विभाजन पर स्वचालित TRIM को सक्षम करने के लिए, उन्हें discardविकल्प में रखा जाना चाहिए fstab। सबसे पहले अपने fstab का बैकअप लें और फिर उसे संपादन के लिए खोलें:

sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

discardSSD ड्राइव या प्रत्येक विभाजन के लिए fstab विकल्प प्रविष्टि (अल्पविराम से अलग) में जोड़ें ।

UUID=00000000-0000-0000-0000-000000000000  /  ext4  discard,errors=remount-ro  0  1

बंद करो और fstab को बचाओ, फिर रिबूट और स्वचालित TRIM अब काम करना चाहिए।

परीक्षण स्वचालित TRIM

परीक्षण करने के लिए कि क्या TRIM निम्नलिखित आदेश जारी कर रहा है ( स्रोत ):

cd  / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile

आउटपुट से संख्या की प्रतिलिपि बनाएँ begin_LBAऔर अपने SSD के डिवाइस नाम को सत्यापित करें: System->Administration->Disk Utilityजैसे sda, sdb, sdc ...

ऊपर दिए गए विवरणों के साथ निम्नलिखित लेकिन प्रतिस्थापित [ADDRESS](start_LBA) और sdX(SSD डिवाइस नाम) चलाएं ।

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

आउटपुट उन क्षेत्रों के लिए वर्णों की एक लंबी स्ट्रिंग होनी चाहिए

sudo rm tempfile
sync

hdparmऊपर से आदेश दोहराएं :

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

यदि आपको केवल शून्य मिलता है तो स्वचालित TRIM काम कर रहा है। हालाँकि यदि फ़ाइल को हटाने के बाद सेक्टर अभी भी खाली नहीं हैं तो थोड़ी देर रुकें और फिर से कमांड चलाएँ।


5
परीक्षण TRIM वास्तव में उस तरह काम नहीं कर सकता है: serverfault.com/a/401506/60525
chrishiestand

1
@ कोई कृपया मेरी मदद करो। यह मेरे लिए काम करने के लिए प्रतीत नहीं होता है। मैं अपने एसएसडी में 4 विभाजन है / /boot /usrऔर /optऔर मैं अपने लिए एक और HDD का इस्तेमाल किया है /home। मैं जाता हूं cd / #sdcऔर मैं निर्देश जारी रखता हूं लेकिन मुझे कभी शून्य नहीं मिलता। अग्रिम में धन्यवाद!
BugShotGG 1

1
@ प्रकाश: शानदार संपादन! उत्तर को अद्यतन रखने के लिए धन्यवाद।
उली

1
आप कमांड के syncबाद जोड़ना चाह सकते हैं dd, क्योंकि कम से कम मेरे सिस्टम पर तुरंत अस्थायी निर्माण नहीं किया जाता है, इसलिए hdparmal कुछ भी नहीं।
एंड्रियास जे।

2
systemd अब इसे संभालता है। sudo systemctl status fstrim.timer
गुब्बारे 23

28

ध्यान दें कि यदि आप एन्क्रिप्शन का उपयोग कर रहे हैं, तो अब तक आपके द्वारा पोस्ट किए गए समाधान आपकी मदद नहीं करेंगे, क्योंकि आपको एन्क्रिप्शन परत में TRIM समर्थन को सक्षम करने की आवश्यकता है। यह कर्नेल संस्करण 3.1+ और क्रायसिपेटअप संस्करण 1.4+ के साथ किया जा सकता है, दोनों ही उबंटू 12.04 में शामिल हैं।

यहाँ LUKS एन्क्रिप्टेड विभाजन के लिए TRIM स्थापित करने पर मेरा गाइड खोजें


कैसे Ubuntu और डेबियन में LUKS एन्क्रिप्टेड विभाजन पर TRIM को सक्रिय करने के लिए


स्टेप वॉकथ्रू का यह चरण आपको क्रिप्टोसेटअप 1.4 या उच्चतर और कर्नेल 3.1 या उच्चतर के लिए अपने एन्क्रिप्टेड SSD विभाजन के लिए TRIM तकनीक का लाभ उठाने देगा। यह एक परेशानी मुक्त SSD अनुभव की ओर जाता है क्योंकि

"टीआरआईएम एसएसडी को कचरा संग्रहण ओवरहेड को संभालने में सक्षम बनाता है, जो अन्यथा भविष्य के कार्यों को अग्रिम रूप से शामिल ब्लॉकों को धीमा कर देगा।"

उदाहरण सेटअप

एकल ड्राइव के रूप में एसएसडी के साथ नोटबुक, एलवीएम स्वैप विभाजन के साथ एकल ext4 LVM रूट विभाजन में स्थापित लिनक्स, दोनों LUKS एन्क्रिप्टेड तार्किक विभाजन पर।

एसएसडी: / देव / एसडीए

sudo fdisk -l /dev/sda
/dev/sda1               # boot partition (83) (unencrypted, ext4)
/dev/sda2               # extended partition
/dev/sda5               # logical partition (83) with LUKS encryption

ls /dev/mapper
/dev/mapper/sda5_crypt         # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root   # rootpartition sda5_crypt
/dev/mapper/volumegroup-swap   # swap partition sda5_crypt

कैसे

  1. अपने सभी डेटा का बैकअप बनाएं। आप अपने फाइल सिस्टम के साथ खिलवाड़ कर रहे हैं ताकि बैकअप होना एक अच्छा विचार है।
  2. सुनिश्चित करें कि आपके पास आवश्यक कर्नेल और क्रायसिपेटअप संस्करण (3.1 & 1.4 है, उदाहरण के लिए उबुन्टु 12.04 में, हालांकि सावधान रहें, 12.04 लिखने के समय अभी भी बीटा है)।
  3. अपनी / etc / fstab फ़ाइल में एन्क्रिप्टेड LVM वॉल्यूम (s) के फ़ाइल सिस्टम विकल्पों में त्यागें पैरामीटर जोड़ें। यह आपके LVM विभाजन की फ़ाइल प्रणाली को जागरूक करता है जिसे आप TRIM का उपयोग करना चाहते हैं।

    /dev/mapper/volumegroup-root    /   ext4 discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. हालांकि अंतिम चरण पर्याप्त नहीं है। जब तक LUKS को इस बात की जानकारी नहीं है कि आप TRIM का उपयोग करना चाहते हैं, यह सुरक्षा कारणों से LVM पार्टीशन के फाइल सिस्टम से आने वाले सभी TRIM संचालन को प्रभावी रूप से रोक देगा। LUKS को LVM विभाजन के व्यवहार को स्वीकार करने के लिए / etc / crypttab में क्रिप्टदेव के विकल्प में डिसकस पैरामीटर जोड़ें।

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. अपने initramfs का पुनर्निर्माण करें। Crypttab विकल्पों को वहां संग्रहीत किया जाता है और बूट पर उपयोग किया जाता है।

    sudo update-initramfs -c -k all
    
  6. रीबूट।

  7. जांचें कि क्या TRIM अब सक्रिय है।

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. यदि अंतिम कमांड इस तरह का परिणाम दिखाती है (अंत में 1 allow_discards) तो आप बिल्कुल तैयार हैं।

    0  77656056  crypt  aes-cbc-essiv:sha256  abc[...]c7a0c  0  8:5  2056  1  allow_discards
    

नतीजा

TRIM सक्रिय है। अपनी परेशानी मुक्त SSD का आनंद लें!


@Marco Ceppi संपादित करने के लिए कोई विशेष कारण, कुछ मैंने अनदेखा कर दिया?
nem75

बस markdown साफ़ कर रही है और उसे हटा "हस्ताक्षर" लाइन (यह मान लिया जाता है कि आप साइट पर टिप्पणियों और मतदान के माध्यम से प्रतिक्रिया मिल जाएगा।
मार्को Ceppi

7
यदि साइट / पृष्ठ अनुपलब्ध है, तो गाइड को यहां शामिल किया जाना चाहिए।
कैस

इसके अलावा यह प्रभावी रूप से लिंक-ओनली उत्तर है, यह बिल्कुल भी काम नहीं कर रहा है। आप में से अधिकांश एलवीएम का उपयोग एलयूकेएस के साथ करेंगे, जो 12.04 में टीआरआईएम को प्रचारित करने में सक्षम नहीं है। अधिक जानकारी के लिए यह उत्तर देखें ।
gertvdijk

1
इन निर्देशों का पालन करने के बाद, क्या 14.04 पर डिस्क को ट्रिम करने के लिए क्रोन जॉब सेट करना आवश्यक है?
अंजना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.