zfsonlinux 已經快一年沒有更新了,經過這幾個月的使用後,發覺其有幾個問題:
- 檔案的讀寫速度不夠快
- 記憶體的使用太驚人了,但是卻沒有相對應的性能輸出,常常在使用一段時間後就會吃掉大量的記憶體,讓在已經擁有16G記憶體的電腦仍常發生需要swap的問題
- 對於超長路徑的支援有些問題,這使得某些程式在安裝時,會停在configure對長路徑的檢查的階段,有時重開機會通過,有時不會
- zfsonlinux更新周期太長了,可能大部份的動能都移到btrfs那邊去了,以致於kernel更新了,但是zfs仍不支援的情況
- 備份資料
# cd /
# rsync -av --delete --exclude=var/log --exclude=usr/portage/distfiles bin boot etc lib32 lib64 opt root sbin usr var root@192.168.10.18:/mnt/backup .
- 使用開機
- 重建分割區
#gdisk
Number Start (sector) End (sector) Size Code Name
1 2048 8191 3.0 MiB EF02 BIOS boot partition
2 8192 212991 100.0 MiB 8300 Linux filesystem
3 212992 8601599 4.0 GiB 8200 Linux swap
4 8601600 625142414 294.0 GiB 8300 Linux filesystem
- 格式化分割區
# mkswap /dev/sda3
# mkfs.ext3 -L BOOT /dev/sda2
# mkfs.btrfs -L GENTOO /dev/sda4
- 建立 btrfs subvolumne
# mkdir /mnt/root
# mount -t btrfs -o defaults,noatime,compress=lzo,autodefrag /dev/sda4 /mnt/root
# btrfs subvol create /mnt/root/root
# btrfs subvol create /mnt/root/portage
# btrfs subvol create /mnt/root/home
# btrfs subvol create /mnt/root/varlog
# btrfs subvol create /mnt/root/vartmp
# btrfs subvol create /mnt/root/tmp
# mount -t btrfs -o defaults,noatime,compress=lzo,autodefrag,subvol=root /dev/sda4 /mnt/gentoo
- 掛載分割區
# mkdir -p /mnt/gentoo/usr/portage
# mkdir -p /mnt/gentoo/usr/portage/distfiles
# mkdir -p /mnt/gentoo/boot
# mkdir -p /mnt/gentoo/home
# mkdir -p /mnt/gentoo/var/log
# mkdir -p /mnt/gentoo/var/log/apache2
# mkdir -p /mnt/gentoo/tmp
# mkdir -p /tmp /mnt/gentoo/var/tmp
# mount -t ext3 /dev/sda2 /mnt/gentoo/boot
# mount -t btrfs -o defaults,noatime,compress=lzo,autodefrag,subvol=home /dev/sda4 /mnt/gentoo/home
# mount -t btrfs -o defaults,noatime,compress=lzo,autodefrag,subvol=portage /dev/sda4 /mnt/gentoo/usr/portage
# mount -t btrfs -o defaults,noatime,compress=lzo,autodefrag,subvol=varlog /dev/sda4 /mnt/gentoo/var/log
# mount -t btrfs -o defaults,noatime,compress=lzo,autodefrag,subvol=vartmp /dev/sda4 /mnt/gentoo/var/tmp
# mount -t btrfs -o defaults,noatime,compress=lzo,autodefrag,subvol=tmp /dev/sda4 /mnt/gentoo/tmp
- 重建資料
# cd /mnt/gentoo
# wget ftp://gentoo.cs.nctu.edu.tw/gentoo/gentoo-distfiles/releases/amd64/autobuilds/20140410/stage3-amd64-20140410.tar.bz2
# tar -vpxf /stage3-amd64-20140403.tar.bz2
# rsync -av --delete --exclude=var/log --exclude=usr/portage/distfiles root@192.168.10.18:/{bin,boot,etc,lib32,lib64,opt,root,sbin,usr,var} .
- 設定開機程式
# mount -t proc none /mnt/gentoo/proc
# mount --rbind /dev /mnt/gentoo/dev
# mount --rbind /sys /mnt/gentoo/sys
# chroot /mnt/gentoo /bin/bash
# env-update; source /etc/profile; export PS1="(chroot) $PS1"; cd
# vi /etc/fstab
/dev/sda2 /boot ext3 noauto,noatime 1 2
/dev/sda3 none swap sw 0 0
/dev/sda4 / btrfs defaults,noatime,compress=lzo,autodefrag,subvol=root 0 0
/dev/sda4 /tmp btrfs defaults,noatime,compress=lzo,autodefrag,subvol=tmp 0 0
/dev/sda4 /var/tmp btrfs defaults,noatime,compress=lzo,autodefrag,subvol=vartmp 0 0
/dev/sda4 /var/log btrfs defaults,noatime,compress=lzo,autodefrag,subvol=varlog 0 0
/dev/sda4 /usr/portage btrfs defaults,noatime,compress=lzo,autodefrag,subvol=portage 0 0
/dev/sda4 /home btrfs defaults,noatime,compress=lzo,autodefrag,subvol=home 0 0
# touch /etc/mtab
# grub2-install /dev/sda
# grub2-mkconfig -o /boot/grub/grub.cfg
- 重開機後,大功告成
重開機進入系統後,第一個感覺就是系統明顯變快了,這一點非常出乎我意料之外,相較之前使用xfs及zfs,感覺系統順很多,這一切的努力是值得的,雖然沒有花多少時間 XD,我認為對一些使用者的好處是:
- 不需要多個分割區,所有的volumne共用相同的空間可避免浪費空間,而各volumne仍能依使用的差異使用不同的掛載參數。
- 透明壓縮除了可節省硬碟空間的使用外,還能因減少硬碟的實際存取資料量而加快資料的讀取速度 ,真是一兼二顧。
- 使用cow的技術可避免異外系統中斷時資料的完整性。
- 支援快速資料複製,你能想像在同volumne拷貝一個4G的檔案不需要一秒的時間還不多佔空間嗎?
0 回應:
張貼留言