fstrim -
آزادسازی و
پیرایش
بلوکهای
استفادهنشده
در یک سیستم
فایل
سوارشده
fstrim [-v] [-o offset] [-l
length] [-m minimum-size]
-A|-a|mountpoint
دستور fstrim
بر روی یک
سیستمفایل
سوارشده
برای
آزادسازی
(یا «trim» کردن)
بلوکهایی
که توسط
سیستمفایل
در حال
استفاده
نیستند، به
کار میرود.
این کار
برای
درایوهای
حالت جامد (SSD)
و
حافظههای
ذخیرهسازی
thinly-provisioned مفید
است.
بهطور
پیشفرض،
fstrim تمامی
بلوکهای
استفادهنشده
در
سیستمفایل
را آزاد
میکند.
همانطور
که در ادامه
توضیح داده
شده است،
میتوان از
گزینهها
برای تغییر
این رفتار
بر اساس
محدوده یا
اندازه
استفاده
کرد.
آرگومان
mountpoint مسیر
پوشهای
است که
سیستمفایل
در آن سوار
شده است و در
صورتی که
گزینههای
-A، -a،
--fstab یا
--all مشخص
نشده
باشند،
اجباری
است.
اجرای
مکرر fstrim، یا
حتی
استفاده از
mount -o discard، ممکن
است اثر
منفی بر طول
عمر
دستگاههای
SSD با کیفیت
پایین
بگذارد.
برای بیشتر
سیستمهای
رومیزی و
سرور،
بسامد
پیرایش یک
بار در هفته
کافی است.
توجه داشته
باشید که
همه
دستگاهها
از پیرایش
صفبندیشده
(queued trim)
پشتیبانی
نمیکنند،
بنابراین
هر دستور
پیرایش بار
کاری و افت
کارایی بر
هر فرآیند
دیگری که در
آن زمان قصد
استفاده از
دیسک را
دارد تحمیل
میکند.
آرگومانهای
offset، length و minimum-size
میتوانند
با
پسوندهای
ضربی KiB (=1024)، MiB (=1024*1024)
و به همین
ترتیب برای
GiB، TiB، PiB، EiB، ZiB و YiB
دنبال شوند
(عبارت «iB»
اختیاری
است، برای
نمونه «K»
همان معنای
«KiB» را دارد)
یا
پسوندهای KB
(=1000)، MB (=1000*1000) و به
همین ترتیب
برای GB، TB، PB، EB،
ZB و YB.
-A, --fstab
پیرایش
تمام
سیستمفایلهای
سوارشده
ذکرشده در
/etc/fstab روی
دستگاههایی
که از
عملیات discard
پشتیبانی
میکنند.
اگر
سیستمفایل
ریشه در
پرونده
موجود
نباشد، از
خط فرمان
هسته تعیین
میشود.
سایر
گزینههای
ارائهشده
مانند --offset،
--length و --minimum بر
روی همه این
دستگاهها
اعمال
میشوند.
خطاهای
ناشی از
سیستمفایلهایی
که از
عملیات discard
پشتیبانی
نمیکنند،
دستگاههای
فقطخواندنی،
autofs و
سیستمفایلهای
فقطخواندنی
بدون نمایش
پیام
نادیده
گرفته
میشوند.
سیستمفایلهای
دارای
گزینه
سوارکردن
«X-fstrim.notrim»
نادیده
گرفته
میشوند.
-a, --all
پیرایش
تمام
سیستمفایلهای
سوارشده
روی
دستگاههایی
که از
عملیات discard
پشتیبانی
میکنند.
سایر
گزینههای
ارائهشده
مانند --offset،
--length و --minimum بر
روی همه این
دستگاهها
اعمال
میشوند.
خطاهای
ناشی از
سیستمفایلهایی
که از
عملیات discard
پشتیبانی
نمیکنند،
دستگاههای
فقطخواندنی
و
سیستمفایلهای
فقطخواندنی
بدون نمایش
پیام
نادیده
گرفته
میشوند.
-n, --dry-run
این
گزینه همه
مراحل را به
جز
فراخوانی
واقعی ioctl با
نام FITRIM
انجام
میدهد.
-o, --offset offset
آفست بر
حسب بایت در
سیستمفایل
که جستجو
برای
بلوکهای
آزاد جهت
آزادسازی
از آنجا
آغاز
میشود.
مقدار
پیشفرض
صفر است که
از ابتدای
سیستمفایل
شروع
میشود.
-l, --length length
تعداد
بایتها (پس
از نقطه
شروع) برای
جستجوی
بلوکهای
آزاد جهت
آزادسازی.
اگر مقدار
مشخصشده
از انتهای
سیستمفایل
فراتر رود،
fstrim در مرز
اندازه
سیستمفایل
متوقف
خواهد شد.
مقدار
پیشفرض تا
انتهای
سیستمفایل
امتداد
مییابد.
-I, --listed-in list
فهرستی
از
پروندهها
را که با
دونقطه (:) از
هم جدا
شدهاند در
قالب fstab یا mountinfo
هسته مشخص
میکند.
تمام
پروندههای
موجودنبوده
یا خالی
بدون نمایش
پیام
نادیده
گرفته
میشوند.
ارزیابی
list
پس از اولین
پرونده
غیرخالی
متوقف
میشود.
برای نمونه:
--listed-in /etc/fstab:/proc/self/mountinfo.
سیستمفایلهای
دارای
گزینه
سوارکردن
«X-fstrim.notrim» در fstab
نادیده
گرفته
میشوند.
-m, --minimum minimum-size
حداقل
محدوده
آزاد
پیوسته
برای
آزادسازی،
بر حسب بایت.
(این مقدار
بهصورت
داخلی به
مضربی از
اندازه
بلوک
سیستمفایل
گرد میشود.)
محدودههای
آزاد
کوچکتر از
این مقدار
نادیده
گرفته
میشوند و
اگر از
حداقلِ
دستگاه
کمتر باشد،
fstrim حداقل را
تنظیم کرده
و آن را (fstrim_range.minlen)
به فضای
کاربری
گزارش
میدهد. با
افزایش این
مقدار،
عملیات fstrim
برای
سیستمفایلهایی
با فضای
آزاد
بهشدت
تکهتکهشده
سریعتر
کامل
میشود،
هرچند که
همه
بلوکها
آزاد
نخواهند شد.
مقدار
پیشفرض
صفر است که
هر بلوک
آزاد را
آزاد
میکند.
-t, --types list
نوعهای
مجاز یا
ممنوع
سیستمفایل
را هنگام
استفاده با
--all یا --fstab مشخص
میکند.
مقدار list
فهرستی از
نامهای
سیستمفایل
است که با
کاما از هم
جدا
شدهاند.
این list از
نحوه
ارزیابی
الگوهای
نوع توسط mount -t
پیروی
میکند. فقط
نوعهای
سیستمفایل
مشخصشده
مجاز هستند.
اگر پیشوند
فهرست «no»
باشد یا هر
سیستمفایل
با «no»
پیشوندگذاری
شده باشد،
تمام
نوعهای
مشخصشده
ممنوع
هستند. اگر
از این
گزینه
استفاده
نشود، تمام
سیستمفایلها
(بهجز «autofs»)
مجاز
هستند.
-v, --verbose
اجرای
پرگو. با این
گزینه
fstrim
تعداد
بایتهای
ارسالشده
از
سیستمفایل
به
لایههای
پایین پشته
بلوکی به
دستگاه را
برای
آزادسازی
احتمالی
خروجی
میدهد. این
عدد از
دیدگاه
دستگاه
ذخیرهسازی
حداکثر
مقدار
آزادسازی
است، زیرا
فراخوانی
مکرر ioctl با
نام
FITRIM همان
سکتورها را
پیدرپی
برای
آزادسازی
ارسال
خواهد کرد.
دستور fstrim
هر بار همان
مقدار
بایتهای
آزادسازی
بالقوه را
گزارش
میدهد،
اما فقط
سکتورهایی
که بین
دفعات
آزادسازی
روی آنها
نوشته شده
است در عمل
توسط
دستگاه
ذخیرهسازی
آزاد
میشوند.
افزون بر
این، لایه
بلوکی هسته
این حق را
برای خود
محفوظ
میدارد که
محدودههای
آزادسازی
را برای
سازگاری با
هندسه stripe در
RAID،
دستگاههای
فاقد
قابلیت trim در
تنظیمات LVM و
غیره تنظیم
کند. این
کاهشها در
fstrim_range.len (گزینه --length)
بازتاب
نخواهند
یافت.
--quiet-unsupported
پنهانسازی
پیامهای
خطا در
صورتی که
عملیات
پیرایش (ioctl)
پشتیبانی
نشود. این
گزینه برای
استفاده در
پرونده
سرویس
systemd یا
در
اسکریپتهای
cron(8) در نظر
گرفته شده
است تا
هشدارهایی
را که ناشی
از مشکلات
شناختهشده
هستند
پنهان کند؛
مانند
گزارش
Bad file descriptor
توسط
راهانداز NTFS
هنگامی که
دستگاه
بهصورت
فقطخواندنی
سوار شده
است، یا عدم
پشتیبانی
سیستمفایل
از
فراخوانی ioctl
با نام
FITRIM.
این گزینه
همچنین
زمانی که
سیستمفایل
پشتیبانینشدهای
در خط فرمان
fstrim مشخص
شود، وضعیت
خروج را پاک
میکند.
-h, --help
نمایش
متن راهنما
و خروج.
-V, --version
نمایش
نسخه و
خروج.
0
موفقیت
1
شکست
32
همه شکست
خوردند
64
آزادسازی
برخی
سیستمفایلها
موفق و برخی
با شکست
مواجه شد
دستور fstrim --all
مقدار 0 (همه
موفق)، 32 (همه
ناموفق) یا 64
(برخی
ناموفق،
برخی موفق)
را
بازمیگرداند.
Lukas Czerner <lczerner@redhat.com>, Karel Zak
<kzak@redhat.com>