Setup Basic ZFS Filesystem in linux ubuntu

  • تنظیمات بر روی سیستم عامل اوبونتو ۲۰.۰۴ دنبال خواهد شد.
  • برای نصب :


مفاهیم

  • پنج مدل رید برای پیاده سازی ZFS داریم.
    • رید صفر : با استفاده از این رید حجم تمام دیسک‌ها با هم تجمیع می‌شود مثلا در صورت داشتن ۳ دیسک ۲۰ گیگابایتی ، یک پارتیشن ۶۰ گیگابایتی حاصل می‌شود.
      • اصلاعات درون این رید با از بین رفتن یکی از دیسک‌ها از بین می‌رود.
      • سرعت نوشتن و خواندن درون این رید زیاد است.

  •  رید یک یا mirror : این رید برای امنیت اطلاعات مورد استفاده قرار میگیرد. فرض کنید ۱۰ دیسک ۵۰۰ گیگابایتی در اختیار دارید. با استفاده از این رید ۱ دیسک ۵۰۰ گیگابایتی خواهید داشت که اندازه ۹ دیسک تحمل خطا دارد یعنی با از بین رفتن ۹ دیسک هنوز اطلاعات در دسترس است.

  •  رید raidz یا بهبود یافته‌ی رید ۵ : حداقل مقدار دیسک‌های مورد نیاز ۳ عدد است.
    • ۳ دیسک ۱ ترابایتی با رید raidz :
      • تحمل خطای ۱ دیسک (ثابت)
      • ظرفیت کل ۲ ترابایت (ظرفیت کل مهنای مجموع ظرفیت تحمل خطا)
    • ۴ دیسک ۱ ترابایتی با رید raidzتحمل خطای ۳ دیسک (ثابت) :
      • تحمل خطای ۱ دیسک (ثابت)
      • ظرفیت کل ۳ ترابایت (ظرفیت کل مهنای مجموع ظرفیت تحمل خطا)
    • ۵ دیسک ۱ ترابایتی با رید raidz :
      • تحمل خطای ۱ دیسک (ثابت)
      • ظرفیت کلی ۴ ترابایت (ظرفیت کل مهنای مجموع ظرفیت تحمل خطا)

  •  رید raidz2 یا بهبود یافته‌ی رید ۶ : حداقل مقدار دیسک‌های مورد نیاز ۴ عدد است.
    • ۴ دیسک ۱ ترابایتی با رید raidz2 :
      • تحمل خطای ۲ دیسک (ثابت)
      • ظرفیت کل ۲ ترابایت (ظرفیت کل مهنای مجموع ظرفیت تحمل خطا)
    • ۵ دیسک ۱ ترابایتی با رید raidz2 :
      • تحمل خطای ۲ دیسک (ثابت)
      • ظرفیت کل ۳ ترابایت (ظرفیت کل مهنای مجموع ظرفیت تحمل خطا)
    • ۶ دیسک ۱ ترابایتی با رید raidz2 :
      • تحمل خطای ۲ دیسک (ثابت)
      • ظرفیت کلی ۴ ترابایت (ظرفیت کل مهنای مجموع ظرفیت تحمل خطا)

    • رید raidz3 یا بهبود یافته‌ی رید ۷ : حداقل مقدار دیسک‌های مورد نیاز ۵ عدد است.
      • ۵ دیسک ۱ ترابایتی با رید raidz3 :
        • تحمل خطای ۳ دیسک (ثابت)
        • ظرفیت کلی ۲ ترابایت (ظرفیت کل مهنای مجموع ظرفیت تحمل خطا)
      • ۶ دیسک ۱ ترابایتی با رید raidz3 :
        • تحمل خطای ۳ دیسک (ثابت)
        • ظرفیت کلی ۳ ترابایت (ظرفیت کل مهنای مجموع ظرفیت تحمل خطا)
      • ۷ دیسک ۱ ترابایتی با رید raidz3 :
        • تحمل خطای ۳ دیسک (ثابت)
        • ظرفیت کلی ۴ ترابایت (ظرفیت کل مهنای مجموع ظرفیت تحمل خطا)


