: O. Yuanying

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