Linked by Amjith Ramanujam on Tue 19th Aug 2008 14:44 UTC, submitted by M-Saunders
Thread beginning with comment 327440
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
"But you as you say, you can not add a drive to an EXISTING zpool. Instead you can exchange the drives to larger ones. Yes.
A zpool can be extended with vdevs as you like. vdevs can be single drives, RAID-Z arrays, mirrors, files or LUNs. The redundancy is defined by the vdev. Put a single drive vdev in a pool and you're playing with fire. You can turn single drive vdevs into mirrors, tho. "
So, how would one take a 24-drive bay system, put 12 drives in it, configure a zpool, use the system, later add 12-drives to it, and add those to the pool?
Would you create a 12-drive raidz2 pool (say storage0), then add that to another pool (say bigstorage), then later create a second 12-drive raidz2 pool (say storage1), and then add that as a vdev to bigstorage?? Which would give you:
bigstorage
storage0
drive0
drive1
...
drive11
storage1
drive0
drive1
...
drive11
If so, that's kind of neat, but a lot of extra overhead. Although I guess it does offer a bit more redundancy (can lose up to 4 drives across the two raidz arrays).
I guess the whole vdev thing is tripping me up, as I'm thinking in terms of drives and single pools per storage server.
Edited 2008-08-20 15:17 UTC
Yep, like this. Though you don't get to label vdevs.
Yet, I guess. When they finally implement vdev removal, you need to be able to address them.
--edit:
It'd work like this to create a pool with one RAID-Z array:
zpool create pacman raidz disk1 disk2 disk3 disk4
Then later, adding a second RAID-Z:
zpool add pacman raidz disk5 disk6 disk7 disk8
The end result are two RAID-Z vdevs. ZFS will then dynamically spread blocks based on parameters like write throughput and bandwidth usage.
Edited 2008-08-20 15:28 UTC





Member since:
2006-03-20
A zpool can be extended with vdevs as you like. vdevs can be single drives, RAID-Z arrays, mirrors, files or LUNs. The redundancy is defined by the vdev. Put a single drive vdev in a pool and you're playing with fire. You can turn single drive vdevs into mirrors, tho.
What you can't do is expand an existing RAID-Z vdev with more disks, you'd have to add a whole new RAID-Z vdev. The way it works to avoid the write hole makes expanding it a pain in the ass. The developers threw a lot of ideas out how this could be implemented, but it's a total non-priority for them and are encouraging third parties to give it a try if it's a priority. You can increase the size of an array tho by successively replacing each disk with a larger one.
Since ZFS is still evolving, their focus points more towards enterprise, where whole arrays are added to a storage pool to extend it, instead of expanding a single array (which is a dangerous operation).
For that matter, there's still work on implementing, testing and stabilizing some functionality (bp_rewrite) needed to perform the necessary operations safely.
Edited 2008-08-20 12:33 UTC