ساخت pool های mirror شده
برای ساخت pool های mirror شده دستور create را با آپشن های معرفی شده در ادامه استفاده میکنیم. اگر یکی از دیسک ها در ذخیره اطلاعات به مشکل خود دیسک دیگر وظیفه ذخیره را انجام میدهد و مشکلی برای اطلاعات پیش نخواهد آمد. پس از اینکه دیسک خراب شده جایگزین شد اطلاعات دوباره mirror شده (به آن resilvering نیز میگویند) و سیستم کار خود را همچنان ادامه میدهد.
برای ساخت pool های mirror شده دستور create را با آپشن های معرفی شده در ادامه استفاده میکنیم. اگر یکی از دیسک ها در ذخیره اطلاعات به مشکل خود دیسک دیگر وظیفه ذخیره را انجام میدهد و مشکلی برای اطلاعات پیش نخواهد آمد. پس از اینکه دیسک خراب شده جایگزین شد اطلاعات دوباره mirror شده (به آن resilvering نیز میگویند) و سیستم کار خود را همچنان ادامه میدهد.
# zpool create -f mypool mirror sdb sdc mirror sdd sde
پس از آن وضعیت zpool میرور شده را چک کنید :
# zpool status -v
pool: mypool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
mypool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
errors: No known data errors
# zpool status -v
pool: mypool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
mypool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
errors: No known data errors
import و export در zpool
اگر بخواهید pool های zfs را از سیستمی به سیستم دیگر وارد کنید این قابلیت به کمک شما خواهد آمد. فایل سیستم ZFS این کار را با export کردن pool از یک سیستم به سیستم دیگر انجام میدهد و سپس میتوانید آن را به سیستم مورد نظر import کنید. برای import و export کردن نیز میتوانید دو دستور زیر را به کار ببرید :
# zpool export mypool
# zpool import mypool
اگر بخواهید pool های zfs را از سیستمی به سیستم دیگر وارد کنید این قابلیت به کمک شما خواهد آمد. فایل سیستم ZFS این کار را با export کردن pool از یک سیستم به سیستم دیگر انجام میدهد و سپس میتوانید آن را به سیستم مورد نظر import کنید. برای import و export کردن نیز میتوانید دو دستور زیر را به کار ببرید :
# zpool export mypool
# zpool import mypool
مشاهده I/O stat یک Zfs Pool
برای مشاهده I/O stat های یک pool میتوانید از دستور زی استفاده کنید که خروجی آن را نیز نمایش دادهایم :
# zpool iostat -v mypool
capacity operations bandwidth
pool alloc free read write read write
—------— —--- —--- —--- —--- —--- —---
mypool 147K 4.95G 0 0 33 252
mirror 54K 3.97G 0 0 10 84
sdb - - 0 0 536 612
sdc - - 0 0 282 612
mirror 93K 1008M 0 0 23 168
sdd - - 0 0 288 696
sde - - 0 0 294 696
—------— —--- —--- —--- —--- —--- —---
برای مشاهده I/O stat های یک pool میتوانید از دستور زی استفاده کنید که خروجی آن را نیز نمایش دادهایم :
# zpool iostat -v mypool
capacity operations bandwidth
pool alloc free read write read write
—------— —--- —--- —--- —--- —--- —---
mypool 147K 4.95G 0 0 33 252
mirror 54K 3.97G 0 0 10 84
sdb - - 0 0 536 612
sdc - - 0 0 282 612
mirror 93K 1008M 0 0 23 168
sdd - - 0 0 288 696
sde - - 0 0 294 696
—------— —--- —--- —--- —--- —--- —---
پاک کردن یک ZFS pool
برای تخریب یک pool از دستور destroy به صورت زیر استفاده میکنیم :
# zpool destroy mypool
برای تخریب یک pool از دستور destroy به صورت زیر استفاده میکنیم :
# zpool destroy mypool
جاگزین کردن فایلهای خراب شده و ناقص در ZFS pool
برای جاگزینی یک دیسک بعد از خراب شدن و یا از دست دادن آن از دستور زیر استفاده کنید :
# zpool replace mypool sde sdf
برای جاگزینی یک دیسک بعد از خراب شدن و یا از دست دادن آن از دستور زیر استفاده کنید :
# zpool replace mypool sde sdf
گسترش و توسعه یک ZFS Pool با دیسک جدید
برای توسعه یک Zfs Pool میتوانید از دستوری که در زیر قرار داده شده است استفاده کنید :
# zpool add -f mypool sde
برای توسعه یک Zfs Pool میتوانید از دستوری که در زیر قرار داده شده است استفاده کنید :
# zpool add -f mypool sde
اضافه کردن یک دیسک یدکی به ZFS Pool
شما میتوانید یک دیسک یدکی نیز یه zfs pool اضافه کنید که برای آن باید یک دستگاه مجزا به zfs pool متصل کنید. در قسمتهایی که دیسک fail میشود دستگاه یدکی و ادمین ماشین میتواند آن را در زمانی مناسب و بعداً با مورد سالم جاگزین کند. توجه داشته باشید که شما میتوانید حتی دستگاههای یدکی خود را نیز با چندین zfs pool به اشتراک بگذارید.
# zpool add -f mypool spare sde
شما میتوانید یک دیسک یدکی نیز یه zfs pool اضافه کنید که برای آن باید یک دستگاه مجزا به zfs pool متصل کنید. در قسمتهایی که دیسک fail میشود دستگاه یدکی و ادمین ماشین میتواند آن را در زمانی مناسب و بعداً با مورد سالم جاگزین کند. توجه داشته باشید که شما میتوانید حتی دستگاههای یدکی خود را نیز با چندین zfs pool به اشتراک بگذارید.
# zpool add -f mypool spare sde
ایل سیستم zfs در لینوکس هر روز دارد جای خود را بیشتر باز میکند و در این سیستم عامل به رسمیت شناخته میشود. در zfs شما میتوانید فشردهسازی را تا مرحله filesystem پیش ببرید. در این مقاله توضیح میدهیم که چگونه از یک zfs storage pool فایل سیستم zfs خود را بسازیم و فشردهسازی را در آن فعال کنیم.
ایجاد فایل سیستم ZFS
ابتدا تمامی فایل سیستمهای ZFS ساخته شده را با دستور zfs list مشاهده میکنیم. همانظوری که در زیر نشان داده شده است ما یک فایل سیستم با مشخصات نمایش داده شده داریم :
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
mypool 296K 5.84G 30K /mypool
ابتدا تمامی فایل سیستمهای ZFS ساخته شده را با دستور zfs list مشاهده میکنیم. همانظوری که در زیر نشان داده شده است ما یک فایل سیستم با مشخصات نمایش داده شده داریم :
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
mypool 296K 5.84G 30K /mypool
حال یک فایل سیستم جدید را با دستور zfs create میسازیم :
# zfs create mypool/fs1
# 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 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
وقتی شما یک فایل سیستم بسازید به صورت پیشفرض تمامی فضای 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
# 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
در هنگام مانت کردن آن با دستور 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
# 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
# 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
برای فعال کردن فشردهسازی دادهها بر روی zfs میتوانید همانطوری که در زیر نشان داده شده است میزان فشردهسازی را مشخص کنید. هنگامی که این ویژگی تنظیم شد هر فایل حجیم که در این فایل سیستم ذخیر شود به صورت اتوماتیک فشرده خواهد شد.
# zfs set compression=lzjb mypool/fs1
موارد زیر از گزینه های فشردهسازی هستند که میتوانید استفاده کنید :
on
off
lzjb
gzip
gzip[1-9]
zle
on
off
lzjb
gzip
gzip[1-9]
zle