Unix/Ubuntu

우분투에서 ZFS 쓰기

ForceCore 2009. 2. 11. 01:09
http://kldp.org/node/68614
http://kldp.org/node/68171 (댓글 중 궁극의 파일시스템이라고 설명하는 것이 하이라이트)
ZFS쓰고 싶다아!!!!!!!!

OpenSolaris를 호기심에 깔아본 뒤 ZFS를 사용해 보았다.
그 뒤로 잊히지를 않는구나!!!
OpenSolaris나 다른 솔라리스 계통 OS의 킬러 application이라고 할 수 있음 -ㅠ-;;

Fuse file system으로 리눅스에서도 어느정도 사용할 수 있다고 한다.
NTFS-3G도 사실 FuseFS라고 한다. 그런데 속도가 그렇게 나쁜것은 아닌 듯.
우선 리눅스에서 performance가 어떤지 다른 인간들의 평을 살펴보았다.
http://opensolaris.org/jive/thread.jspa?messageID=112020 2007년의 평가에 의하면, 구리다고 한다.

에잇. 우선 해보고 결정하면 되지!
https://wiki.ubuntu.com/ZFS/
별 거 있나...
디스크가, 너무, 뭐랄까.
ZFS는 기존 디스크의 개념을 많이 버렸다.
그런 탓에, 굉장히 유연하고, 물리적 디스크 연결의 영향을 좀 덜 받는다.

설치: https://wiki.ubuntu.com/ZFS/
패키지가 있다. 앗싸!
$ sudo vi /etc/apt/sources.list.d/zfs-fuse.list
이렇게 zfs fuse repository를 등록해주는 파일을 새로 만들자, 내용은,
deb http://ppa.launchpad.net/brcha/ubuntu intrepid main
deb-src http://ppa.launchpad.net/brcha/ubuntu intrepid main
이렇게 두 줄을 적는다.
$ sudo apt-get update
$ sudo apt-get install zfs-fuse
그 이후, 설치 명령을 내려주면 끝이다.

이제 zpool 명령어를 사용할 수 있게 되었다.
https://wiki.ubuntu.com/ZFS/ZPool
sudo를 붙여야만 제대로 동작한다. 이래봬도 관리 명령이니까...

안 붙이면 이렇게 나온다.
connect: Permission denied
internal error: failed to initialize ZFS library
...

이제 zpool로 풀을 만들면 되는데... 이건 디스크 단위로 pool을 생성한... 다?
그렇진 않은데 그게 recommended. 하지만 필자는 partition 한 개를 ext3로 써야만 (우분투니까 OTL) 한다. 그래서 partition으로...a add해서 raidz를 구성해보기로 함.

raidz는 parity check가 있는 시스템임. 그래서 device를 적어도 두 개를 사용해야 한다.
zfs에서는 device를 빼고 넣는게 어렵지 않으므로 우선은 그냥, 임시로, 한 개로 써야하는 파티션을 둘로 쪼개서 raidz로 구성해보기로 했다.

파티션을 쪼개야 하네.
$ sudo apt-get install gparted
$ sudo gparted &
이렇게 실행해준다. 포멧되지 않은 파티션으로 두 개 만들었다.

이제 pool을 생성 +_+
$ sudo zpool create vol0 raidz /dev/sda2 /dev/sda4
언제나 partition 작업은 스릴있다. 잘못되면 모든 자료가 날아가니까... 후훗.

$ sudo zpool list
풀목록이 잘 뜨고... 이제 쓰기 위해 마운트를 해야 되겠다.

sudo zfs set mountpoint=/export vol0
마운트 지점은 이렇게 지정해준다. 이런이런... pool/vol0면 보기 좋으련만. 아까 create할 때 zppol create vol0라고만 하지 말고 pool/vol0라고 했어야 한듯.

이제
$ sudo mount zfs -a
를 실행시킨다 :D

시작시 mount시키는 옵션은... 으음...a
그건 나중에 다루기로 한다.

...
근데.
무지무지 느리다. 사용을 포기 ㅠㅠ;
되긴 된다.