タグ: zfs

ZFS ファイルシステム作成

ストレージプールの上にZFSファイルシステムを作ってみる。
オプションが色々あるらしい。詳細は ZFS のプロパティーの紹介 – Oracle Solaris ZFS 管理ガイド に。

とりあえず使ってみようと思ったのは
-o mountpoint=/mnt/media
-o compression=lz4
-o sharenfs=on
あたり。

# zfs create -o mountpoint=/mnt/media -o compression=lz4 -o sharenfs=on tank/media
cannot share 'tank/media': share(1M) failed
filesystem successfully created, but not shared

あうふ。
nfs はまだインストールしていなかったので、このザマよ。
でも、領域は出来たらしい。

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
tank        1.18M  5.33T   208K  /tank
tank/media   181K  5.33T   181K  /mnt/media

うむ、出来た。

ZFSonLinux インストール

とりあえず、Minimumインストールしたら「yum update」はやっておく。

# yum install kernel-devel wget rpm-build gcc zlib-devel libuuid-devel bc lsscsi mdadm

で、必要な物をインストールしておく。
最新のファイルはZFS on Linuxにあります。

ココにEPEL7へのインストール方法が書いてあるけど、Beta だからかうまく行きませんでした。
というわけで、tar から入れていくことにします。

# wget http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.3.tar.gz
# wget http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.3.tar.gz

の2つをダウンロード。
SPLっていうのは「Solaris Porting Layer」の略らしい。

# tar zxvf spl-0.6.3.tar.gz
# cd spl-0.6.3
# ./configure
# make rpm
# rpm -Uvh *.x86_64.rpm

で、

kmod-spl-3.10.0-123.4.4.el7.x86_64-0.6.3-1.el7.centos.x86_64.rpm
kmod-spl-devel-0.6.3-1.el7.centos.x86_64.rpm
kmod-spl-devel-3.10.0-123.4.4.el7.x86_64-0.6.3-1.el7.centos.x86_64.rpm
spl-0.6.3-1.el7.centos.src.rpm
spl-0.6.3-1.el7.centos.x86_64.rpm
spl-debuginfo-0.6.3-1.el7.centos.x86_64.rpm
spl-dkms-0.6.3-1.el7.centos.noarch.rpm
spl-dkms-0.6.3-1.el7.centos.src.rpm
spl-kmod-0.6.3-1.el7.centos.src.rpm
spl-kmod-debuginfo-0.6.3-1.el7.centos.x86_64.rpm

が出来上がるので、

# rpm -Uvh *.x86_64.rpm

で、作成されたものをインストールする。
これで、SPLのインストールは完了。
続いてZFSのインストール。

# cd ..
# tar zxvf zfs-0.6.3.tar.gz
# cd zfs-0.6.3
# ./configure
# make rpm

で、

kmod-zfs-3.10.0-123.4.4.el7.x86_64-0.6.3-1.el7.centos.x86_64.rpm
kmod-zfs-devel-0.6.3-1.el7.centos.x86_64.rpm
kmod-zfs-devel-3.10.0-123.4.4.el7.x86_64-0.6.3-1.el7.centos.x86_64.rpm
libnvpair1-0.6.3-1.el7.centos.x86_64.rpm
libuutil1-0.6.3-1.el7.centos.x86_64.rpm
libzfs2-0.6.3-1.el7.centos.x86_64.rpm
libzfs2-devel-0.6.3-1.el7.centos.x86_64.rpm
libzpool2-0.6.3-1.el7.centos.x86_64.rpm
zfs-0.6.3-1.el7.centos.src.rpm
zfs-0.6.3-1.el7.centos.x86_64.rpm
zfs-debuginfo-0.6.3-1.el7.centos.x86_64.rpm
zfs-dkms-0.6.3-1.el7.centos.noarch.rpm
zfs-dkms-0.6.3-1.el7.centos.src.rpm
zfs-dracut-0.6.3-1.el7.centos.x86_64.rpm
zfs-kmod-0.6.3-1.el7.centos.src.rpm
zfs-kmod-debuginfo-0.6.3-1.el7.centos.x86_64.rpm
zfs-test-0.6.3-1.el7.centos.x86_64.rpm

この辺りが出来上がるので、

# rpm -Uvh *.x86_64.rpm

これでZFSのインストールも完了。

# shutdown -r now

で再起動しておく。

# cat /proc/filesystems
nodev sysfs
nodev rootfs
...
...
nodev mqueue
xfs
nodev zfs

こんなカンジで「nodev zfs」が出ていれば正常かと。
わぁい入ったぁ、ということで

# zpool status
no pools available

うむ。コマンドは認識している。

# parted -l
モデル: ATA WDC WD30EZRX-00D (scsi)
ディスク /dev/sda: 3001GB
...
モデル: ATA ST3000DM001-1ER1 (scsi)                                       
ディスク /dev/sdb: 3001GB
...
モデル: ATA ST3000DM001-1CH1 (scsi)
ディスク /dev/sdc: 3001GB

この3本をZFSに使用してみる。

# zpool create -f tank raidz sda sdb sdc
# zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	tank        ONLINE       0     0     0
	  raidz1-0  ONLINE       0     0     0
	    sda     ONLINE       0     0     0
	    sdb     ONLINE       0     0     0
	    sdc     ONLINE       0     0     0

errors: No known data errors
# zpool list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
tank  8.12T  1.55M  8.12T     0%  1.00x  ONLINE  -

ストレージプールとやらは出来た、かな?

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root   225G  1.3G  224G    1% /
devtmpfs                  7.8G     0  7.8G    0% /dev
tmpfs                     7.8G     0  7.8G    0% /dev/shm
tmpfs                     7.8G  8.6M  7.8G    1% /run
tmpfs                     7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/sdd1                 497M  128M  370M   26% /boot
tank                      5.4T  256K  5.4T    1% /tank

おお!RAID-Zだから5.4TBね。

では、このtankを色々と弄ってみることにする。