داکیومنشن رسمی Btrfs

btrfs یک cow فایل سیستم جدید برای لینوکس است با هدف اضافه کردن قابلیت های حرفه ای مثل اسنپشات همچنین مدیریت خطا به اسطلاح (fault tolerance) و مدیریت اسان است.

جذاب ترین قابلیت های btrfs شامل فشردسازی اتوماتیک برای کمتر شدن حجم فایل ها, اسنپشات برای برگردوندن هارد به عقب, چک کردن درستی و سلامت فایل ها, رمزنگاری فایل ها, در صورت خرابی ساده تر میشود بازسازی کرد.

نکته: این فایل سیستم درحال توسعه است یعنی بعضی از قابلیت ها اماده برای استفاده روزمره نیستن با این حال اگر مشکلاتی که با ان دارید رو به توسعه دهندگان گزارش بدید به توسعه و حل مشکلات کمک میکند.

۱ پیشنیازها

پکیج btrfs-progs رو نصب کنید برای عملیات های اولیه.

اگر میخواهید از btrfs برای پارتیشنی بوت(پارتیشنی که دایرکتوری boot/ در ان قرار دارد) استفاده کنید از بوت لودر هایی باید استفاده کنید که از این فایل سیستم پشتیبانی میکنند مثل grub.

۲ ساخت فایل سیستم

بعد از ساخت پارتیشن میتونید فایل سیستم رو بسازید. ساخت فایل سیستم btrfs کاملا شبیه به Ext3/4 هست با دستور زیر میتونید فایل سیستمتون رو بسازید سویچ L- اختیاری و برای اضافه کردن یادداشت استفاده میشود.

# mkfs.btrfs -L mylabel /dev/partition

btrfs بصورت پیشفرض از nodesize 16KIB برای تغییر از این سویچ استفاده کنید.

# mkfs.btrfs -L mylabel -n 32k /dev/partition

۳ کانفیگ فایل سیستم

۳.۱ Copy-on-Write (CoW)

بصورت پیشفرض از این حالت استفاده میشود برای تمام فایل ها همیشه. به این معناست اگر فایلی رو تغییر بدیم فایل و metadata کپی میشود در نقطه ی دیگه ای از هارد.

خاموش کردن CoW

توجه: خاموش کردن CoW همچنین صحت درستی فایل ها چک نمیشود به اصطلاح (checksums) هم خاموش میشود.

خاموش کردن برای فایل های جدیدی که در ساب ولوم مونت شده ساخت شدن از اپشن nodatacow استفاده کنید این فقط روی فایل های جدید تاثیر میزاره

برای خاموش کردن برای یک فایل یا دایرکتوری.

$ chattr +C /dir/file

۳.۲ فشرده سازی

Btrfs از فشرده سازی بصورت خوکار پشتیبانی میکنه. حجم فایل ها و مدیا ها رو به مقدار قابل توجهی کم میکنه فشرده سازی با الگوریتم هایی انجام میشه توانایی بهتری سریع تر فشرده سازی دارن همچنین خودتون میتونید برا اساس لول بندی که Btrfs مشخض کرده از ۱ تا ۱۵ مقداری که فشرده سازی نیاز دارید رو مشخص کنید.

فعال سازی

فعال سازی در دستور مونت انجام میشه برای دیدن بقیه اپشن ها میتونید به man btrfs مراجعه کنید.

$ mount -o compress=zstd /dev/sdx /mnt

zstd بصورت پیشفرض از لول ۳ استفاده میکنه هرچه لول بالاتر بره سرعت بیشتر میشه.

۳.۳ Subvolumes