ZFS در لینوکس

معمولا علاقمندان به ذخیره اطلاعات، دوستاران NAS و افرادی که ترجیح می دهند اطلاعات رو پیش خودشون نگه دارن تا روی سرویس های ابری، از ZFS استفاده می کنند. یک سیستم فایل بسیار قدرتمند برای مدیریت چندین هارد دیسک با توانایی زیاد در پیاده سازی انواع RAID.

ZFS چیست و چرا باید از اون استفاده کنیم؟

زد فایل سیستم نرم افزار رایگان و متن باز مدیریت حجم یا فضای منطقی است که توسط شرکت Sun Microsystem برای سیستم عامل Solaris طراحی شده است. بعضی از ویژگی های چشم گیر این سیستم فایل در زیر خلاصه شده است:

قابلیت افرایش بی پایان

البته از لحاظ فنی شاید ادعای درستی نباشد، ولی ZFS یک فایل سیستم 128 بیتی است که قابلیت مدیریت زتابایت ( یک میلیون ترابایت ) را داراست. مهم نیست چه مقدار فضای هارد درایو در اختیار دارید، ZFS برای شما مناسب خواهد بود.

حداکثر یکپارچگی

تمامی رد و بدل اطلاعات در ZFS توسط یک سیستم checksum برای اطمینان از صحت دیتا کنترل می شود که فایل ها و نسخه های کپی شده آنها بدون هیچ گونه مشکل و خرابی پنهان ذخیره شوند. همچنین زمانی که این فایل سیستم مشغول است به آرامی به بررسی دیتا می پردازد و به صورت خودکار هر زمان که بتواند اطلاعات خراب را تعمیر می کند.

ادغام درایوها

فرض کنید برای یک سرور، به مقدار رم بیشتری نیاز دارید، کافیست که رم مورد نیازتون رو به اسلات های خالی سرور اضافه کنید و همه چیز به صورت خودکار انجام خواهد شد.

همچنین در ZFS، زمانی که به فضای بیشتری نیاز دارید، کافیست که دیسک جدید رو به سرور اضافه کنید و تمام. نیازی به زمان بیشتر برای پارتیشن بندی و فرمت کردن و… نیست.

RAID

ZFS توانایی پیاده سازی انواع رید ها را دارد که کارایی آن قابل مقایسه با ریدهای سخت افزاری موجود در بازار است. این به شما امکان صرفه جویی در هزینه و راه اندازی آسان تر را می دهد.

نصب ZFS

تا اینجا در این آموزش به مسائل اولیه پرداخته شده و قرار نیست که ZFS رو برای فایل سیستم اصلی لینوکس استفاده کنیم. فرض می کنیم که شما از ext4 یا فایل سیستم های دیگر استفاده می کنید و می خواهید از ZFS برای دیسک ثانویه استفاده کنید.

در زیر درستورات نصب برای نسخه های محبوب لینوکس وجود دارد.

البته سیستم عامل های Solaris و FreeBSD باید بصورت پیشفرض با این فایل سیستم نصب و آماده استفاده باشند.

Ubuntu:

$ sudo add-apt-repository ppa:zfs-native/stable
$ sudo apt-get update
$ sudo apt-get install ubuntu-zfs

Debian:

$ su -
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb
# dpkg -i zfsonlinux_2~wheezy_all.deb
# apt-get update
# apt-get install debian-zfs

RHEL / CentOS:

$ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
$ sudo yum install zfs

اگر از نسخه های دیگر استفاده می کنید، میتونید از لینک zfsonlinux.org از قسمت “Custom Packages” نحوه نصب ZFS  رو مشاهده کنید.

در ادامه آموزش قصد داریم از نسخه Ubuntu استفاده کنیم. چرا که به نظر می رسد که انتخاب اول طرفداران لینوکس باشد و همچنین بیشترین پشتیبانی از ZFS را دارد.

نصب ممکن است چند دقیقه ای طول بکشد، ولی زمانی که به اتمام رسید برای اینکه مطمئن شویم به درستی نصب شده است، دستور sudo zfs list رو اجرا می کنیم.

باید پیام زیر رو مشاهده کنید:

ZFS در لینوکس

دقت داشته باشید که سرور Ubuntu با یک عدد هارد درایو نصب شده است.

ZFS در لینوکس

تنظیمات ZFS

