Date: Thu, 27 Dec 2007 20:25:34 +0100 From: =?ISO-8859-1?Q?Johan_Str=F6m?= <johan@stromnet.se> To: freebsd-fs@freebsd.org Subject: ZFS replace/expand problem Message-ID: <5A6CFB06-4175-452F-BFC9-323C2023D2F6@stromnet.se>
next in thread | raw e-mail | index | archive | help
Hello list
First of all, I want to thank everybody involved in writing and =20
porting ZFS to FreeBSD, its working (except for this problem) great =20
for me!
Now to my problem. To sumarize it, I want to replace two mirrored =20
disk with bigger ones. Replace works well but the vdev doesnt expand =20
until i do export/import. Details follows:
I currently have the following setup:
back-1 /$ zpool status
pool: tank
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror ONLINE 0 0 0
ad14s1d ONLINE 0 0 0
ad16s1d ONLINE 0 0 0
mirror ONLINE 0 0 0
ad8 ONLINE 0 0 0
ad10s2 ONLINE 0 0 0
mirror ONLINE 0 0 0
ad12 ONLINE 0 0 0
ad10s1 ONLINE 0 0 0
The ad8/ad10/ad12 setup is kindof stupid, I know.. ad8 is a 80Gb and =20
ad10 is a 120Gb, and a10 200Gb.. But now I want to replace those two =20
mirrors with 4x 300GB (or rather 2x300 and 2x320). So my plan was to =20
do something like:
zpool replace tank ad8 ad18
zpool replace tank ad10s2 ad20
where ad18 and ad20 are the two 300Gbs.. Then the same thing for ad12 =20=
and ad10s1.. But before I did that i wanted to make sure that it =20
would actually expand as I'ev read, so i tried this first..
On ad18/ad20 I had ad*s1a, a 500MB partition, and ad*s1g a ~280Gb =20
partition. So i created a testtank with first ad*s1a:
back-1 /$ zpool create testtank mirror /dev/ad18s1a /dev/ad20s1a
back-1 /$ zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
tank 878G 812G 65.1G 92% ONLINE -
testtank 492M 111K 492M 0% ONLINE -
back-1 /$ zpool status
..
pool: testtank
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
testtank ONLINE 0 0 0
mirror ONLINE 0 0 0
ad18s1a ONLINE 0 0 0
ad20s1a ONLINE 0 0 0
errors: No known data errors
back-1 /storage$ zpool replace testtank ad18s1a ad18s1g
status now shows
mirror ONLINE 0 0 0
replacing ONLINE 0 0 0
ad18s1a ONLINE 0 0 0
ad18s1g ONLINE 0 0 0
ad20s1a ONLINE 0 0 0
when that was done (and only ad18s1g was showing) i did
back-1 /storage$ zpool replace testtank ad20s1a ad20s1g
and then same replacing output as above (but for ad20)
Okey, so now when this is done.. it should have expanded one would =20
think, right?
back-1 /storage$ zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
..
testtank 492M 218K 492M 0% ONLINE -
Nope.. Waited a while, nothing happened.. Some googling gave me that =20
export/import could be done:
back-1 /storage$ zpool export testtank
back-1 /storage$ zpool import testtank
back-1 /storage$ zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
..
testtank 289G 132K 289G 0% ONLINE -
Yey! Okey so it expands, but only after export/import.. Havent realy =20
found much docs about this but according to ppl in #opensolaris this =20
should not be necessary.
Not a big deal in this test case, but doing it for my real tank will =20
require me to take the system down on an external boot medium (CD or =20
something) I guess, and then do zfs export/import there, and then =20
boot back up..
Any guidelines how to do this? Will doing import/export from a CD =20
(rescue shell I guess) work as I expect? Or what would be the =20
smartest way (the actual downtime isnt such a big deal as long as it =20
is quick and works).
Thanks!
--
Johan Str=F6m
Stromnet
johan@stromnet.se
http://www.stromnet.se/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5A6CFB06-4175-452F-BFC9-323C2023D2F6>
