# RAIDZ2 pool creation # # -o (lowercase) is a _pool_ setting, -O (uppercase) is a _root dataset_ setting # # ashift=12: 2^12 = 4KiB sectors, for certain NVMe drives use 13 (8KiB) # autotrim=on: TRIM for SSDs # encryption=on: Defaults to aes-256-gcm (since 0.8.4) # pbkdf2iters=1400000: PBKDF2-SHA1(?) iterations recommendation by OWASP, default is only 350000 # dnodesize=auto: Is supposed to be used on systems running SAMBA with xattr=sa # compression=on: Defaults to lz4 (when lz4_compress is enabled, see `zpool get feature@lz4_compress ${NAME}`) # normalization=formD: Decomposed Unicode normalization, implies utf8only=on, so UTF-8 filenames only # longname=on: Allows filenames up to 1023 bytes, default is off meaning 255 bytes (supported since 2.3.0) # primarycache: Defines what is cached in ARC, defaults to all (alternative settings: none, metadata) # secondarycache: Defines what is cached in L2ARC, defaults to all (alternative settings: none, metadata) # direct: Unset, defaulting to standard (since 2.3.0) # !!! recordsize: Unset, defaulting to 128KiB (important performance related setting!) # # Sources: # https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#pbkdf2 # https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Trixie%20Root%20on%20ZFS.html#step-2-disk-formatting # https://openzfs.github.io/openzfs-docs/man/master/7/zfsprops.7.html#compression # https://openzfs.github.io/openzfs-docs/man/master/7/zfsprops.7.html#direct # https://openzfs.github.io/openzfs-docs/man/master/7/zfsprops.7.html#dnodesize # https://openzfs.github.io/openzfs-docs/man/master/7/zfsprops.7.html#longname # https://openzfs.github.io/openzfs-docs/man/master/7/zfsprops.7.html#pbkdf2iters # # zpool create \ -o ashift=12 \ -o autotrim=on \ -O encryption=on -O keylocation=prompt -O keyformat=passphrase \ -O pbkdf2iters=1400000 \ -O acltype=posixacl -O xattr=sa -O dnodesize=auto \ -O compression=on \ -O normalization=formD \ -O relatime=on \ -O longname=on \ -O canmount=off \ -O mountpoint=/mnt/${NAME} ${NAME} \ raidz2 \ ${DISK1..N} # Dataset creation TODO