گنو/لینوکس

آموزش ساخت فایل سیستم ZFS و فشرده‌سازی اطلاعات

نوشته شده توسط اروند طباطبایی

فایل سیستم zfs در لینوکس هر روز دارد جای خود را بیشتر باز میکند و در این سیستم عامل به رسمیت شناخته میشود. در zfs شما میتوانید فشرده‌سازی را تا مرحله filesystem پیش ببرید. در این مقاله توضیح میدهیم که چگونه از یک zfs storage pool فایل سیستم zfs خود را بسازیم و فشرده‌سازی را در آن فعال کنیم.

در سری اول آموزش در مورد اصول Zfs و نصب آن در لینوکس صحبت کردیم و همچنین یک zfs pool نیز برای خود ساختیم و در این قسمت فایل سیستم zfs خود را خواهیم ساخت.

ایجاد فایل سیستم ZFS

ابتدا تمامی فایل سیستم‌های ZFS ساخته شده را با دستور zfs list مشاهده میکنیم. همانظوری که در زیر نشان داده شده است ما یک فایل سیستم با مشخصات نمایش داده شده داریم :

# zfs list
NAME     USED  AVAIL  REFER  MOUNTPOINT
mypool   296K  5.84G    30K  /mypool

حال یک فایل سیستم جدید را با دستور zfs create میسازیم :

# zfs create mypool/fs1

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

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
mypool       170K  5.84G    30K  /mypool
mypool/fs1    30K  5.84G    30K  /mypool/fs1

تنظیم ZFS qoute و ذخیره سازی ها

وقتی شما یک فایل سیستم بسازید به صورت پیشفرض تمامی فضای pool را اشغال خواهد کرد. پس شما باید یک qoute و همچنین ذخیره سازی معین برای آن مشخص کنید. برای تنظیم qoute از دستور zfs set z همانطور که در زیر آمده است استفاده کنید. در اینجا ما یک qouta به اندازه ۱ گیگابایت برای فایل سیستم خود درنظر گرفته‌ایم :

# zfs set quota=1G mypool/fs1

پس از آن باید مقدار reservation را برای فایل سیستم خود مشخص کنیم در این مثال fs1 فضای ۲۵۶ مگابایت را از کل ۵٫۵۹ گیگ رزرو کرده است و میتوانیم آن را تا ۱ گیگابایت که در qoute مشخص کردیم توسعه دهیم

# zfs set reservation=256M mypool/fs1

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
mypool       256M  5.59G  32.5K  /mypool
mypool/fs1    30K  1024M    30K  /mypool/fs1

 

ساخت یک mount point قابل تعویض برای فایل سیستم

در هنگام مانت کردن آن با دستور mypool/fs1 شما میتوانید یک نقطه اتصال یا mount point جایگزین نیز به آن بدهید و هر اسمی که برای آن دوست دارید قرار دهید. برا مثال دستور زیر mount point را /testmnt به جای مورد قبلی قرار میدهد :

# zfs set mountpoint=/testmnt mypool/fs1

همانطور که در زیر میبینیم اول سطر مربوط به اسمی است که خود فایل سیستم دارد و در سطر دوم اسم جایگزینی که برای آن انتخاب کردیم قرار داده شده است :

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
mypool       256M  5.59G  32.5K  /mypool
mypool/fs1    30K  1024M    30K  /testmnt

و هنگامی که دستور df را وارد کنیم میبینیم که mount point جایگزینی که به آن داده‌ایم نمایش داده میشود.

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
..
mypool                      5.6G  128K  5.6G   1% /mypool
mypool/fs1                  1.0G  128K  1.0G   1% /testmnt

فعال کردن فشرده‌سازی در فایل سیستم zfs

برای فعال کردن فشرده‌سازی داده‌ها بر روی zfs میتوانید همانطوری که در زیر نشان داده شده است میزان فشرده‌سازی را مشخص کنید. هنگامی که این ویژگی تنظیم شد هر فایل حجیم که در این فایل سیستم ذخیر شود به صورت اتوماتیک فشرده خواهد شد.

# zfs set compression=lzjb mypool/fs1

موارد زیر از گزینه های فشرده‌سازی هستند که میتوانید استفاده کنید :

on
off
lzjb
gzip
gzip[1-9]
zle

 

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

بررسی فشرده‌سازی Zfs

در مثال زیر ما یک فایل rar با حجم ۶۱ مگابایت را بر روی فایل سیستم کپی کردیم :

# ls -lh /testmnt/test.tar
-rw-r--r--. 1 root root 61M Nov 11 09:44 /testmnt/test.tar

اگر نگاهی به جزئیات بیاندازیم سایز مصرفی این فایل تنها ۲۰٫۹ مگابایت شده است که نشان دهنده روشن بودن و کارکردن روش فشرده‌سازی مخصوص است.

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
mypool       256M  5.59G  32.5K  /mypool
mypool/fs1  20.9M  1003M  20.9M  /testmnt

شما همچنین میتوانید ضریب فشرده یازی را نیز با دستور زیر مشاهده کنید :

# zfs get compressratio mypool/fs1
NAME        PROPERTY       VALUE  SOURCE
mypool/fs1  compressratio  2.90x  -

جدای از قابلیت‌های فشرده‌سازی که در فایل سیستم zfs مشاهده می‌شود قابلیت‌های بیشمار دیگری نیز وجود دارد که برای همگان جالب خواهد بود. در قسمت بعدی از این سری آموزش‌ها به clone کردن فایل سیستم zfs و همچنین موارد مربوط به snapshot ها خواهیم پرداخت.

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

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

تبادل نظر و رفع عیب با ثبت دیدگاه