Debian jessie で ZFS を使用する

自宅のファイルサーバを Gentoo から Debian に変更するついでにストレージ部分に ZFS を使用してみようと思ったので、Debian で ZFS を使う為のテストメモです。

次のリンク先を読みながら進めたつもりです。
How to install and configure ZFS on Linux using Debian Jessie 8.1

まずはテストで Debian jessie 8.3 の上に KVM 仮想マシンを構築しました。 環境は次の通り

  • Debian jessie 8.3
  • 512MB RAM
  • 40GB HDD
  • Athlon X4 615e ã‚’ 1コア割り当て

構築するストレージプール
1GB のディスクイメージを2つ作成してミラーを構成し、 dedup を有効にする。

システムとリポジトリの更新

ZFS on Linux のリポジトリを apt-get で取れるようにリポジトリの情報を更新します。

# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
# dpkg -i zfsonlinux_6_all.deb
# apt-get update
# apt-get upgrade

ZFS on Linux パッケージのインストール

ZFS on Linux をインストールして再起動します。

# apt-get install lsb-release
# apt-get install debian-zfs
# shutdown -r now

ストレージプールのセット

まずはディスクイメージを2つ作成します。

# cd /mnt
# dd if=/dev/zero of=image1.img bs=1M count=1024
# dd if=/dev/zero of=image2.img bs=1M count=1024

次にストレージプールの作成します。

# zpool list
no pools available
# zpool create tank mirror /mnt/image1.img /mnt/image2.img
# zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:

   NAME                 STATE   READ WRITE CKSUM
   tank                 ONLINE     0     0     0
     mirror-0           ONLINE     0     0     0
       /mnt/image1.img  ONLINE     0     0     0
       /mnt/image2.img  ONLINE     0     0     0

errors: No known data errors
# zpool list
NAME  SIZE  ALLOC  FREEEXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
tank 1008M    64K 1008M       -   0%  0% 1.00x ONLINE -

dedup に値をセットしてストレージ内の重複ブロックを排除します。

# zfs set dedup=verify tank 
# zfs get dedup
NAME  PROPERTY  VALUE          SOURCE
tank  dedup     verify         local

重複が排除できているかテストする

# cd /tank
# dd if=/dev/zero of=deduptest.img bs=1M count=256
# ls -lah deduptest.img 
-rw-r--r-- 1 root root 256M Feb  3 XX:XX deduptest.img
# zpool list
NAME  SIZE ALLOC  FREE EXPANDSZ FRAG CAP DEDUP  HEALTH  ALTROOT
tank 1008M  270K 1008M        -   0%  0% 2048.00x  ONLINE  -

DEDUP=2048.00xになっているので大丈夫っぽい。

とりあえずこんなところで。