zfs コマンド

ファイルシステム

ファイルシステムの作成（/tank/home にマウントされる）

# zfs create tank/home
# zfs create -o mountpoint=/mnt/home tank/home

名前の変更

# zfs rename tank/home/kustarz tank/home/kustarz_old
# zfs rename tank/home/maybee tank/ws/maybee

マウントポイントの変更 （マウントポイントを /mnt/home に変更する）

# zfs set mountpoint=/mnt/home tank/home

ファイルシステムの一覧を表示

# zfs list

ファイルシステムのSnapshot一覧を表示

# zfs list -t snapshot

ファイルシステムの削除

# zfs destroy tank/home/tabriz

クローンの作成
snapshotからクローンを作る。特徴はsnapshotと同様差分だけを保持するので容量にやさしい+作るのは一瞬

# zfs clone tank/home/hoge@anytag tank/NewName

ボリューム

ブロックデバイスとして作成される
領域が確保されるので注意

# zfs create -V 1T tank/hoge

-sを指定することで、疎ボリューム(スパース)とすることができる1) 推奨しません

# zfs create -s -V 1T tank/hoge

圧縮

# zfs set compression=lz4 tank/hoge

nfs

nfsで共有2) maproot=root ですが，共有先の root ユーザが NFS で共有されたファイルシステムに書き込む際に root として書き込む事を許可します

zfs set sharenfs="-network 192.168.X.0 -mask 255.255.255.0 -maproot=root" tank/maybee

確認

# zfs get sharenfs

スナップショット

スナップショット作成

# zfs snapshot tank/home@monday

スナップショット削除

# zfs destroy tank/home@monday

ロールバック

# zfs rollback tank/home@monday

スナップショットの相違点

# zfs diff tank/home@monday tank/home@friday
M /tank/home/
R /tank/home/fileA -> /tank/home/fileC
+ /tank/home/fileB
- /tank/home/fileD

識別子	ファイルまたはディレクトリの変更
M	変更された
+	追加された
-	削除された
R	Renameされた

名前の変更

# zfs rename tank/home@monday tank/home@friday
または
# zfs rename tank/home@monday friday

IO監視

プール単位

# zpool iostat pool名

一定間隔で

# zpool iostat pool名 間隔

詳細も

# zpool iostat -v pool名 間隔

Diskの追加/Poolの作成

# zpool create pool名 /dev/adaxx
# zpool create pool名 raidz /dev/adaxx /dev/adaxx /dev/adaxx
# zpool create pool名 raidz3 /dev/adaxx /dev/adaxx /dev/adaxx /dev/adaxx /dev/adaxx /dev/adaxx

追加

-nでDryRun

# zpool add -n pool名 /dev/adaxx

追加

# zpool add -n pool名 /dev/adaxx

ミラー

# zpool add pool名 mirror /dev/adaxx /dev/adayy

ホットスペア

# zpool add pool名 spare /dev/adaxx

poolの削除

# zpool destroy pool名