ZFS Fun
둘러보기로 가기
검색하러 가기
주의 및 한계
주의: | 이 가이드는 작성이 완료되지 않았다. 따라서 많은 내용이 변동 될 수 있다. |
ZFS는 현재 최신 커널, 버전 3.13.6에 filesystem 옵션으로 포함되어있지 않다. 또한 현재 작성하는 시점에서 젠투 공식 포티지트리에서 배포되는 ebuild 스크립트로 커널 3.13.x 버전의 커널모듈을 빌드할 수 없다.
ZFS는 64비트 시스템을 염두해서 설계되었다. 따라서 32비트 플랫폼에서는 정상적으로 작동하지 않을 수 있다. 또한 RAM 2GB 미만의 저사양 컴퓨터에서는 시스템 전체적으로 심각한 성능저하를 가져올 수 있다.
문서 타이틀에서 알수 있듯이, 재미를 목적으로 작성되었고 따라서 안정적인 서비스 운용을 보장하지 않는다.
설치
다음 설치과정은 [3.13.x 버전의 커널에서 ZFS를 사용하고 싶다] 또한 [ZFS 커널모듈 소스를 리눅스 소스트리에 이식해서, ZFS를 built-in 커널모듈로 사용하고 싶다]를 가정했다.
먼저 리눅스 소스부터 설치한다.
# emerge -av vanilla-sources # eselect kernel list # cd /usr/src/linux # grep CRYPTO_DEFLATE=y arch/x86/configs/x86_64_defconfig || \ echo CONFIG_CRYPTO_DEFLATE=y >>arch/x86/configs/x86_64_defconfig # grep DEVTMPFS=y arch/x86/configs/x86_64_defconfig || \ echo CONFIG_DEVTMPFS=y >>arch/x86/configs/x86_64_defconfig # make x86_64_defconfig # make scripts prepare
주의: | 리눅스 소스빌드 변수 KBUILD_OUTPUT의 기본값을 사용하지 않는다면 다음 과정을 성공적으로 마칠 수 없다. |
이제 ZFS 커널모듈 소스를 리눅스 소스트리에 이식하고, ZFS 유틸리티를 설치한다.
# echo ACCEPT_KEYWORDS=\"\~amd64\" >> /etc/portage/make.conf # echo =sys-fs/zfs-9999 \*\* >>/etc/portage/package.accept_keywords # echo =sys-fs/zfs-kmod-9999 \*\* >>/etc/portage/package.accept_keywords # echo =sys-kernel/spl-9999 \*\* >>/etc/portage/package.accept_keywords # echo sys-fs/zfs-kmod rootfs >> /etc/portage/package.use # echo sys-fs/zfs rootfs >> /etc/portage/package.use # env EXTRA_ECONF='--enable-linux-builtin --with-linux=/usr/src/linux' \ ebuild /usr/portage/sys-kernel/spl/spl-9999.ebuild clean configure # (cd /var/tmp/portage/sys-kernel/spl-9999/work/spl-9999 && ./copy-builtin /usr/src/linux) # env EXTRA_ECONF='--enable-linux-builtin --with-linux=/usr/src/linux --with-spl=/usr/src/linux' \ ebuild /usr/portage/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild clean configure # (cd /var/tmp/portage/sys-fs/zfs-kmod-9999/work/zfs-kmod-9999 && ./copy-builtin /usr/src/linux) # emerge -1av =sys-fs/zfs-9999
9999의 불안전성이 불안하다면 [1]를 참고한다. 그런다 해도 현재 포티지트리에 등록된 ZFS 버전 전부가 unstable하기 때문에 ZFS를 사용하고 싶다면 ACCEPT_KEYWORDS에 ~amd64는 필요하다.