Hi all,

Sean McGrath - Sun Microsystems Ireland wrote:
MC stated:
< > On Thu, 24 May 2007, MC wrote:
< > < > > An advantage Linux has over both Solaris and < > Windows is that Linux < > > software RAID supports adding disks to an existing
< > array.

(snip...)
< < This topic has come up many times on the ZFS forums, and even then it is hard to get a straight answer. I blame that on a non-standard vocabulary surrounding these topics. Grow, array, pool, etc... lots of confusion and ambiguity there. But by the end of each question thread, an authoritative answer shows up: http://www.opensolaris.org/jive/thread.jspa?messageID=108195#108195 < < So unless something has changed since April, only Linux (and a number of hardware solutions) support growing raid5 arrays with devices.

  Indeed SVM has been able to so as well, Solaris 9 in fact could.
   (SVM == Solaris Volume Manager)

In trying to keep us honest, I believe it's accurate to say ZFS cannot grow a raidz vdev. Please correct me if I'm wrong.

You can add new vdevs to a pool that has an existing raidz (or other vdevs) in it, but you cannot add devices to a raidz vdev already in a pool.

For example:
# zpool create spanned raidz /var/tmp/one /var/tmp/two /var/tmp/three
# zpool status -v spanned
pool: spanned
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
spanned ONLINE 0 0 0
raidz ONLINE 0 0 0
/var/tmp/one ONLINE 0 0 0
/var/tmp/two ONLINE 0 0 0
/var/tmp/three ONLINE 0 0 0
# zpool add spanned raidz /var/tmp/one /var/tmp/two /var/tmp/three /var/tmp/fourinvalid vdev specification
use '-f' to override the following errors:
/var/tmp/one is part of active pool 'spanned'
# zpool add spanned raidz /var/tmp/four
invalid vdev specification: raidz requires at least 2 devices
# zpool add spanned raidz /var/tmp/four /var/tmp/five /var/tmp/six
# zpool status -v spanned
pool: spanned
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
spanned ONLINE 0 0 0
raidz ONLINE 0 0 0
/var/tmp/one ONLINE 0 0 0
/var/tmp/two ONLINE 0 0 0
/var/tmp/three ONLINE 0 0 0
raidz ONLINE 0 0 0
/var/tmp/four ONLINE 0 0 0
/var/tmp/five ONLINE 0 0 0
/var/tmp/six ONLINE 0 0 0

errors: No known data errors


There is no way I know of to add a device to an existing raidz vdev. Again, I could be wrong, but I think this is accurate and it does match what was posted to the forum as noted above.

I'll note that you can do a zpool replace operation though, and if you were to swap out all of the devices in the vdev, the resulting zpool would have the appropriate size, without having to grow any filesystems. I'll also note that the zfs community has been working away at the changes that should allow for all kinds of interesting things, like growing a vdev (raidz/mirror/file/device), shrinking a vdev (removing a device from a raidz/raidz2), etc.

I don't doubt that Solaris Volume Manager and Linux LVM can do this, but doing it and doing it correctly for performance and reliability are two separate things. The infrastructure to shrink/remove devices from a vdev is similar, so I suspect we'll have this in that timeframe.

Again, please correct me if I'm wrong.

Regards,

- Matt

--
Matt Ingenthron - Web Infrastructure Solutions Architect
Sun Microsystems, Inc. - Global Systems Practice
http://blogs.sun.com/mingenthron/
email: [EMAIL PROTECTED]             Phone: 310-242-6439

_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to