diff --git a/hosts/skydick/DATAPOOL.md b/hosts/skydick/DATAPOOL.md index f9eb054..d5c069b 100644 --- a/hosts/skydick/DATAPOOL.md +++ b/hosts/skydick/DATAPOOL.md @@ -4,6 +4,10 @@ Network: 10GbE bonded (bond0), jumbo frames MTU 9000, subnet 10.0.0.0/16. +Pool: 9 × Seagate Exos/Mach2 ST14000NM0001 14TB SAS (4Kn), each presenting 2 LUNs. +8 mirrors (from 8 drives) + 1 hot spare + NVMe SLOG/L2ARC. ~50.9T usable. +See `datapool.nix` header comments for the full drive inventory and mirror layout. + ## Available shares | Share | Server path | SMB name | NFS mount | Access | diff --git a/hosts/skydick/datapool.nix b/hosts/skydick/datapool.nix index a8c4537..9e2cfde 100644 --- a/hosts/skydick/datapool.nix +++ b/hosts/skydick/datapool.nix @@ -9,24 +9,35 @@ # LUN1: wwn-0x6000c500XXXXXXXX0001000000000000 # Same prefix = same physical drive. Pair DIFFERENT drives in each mirror. # -# Drive inventory (ST14000NM0001, 14TB SAS Mach2): +# Drive inventory (ST14000NM0001, 14TB SAS Mach2, all sg_format'd to 4Kn): # -# drive1: cab9587b (serial ZKL09S4X...FA4P) -# drive2: caf74697 (serial ZKL05VPS...FMAC) -# drive3: cb3613eb (serial ZKL05VM0...GSP3) +# drive1: cab9587b (serial ZKL05VPS...FMAC) +# drive2: caf74697 (serial ZKL05VM0...GSP3) +# drive3: cb3613eb (serial ZKL09S4X...FA4P) # drive4: cb3957ab (serial ZKL09QXG...50KE) # drive5: cb9dd2eb (serial ZKL0EP06...6LLW) [spare] +# drive6: d76a9e4f (serial ZKL0YA0X...4QB) +# drive7: d76aa413 (serial ZKL0Y9WR...31Y) +# drive8: d82293b3 (serial ZKL1FGTX...D63) +# drive9: d822944f (serial ZKL1FGTM...63J) +# drive10: c9bcfa0f (serial ZKL01BH9...9J1) [pending — sg_format in progress] # -# Layout (4 active + 1 hot spare, all mirrors for expandability): +# Layout (8 active mirrors + 1 hot spare, ~50.9T usable): # # mirror-0: drive1-LUN0 drive2-LUN0 # mirror-1: drive1-LUN1 drive2-LUN1 # mirror-2: drive3-LUN0 drive4-LUN0 # mirror-3: drive3-LUN1 drive4-LUN1 +# mirror-5: drive6-LUN0 drive7-LUN0 +# mirror-6: drive6-LUN1 drive7-LUN1 +# mirror-7: drive8-LUN0 drive9-LUN0 +# mirror-8: drive8-LUN1 drive9-LUN1 # spare: drive5-LUN0 drive5-LUN1 # -# If drive1 fails: mirror-0 and mirror-1 each lose one member, but stay -# online via drive2. The spare auto-replaces one degraded member. +# If driveN fails: the two mirrors carrying its LUNs each lose one member +# but stay online via the paired drive. The spare auto-replaces one +# degraded member. drive10 can be added as a spare or mirror pair once +# its sg_format completes. # # === Pool creation === # @@ -42,6 +53,13 @@ # mirror wwn-0x6000c500cb3613eb0001000000000000 wwn-0x6000c500cb3957ab0001000000000000 \ # spare wwn-0x6000c500cb9dd2eb0000000000000000 wwn-0x6000c500cb9dd2eb0001000000000000 # +# Expansion (2026-03-23, added 4 drives = 4 mirror vdevs): +# zpool add dick \ +# mirror wwn-0x6000c500d76a9e4f0000000000000000 wwn-0x6000c500d76aa4130000000000000000 \ +# mirror wwn-0x6000c500d76a9e4f0001000000000000 wwn-0x6000c500d76aa4130001000000000000 \ +# mirror wwn-0x6000c500d82293b30000000000000000 wwn-0x6000c500d822944f0000000000000000 \ +# mirror wwn-0x6000c500d82293b30001000000000000 wwn-0x6000c500d822944f0001000000000000 +# # === NVMe acceleration (Intel DC P4600 750GB, PHKE0163008K750BGN) === # # Partition: @@ -135,10 +153,16 @@ # # === Expanding the pool === # -# Add another pair of Mach2 drives (drive6 + drive7): -# zpool add dick \ -# mirror \ -# mirror +# Add another pair of Mach2 drives (driveN + driveM): +# 1. sg_format both drives to 4Kn if not already done: +# sg_format --format --size=4096 /dev/sdX +# Wait for completion (monitor with: sg_requests -p /dev/sdX) +# 2. Wipe any leftover partition tables: +# wipefs -a /dev/sdX +# 3. Add as mirror pair using stable WWN paths: +# zpool add dick \ +# mirror \ +# mirror # # === Service model === #