Performance drop after adding another vdev.

m1abram

2[H]4U
Joined
Mar 15, 2002
Messages
3,175
I had a pool consisting of 6 mirrors (12 drives total). I added two more drives ie one more mirrored vdev to the pool. After doing that I ran bonnie and noticed that both my reads and writes were about half what they were prior to adding the drives.

Is this speed drop due to ZFS putting a preference to the drives with the lower capacity? if so any way to balance this short of copying everything from one pool to another and back?
 
Is this speed drop due to ZFS putting a preference to the drives with the lower capacity? if so any way to balance this short of copying everything from one pool to another and back?

Yes it is, and no there is not :(

I had the same happen to me going from one mirror vdev to two. First vdev was about 50% full, and when I added the second, it was clear from iostat that the majority of writes was going to the second vdev. It's fine when it's just 2 vdevs as I got the same performance as before, but I can see how it can cause a severe performance degradation in cases like yours.
 
Yes it is, and no there is not :(

I had the same happen to me going from one mirror vdev to two. First vdev was about 50% full, and when I added the second, it was clear from iostat that the majority of writes was going to the second vdev. It's fine when it's just 2 vdevs as I got the same performance as before, but I can see how it can cause a severe performance degradation in cases like yours.

Well main concern was what was causing the perf. drop. If it is due to what we both seem to agree on and that is the preference to the new drives then I am good with that since it wont take too long for it to fill those to the point where they are no longer the preferred drives.
 
This could stay "bad" though, since the files you're currently copying will stay on that new mirror, so they'll "stay slow".
 
I've added a mirror vdev to a pool and eventually things did seem to balance out, though it took awhile...
 
This could stay "bad" though, since the files you're currently copying will stay on that new mirror, so they'll "stay slow".

True, if I ever get around to adding a second pool I can fix it then. But what a pain in the butt.

Only real complaint with ZFS is that it does not have any tool to "rebalance" a pool.
 
True, if I ever get around to adding a second pool I can fix it then. But what a pain in the butt.

Only real complaint with ZFS is that it does not have any tool to "rebalance" a pool.

You can rebalance manually when needed:
- rename a filesystem to filesystem.old
- create new filesystem
- move data from old to new

but ZFS rebalance modified files automatically due to CopyOnWrite over time
 
You can rebalance manually when needed:
- rename a filesystem to filesystem.old
- create new filesystem
- move data from old to new

but ZFS rebalance modified files automatically due to CopyOnWrite over time

Thanks, I have multiple filesystems on this pool. However I probably only need to do this with the one of them since that should move enough data to the new vdev.

Will give this a shot.
 
Back
Top