Extending RAID-Z pool & best practices

I currently run a RAID-Z1 with 3x3TB WD Reds on FreeNAS. I'm not exactly close to filling it up, but I'd like to keep myself safe for the future, so I have a few questions:

(I know I can't just add hdds to it willy-nilly)

  1. Can I change is to a RAID-Z2 by adding another 3TB hdd without rebuilding the pool (and implicitly moving the data around)?

  2. Is there a way to add 3x3TB hdds and go to a RAID-Z2 again without rebuilding the pool?

  3. The boot drive is a relatively cheap little flash drive. I know the FreenNAS OS drive is read-only, so there should be few concerns about the flash drive failing, but just in case it does: I have the configuration saved on another machine. Is that enough to rebuild everything in case the flash drive fails?

  4. Is it better for the longevity of the components to leave the NAS on all the time, or keep it off when I know I won't use it?

Thanks in advance.

1 no
2 no
3 I'd have two in raid 1
4 unless your leaving for a week or 2 leave it on

I was half-expecting the answers to 1 and 2 to be no, but I am slightly disappointed. I was hoping there was some tool that allowed RAID-Z pools to be extended "in situ" for common sense scenarios like these. Any suggestions on how to work that out, or is it basically just "borrow some hdds to use as temp storage and rebuild everything"?

3 You mean 2 flash drives in raid-1? Are there any issues with just putting FreeNAS on a new flash drive and loading the config? Is there serious danger involved?

yup

That is what I mean and I have no clue. try it. so long as you don't hurt the original disk your fine.

So you have two options in terms of expansion. 1. Replace individual disks with bigger disks and let the array resolver or 2. You can add a new vdev in the form of another set of HDD in raidz or z2 or mirror.

I was slightly annoyed by the fact you can't live migrate and whatnot. This is one of the promises of BTRFS which is neat.
However, from practical purposes, going all the way back to 9gb disks, it has been the case that I upgrade the drives to double the available space and then use the old drives for the backups.

You can also extend the pool with another 3x3tb raidz1 . Its slightly less redundant than a raidz2 of 6 drives, but slightly more performant.

I guess I'll see if I can muster up the necessary temp storage come expansion time. If not, I'll create a new 3x z1 vdev and add it to the pool and bank that I won't have 2 hdds fail in the same raid at the same time.

Thanks for the help, everyone. Cheers.

  1. No for two reasons. You cannot change from RaidZ1 to RaidZ2 and second ZFS doesn't have a drive expansion feature. It is however an often requested one so it might come in the future.
  2. No not possible now or in any future. Data needs to be transported over all 6 drives no matter which raid you choose this is with btrfs as with zfs the case.
  3. actually configuration of zfs pools is stored on each disc in the pool. which is great because that way you can change all the hardware and just rediscover your pool again.
  4. yes not for all components but for drives it really is. The most stress and failures of a drive happen during cold boot up.

@wendell I kind of do the same. I have a spare amount of ports I use for building a new pool. I just add the pool and move the data to the new drives. Still slow in the end but safer than rebuilding it 8 times and certainly faster than that.