در این قسمت قصد داریم 6 عدد هارد دیسک به کامپیوتر اضافه کنیم.

دستور “sudo fdisk -l | grep Error” هارد دیسک های تازه نصب شده را به ما نمایش می دهد که فعلا بی استفاده هستند و شامل هیچ پارتیشن تیبلی هم نیستند.

ZFS در لینوکس

همان طور که قبلا اشاره شد، دیگر نیاز نیست نگران ساخت پارتیشن ها باشید( البته در صورت نیاز شدنی است). با اضافه کردن سه تا از دیسک ها به یک Storage pool شروع می کنیم:

$ sudo zpool create -f geek1 /dev/sdb /dev/sdc /dev/sdd

“zpool create” دستور ساخت یک Storage Pool جدید است، f- از تمامی پیغام های خطا که در زمان ایجاد ممکن است بروز کند جلوگیری می کند، “geek1” نام این Storage Pool و dev/sdd , /dev/sdc , /dev/sdb/ هارد دیسک هایی هستند که به این pool اضافه کرده ایم.

بعد از ساختن pool، با دستور “df” یا “sudo zfs list” می تونید اون رو مشاهده کنید.

ZFS در لینوکس

همان طور که می بینید “geek1” بدون هیچ پارتیشن بندی و فرمت آماده استفاده می باشد.

در صورتی که لیست دیسک ها رو می خواهید مشاهده کنید از دستور زیر استفاده کنید:

$ sudo zpool status

ZFS در لینوکس

کاری که ما در این قسمت انجام دادیم، ساختن 9 ترابایت فضا به صورت رید 0(RAID0) است.

رید 0 از فضا، سرعت خواندن و نوشتن خوبی برخوردار است ولی در صورتی که یکی از دیسک ها دچار مشکل شود، تمامی اطلاعات از بین خواهد رفت.

فرض کنید که حفظ اطلاعات برای شما اهمیت بیشتری نسبت به سرعت دسترسی دارد، پس در ادامه از روش دیگری برای ساخت رید استفاده می کنیم. قبل از هر چیز باید pool قبلی رو حذف کنیم:

$ sudo zpool destroy geek1

به همین سادگی، zpool که ساخته شده بود از بین رفت. این بار از سه دیسک برای ساخت RAID-Z استفاده می کنیم. RAID-Z اساسا نسخه به روز شده RAID-5 است، چرا که با روش copy-on-write از “write hole” جلوگیری می کند. این رید حداقل به سه عدد دیسک برای پیاده سازی نیاز دارد، که چیزی مابین RAID-0 و RAID-1 است.

RAID-Z علاوه بر اینکه سرعت رید صفر را در اختیار دارد، به سیستم توزیع برابری (distributed parity) مجهز است. اگر یکی از دیسکها به هر دلیلی از بین برود، کافیست اون رو با یک دیسک جدید جایگزین کنید و اطلاعات بر اساس دیتای parity ساخته شده و به این صورت اطلاعات از بین نخواهد رفت. البته در صورتی که دو دیسک به صورت هم زمان از بین برود، اطلاعات پاک خواهد شد.

برای اینکه RAID-Z رو بسازیم از دستور زیر استفاده می کنیم:

$ sudo zpool create -f geek1 raidz /dev/sdb /dev/sdc /dev/sdd

ZFS در لینوکس

همانطور که df -h نشان می ده، 9 ترابایت فضای ما به 6 ترابایت کاهش پیدا کرد. 3 ترابایت به منظور نگهداری از “parity information” استفاده شده است.

خب، به راحتی می تونیم دیسک های باقیمانده رو به pool اضافه کنیم. یعنی 9 ترابایت رو به pool که به نام geek1 هست اضافه می کنیم:

$ sudo zpool add -f geek1 raidz /dev/sde /dev/sdf /dev/sdg

و با دستور زیر می تونیم نتیجه رو ببینیم.

ZFS در لینوکس

در این آموزش مقداری با تنظمات اولیه و قابلیت های ZFS آشنا شدیم، آما با این آموزش کوتاه شما قادر خواهید بود که فضای افزونه (redundant storage) برای اطلاعات خودتون رو پیاده سازی کنید. همچنین می تونید با مراجعه به سایت zfsonlinux اطلاعات کاملی از این نرم افزار قدرتمند بدست بیارید.

منبع: howtogeek

پاسخ دهید

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