কীভাবে ট্রিম সক্ষম করবেন?


189

আমি জানি যে লিনাক্স কার্নেলটি ট্রিমকে ২.6.৩৩ সংস্করণ সমর্থন করে, তাই উবুন্টুতে ট্রিম সমর্থন থাকা উচিত।

ট্রিম কি ডিফল্টরূপে সক্ষম হয়েছে বা এর কাজ করার জন্য আমার কি কিছু সেটিংস পরিবর্তন করতে বা অতিরিক্ত সফ্টওয়্যার ইনস্টল করার দরকার আছে? যদি তাই হয়, কিভাবে?


আমি কেবল ওয়েবআপডি 8 এ এই নির্দেশাবলী অনুসরণ করেছি যা কিছু সত্যই ভাল বিকল্প দেয় :-) ওয়েবআপড 8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html উপরে বর্ণিত হিসাবে আমি স্বয়ংক্রিয় ট্রিমের বিকল্পটি চেষ্টা করেছি "অটোমেটিক ট্রিম" তবে দেখা গেছে যে প্রতিদিনের ক্রোন সেটআপ করা আমার সেটআপের সাথে আরও ভাল কাজ করেছে।
bmbaker

উত্তর:


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

উবুন্টু ১৪.০৪ অনুসারে, নির্ধারিত ট্রিমটি ইন্টেল, এসএমএসএনজি, ওসিজেড, প্যাট্রিয়ট এবং স্যান্ডিস্ক এসএসডি-র জন্য ডিফল্টরূপে সক্ষম হয়। আপনার যদি অন্য ব্র্যান্ড থাকে তবে আপনি নিম্নলিখিত কমান্ডটি চালিয়ে বিক্রেতার চেকটি অক্ষম করতে পারবেন:

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

(বা কেবল ফাইল সম্পাদনা করুন /etc/cron.weekly/fstrimএবং যুক্ত করুন --no-model-check)

উবুন্টু 13.10 এবং এর আগে

টিআরআইএম সম্পাদনের তিনটি উপায় রয়েছে, ম্যানুয়াল, নির্ধারিত এবং স্বয়ংক্রিয়:

ম্যানুয়াল ট্রিম

উবুন্টুতে এটি দিয়ে সম্পাদন করা যেতে পারে fstrim:

sudo fstrim /

নীচের বিভাগে বিশদ অনুসারে তফসিলযুক্ত বা স্বয়ংক্রিয় ট্রিম সক্ষম থাকা অবস্থায় এটি প্রয়োজন হয় না।

দ্রষ্টব্য: জন্য উবুন্টু 11.04 এবং তার আগে সিস্টেম, fstrim উপলব্ধ নয় তাই আপনি ব্যবহার করতে হবে wiper.shসঙ্গে সরবরাহকৃত hdparmমধ্যে/usr/share/doc/hdparm/contrib/wiper.sh.gz

নির্ধারিত ট্রিম (প্রস্তাবিত)