مثال اول

  • فرض کنید ۶ عدد هارد دیسک ۱ ترابایتی داریم و میخواهیم با استفاده از رید raidz آنها را ریدبندی کنیم.
  • برای این منظور هر ۶ عدد هارد دیسک را درون یک رید قرار نمیدهیم.
  • ابتدا یک pool ایجاد میکنیم.
  • در ادامه یک udev ایجاد کرده و درون آن ۳ عدد هارد با رید raidz ایجاد میکنیم.
  • سپس یک udev دیگر ایجاد کرده درون آن ۳ عدد هارد با رید raidz ایجاد میکنیم.
  • در این حالت گروهی از اطلاعات درون udev اول و گروهی درون udev دوم نوشته می‌شود.
  • در مجموع :
    • ظرفیت کلی دیسک‌ها برابر با ۴ ترابایت می‌باشد. (۲ ترابایت برای هر udev)
    • تحمل خطا در مجموع ۲ دیسک می‌باشد. (یک عدد هارد دیسک برای هر udev)

مثال دوم

  • فرض کنید ۱۶ عدد هارد دیسک ۱ ترابایتی داریم و میخواهیم با استفاده از رید raidz2 آنها را رید بندی کنیم.
  • برای این منظور هر ۱۶ عدد هارد دیسک را درون یک رید قرار نمیدهیم.
  • ابتدا یک pool ایجاد میکنیم.
  • در ادامه udev اول را ایجاد کرده و درون آن ۴ عدد هارد با رید raidz2 ایجاد میکنیم.
  • سپس udev دوم را ایجاد کرده و درون آن ۴ عدد هارد با رید raidz2 ایجاد میکنیم.
  • سپس udev سوم را ایجاد کرده و درون آن ۴ عدد هارد با رید raidz2 ایجاد میکنیم.
  • سپس udev چهارم را ایجاد کرده و درون آن ۴ عدد هارد با رید raidz2 ایجاد میکنیم.
  • در این حالت گروهی از اطلاعات درون udev اول و گروهی درون udev دوم و گروهی درون udev سوم و گروهی درون udev چهارم نوشته می‌شود.
  • در مجموع :
    • ظرفیت کلی دیسک‌ها برابر با ۸ ترابایت خواهد بود.
    • تحمل خطا در مجموع ۸ دیسک می‌باشد. (۲ عدد هارد دیسک برای هر udev)

مثال سوم

  • فرض کنید ۱۵ عدد هارد دیسک ۱ ترابایتی داریم و خواهیم با استفاده از رید raidz3 آنها را ریدبندی کنیم.
  • برای این منظور هر ۱۵ عدد هارد دیسک را درون یک رید قرار نمیدهیم.
  • ایتدا یک pool ایجاد میکنیم.
  • در ادامه یک udev ایجاد کرده و درون آن ۵ عدد هارد با رید raidz3 ایجاد میکنیم.
  • در ادامه یک udev دیگر ایجاد کرده و درون آن ۵ عدد هارد با رید raidz3 ایجاد میکنیم.
  • در نهایت یک udev دیگر ایجاد کرده و درون آن ۵ عدد هارد با رید raidz3 ایجاد میکنیم.
  • در حالت گروهی از اطلاعات درون udev اول و گروهی درون udev دوم و گروهی درون udev سوم نوشته می‌شود.
  • در مجموع :
    • ظرفیت کلی دیسک‌ها برابر با ۶ ترابایت خواهد بود. (۲ ترابایت برای هر udev)
    • تحمل خطا در مجموع ۹ دیسک می‌باشد. (۳ عدد هارد دیسک به ازای هر udev)

دستورات

  • برای مشاهده تمام pool های موجود :

  • برای مشاهده‌ی جزییات بیشتر در خصوص تمام pool های موجود :

ساخت رید صفر

  • ساخت یک pool با نام mypool و رید صفر :

ساخت رید یک

  • برای این منظور :

ساخت رید پنج یا raidz1

  • برای این منظور :

ساخت رید شش یا raidz2

  • برای این منظور :

ساخت رید هفت یا raidz3

  • برای این منظور :

پاک کردن یک pool به خصوص

  • برای این منظور :

  • نکته : بهتر است برای اشاره به هارد دیسک از UUID مربوط به هارد استفاده شود.

  • مطالعه‌ی بیشتر در خصوص مفاهیم به زبان فارسی . اینجا | لوکال
  • مطالعه‌ی بیشتر در خصوص مفاهیم به زبان انگلیسی . اینجا |
  • مطالعه‌ی بیشتر در خصوص دستورات. ایجا |
  • ماشین حساب محاسبه‌ی رید. اینجا
  • تست شده بر روی ubuntu 20.04