انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: مرتضی . م در 11 تیر 1400، 01:40 بظ
-
سلام
این CoW که نمیدونم یکی از ویژگی های BTRFS حساب میشه چیه؟
یه مقدار جستجو کردم ولی تنها چیزی که فهمیدم این بود که یه متده ولی چیز خاصی نفهمیدم :(
-
منظورت Copy On Write است؟
یعنی وقتی از یه پروندهای رونوشت میگیری، هیچ چیزی روی دیسک اضافه نمیشه. به مرور که قسمتهایی ازش رو تغییر میدی، فقط اون تغییرات روی دیسک نوشته میشن. اینجوری روی یه فلش ۲ گیگابایتی میتونی ده تا پروندهٔ ۱٫۵ گیگاباتی اشته باشی که با هم فرقهای جزیی دارن.
-
منظورت Copy On Write است؟
یعنی وقتی از یه پروندهای رونوشت میگیری، هیچ چیزی روی دیسک اضافه نمیشه. به مرور که قسمتهایی ازش رو تغییر میدی، فقط اون تغییرات روی دیسک نوشته میشن. اینجوری روی یه فلش ۲ گیگابایتی میتونی ده تا پروندهٔ ۱٫۵ گیگاباتی اشته باشی که با هم فرقهای جزیی دارن.
چقدر خوب یعنی هیچ پرونده تکراری رو نمینویسه فقط تغییرات رو ؟
-
منظورت Copy On Write است؟
یعنی وقتی از یه پروندهای رونوشت میگیری، هیچ چیزی روی دیسک اضافه نمیشه. به مرور که قسمتهایی ازش رو تغییر میدی، فقط اون تغییرات روی دیسک نوشته میشن. اینجوری روی یه فلش ۲ گیگابایتی میتونی ده تا پروندهٔ ۱٫۵ گیگاباتی اشته باشی که با هم فرقهای جزیی دارن.
بله منظورم همینه
آها ممنون پس یه جورایی میشه مثل کاری که وقتی با گیت کار می کنیم انجام میشه
-
یه قابلیت که فایلسیستمهای cow دارتد این هست که میشه snapshot درست کرد. اینجوری یه پشتیبانگیری خیلی سریع دارید و تا مشکلی پیش بیاد میشه به قبل برگشت.
مثلا اگه روت شما روی btrfs باشه، و یه snapahot از روت بگیرید و بعدش کل دایرکتوری /bin/ رو پاک کنید، بدون مشکل خاصی میشه به وضعیت قبل برگشت. فقط کافیه fstab رو ویرایش کنید و بگید از این به بعد، اون snapshot رو به عنوان روت سوار کن. و بدونه مشکل، به حالت قبل برمیگردید ولی احتمالا به یه لینوکس زنده نیاز دارید تا بتونید اون ویرایش رو انجام بدید. ولی همچنان کار خیلی راحتتری دارید نسبت به وقتی که چنین قابلیتی نیست و اون کار رو انجام دادید.
البته این قابلیت برای این درست نشده که /bin/ رو پاک کنید و دوباره به حالت قبل برگردید. :)
برای مواقعی هست که یه تغییر مهم میخواهید انجام بدید مثل ارتقا نسخه توزیع یا نصب درایور یا چیزهای شبیه این که ممکنه باعث مشکل بشه.
zfs هم هست. مثل btrfs این هم قابلیت cow داره و به نظرم قابلیتهای این خیلی بیشتر از btrfs هست. یه سری قابلیتهایی داره که btrfs نداره مثل رمزنگاری، پشتیبانی از RAID (فکر کنم btrfs هم از RAID پشتیبانی میکنه ولی هنوز فقط RAID 0 و RAID 1 پایدار هست)، ساختن block device مثل lvm و همینطور clone و replication که از snapshot استفاده میکنند و با اونها میشه راحت کل یه فایل سیستم zfs رو از طریق ssh روی یه سیستم دیگه کپی کرد. از rsync هم سریعتر کار میکنه.
تا جایی که من میدونم، توزیعی که نصب کننده اون به طور کامل از btrfs برای روت پشتییانی میکنه، suse enterprise linux و open suse هست.
نصب کننده اوبونتو از zfs روی روت پشتییانی میکنه. ولی هنوز نمیزاره خود کاربر انتخاب کنه که ساختار فایلسیستم چجوری باشه یا از RAID استفاده کنه یا اینکه چه قابلیتهایی فعال باشه و چه قابلیتهایی نه.
نصب کننده بقیه توزیعها، از btrfs به طور کامل پشتیبانی نمیکنند اما هنوز میشه یهکارهایی کرد.
zfs هم تا جایی که من میدونم، روی هیچ توزیعی پشتییانی نمیشه به جز اوبونتو. ولی این معنی رو نمیده که نمیشه از zfs به عنوان روت استفاده کرد. هنوز هم میشه ولی باید راههای غیر معمولتری وارد شد. مثل استفاده از debootstrap برای دبیان و توزیعهای مبتنی بر اون. یا basestrap برای مانجارو. arch هم که کلا نصب کننده نداره. دستی کل نصب رو انجام میدید.
من خودن دبیان دارم با روت روی zfs خیلی هم خوب کار میده.
-
نصب کننده بقیه توزیعها، از btrfs به طور کامل پشتیبانی نمیکنند
zfs هم تا جایی که من میدونم، روی هیچ توزیعی پشتییانی نمیشه به جز اوبونتو.
ارچ که پشتیبانی میکنه فکر کنم
فدورا هم نمیکنه؟
ممنونم
-
فدورا فکر نکنم. آرچ هم کلا نصب کننده نداره. منظورم این بود که توی خود نصب کننده این قابلیت باشه. وگرنه روت بقیه توزیعها رو هم میشه گذاشت روی btrfs اگه مثل آرچ نصب رو انجام داد. برای zfs هم میشه مثل آرچ انجام داد ولی بعضی جاها فرق داره.
مثلا fstab خطی رو نداره که بگه چه چیزی روی / باید سوار بشه. برای grub هم باید با دقت عمل کرد. چون از همهی قابلیتهای zfs پشتیبانی نمیکنه و شاید لازم بشه که /boot/ رو جدا کرد.
تنها بولودری که دیدم از zfs به طور کامل پشتیبانی میکنه، zfsbootmenu بود. که اون هم انگار با دبیان bullseye درست کار نمیکنه. هم روی ماشین مجازی امتحان کردم هم روی سیستم واقعی. با درایورهای انحصاری انویدیا هم انگار مشکل داره.
-
فدورا فکر نکنم. آرچ هم کلا نصب کننده نداره. منظورم این بود که توی خود نصب کننده این قابلیت باشه. وگرنه روت بقیه توزیعها رو هم میشه گذاشت روی btrfs اگه مثل آرچ نصب رو انجام داد. برای zfs هم میشه مثل آرچ انجام داد ولی بعضی جاها فرق داره.
مثلا fstab خطی رو نداره که بگه چه چیزی روی / باید سوار بشه. برای grub هم باید با دقت عمل کرد. چون از همهی قابلیتهای zfs پشتیبانی نمیکنه و شاید لازم بشه که /boot/ رو جدا کرد.
تنها بولودری که دیدم از zfs به طور کامل پشتیبانی میکنه، zfsbootmenu بود. که اون هم انگار با دبیان bullseye درست کار نمیکنه. هم روی ماشین مجازی امتحان کردم هم روی سیستم واقعی. با درایورهای انحصاری انویدیا هم انگار مشکل داره.
ممنون، دقیق و کامل! :)
-
فدورا فکر نکنم.
نسخهٔ اخیر فدورا، به صورت پیشگزیده سیستمفایل btrfs رو برای پارتیشن ریشه توصیه میکنه.
https://fedoraproject.org/wiki/Changes/BtrfsByDefault (https://fedoraproject.org/wiki/Changes/BtrfsByDefault)
-
از subvolume های btrfs هم پشتیبانی میکنه؟ چون دیدم که نصب کننده بعضی توزیعها از btrfs برای روت پشتیبانی میکنند اما جایی برای ساخت یا تغییر subvolume ها ندارند.
-
در کل btrfs خیلی بهتر از zfs است. zfs فقط اسم در کرده، وگرنه هیچ ویژگی خاصی نداره که btrfs نداشته باشه. در عوض پروانهٔ انتشار zfs مشکل داره و برای همین هم لینوس توروالدز هرگز اجازه نداده وارد لینوکس بشه.
-
btrfs هنوز بعضی قابلیتهایی که توی zfs هست رو نداره. مثلا هنوز فقط raid 0 و raid 1 به طور پایدار پیادهسازی شدن. raid 5 و raid 6 هنوز پایداری لازم رو ندارن.
رمزنگاری توی فایلسیستم پیداسازی نشده. درسته میشه از lucks استفاده کرد ولی با رمرنگاری که داخل خود فایلسیستم پیاده شده، فرق داره.
استفاده از zfs send و zfs receive خیلی سریعتر از rsync هست. حتی میشه میشه اطلاعات رو به صورت رمزنگاری شده و همونطور که فشرده هستند، با zfs send فرستاد به یه سروری که کلید رو نداره و بعد بدونه اینکه بتونه اطلاعات رو بخونه، برای مدتی اطلاعات رو اونجا نگه داشت و بعد هرجا لازم شد ببریم.
توی zfs حتماً لازم نیست از fstab برای سوار کردن استفاده کرد. با تنظیم خصوصیت (property) mountpoint مشخص کرد که یه dataset کجا سوار بشه. هر چند هنوز میشه با قرار دادن خصوصیت mountpount روی lagacy، از fstab برای سوار کردن استفاده کرد. برای تنظیم qouta و همچنین خصوصیتهای دیگه مثل فشردهسازی، فعال بودن atime، رمزنگاری و بقیه چیزها، از دستور zfs set استفاده کرد. اینجوری کار خیلی راحتتر میشه تا اینکه هربار لازم باشه فایل fstab رو ویرایش کرد.