আপনার যুক্তিটি ভুল নয়। তবে এটি কেবল বৈধ যদি কিছু শর্ত সন্তুষ্ট হয়।
TRIM কমান্ড , উল্লেখিত ATA কম্যান্ড সেট , অথবা খাতে এটি বিরুদ্ধে জারি করা হয় শূন্য নাও হতে পারে হতে পারে।
আসলে, কি ডেটার উপর মান দৃষ্টি নিবদ্ধ পর TRIM জারি করা হয়েছে ফেরত পাঠানো হয়েছে 1 :
নিম্নলিখিত আচরণগুলি ডিভাইসটি ছাঁটাই করে এমন সেক্টরগুলির জন্য এই মান দ্বারা নির্দিষ্ট করা হয়েছে (দেখুন 7.5.3.3):
ক) অ-নিরস্তক - ছাঁটা খাত থেকে একটি রিডের প্রতিক্রিয়া হিসাবে ডেটা প্রতিটি পড়ার জন্য হোস্ট দ্বারা লিখিত না হওয়া পর্যন্ত পরিবর্তিত হতে পারে;
খ) ট্রিম (ডিআরএটি) এর পরে নির্ধারিত পড়ুন - ছাঁটাই করা খাত পড়ার প্রতিক্রিয়ায় ফিরিয়ে দেওয়া ডেটা পরিবর্তিত হয় না, তবে পূর্বে ফিরে আসা ডেটার চেয়ে আলাদা হতে পারে; এবং
গ) ট্রিমের পরে জিরোগুলি পড়ুন (আরজেট) - ছাঁটাইযুক্ত খাতটির একটি রিডের প্রতিক্রিয়া হিসাবে ফিরে আসা ডেটা শূন্য।
[...] ডিআরএটি এবং অ-নিরোধক স্টোরেজ ডিভাইস উভয়ের জন্যই, একটি এলবিএতে একটি রিড কমান্ডের প্রতিক্রিয়া হিসাবে ডেটা ফিরে এসেছে যা সফলভাবে ছাঁটাই হয়েছে:
ক) নির্দিষ্ট এলবিএর জন্য পূর্ববর্তী ডেটা হতে পারে;
খ) স্টোরেজ ডিভাইস দ্বারা উত্পাদিত একটি প্যাটার্ন হতে পারে; এবং
গ) হোস্ট দ্বারা কোনও আলাদা এলবিএতে পূর্বে লিখিত ডেটা নয়।
সুতরাং, পরে আপনার ডিভাইস কী ফিরিয়ে দেয় fstrim
তা প্রয়োগ করে এমন বৈশিষ্ট্যগুলির উপর নির্ভর করে। এটি আরজেডএটি সমর্থন না করলে, ছাঁটাই করা ডিভাইস থেকে পড়া ডেটা কেবল জিরোই থাকবে না এমন ধারণা।
আপনি এটি hdparm
পরীক্ষা করতে ব্যবহার করতে পারেন :
sudo hdparm -I /dev/sdX | grep -i trim
আমি দুটি এসএসডি ব্যবহার করে কিছু পরীক্ষা করেছি, sda
এবং sdb
। বিভিন্ন এটিএ কনফারেন্স সহ একই উত্পাদনকারী, বিভিন্ন মডেল:
$ sudo hdparm -i /dev/sdb
...
Drive conforms to: Unspecified: ATA/ATAPI-3,4,5,6,7
...
$ sudo hdparm -i /dev/sda
...
Drive conforms to: unknown: ATA/ATAPI-2,3,4,5,6,7
...
দুটি এসএসডি-র ট্রিমের জন্য আলাদা সমর্থন রয়েছে:
$ sudo hdparm -I /dev/sda | grep -i trim
* Data Set Management TRIM supported (limit 1 block)
$ sudo hdparm -I /dev/sdb | grep -i trim
* Data Set Management TRIM supported (limit 8 blocks)
* Deterministic read ZEROs after TRIM
আমি নিশ্চিত করতে পারি যে, ইস্যু করার পরে fstrim
, "ট্রাইম-এর পরে ডিট্রিমেন্টিক রিড জেরো" (আরজেট) সমর্থন করে এমন ড্রাইভটি সম্ভবত সংশ্লিষ্ট পার্টিশনটি প্রায় পুরোপুরি শূন্য করেছে। বিপরীতভাবে, অন্য ড্রাইভটি শূন্য হয়েছে বলে মনে হয়েছে (বা অন্যথায় কিছুটা অত্যন্ত সংকোচযোগ্য প্যাটার্ন দ্বারা প্রতিস্থাপন করা হয়েছে) খালি জায়গাটির সামান্য অংশ।
1 অনলাইন উত্স: INCITS 529: তথ্য প্রযুক্তি - এটিএ / এটিপিআই কমান্ড সেট - 4 (এসিএস -4)
পরীক্ষার উপর নোট:
মন্তব্যগুলিতে ফ্রয়েস্টচুটজ দ্বারা চিহ্নিত হিসাবে , একটি পঠন পরে fstrim
অপারেটিং সিস্টেম ক্যাশে থেকে ডেটা ফিরে আসতে পারে, ছাঁটা ডিভাইস থেকে না। উদাহরণস্বরূপ, এই প্রশ্নে কী ঘটেছিল ।
( ট্রিম পরীক্ষার বিকল্প পদ্ধতির জন্য আমি একই প্রশ্নের এই উত্তরটির দিকেও নির্দেশ করব )।
মধ্যে fstrim
এবং পরবর্তী পঠিত আপনি কি ক্যাশে, যেমন সঙ্গে ড্রপ করার প্রয়োজন হতে পারে:
echo 3 | sudo tee /proc/sys/vm/drop_caches
আপনি যে পার্টিশনটি নিয়ে খেলছেন তার উপর নির্ভর করে আপনার পরীক্ষাগুলি ব্যর্থ হওয়ার জন্য ক্যাশে না ফেলে রাখা যথেষ্ট।
আপনার সেটআপে নোট:
discard
মাউন্ট বিকল্প একটানা ছাঁটা, অর্থাত যে কোনো সময় ফাইল মুছে ফেলা হয় সক্ষম করে। এটি দ্বারা প্রয়োজন হয় না fstrim
। প্রকৃতপক্ষে, অন ডিমান্ড ট্রিম এবং ক্রমাগত ট্রিম টিআরএম অপারেশন পরিচালনার দুটি স্বতন্ত্র উপায়। আরও তথ্যের জন্য আমি আর্চ লিনাক্স উইকির সলিড স্টেট ড্রাইভের দিকে ইঙ্গিত করব , যার এই বিষয়ে বিস্তারিত কভারেজ রয়েছে coverage
dmsetup table | grep allow_discards