এটি বর্তমানে পুনরুদ্ধারযোগ্য পদ্ধতি এবং উবুন্টু 14.04 এর জন্য ডিফল্ট হিসাবে সক্রিয় করার পরিকল্পনা করা হয়েছে । ওবুন্টু (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_MOUNT_POINTSকোডে বর্ণিত হিসাবে এগুলি যুক্ত করুন ।

স্ক্রিপ্টটি সম্পাদনযোগ্য করুন:

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

এবং শেষ পর্যন্ত এটি পরীক্ষা করুন:

sudo /etc/cron.weekly/fstrim

যদি আপনি কোনও ত্রুটি দেখতে না পান তবে আপনার ক্রোন জবটি ঠিকঠাক কাজ করা উচিত।

স্বয়ংক্রিয় ট্রিম (অবহেলিত, ধীর)

EXT4 ফাইল সিস্টেমের সাথে উবুন্টু ১০.১০ (কার্নেল ২.6.৩৩) থেকে স্বয়ংক্রিয় ট্রিম সমর্থিত হয়েছে। তবে, প্রতিটি মুছে ফেলার পরে - রিয়েল-টাইমে ট্রাম কমান্ডগুলি এসএসডি-তে প্রেরণ করা - কিছু ড্রাইভে মুছে ফেলা স্বাভাবিকের চেয়ে অনেক ধীর গতিতে স্বীকৃত। সুতরাং ক্রোন কাজের মাধ্যমে একটি সাপ্তাহিক নির্ধারিত ট্রিম (উপরে বর্ণিত) পুনরায় সংস্থাপিত হয়।

ড্রাইভ বা পার্টিশনে স্বয়ংক্রিয় ট্রিম সক্ষম করতে, তাদের সাথে discardবিকল্পটি মাউন্ট করা দরকার fstab। প্রথমে আপনার fstab ব্যাকআপ করুন তারপরে এটি সম্পাদনার জন্য খুলুন:

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

যোগ discardএসএসডি ড্রাইভ বা প্রতিটি পার্টিশনের জন্য fstab ফাইলের অপশন এন্ট্রি (কমা দিয়ে আলাদা) এর।

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

বন্ধ করুন এবং fstab সংরক্ষণ করুন, তারপরে পুনরায় বুট করুন এবং স্বয়ংক্রিয় ট্রিমটি এখন কাজ করা উচিত।

স্বয়ংক্রিয় ট্রিম পরীক্ষা করা হচ্ছে

ট্রিম কাজ করছে কিনা নিম্নলিখিত পরীক্ষার জন্য নিম্নলিখিত কমান্ডগুলি ( উত্স ):

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এবং আপনার এসএসডি এর ডিভাইসের নাম যাচাই করুন: System->Administration->Disk Utilityযেমন এসডিএ, এসডিবি, এসডিসি ...

নিম্নলিখিতটি চালান তবে উপরে প্রাপ্ত বিশদ সহ [ADDRESS](start_LBA) এবং sdX(এসএসডি ডিভাইসের নাম) প্রতিস্থাপন করুন।

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

আউটপুট those খাতগুলির জন্য অক্ষরের একটি দীর্ঘ স্ট্রিং হওয়া উচিত

sudo rm tempfile
sync

hdparmউপরের দিক থেকে আদেশটি পুনরাবৃত্তি করুন :

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

আপনি যদি কেবল জিরো পান তবে স্বয়ংক্রিয় ট্রিম কাজ করছে। তবে ফাইলটি সরানোর পরে যদি সেক্টরগুলি এখনও খালি না থাকে তবে কিছুক্ষণ অপেক্ষা করুন এবং আবার কমান্ডটি চালান।



1
@ অলি দয়া করে কেউ আমাকে সাহায্য করুন। এটা আমার জন্য কাজ করে না বলে মনে হচ্ছে। আমি আমার এসএসডি 4 পার্টিশন আছে / /boot /usrএবং /optএবং আমি আমার জন্য আরেকটি HDD ব্যবহার করেছেন /home। আমি যাই cd / #sdcএবং আমি নির্দেশাবলী দিয়ে চালিয়ে যাই তবে আমি কখনই জিরো পাই না। আগাম ধন্যবাদ!
বাগশটজিজি

1
@ লাইট্রাশ: দুর্দান্ত সম্পাদনা! উত্তরটি আপ টু ডেট রাখার জন্য ধন্যবাদ
উলি

1
আপনি কমান্ডের syncপরে একটি যুক্ত করতে চাইতে পারেন dd, যেহেতু কমপক্ষে আমার সিস্টেমে টেম্পাইলটি এখনই তৈরি করা হয়নি, তাই এইচডিপিআরএম কিছুই জানায় না।
আন্দ্রেয়াস জে।

2
সিস্টেমড এখন এটি পরিচালনা করে। sudo systemctl স্থিতি fstrim.timer
বেলুন

28

মনে রাখবেন যে আপনি যদি এনক্রিপশনটি ব্যবহার করেন তবে এখন পর্যন্ত এখানে পোস্ট করা সমাধানগুলি আপনাকে সহায়তা করবে না, কারণ আপনার পাশাপাশি এনক্রিপশন স্তরটিতেও ট্রিম সমর্থন সক্ষম করতে হবে। এটি কার্নেল সংস্করণ 3.1+ এবং ক্রিপ্টসেটআপ সংস্করণ 1.4+ দিয়ে করা যেতে পারে, উভয়ই উবুন্টু 12.04-এ অন্তর্ভুক্ত রয়েছে।

সেটিং উপর আমার নির্দেশনা খুজুন LUKS সম্পর্কিত এনক্রিপ্ট পার্টিশন জন্য ছাঁটা এখানে


উবুন্টু এবং ডেবিয়ানে LUKS এনক্রিপ্ট করা পার্টিশনগুলিতে কীভাবে TRIM সক্রিয় করবেন


পদক্ষেপের এই পদক্ষেপটি আপনাকে ক্রিপ্টসেটআপ ১.৪ বা তার বেশি এবং কার্নেল ৩.১ বা উচ্চতর জন্য আপনার এনক্রিপ্ট করা এসএসডি পার্টিশনের জন্য ট্রিম প্রযুক্তির সুবিধা নিতে দেয়। এটি কোনও ঝামেলা-মুক্ত এসএসডি অভিজ্ঞতার দিকে পরিচালিত করে কারণ

"ট্রিম এসএসডিকে আবর্জনা সংগ্রহের ওভারহেড পরিচালনা করতে সক্ষম করে, যা অন্যথায় জড়িত ব্লকে ভবিষ্যতে লেখার কাজগুলি আগেই উল্লেখযোগ্যভাবে কমিয়ে দেয়।"

উদাহরণস্বরূপ সেটআপ

একক ড্রাইভ হিসাবে এসএসডি সহ নোটবুক, লিনাক্স একক ext4 এলভিএম রুট পার্টিশনটিতে এলভিএম সোয়াপ পার্টিশনের সাথে ইনস্টল করা হয়েছে, উভয়ই এলইউকেএস এনক্রিপ্ট করা লজিক্যাল পার্টিশন দ্বারা।

এসএসডি: / দেব / এসডিএ

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. আপনার / etc / fstab ফাইলে এনক্রিপ্ট করা এলভিএম ভলিউমের (গুলি) ফাইল সিস্টেম বিকল্পগুলিতে প্যারামিটারটি বাতিল করুন। এটি আপনার এলভিএম পার্টিশনের ফাইল সিস্টেমকে সচেতন করে তোলে যে আপনি ট্রিম ব্যবহার করতে চান।

    /dev/mapper/volumegroup-root    /   ext4 discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. যদিও শেষ পদক্ষেপটি যথেষ্ট নয়। যতক্ষণ না আপনি LUKS সচেতন না হন যে আপনি TRIM ব্যবহার করতে চান এটি সুরক্ষার কারণে LVM পার্টিশনের ফাইল সিস্টেম থেকে সমস্ত ট্রিম অপারেশন কার্যকরভাবে অবরুদ্ধ করবে। LUKS কে LVM পার্টিশনের বাতিল করা আচরণ গ্রহণ করার জন্য / etc / crypttab এর ক্রিপ্টডভাইস বিকল্পগুলিতে পরামিতি পরামিতি যুক্ত করুন।

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. আপনার initramfs পুনর্নির্মাণ। ক্রিপ্টটাব বিকল্পগুলি সেখানে সংরক্ষণ করা হয় এবং বুটে ব্যবহৃত হয়।

    sudo update-initramfs -c -k all
    
  6. পুনরায় বুট করুন।

  7. ট্রিম এখন সক্রিয় আছে কিনা তা পরীক্ষা করে দেখুন।

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. যদি শেষ কমান্ডটি এর মতো কোনও ফলাফল দেখায় (শেষের দিকে 1 অনুমতি_ডিসকার্ডস) আপনি প্রস্তুত আছেন।

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

ফলাফল

ট্রিম সক্রিয় করা হয়। আপনার ঝামেলামুক্ত এসএসডি উপভোগ করুন!


@ মার্কো সেপ্পি সম্পাদনার কোনও নির্দিষ্ট কারণ, যা আমি উপেক্ষা করেছি?
nem75

কেবল মার্কডাউনটি পরিষ্কার করে "স্বাক্ষর" লাইনটি সরিয়ে ফেলুন (ধারণা করা হচ্ছে আপনি সাইটে মন্তব্য এবং ভোট দেওয়ার মাধ্যমে প্রতিক্রিয়া পাবেন
মার্কো সেপ্পি

7
সাইট / পৃষ্ঠা অনুপলব্ধ ক্ষেত্রে গাইডটি এখানে অন্তর্ভুক্ত করা উচিত।
কাস

এটি কার্যকরভাবে একটি লিঙ্ক-কেবল উত্তর, এটি মোটেই কাজ করছে না। আপনারা বেশিরভাগ LUKS সহ এলভিএম ব্যবহার করবেন, যা 12.04-এ ট্রিম প্রচারের পক্ষে সক্ষম নয়। আরও তথ্যের জন্য এই উত্তর দেখুন ।
জার্মটভিডিজক 4'13

1
এই নির্দেশাবলী অনুসরণ করার পরে, 14.04-এ ডিস্কটি ছাঁটাতে এখনও ক্রোন জব স্থাপন করা দরকার?
আজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.