ZFS on Linux
お家 Kubernetes クラスターのストレージに NFS on ZFS on Linux を利用することにした。 メインは rook で払い出した ceph を利用することにして、こちらは主にバックアップ用途。
以下が作業ログ。 ほとんど 「UBUNTU 16.04のZFSで/HOMEを冗長化」の丸パクリ。
システム構成
- CPU: Intel Celeron J3160
- RAM: DDR3L 8 GiB
- Disk:
- Western Digital Red 6 TB WD60EFRX x 3
- Western Digital Blue 6 TB WD60EZRZ x 3
- OS: Ubuntu 18.04
ということで、WD の Red x3, Blue x3 の計 6 台を利用して raidz2
構成のストレージを作る。
zfs のインストール
# apt install zfsutils-linux
プールの作成
システムの該当するディスクを事前に ls /dev/disk/by-id
で調べておき、gpt でラベル。
# parted /dev/disk/by-id/ata-WDC_WD60EFRX-68L0BN1_WD-WX11D3678X8H mklabel gpt
# parted /dev/disk/by-id/ata-WDC_WD60EFRX-68L0BN1_WD-WX11D36JRS44 mklabel gpt
# parted /dev/disk/by-id/ata-WDC_WD60EFRX-68L0BN1_WD-WX21D48FDCVA mklabel gpt
# parted /dev/disk/by-id/ata-WDC_WD60EZRZ-00GZ5B1_WD-WX21D68PLLUX mklabel gpt
# parted /dev/disk/by-id/ata-WDC_WD60EZRZ-00GZ5B1_WD-WX31D88KSYCH mklabel gpt
# parted /dev/disk/by-id/ata-WDC_WD60EZRZ-00RWYB1_WD-WX31D254PV7U mklabel gpt
そしてプールの作成。
# zpool create -o ashift=12 -o autoexpand=on \
tank raidz2 \
ata-WDC_WD60EFRX-68L0BN1_WD-WX11D3678X8H \
ata-WDC_WD60EFRX-68L0BN1_WD-WX11D36JRS44 \
ata-WDC_WD60EFRX-68L0BN1_WD-WX21D48FDCVA \
ata-WDC_WD60EZRZ-00GZ5B1_WD-WX21D68PLLUX \
ata-WDC_WD60EZRZ-00GZ5B1_WD-WX31D88KSYCH \
ata-WDC_WD60EZRZ-00RWYB1_WD-WX31D254PV7U
オプションはそのまま参考エントリのまま。 -o ashift
でセクターサイズの指定、 -autoexpand=on
で将来拡張する時の保険。
# zpool status
pool: tank
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
ata-WDC_WD60EFRX-68L0BN1_WD-WX11D3678X8H ONLINE 0 0 0
ata-WDC_WD60EFRX-68L0BN1_WD-WX11D36JRS44 ONLINE 0 0 0
ata-WDC_WD60EFRX-68L0BN1_WD-WX21D48FDCVA ONLINE 0 0 0
ata-WDC_WD60EZRZ-00GZ5B1_WD-WX21D68PLLUX ONLINE 0 0 0
ata-WDC_WD60EZRZ-00GZ5B1_WD-WX31D88KSYCH ONLINE 0 0 0
ata-WDC_WD60EZRZ-00RWYB1_WD-WX31D254PV7U ONLINE 0 0 0
errors: No known data errors
ファイルシステムの作成
普通は用途ごとに細かくオプションを変えたファイルシステムを切り出すのだろうけど、
面倒だったので export
という名前のファイルシステムを作成して、後々、nfs で共有予定。
# zfs create -o atime=on -o relatime=on \
tank/export
# mkdir /export
# zfs set mountpoint=/export tank/export
21TB のファイルシステムができました。
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 959K 21.0T 192K /tank
tank/export 192K 21.0T 192K /export