How to setup ZFS FileSystem in ubuntu 22.04

مفروضات این مستند

  • ۱۲ عدد هارد HDD خالی و خام روی سرور
  • ۱ عدد پارتیشن که روی هارد SSD قرار گرفته است.
  • هارد SSD به صورت Raid شماره ۱ یا Mirror در نظر گرفته شده است.
  • میانگین فایل‌هایی که می‌خواهیم روی این Storage قرار بگیرد ، برابر با 360KB است.
  • نرخ IOPS دیسک نهایی باید بالا باشد.

برای پاسخ به این نیازمندی ابتدا به صورت زیر عمل نمایید.

# zpool create -f -o ashift=12 tank \
 raidz1 /dev/sda /dev/sdb /dev/sdc \
 raidz1 /dev/sdd /dev/sde /dev/sdf \
 raidz1 /dev/sdg /dev/sdh /dev/sdi \
 raidz1 /dev/sdj /dev/sdk /dev/sdl \
 special /dev/sdm1

سپس به صورت زیر عمل نمایید.

# zfs set compression=lz4 tank
# zfs set xattr=sa tank
# zfs set atime=off tank

خط اول باعث می‌شود تا عملیات فشرده‌سازی در هنگام ذخیره‌ی داده بر روی دیسک انجام شود. البته این موضوع کاملا به صورت هوشمند انجام شده لذا فایل‌هایی که قابلیت فشرده‌سازی نداشته باشند، به صورت خودکار ignore خواهند شد.

در خط دوم اشاره شده است که تمامی Attributeهای مربوط به فایل‌ها در کنار خود فایل ذخیره شود. این موضوع باعث بهبود شاخص IOPS خواهد شد.

در خط سوم اشاره شده است که access time خاموش شود. این موضوع باعث رشد چشمگیر شاخص IOPS خواهد شد.

در ادامه سپس به صورت زیر عمل نمایید.

# zfs set special_small_blocks=8K tank
# zfs set recordsize=1M tank

خط اول باعث می‌شود تا پرونده‌های کمتر از 8KB بر روی بخش SSD ذخیره شوند.

خط دوم باعث می‌شود تا فایل‌ها را در تکه‌های بزرگتر و یکپارچه ذخیره شود تا از خرد شدن دیتا و افزایش بیهوده IOPS جلوگیری شود. این تنظیم همچنین باعث بهبود عملکرد فشرده‌سازی و کاهش بار پردازشی CPU می‌شود.

در آخر به صورت زیر عمل نمایید.

# zfs create tank/data
# mkdir -p /mnt/storage
# zfs set mountpoint=/mnt/storage tank/data

دستورات بالا در راستای دستسی به فضای در نظر گرفته شده می‌باشد.


به منظور مشاهده‌ی وضعیت کلاستر دیسک‌ها به صورت زیر عمل نمایید.

# zpool list -v tank

نکته : با توجه به نوع فعالیت بر روی دیسک ، مراقب پر شدن دیسک SSD باشید.


به منظور از بین بردن کلاستر ZFS ایجاد شده بر روی دیسک‌ها ، کافیست به صورت زیر عمل نمایید.

# zpool destroy tank

قبل از اجرای دستور بالا از ماهیت آن با خیر باشید.


به منظور مشاهده‌ی وضعیت Read  و Write دیسک سرور به صورت زیر عمل نمایید.

# iotop

به صورت مشاهده‌ی وضعیت Disk Utilization به صورت زیر عمل نمایید.

# apt-get install sysstat
# iostat -x 1

ستون آخر مربوط به Disk Utilization است.


تست شده بر روی ubuntu 22.04

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *