2014年5月20日 星期二

zfs on gentoo

去年花了點時間將我手上的gentoo server的partition轉成ZFS,當時會這樣做的原因是我手上的gentoo server因為不正常斷電而造成xfs及reiserfs的partition資料毀損,雖然用fsck搶救,但仍有部份資料無法找回,於是開始找有沒有更好的撰擇,後來發現了zfs,仔細研究了一下發現對我的優點還真是不少:
1. zfs支援copy on write(cow)可避免斷電時資料毀損的問題
2. 靈活的控間運用,所有的partition共用空間,不需要先指定空間給partition
3. 支援檔案壓縮,可減少使用空間
4. 支援Deduplication,可減少空間的使用
5. 支援snapshot,可進行時光回溯

當然zfs還有很多raid管理上的優點及nfs及samba的直接支援,只是我沒有用到就沒再去測試了,有興趣的人可以上網google一下

我主要是跟著下面網址的步驟去做的,gentoo應該是最容易實現zfs的套件了吧

http://forum.ubuntu.org.cn/viewtopic.php?f=105&t=386252

使用後的感想是共用空間的管理方式對我真的太方便了,cow也避免斷電的資料毀損問題,當時開了dedup的功能會吃掉太多的ram,後來還是將之關掉了,整個來看資料的存取感覺有變慢一點,但是一般用的時候差異不大,小檔案的讀取還是比xfs快,整體來說我覺得很ok,在btrfs還沒有ready之前,我覺得zfs是一個不錯的選擇。

但要把zfs用到production的環境上的話要好好的考慮一下,畢竟在linux上他不像其它的filesystem那麼的千錘百鍊,在測試的強度上及使用的經驗上(問題解決的SOP)都還不足,但是我相信應該是時間的問題而已

su:scsi_acer ~ # df
檔案系統                容量  已用  可用 已用% 掛載點
rootfs                  558G  8.1G  550G    2% /
udev                     10M  4.0K   10M    1% /dev
sda1pl/GENTOO/root      558G  8.1G  550G    2% /
tmpfs                   7.8G  716K  7.8G    1% /run
shm                     7.8G     0  7.8G    0% /dev/shm
cgroup_root              10M     0   10M    0% /sys/fs/cgroup
tmpfs                   8.0G  105M  7.9G    2% /tmp
sda1pl/HOME             662G  113G  550G   17% /home
sda1pl/PORTAGE/portage  552G  2.2G  550G    1% /usr/portage
sda1pl/GENTOO/var       553G  3.1G  550G    1% /var
su:scsi_acer ~ # zfs list
NAME                     USED  AVAIL  REFER  MOUNTPOINT
sda1pl                   136G   549G   136K  none
sda1pl/GENTOO           11.1G   549G   136K  none
sda1pl/GENTOO/root      8.09G   549G  8.09G  /
sda1pl/GENTOO/var       3.03G   549G  3.03G  /var
sda1pl/HOME              112G   549G   112G  /home
sda1pl/PORTAGE          2.12G   549G   136K  none
sda1pl/PORTAGE/portage  2.12G   549G  2.12G  /usr/portage
sda1pl/swap             10.6G   549G  10.3G  -
su:scsi_acer ~ #

Deduplication feature requires up to 5 GB RAM per Terrabyte Storage Space, so if you cannot afford this amount of exclusive RAM disable dedup by entering
zfs set dedup=off storage

Set zfs_arc_min and zfs_arc_max memory limit
Create a file in /etc/modprobe.d/zfs.conf and add and adjust the zfs_arc_min and zfs_arc_max mem parameters:

# Min 2048MB / Max 4096 MB Limit
options zfs zfs_arc_min=2147483648
options zfs zfs_arc_max=4294967296

0 回應: