Debian jessie で ZFS を使用する

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

次のリンク先を読みながら進めたつもりです。
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になっているので大丈夫っぽい。

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