Ubuntu 16.04
折角、Ubuntu 16.04になって、zfsが導入しやすくなったのだから、この度Windosの内蔵HDDとして使っていたのを取り外して、UbuntuのNASとして活用することにした。で、毎回のことながら、どうでもいい前置きが長い。
とりあえず、 KURO-DACHI/CLONE/U3 に元から使っていた3TBの WD30EZRX と、この度、WindowsからUbuntuのzfsとして新生する8TBの ST8000AS0002 の二台を差して、Ubuntu起動。
が、なんか起動に失敗。 /etc/fstab
から WD30EZRX
のマウントの記述をコメントアウトして再起動。どうも、ディスクの認識ができていない…
ls -lR /dev/disk
で探すも見当らず…
トピック: ディスクを認識しません | 玄人志向フォーラムな情報をゲットしたので、まずは一台( WD30EZRX )だけ差す。
LINK、POWER、HDD1のランプが青くなったので、再度確認。すると、認識されてる。
arimasou16@ubuntu:~$ ls -lR /dev/disk/
・・・省略・・・
lrwxrwxrwx 1 root root 9 10月 3 21:55 usb-WDC_WD30_EZRX-00DC0B0_ATMM220U3000000001-0:0 -> ../../sdb
・・・省略・・・
調子に乗って、そのまま ST8000AS0002 を差す。デバイスファイル名が変わったりしたが、暫く待つとLINK、POWER、HDD1、HDD2全てのブルーランプが灯った。
arimasou16@ubuntu:~$ ls -lR /dev/disk
・・・省略・・・
lrwxrwxrwx 1 root root 9 10月 3 22:01 usb-ST8000AS_0002-1NA17Z_ATMM220U3000000001-0:1 -> ../../sdd
lrwxrwxrwx 1 root root 10 10月 3 22:01 usb-ST8000AS_0002-1NA17Z_ATMM220U3000000001-0:1-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 10月 3 22:01 usb-ST8000AS_0002-1NA17Z_ATMM220U3000000001-0:1-part2 -> ../../sdd2
lrwxrwxrwx 1 root root 9 10月 3 22:01 usb-WDC_WD30_EZRX-00DC0B0_ATMM220U3000000001-0:0 -> ../../sdc
・・・省略・・・
まあ、将来、ちゃんとしたNASキット?を買うとして、このままzfsを導入することにした。以下、参考にさせていただいたサイト
- [Ubuntu] ZFS導入手順(Ubuntu 16.04) - Life with IT
- Ubuntu 16.04: ZFSを使ってみる - Narrow Escape
- Ubuntu 16.04のZFSで/homeを冗長化 | やってみよう準備室
zfsモジュールを有効化。
arimasou16@ubuntu:~$ sudo modprobe zfs
カーネルの出力情報、カーネルのモジュールリストを確認。
arimasou16@ubuntu:~$ dmesg | grep -i zfs
[10062.735623] ZFS: Loaded module v0.6.5.6-0ubuntu10, ZFS pool version 5000, ZFS filesystem version 5
arimasou16@ubuntu:~$ lsmod | grep zfs
zfs 2813952 0
zunicode 331776 1 zfs
zcommon 57344 1 zfs
znvpair 90112 2 zfs,zcommon
spl 102400 3 zfs,zcommon,znvpair
zavl 16384 1 zfs
次回から起動時にzfsが有効化(ロード)されるようにカーネルモジュールリストに追記する。
arimasou16@ubuntu:~$ sudo echo "zfs" >> /etc/modules
-bash: /etc/modules: 許可がありません
arimasou16@ubuntu:~$ sudo su
root@ubuntu:/home/arimasou16# echo "zfs" >> /etc/modules
/etc/modules
の中身
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
zfs
ZFS関連ユーティリティをインストール
arimasou16@ubuntu:~$ sudo apt-get install -y zfsutils-linux
ストレージプールの作成。(-o以下はなくても構わない。オプションは参考サイトなどで参照)。
arimasou16@ubuntu:~$ sudo zpool create -f tank /dev/sdd -o ashift=12 -o autoexpand=on
ストレンジプールはルート直下にできるようだ。ちなみに元々、HDDにはデータがあったが、特に確認なく全削除された。
arimasou16@ubuntu:~$ df -h /tank
Filesystem Size Used Avail Use% Mounted on
tank 7.1T 0 7.1T 0% /tank
ストレージプールの確認
arimasou16@ubuntu:~$ sudo zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
tank 7.25T 276K 7.25T - 0% 0% 1.00x ONLINE -
ストレージプールの削除
arimasou16@ubuntu:~$ sudo zpool destroy tank
arimasou16@ubuntu:~$ sudo zpool list
no pools available
ストレージプールのマウント/アンマウント
arimasou16@ubuntu:~$ sudo zfs mount tank
arimasou16@ubuntu:~$ sudo zfs unmount tank
圧縮モードのon/off
arimasou16@ubuntu:~$ sudo zfs set compression=on tank
arimasou16@ubuntu:~$ sudo zfs get compression
NAME PROPERTY VALUE SOURCE
tank compression on local
arimasou16@ubuntu:~$
arimasou16@ubuntu:~$ sudo zfs set compression=off tank
arimasou16@ubuntu:~$ sudo zfs get compression
NAME PROPERTY VALUE SOURCE
tank compression off default
マウントポイントの設定
arimasou16@ubuntu:~$ sudo mkdir /mnt/zfs
arimasou16@ubuntu:~$ sudo zfs set mountpoint=/mnt/zfs tank
zfsの設定ファイル /etc/default/zfs
# ZoL userland configuration.
# Wait this many seconds during system start for pool member devices to appear
# before attempting import and starting mountall.
ZFS_AUTOIMPORT_TIMEOUT='30'
# Run `zfs share -a` during system start?
# nb: The shareiscsi, sharenfs, and sharesmb dataset properties.
ZFS_SHARE='no'
# Run `zfs unshare -a` during system stop?
ZFS_UNSHARE='no'
# Build kernel modules with the --enable-debug switch?
ZFS_DKMS_ENABLE_DEBUG='no'
# Build kernel modules with the --enable-debug-dmu-tx switch?
ZFS_DKMS_ENABLE_DEBUG_DMU_TX='no'
# Keep debugging symbols in kernel modules?
ZFS_DKMS_DISABLE_STRIP='no'
samba共有対象として設定
arimasou16@ubuntu:~$ sudo vi /etc/samba/smb.conf
/etc/samba/smb.conf 以下の内容を追記。
# add 2016/10/03 start
[zfs_disk]
browseable = yes
writeable = yes
path = /mnt/zfs
force create mode = 664
force directory mode = 775
force user = arimasou16
force group = sambashare
valid users = arimasou16
# add 2016/10/03 end
samba再起動
arimasou16@ubuntu:~$ sudo service smbd restart
Windowsからアクセスできることを確認。
でもって、robocopyでバックアップ開始。するといきなり失敗したみたいで、即終了
2016/10/03 23:41:35 ERROR 5 (0x00000005) Creating Destination Directory Z:\backup\色々
アクセスが拒否されました。
sambaユーザー用のディレクトリを挟んでおくの忘れてた…
arimasou16@ubuntu:~$ sudo mkdir /mnt/zfs/backup
arimasou16@ubuntu:~$ sudo chown arimasou16:sambashare /mnt/zfs/backup
arimasou16@ubuntu:~$ ls -ld /mnt/zfs/backup
drwxr-xr-x 2 arimasou16 sambashare 2 10月 3 23:44 /mnt/zfs/backup
で、再実行。うまく行ってるっぽい。