Page 1 of 1
vdev add -f not available in GUI
Posted: 10 Jun 2015 09:11
by actyler1001
Hi all, I am a complete noob when it comes to ZFS, but have been having some fun with it. I have an existing pool made up of two mirror vdevs. Each mirror is made up of 2, 1 TB drives.
I just happened to have a 1.5 TB and 1.0 TB drive laying around and thought I could create another mirror vdev and just sacrifice the 500 MB of the 1.5 TB drive. I was able to create the vdev successfully, but I get an error when attempting to add the vdev to the pool.
vdev add...
invalid vdev specification
use '-f' to override the following errors:
mirror contains devices of different sizes
Ok, so they are different sizes, great. Can ZFS still use the mirror and get the performance I'd like? I don't care about the .5 of the 1.5 TB drive. I just want to add another vdev mirror to the pool to further increase IOPS.
I would jump into the cli and just run the command manually with the -f, but I am not sure what the full command looks like. Can someone clue me in?
Re: vdev add -f not available in GUI
Posted: 10 Jun 2015 09:35
by actyler1001
Wow, it took me absolutely forever to figure this out.... Painful learning new things. Here are the commands and output I used from an SSH session. I hope it is still getting the performance benefit and is not trying to make use of the 500GB some wacky way.
nas4free: ~ # zpool list
NAME SIZE ALLOC FREE FRAG EXPANDSZ CAP DEDUP HEALTH ALTROOT
zPool_01 1.81T 308G 1.51T 8% - 16% 1.00x ONLINE -
nas4free: ~ # zpool status
pool: zPool_01
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zPool_01 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ada0 ONLINE 0 0 0
ada1 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada4 ONLINE 0 0 0
errors: No known data errors
******************** The "-n" is really handy.. It seems to test the change without actually making it and tells you what will happen. Here is me re-creating the error:
********************
nas4free: ~ # zpool add -n zPool_01 mirror ada2 ada5
invalid vdev specification
use '-f' to override the following errors:
mirror contains devices of different sizes
******************** And again using the "-f" option.. Still have the "-n" there to see what might happen without making the change. notice the command output says "would update" Pretty neat...
********************
nas4free: ~ # zpool add -n -f zPool_01 mirror ada2 ada5
would update 'zPool_01' to the following configuration:
zPool_01
mirror
ada0
ada1
mirror
ada3
ada4
mirror
ada2
ada5
******************** And finally making the change... Wow, that took a while to figure out.
********************
nas4free: ~ # zpool add -f zPool_01 mirror ada2 ada5
nas4free: ~ # zpool status
pool: zPool_01
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zPool_01 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ada0 ONLINE 0 0 0
ada1 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada4 ONLINE 0 0 0
mirror-2 ONLINE 0 0 0
ada2 ONLINE 0 0 0
ada5 ONLINE 0 0 0
errors: No known data errors
nas4free: ~ #
Re: vdev add -f not available in GUI
Posted: 10 Jun 2015 10:41
by raulfg3
actyler1001 wrote:vdev add...
invalid vdev specification
use '-f' to override the following errors:
mirror contains devices of different sizes
Ok, so they are different sizes, great. Can ZFS still use the mirror and get the performance I'd like? I don't care about the .5 of the 1.5 TB drive. I just want to add another vdev mirror to the pool to further increase IOPS.
I would jump into the cli and just run the command manually with the -f, but I am not sure what the full command looks like. Can someone clue me in?
-f is used second time you try to apply a config, YES is not intuitive, but works.
eg: you push apply buton first time in webGUI and have the error that you say, then apply second time same button , this time use -f option and works.
Perhaps is not well docummented but is it.
Re: vdev add -f not available in GUI
Posted: 10 Jun 2015 22:51
by actyler1001
Huh? I didn't see an option to hit the button a second time. There was only a back button on failure..... I tried it multiple times before going to the CLI.