I have an older PC being re-purposed as a FreeNAS box for the household LAN. So far I've got FreeNAS installed to a USB thumb drive and a 500GB SATA drive for storage. I went and unmounted the hard drive and re-formatted it for ZFS. What I had in mind was to set this up now (single drive pool) and then later move the setup to a bigger case where I can add a second or even third drive the system, with the intent of setting up either drive mirroring or hopefully RAID-Z. But right now, all I have available is the one 500GB drive.

So... for now it looks like the only kind of virtual device I can create with only one physical drive is a stripe, which I then added to a zpool and mounted like before. When I get more HDDs, what is the right way to add them to the pool in such a way as to create a RAID-Z configuration without losing my existing data that is on the first hard drive?




As of yet, there isn't a way to convert zpool structures. Also, there isn't a way to expand a RAIDz. To my knowledge, RAIDz is something you have to setup from the start.

That said, there is an exception. If you have three disks in a RAIDz configuration, basically one disk is used for redundancy. You can concatenate zpools so you can create a second three disk RAIDz and that the two work together. That way each three disk RAIDz is fault tolerant within itself. The down side is not you have to use two drive for fault tolerance where as if you build the RAIDz with six drives from the start you would only be required to use one.

There is a second exception. (I've only done this in VMware to test it.) If you have a RAIDz zpool, and want to increase the capacity, you can swap you the drives one by one with a larger capacity drive. Then after the last drive has rebuilt, (I think) you can export the pool, and import it back and ZFS will see the new capacity on the drive and begin to use it. I read this off a blog I can't locate and it was a while ago, so there may be additional steps.

Some people have considered using the copies property of ZFS to spread extra copies across a stripe zpool. Here is a site that talks about the copies property. ZFS will attempt to put the two copies on two different drives, but it doesn't have to. So the data may be fault tolerant, or may not.

I'm hoping the FreeNAS because it is built on a flavor of BSD will get the latest bits soon. OpenIndiana had the latest versions of ZFS incorporated (zpool version 28 and zfs version 5). Also, I've read ZFS has been ported to Linux (not just with FUSE).

I used to use FreeNAS because it was easy to setup. The I moved around to various OSs chasing the latest versions of ZFS mainly because I wanted the dedupe feature to extend the capacity of my storage.

I know when ZFS get in place migration between zpool types and dynamic expansion of RAIDz many ZFS people will be happy.

  • 1
    Thanks for the response! I shuffled some parts around between a couple semi-retired machines, and now have 2 500GB SATA drives in a case with room for one more (at least before I have to start getting 'creative' about mounting them). I think I'll go buy one more 500GB drive and just set things up as RAID-Z1 from the start. – memilanuk Oct 3 '10 at 0:29
  • Glad it worked out and good call about making a RAIDz from the start. – Scott McClenning Oct 3 '10 at 6:27

According to Ubuntu, in its implementation at least, you can extend a zpool raidz... With a caveat.

There example was something like; if you have an existing zpool of 3 disks, it can only be extended (other than mirroring) if you add another 3 disk zpool raidz of the same size and type.

Name vo10 raidz2 sda sdb sdc raidz2 sdd
sde sdf

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.