Replace a zpool with minimal downtime
Create new pool
zpool create newpool raidz3 sdX sdY sdZ ....
Send the data
zfs snapshot livepool@1
zfs send -R livepool@1 | zfs receive -F newpool
Re-sync data that's changed since the initial snapshot
zfs snapshot livepool@2
zfs send -IR livepool@1 livepool@2 | zfs receive -F newpool
Repeat this step if it took longer than you want - increment the @ snapshot number each time
Flip the pools
Shut down the apps. Check lsof and/or fuser to make sure nothing's using the FS.
zfs snapshot livepool@X
zfs send -IR livepool@X-1 livepool@X | zfs receive -F newpool
zpool export livepool
zpool import livepool livepool.old
zpool export livepool.old
zpool export newpool
zpool import newpool livepool
Should be good to go to restart the apps. Destroy any snapshots when you're ready.