نکته: توجه داشته باشید که Btrfs هنوز در مرحلهی آزمایش و توسعه است، با این حال بسیاری از اشکالات آن در هسته ی ۳.۴ رفع شده و قابلیت check disk نیز به آن اضافه شده است.
Btrfs فرادادههای بسیار کمی دارد که در نقاط مشخص و ثابتی قرار دارند؛ این باعث میشود که به آسانی بتوان یک «ابزار تبدیل در مکان» (in place conversion utility) را از فایلسیستمهای دیگر به اجرا گذاشت. الگوریتم های «کپی هنگام نوشتن» (copy on write) به Btrfs امکان حفظ داده اصلی از فایلسیستم اولیه را می دهد. همچنین مدیر سیستم میتواند حتی با وجود اعمال تغییرات در Btrfs حاصل شده، دیسک را به فایل سیستم اولیه برگرداند.
برنامهی مبدل btrfs-convert، از libe2fs برای خواندن فراداده ی Ext3/4، و از بلوکهای آزاد فایلسیستم Ext3 برای دخیرهی Btrfs جدید استفاده می کند. اساس کار الگوریتم تبدیل بدین صورت است:
- نسخه برداری از ۱ مگابایت اول دستگاه
- نسخه برداری از دایرکتوریها و inodeها و ساخت یک کپی از آنها در Btrfs
- مرجع سازی از بلوکهای داده موجود در Ext3 از فایلهای Btrfs
این کار یک کپی از تمامی فرادادههای Ext3 بر میدارد، اما فایلهای Btrfs به همان بلوکهای مورد استفادهی فایلهای Ext3 اشاره می کنند. این کار، بلوکها را بین دو فایلسیستم به اشتراک می گذارد. از آنجایی که Btrfs هنگام ویرایش فایلها از عمل «کپی هنگام نوشتن» بهره میبرد، نسخهی اصلی بلوکهای داده فایلسیستم Ext3 حفظ میشوند.
۱ مگابایت اول دستگاه به محلی دیگر کپی میشود تا امکان نوشتن فراداده های Btrfs در آن محل فراهم گردد. عملیات بازگشت به فایلسیستم اولیه صرفاً برگرداندن این بلوکها است.
نتیجهی نهاییِ تبدیل، به این صورت خواهد بود:برنامهی مبدل، تصویری را که به بلوکهای مورد استفاده ی Ext3 اشاره میکند، در فایل سیستم Btrfs ذخیره میکند. این کار به مدیر سیستم اجازه میدهد که تا هر زمانی که بخواهد بتواند فایلسیستم Ext3 را در سیستم خود نگه دارد. در صورتی که مدیر سیستم بخواهد فضای اشغال شده Ext3 را بازیابی کند، میتواند تصویر ساخته شده را حذف کند و تبدیل را تثبیت و دائمی کند.
تا وقتی که این تصویر وجود داشته باشد، تنها بلوکهایی که به عنوان فضای خالی در Ext3 قلمداد میشدند مورد استفاده ی Btrfs قرار خواهند گرفت. بدین معنا که میتوان عملیات تبدیل را در هر زمان، برگشت داد و فایلسیستم اولیه را جایگزین کرد. مبدل، فایل کوچکی را برای نگهداری تمامی مراجع فایل سیستم Ext3 اصلی میسازد که آفسِتهای آن با آفسِتهای موجود در دستگاه برابری میکند. این ویژگی قابلیت سوار کردن فایل ایمیج را با قابلیت «فقط خواندنی» و loopback فراهم میآورد که نتیجهی آن، مشاهدهی فایل هر دو فایلسیستم Ext3 و Btrfs در یک زمان است.
مثالی کلی از نحوه ی انجام این کار به شرح زیر است:
ابتدا fsck را اجرا کنید:
از Ext3/4 به Btrfs تبدیل کنید:
فایل سیستم Btrfs حاصل شده را سوار کنید:
تصویر Ext3/4 را سوار کنید:
فایل ایمیج را به صورت Loopback سوار کنید:
در مثال بالا، اگر میخواهید فضای اشغال شده Ext3 را بازیابی و تبدیل را دائمی کنید، کافیست /ext2_saved/image را حذف کنید. هنگامی که ایمیج حذف شود، دیسک همانند زیر خواهد شد:
برگرفته از kernel.org
6 دیدگاه برای این نوشته:
مجتبی:
۲۵ تیر ۱۳۹۱
ممنون از مطلب خوبتون
btrfs به پایداری رسیده یا نه؟
میشه بهش اطمینان کرد؟
اگه میشه از لحاظ سرعت پایداری و امکانات یه مقایسهای با ext4 انجام بدید ممنون مسشمعرفان طباطبائی:
۲۵ تیر ۱۳۹۱
خواهش می کنم ;-)
btrfs هنوز تحت توسعه ی شدیده و به پایداری کامل نرسیده، با این حال خیلی از ابزارهای مفید همراه کرنل ۳.۴ بهش اضافه شدن. فعلا برای جلوگیری از هر نوع مشکلی بهتره با Ext4 بمونید.
چشم سعی می کنیم یه مطلب هم درباره ی اون بنویسیم.علی:
۲۵ تیر ۱۳۹۱
من تو یه مقایسه سایت phonorix خوندم که btrfs از نظر سرعت خیلی پائین تر (بدتر) از ext4 هست. آدرس سایتش اینه:
http://www.phoronix.com/scan.php?page=article&item=linux_33_btrfs&num=1eMan:
۲۶ تیر ۱۳۹۱
امیدوار شدم
کلا به این فایلسیستم خیلی علاقه دارم و امیدوارم که بلوغ زودرس داشته باشه و بزودی به پایداری خیلی بالا برسه :DEhsan Tork:
۲۶ تیر ۱۳۹۱
از نظر سرعت خیلی اختلاف ندارند ولی هنوز btrfs با شرایط مطلوب فاصله داره.عرفان طباطبائی:
۲۶ تیر ۱۳۹۱
@علی: بله منم هرجایی رو که دیدم سرعت Ext4 بیشتر بود، اما اون آزمایش ها مربوط به هسته های قدیمی تر بود و Btrfs با هر نسخه ی جدید هسته داره بهتر و بهتر میشه. در حال حاضر بیشتر برای SSD ها مناسبه.@ایمان: ایمان میترسم به بلوغ زودرس برسه قدش کوتاه بمونه :دی
ولی پایداری زودرسشو بات هستم