Btrfs with Ubuntu 10.10 Beta

결론부터 적자면 설치는 잘 된다. (grub 제외)
일반 사용자가 여러 하드디스크를 묶어 LVM, Raid 등 대신 사용하기엔 부적합하니 "데스크탑" 으로는 "절대" 비추천한다.

현재 10.10 beta 인스톨러가 btrfs 를 지원하기에 평범하게 설치.

(이게 간편하며 , 설치시에 compress 켜고, subvolume 로 root 만들어 설치는 가능하지만 grub 를 수동(설치, 설정이 필요) 그리고 compress 켜고 설치하면 compress 하냐고 인지 설치 시간이 좀 오래 걸린다.  )

ext4 vs btrfs vs btrfs+compress performance:

(Btrfs + crypt LUKS 로 설치 적용 까진 잘 되는데 여러 하드디스크를 묶어서 적용하려면 initramfs hook 을 하나 만들던가,수정해서 해야할듯)

아직까진 /boot 를 따로 생성해야 한다 (아직 grub 가 지원 못한다)

구성은 아래처럼 하였다.

# mount | grep sda
/dev/sda1 on /boot type ext2 (rw)
/dev/sda2 on / type btrfs (rw)

# apt update && apt upgrade
# btrfs subvolume create /_root
# btrfs subvolume create /_home
# dd if=/dev/zero of=/swap bs=1M count=4096 && mkswap /swap && swapon /swap
# chmod 755 /_root /_home
# find / -xdev | cpio -pm /_root
# btrfs subvolume snapshot /_root /_root_20100922

이후 /boot/grub/grub.cfg 안에 linux /vmlinuz-${kernel version}-generic root=/dev/sda2 ro rootflags=subvol=_root quiet splash

rootflags=subvol=_root 이것과 fstab 에서 mount option 에 subvol=_root, subvol=_home 등 사용환경에 따라 ssd, compress 추가 그리고 mount -o subvol=. /dev/sda2 /var/btrfs 식으로 진짜 root 를 mount 하여 사용하면 된다.
(btrfs subvolume set-default 설정이 편해보이지만 0 이나 . 로 원래 진짜 root 가 설정이 안먹힌다.)


# mount | grep sda
/dev/sda1 on /boot type ext2 (rw)
/dev/sda2 on / type btrfs (subvol=_root,compress,rw)
/dev/sda2 on /home type btrfs (subvol=_home,compress,rw)
/dev/sda2 on /var/btrfs type btrfs (subvol=.,compress,rw)

# ls /var/btrfs
_home _root

#

(버전마다 버그가 있는데 mount error 가 생기면 subvol 대신 subvolid=id 사용 id 는 btrfs-show 로 확인 가능하며 0 은 진짜 root, subvolume 은 id 256 부터 생성 )

swap 은 파티션으로 만들지 않는게 본인 취향
(swap 을 file 로 사용하는것은 성능차이는 없고 절전 모드도 작동한다)

btrfs-convert 로 기존 파티션 을 converting 하면 compress 는 적용 안된다고 하는데
converting 후 compress option 으로 mount 후 위처럼 subvolume 설정하면서 데이터 복사하면 된다.

compress 를 하니 52kb 짜리 text 파일이 12kb 로 되던데 metadata 로 용량을 꾀 차자하므로...
(btrfs df 로 확인)

실제 용량 확인시
# btrfs filesystem df /var/btrfs
# btrfs device add /dev/sdb1 /var/btrfs
# btrfs device balance /var/btrfs

참고로 500Gb balance 하는데 160분에서 ~ 최고 240분 걸린거 같다.


용량이 서로 다른 sda (250G), sdb (500G) 를 합치니 df 로는 700G 로 표시가 되는데
사용은 450G 정도에서 멈춰버린다 no left space 가 뜨는데 btrfs-show 로 확인해보면

대략적으로 적음(결과 script 를 지운터라..)

# btrfs-show /dev/sda2
Label: none uuid:

Total devices 2 FS bytes used 699GB
devid 2 size 466GB used 232GB path /dev/sdb1
devid 1 size 233GB used 232GB path /dev/sda2


이렇게 작은 용량쪽에 걸리는거 같다. 이게 따로 지정한게 아니라 mkfs.btrfs 로 옵션없이 만들고 device add 로 바로 붙인것 ( metadata 와 data 의 raid mode 옵션 설정이 가능 )

liner 가 아니고 1:1 striping 시키는건지 1:1 mirroring 라면 250G 이상 사용 못할테니.
이것에 대해선 더 알아봐야겠다.

reference:
https://help.ubuntu.com/community/btrfs
http://www.howtoforge.com/ubuntu_dm_crypt_luks
http://www.seedsofgenius.net/uncategorized/zfs-vs-btrfs-a-reference

Comments