فایل سیستم ZFS برای لینوکس به صورت source code وجود دارد که شما میتوانید به صورت ماژول کرنل آن را اجرا کنید. از یک سری ابزارها مانند ZFS، Zpool و غیره استفاده میکنند.
این آزمون بر روی یک CentOS6 انجام شده:
$ cat /etc/redhat-release
CentOS release 6.5 (Final)
نصب متعلقات:
$ yum install gcc kernel-devel zlib-devel libuuid-devel libblkid-devel libselinux-devel parted lsscsi rpm-build
هنگامی که نصب تمام شد ، شما می توانید پکیج های ZFS و SPL را از لینک زیر اصلاح و یا ایجاد کنید:
http://zfsonlinux.org/download.html
پس از دانلود مراحل زیر را انجام دهید:
$ tar xfvz spl-0.6.0-rc14.tar.gz
$ cd spl-0.6.*
$ ./configure
$ make rpm
$ rpm -Uvh *.x86_64.rpm
Preparing... ########################################### [100%]
۱:spl-modules-devel ########################################### [ 33%]
۲:spl-modules ########################################### [ 67%]
۳:spl ########################################### [100%]
$ wget http://github.com/downloads/zfsonlinux/zfs/zfs-0.6.0-rc6.tar.gz
$ tar xfvz zfs-0.6.0-rc14.tar.gz
$ cd zfs-0.6.*
$ ./configure
$ make rpm
$ rpm -Uvh *.x86_64.rpm
Preparing... ########################################### [100%]
۱:zfs-test ########################################### [ 17%]
۲:zfs-modules-devel ########################################### [ 33%]
۳:zfs-modules ########################################### [ 50%]
۴:zfs-dracut ########################################### [ 67%]
۵:zfs-devel ########################################### [ 83%]
۶:zfs ########################################### [100%]
اگر همه مراحل به درستی انجام شود ماژولهای کرنل ZFS و موارد کاربردی userland نصب میشوند. برای استفاده از ZFS نیاز است که بار اول ماژولهای کرنل modprobe بارگذاری نمائید.
$ modprobe zfs
برای بررسی ماژول اجرایی شما میتوانید مسیر /var/log/messages را دنبال کنید:
Feb 12 17:54:27 centos6 kernel: SPL: Loaded module v0.6.0, using hostid 0x00000000
Feb 12 17:54:27 centos6 kernel: zunicode: module license 'CDDL' taints kernel.
Feb 12 17:54:27 centos6 kernel: Disabling lock debugging due to kernel taint
Feb 12 17:54:27 centos6 kernel: ZFS: Loaded module v0.6.0, ZFS pool version 28, ZFS filesystem version 5
و lsmode را به منظور بررسی آنها اجرا کنید:
$ lsmod | grep -i zfs
zfs 1038053 0
zcommon 42478 1 zfs
znvpair 47487 2 zfs,zcommon
zavl 6925 1 zfs
zunicode 323120 1 zfs
spl 210887 5 zfs,zcommon,znvpair,zavl,zunicode
برای ایجاد اولین pool ما میتوانیم با استفاده از کاربردهای zpool، این مورد را ایجاد کنیم:
$ zpool create mysqlpool mirror sdb sdc
در مثال بالا یک mirrored pool در دستگاههای sdb و sdc ایجاد شده است. ما میتوانیم این طرح را در خروجی zpool status
ببینیم:
$ zpool status -v
pool: mysqlpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
mysqlpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
errors: No known data errors
pool version 28h به ما این امکان را میدهد که atime updates را غیرفعال و compression و deduplication را فعال کنیم.
$ zfs set compression=on mysqlpool
$ zfs set dedup=on mysqlpool
$ zfs set atime=off mysqlpool
برای یک آزمون واقعی یکی از MySQL slaves را متوقف کردیم و در مسیر /var/lib/mysql یک pool را بارگذاری کردیم. اطلاعات قبلی روی سیستم فایل ZFS را همگامسازی کردیم و بعد از آن MySQL به خوبی شروع به کار کرد.
$ dd if=/dev/zero of=/dev/sdb
$ zpool scrub mysqlpool
اجازه میدهیم که این دستور چند دقیقه اجرا شود بعد از اتمام آن zpool status
به منظور بررسی اسکراب ثابت همه موارد اجرا شود:
$ zpool status -v
pool: mysqlpool
state: ONLINE
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://www.sun.com/msg/ZFS-8000-9P
scan: scrub repaired 966K in 0h0m with 0 errors on Sun Feb 12 18:54:51 2012
config:
NAME STATE READ WRITE CKSUM
mysqlpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 175
sdc ONLINE 0 0 0
بدون دیدگاه