از اسم zfs بیشتر خوشم اومد 😅️ اینکه خودتون هم از همین استفاده میکنین هم تاثیر داره البته : )
بسی ممنون دارتون میشم اگر راهنمایی کنید چجوری ازش استفاده کنم
البته zfs همراه کرنل اصلی نیست و باید جدا کامپایل بشه. توی دبیان میتونید بسته zfs-dkms رو نصب کنید تا همراهش کد منبع ماژولهای zfs و همینطور یه سری بستههای دیگه مثل کامپایلر c و dkms هم نصب بشن. بعد از این، کار کامپایل و نصب به طور خودکار توسط dkms شروع میشه و لازم نیست شما کار خاصی انجام بدید.
آخرین باری که امتحان کردم، کامپایل اون روی یه کامپیوتر با پردازندهای مال سال ۲۰۱۰، حدود ۵ دقیقه طول کشید.
بسته zfsutils-linux رو هم نصب کنید تا ابزارهای مدیریت فایلسیستم zfs مثل دوتا دستور zfs و zpool رو داشته.
اگه هم میخواهید روت رو بذارید روی zfs و initramfs توسط initramfs-tools ساخته میشه، باید بسته zfs-initramfs رو نصب کنید. بسته zfs-dracut هم هست تا در صورتی که از dracut به جای initramfa-tools استفاده میکنید، مشکلی از نظر پشتیبانی نداشته باشید.
البته اینکه همینجوری بسته zfs-initramfs یا zfs-dracut رو نصب کنید، باعث نمیشه روت شما روی zfs قرار بگیره.
جی پارتد زنده رو دارم ، با همین میشه ؟
نه نمیشه. gparted پشتیبانی زیادی از zfs نداره. فکر نکنم رابط گرافیکی برای zfs موجود باشه.
کار با zfs یکم متفاوته. مثلا برای اینکه یه فایلسیستم اون رو سوار کنید، دستوری شبیه این کار نمیده:
sudo mount /dev/sda1
یا مثلا zfs قابلیت سوار کردن خودکار داره و میتونه بدون اینکه چیزی توی فایل fstab تعریف شده باشه، چیزها رو سوار کنه.
از btrfs استفاده کنید بهتره، zfs کمی قابلیت بیشتری داره، اما توی کرنل قرار نداره و باید بصورت جدا کامپایلش کنید برای خودتون و دردسر داره
دردسر خاصی نداره، با نصب دوتا بسته zfs-dkms و zfsutils-linux ماژولها و ابزارهای اون نصب میشن.
البته به دلیل اینکه یکمی با بقیه فایلسیستمها متفاوته، اولش طول میکشه تا به نحوه کار باهاش عادت کنید.
البته btrfs یه سری مشکلاتی داره مثلا اینکه نمیتونید برای دوتا subvolume روی یه فایلسیستم btrfs از دوتا الگوریتم فشردهسازی متفاوت استفاده کنید.
مثلا اگه دوتا subvolume به اسمهای A و B داشته باشید، اول A رو با فشردهسازی zstd و بعد B رو با فشردهسازی lzo سوار کنید، فشردهسازی B به zstd تغییر میکنه.
در اصل نمیتونید داخل یه فایلسیستم btrfs چنتا subvolume داشته باشید که آپشنهای سوار شدن اونها زیاد با هم متفاوت باشند. بیشتر آپشنها به اون چیزی تغییر میکنند که مربوط به اولین subvolume سوار شده هست.
دلیلش اینه که پیادهسازی این قابلیتها توی vfs کرنل یکم سخته و به همین دلیل هنوز اینجوری هست.
در مورد سرعت، btrfs نسبت به zfs کندتره.
البته اگه حافظه شما پرسرعت باشه، نباید خیلی زیاد این اثر رو متوجه بشید.
البته btrfs قابلیتی داره تا به صورت خودکار فشردهسازی اطلاعات فعلی رو از یه چیزی به یه چیز دی.ه عوض کنه. ولی توی zfs باید حداقل یه zfs send و یه zfs recive داشته باشید.
توی btrfs میشه تنظیم کرد که قابلیت cow برای یه فایل یا یه subvolume غیرفعال بشه، درحالی که zfs فعلا این قابلیت رو نداره و بعیده به این زودیها پیاده بشه. (هرچند اگه توی btrfs قابلیت cow رو روی یه subvolume خاموش کنید، برای همه subvolume های روی اون فایلسیستم خاموش میشه. به همون دلیلی که بالاتر گفتم)
این که نشد اون ایده ای که من به ذهنم رسیده ! خب پس چه فایده داره این جدا سازی ؟
انعطاف پذیری بالایی داره.
یعنی مثل حالت عادی که میتونی افرازی که دادی به ریشه رو فرمت کنی در حالی که خونت سر جاشه و یه توزیع دیگه نصب کنی ..
...
توی btrfs میتونید توی هر subvolume هر چی خواستید بریزید و هر وقت بخواهید، کل اون subvolume رو پاک کنید بدون اینکه بقیه subvolume ها یا اطلاعات داخلشون خراب بشن.
در مورد zfs هم میتونید dataset بسازید و داخل هر dataset هرچی لازم داشتید بریزید و هر وقت خواستید، اون dataset رو پاک کنید. بدون اینکه بقیه dataset ها یا اطلاعاتشون پاک بشن. (مگه اینکه بقیه dataset ها وابسته به اون dataset باشند که قراره پاک بشه.)