OpenZFSの使い方。

Format

VolumeName: ZFS. ディスク・パーティション番号!要注意!

$ sudo diskutil partitiondisk /dev/disk1 GPTFormat ZFS %noformat% 100%
$ sudo diskutil eraseVolume ZFS ZDATA01 /dev/disk0s7

Poolの作成

Macで使用時にはオプションが必要。mirrorとraidz。 compression=lz4 コンプレション・オン。
SSD: ashift=13, HD: ashift=12

パーミションの変更が必要。

$ sudo zpool create -f -o ashift=13 -O compression=lz4 -O casesensitivity=insensitive -O normalization=formD POOL_NAME mirror DISK#PARTION
$ sudo zpool create -f -o ashift=13 -O compression=lz4 -O casesensitivity=insensitive -O normalization=formD POOL_NAME raidz DISK#PARTION

ファイルシステムの追加

同様にパーミションの変更が必要。

$ sudo zfs create POOL_NAME/Shared

Macでは自動で/Volumes/Shared割当てられる。変更は

% sudo zfs set mountpoint=/NEW/DIRECTORY POOL_NAME/Shared

マウントとアンマウンント

% sudo zfs mount POOL_NAME/Shared
% sudo zfs unmount [-f] Shared

ミラーリングにディスクの追加

$ sudo zpool attach POOL_NAME POOL_DISK NEW_DISK#PARTITION

Take Snapshot

日付付きでスナップショットを作成する。

$ sudo zfs snapshot MOUNT_POINT@$(date +%s)

確認。

$ sudo zfs list -t snapshot

ロールバック方法。

Mount

in@gallo:~ $ zfs list -t all NAME USED AVAIL REFER MOUNTPOINT Work 3.65G 23.5G 3.65G /Volumes/Work ZData60 27.8G 25.9G 3.43M /Volumes/ZData60 ZData60/Archive 16.5G 25.9G 16.5G /Volumes/ZData60/Archive ZData60/Backup 10.8G 25.9G 10.8G /Volumes/ZData60/Backup ZData60/Sync 590M 25.9G 590M /Volumes/ZData60/Sync

mountpoint=none # 表示しない mountpoint=legacy # fstabを読み込む

root # sudo zfs create -o mountpoint=/Volumes/Public -o canmount=off ZData60/Public

マック上からは見えないです。

jin@gallo:~ $ sudo zfs create -o mountpoint=legacy ZData60/HOME jin@gallo:~ $ zfs list -t all NAME USED AVAIL REFER MOUNTPOINT Work 3.66G 23.5G 3.66G /Volumes/Work ZData60 37.1G 16.7G 3.47M /Volumes/ZMIR ZData60/Archive 16.5G 16.7G 16.5G /Volumes/ZMIR/Archive ZData60/Backup 20.0G 16.7G 20.0G /Volumes/ZMIR/Backup ZData60/HOME 96K 16.7G 96K legacy ZData60/Sync 591M 16.7G 591M /Volumes/Sync

tank/home/eschrock - /mnt zfs - yes -

ZData60/HOME /Volumes/Home zfs rw