خبر

  • تک بورد - بررسی btrfs ، سیستم فایل های نیمه تمام لینوکس

    بررسی btrfs ، سیستم فایل های نیمه تمام لینوکس
    14 روز و 22 ساعت قبل

    این مرور سیستم فایل btrfs برخی از کاستی های طولانی را برجسته می کند.
    Btrfs-مخفف "B-Tree File System" و اغلب "butter" یا "butter eff ess" تلفظ می شود-پیشرفته ترین سیستم فایل موجود در هسته اصلی لینوکس است. از برخی جهات ، btrfs به سادگی به دنبال جایگزینی ext4 است ، سیستم فایل پیش فرض برای اکثر توزیع های لینوکس. اما btrfs همچنین قصد دارد ویژگی های نسل بعدی را ارائه دهد که قالب ساده "سیستم فایل" ر

    ما در این باره خبرهای خوب و خبرهای بد داریم. اول ، btrfs یک جایگزین کاملاً تراکم تک دیسک ext4 است. اما اگر امیدوار هستید که ZFS را جایگزین کنید - یا مجموعه پیچیده تری که بر اساس مدیریت RAID مجزا ، مدیریت حجم و سیستم فایل ساده ساخته شده است - تصویر آنقدرها هم زیبا نیست. اگرچه پروژه btrfs بسیاری از مشکلات آشکار خود را در سال 2009 برطرف کرده است ، اما 12 سال بعد مشکلات اصلی اساساً بدون تغییر باقی می مانند. که در سال 2007 در حالی که در اوراکل کار می کرد شروع به کار کرد. این باعث می شود بسیاری از مردم باور کنند که btrfs یک پروژه اوراکل است - اینطور نیست. این پروژه متعلق به میسون بوده است ، نه کارفرمای او ، و این یک پروژه اجتماعی است که تا به امروز تحت مالکیت شرکتی قرار نگرفته است. در سال 2009 ، btrfs 1.0 در هسته اصلی لینوکس 2.6.29 پذیرفته شد.

    اگرچه btrfs در سال 2009 وارد خط اصلی شد ، اما در واقع آماده تولید نبود. برای چهار سال آینده ، ایجاد یک سیستم فایل btrfs پیام عمدی ترسناک زیر را به سرپرستی که جرأت mkfs a btrfs را داشت نشان می دهد و برای ادامه کار به یک Y غیر پیش فرض نیاز است:

    Btrfs یک سیستم فایل جدید با وسعت زیاد ، قابل نوشتن است عکس فوری ، پشتیبانی از چندین دستگاه و بسیاری از ویژگی های دیگر. Btrfs بسیار آزمایشی است و قالب دیسک هنوز نهایی نشده است. در اینجا باید N را بگویید مگر اینکه علاقه مند به آزمایش Btrf ها با داده های غیر مهم باشید.

    کاربران لینوکس که کاربران لینوکس هستند ، بسیاری از این هشدار را نادیده گرفتند - و بدون شگفتی ، بسیاری از داده ها در نتیجه از دست رفت. این بتا گسترده چهار ساله ممکن است تأثیر ماندگاری بر جامعه توسعه دهندگان btrfs داشته باشد ، زیرا طبق تجربه من هر زمان که مشکلات گزارش شده توسط کاربر برطرف می شد ، به "خوب ، به هر حال همه چیز بتا است". این اتفاق به خوبی پس از آن رخ داد که mkfs.btrfs گفتگوی ترسناک خود را در اواخر سال 2013 از دست داد.

    تبلیغات

    در حال حاضر نزدیک به هشت سال از برچسب "آزمایش" برداشته شده است ، اما بسیاری از مشکلات قدیمی btrfs همچنان باقی مانده است بدون آدرس و عملاً بدون تغییر بنابراین ، ما این موضوع را یکبار دیگر تکرار می کنیم: به عنوان یک سیستم فایل تک دیسک ، btrfs سالهاست که پایدار بوده و بیشترین عملکرد را دارد. اما هرچه بیشتر با ویژگی های جدید btrfs آشنا شوید ، زمین متزلزل تر می شوید - این چیزی است که ما امروز روی آن تمرکز می کنیم.

    ویژگی

    Btrfs فقط یک رقیب واقعی دارد در فضای سیستم فایل لینوکس و BSD: OpenZFS. تقریباً غیرممکن است از مقایسه و مقایسه btrf ها با OpenZFS جلوگیری شود ، زیرا نمودار Venn مجموعه ویژگی های مربوطه آنها کمی بیشتر از یک دایره واحد و کمی توده ای است. اما ما سعی می کنیم تا آنجا که ممکن است از مقایسه مستقیم و مقایسه این دو جلوگیری کنیم. اگر سرپرست OpenZFS هستید ، از قبل می دانید ؛ و اگر شما سرپرست OpenZFS نیستید ، آنها واقعاً مفید نیستند. فایل سیستم ساده تک دیسک ، btrfs توپولوژی های چندگانه دیسک (RAID) ، ذخیره سازی حجم مدیریت شده (نک ، مدیر حجم منطقی لینوکس) ، عکس های فوری کپی بر روی نوشتن ، تکرار افزایشی ناهمزمان ، بهبود خودکار داده های فاسد شده و فشرده سازی روی دیسک را ارائه می دهد. .

    مقایسه با ذخیره سازی قدیمی

    اگر می خواهید یک سیستم عاری از btrfs و ZFS با ویژگی های مشابه بسازید ، به یک دسته لایه مجزا نیاز دارید- mdraid در پایین برای RAID ، LVM بعدی برای عکس های فوری ، و سپس یک سیستم فایل مانند ext4 یا xfs در بالای sundae ذخیره سازی شما.

    یک پشته ذخیره سازی mdraid+LVM+ext4 هنوز به لحاظ نظری برخی از btrf ها را از دست می دهد. متأسفانه ویژگی های قانع کننده ای وجود دارد. LVM عکس های فوری اتمی را ارائه می دهد اما هیچ عکس فوری مستقیم ندارد. نه ext4 و نه xfs فشرده سازی داخلی را ارائه نمی دهند. و اگر mdraid بتواند dm-მთლიან هدف را فعال کند ، می تواند داده ها را بهبود بخشد ، اما این بسیار ناخوشایند است. در هنگام راه اندازی اولیه ، و همچنین نیاز به بازنویسی کامل هر بلوک از دیسک تعویض شده پس از خرابی دارد-بالاتر و فراتر از نوشتن درایو کامل در هنگام راه اندازی اولیه.

    تبلیغات

    به طور خلاصه ، شما واقعاً نمی توانید btrfs را تکرار کنید کل ویژگی وعده داده شده روی یک پشته ذخیره قدیمی برای به دست آوردن کل مجموعه ، به btrfs یا ZFS نیاز دارید.

    توپولوژی های چند دیسک Btrfs

    اکنون که مشکلات احتمالی را با یک ذخیره سازی قدیمی بررسی کرده ایم ، زمان آن فرا رسیده است. نگاهی به جایی که خود btrfs سقوط می کند ، بیندازید. از این رو ، اولین جایی که ما در آن بررسی می کنیم توپولوژی دیسک های متعدد btrfs است.

    Btrfs پنج توپولوژی دیسک چندگانه ارائه می دهد: btrfs-raid0 ، btrfs-raid1 ، btrfs-raid10 ، btrfs-raid5 و btrfs -خشت 6. اگرچه مستندات تمایل دارند به سادگی به این توپولوژی ها اشاره کنند-به عنوان مثال ، درست مانند raid1 و نه btrfs-raid1-ما اکیداً توصیه می کنیم که پیشوند را در نظر داشته باشید. این توپولوژی ها در برخی موارد می تواند بسیار متفاوت از نمونه های معمولی خود باشد.

    توپولوژی نسخه معمولی نسخه Btrfs RAID0 نوار ساده - هر گونه را از دست دهید دیسک ، از دست دادن آرایه نوار ساده - هر دیسک را از دست بدهید ، آرایه را از دست دهید RAID1 Simple mirror - همه بلوک های داده در دیسک n و دیسک یکسان هستند افزونگی تضمین شده - کپی از همه بلوک ها در دو دستگاه جداگانه RAID10 مجموعه آینه های راه راه ذخیره می شوند - به عنوان مثال ، یک نوار در سه جفت دیسک آینه ای مجموعه آینه راه راه - به عنوان مثال ، یک نوار در سه جفت دیسک آینه ای RAID5 برابری مورب RAID - یک برابری (در هر نوار یک بلوک برابری ) ، ثابت عرض نوار RAID برابری مورب - یک برابری (یک بلوک برابری در هر نوار) ​​با متغیر عرض نوار RAID6 برابری مورب RAID - دو برابر (دو بلوک برابری در هر نوار) ، ثابت عرض نوار Diagonal parity RAID - برابری مضاعف (دو بلوک برابری در هر stripe) با متغیر عرض نوار

    همانطور که در نمودار بالا مشاهده می کنید ، btrfs-raid1 بسیار متفاوت از آنالوگ معمولی خود بود. برای درک چگونگی ، بیایید در مورد مجموعه فرضی از درایوهای "mutt" با اندازه های ناهماهنگ فکر کنیم. اگر یک دیسک 8T ، سه دیسک 4T و یک دیسک 2T داشته باشیم ، ایجاد یک آرایه معمولی مفید RAID از آنها دشوار است - به عنوان مثال ، RAID5 یا RAID6 باید همه آنها را به عنوان دیسک 2T (تولید تنها 8T ذخیره سازی خام قبل از برابری).

    با این حال ، btrfs-raid1 فرض بسیار جالبی را ارائه می دهد. از آنجا که در واقع دیسک ها را به صورت جفت به هم متصل نمی کند ، می تواند از کل مجموعه دیسک ها بدون زباله استفاده کند. هر زمان که یک بلوک به btrfs-raid1 نوشته می شود ، به طور یکسان با دو دیسک جداگانه-هر دو دیسک جداگانه-نوشته می شود. از آنجا که هیچ جفتی ثابتی وجود ندارد ، btrfs-raid1 آزاد است که تمام دیسک ها را به همان میزان خالص متناسب با ظرفیت آزاد آنها پر کند.

    توپولوژی btrfs-raid5 و btrfs-raid6 تا حدودی شبیه btrfs هستند. -raid1 از این نظر -بر خلاف همتایان معمولی خود -آنها می توانند با تغییر پویای اندازه نوار هنگام پر شدن درایوهای کوچکتر ، اندازه درایوهای نامناسب را مدیریت کنند. از btrfs-raid5 و btrfs-raid6 نباید در تولید استفاده کرد ، اما به دلایلی که به زودی به آن می پردازیم.

    توپولوژی های btrfs-raid10 و btrfs-raid0 به نمونه های معمولی خود بسیار نزدیکتر است و برای بیشتر اهداف می توان آنها را جایگزین های مستقیم دانست که دارای نقاط قوت و ضعف یکسانی هستند.





خبرهای دیگر از ابزارها