Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Oct 2002 01:48:15 -0700
From:      "Drew Tomlinson" <drew@mykitchentable.net>
To:        "Drew Tomlinson" <drew@mykitchentable.net>, <questions@freebsd.org>, "Greg 'groggy' Lehey" <grog@FreeBSD.org>, "Kirk Strauser" <kirk@strauser.com>, "Joan Picanyol" <lists-freebsd-questions@biaix.org>, "Jerry McAllister" <jerrymc@clunix.cl.msu.edu>, "Pietralla, Siegfried P" <siegfried.pietralla@eds.com>
Subject:   Re: Vinum - A Way to Create Without Losing Data - SOLVED
Message-ID:  <00b901c27c03$420057a0$0301a8c0@bigdaddy>
References:  <009801c2789c$2f9ee910$0301a8c0@bigdaddy> <003a01c27916$1efeed60$6e2a6ba5@TAGALONG>

next in thread | previous in thread | raw e-mail | index | archive | help

----- Original Message -----
From: "Drew Tomlinson" <drew@mykitchentable.net>
Sent: Monday, October 21, 2002 7:39 AM


> ----- Original Message -----
> From: "Drew Tomlinson" <drew@mykitchentable.net>
> Sent: Sunday, October 20, 2002 5:52 PM
>
> > >From what I've read, it appears that if I create a concatenated
> volume
> > using vinum or ccd, I will destroy whatever data I already have on
> the
> > disks.  Is this correct?  Is there anyway to do it without
> destroying
> > the data?  I have one 80G archive drive and have filled it.  I added
> > another and would like to have both drives seen by the system as one
> > 160G drive.
>
>
> Thanks for all of your responses.  The (almost) full 80G archive drive
> does not contain any system files (just mp3s, video clips, etc.) and
> my additional 80G drive is new with no data. Thus, I've concluded that
> creating a vinum volume on the empty disk, copying the contents of the
> old to the new, and then adding the old disk to the vinum volume is
> the best way to go.

I'm happy to report that I have accomplished the above successfully with
a little help from the list.  I documented the steps I took and thought
others might benefit as well.  So here is my "10 Step Method to Expand a
Filesystem Using Vinum".  Please feel free to point out any unnecessary
steps or more efficient ways complete this task.

Step 1:
I used /stand/sysinstall to fdisk ad1 (the new disk).  Because I do not
intend to use this disk for anything else, I created one slice in
"dangerously dedicated" mode.  In other words, I answered "No" to the
true partition entry question.

Step 2:
I used "disklabel -e ad1" and created a partition for vinum.  I just
copied the c: entry and appended it.  Then I edited the new line like
so:

#        size   offset    fstype   [fsize bsize bps/cpg]
  c: 156301488        0    unused        0     0        # (Cyl.    0 -
9729*)
  h: 156301488        0     vinum                       # (Cyl.    0 -
9729*)

Step 3:
I created a vinum config file to create a volume using ad1.  Here's the
config file:

drive ftp1 device /dev/ad1s1h
volume ftp
  plex org concat
    sd length 0 drive ftp1

Note that "sd length 0" means to use all available space on the drive.

Step 4:
Create the vinum volume by using "vinum create /your/config/file":

1 drives:
D ftp1                  State: up       Device /dev/ad1s1h      Avail:
0/76319 MB (0%)

1 volumes:
V ftp                   State: up       Plexes:       1 Size:         74
GB

1 plexes:
P ftp.p0              C State: up       Subdisks:     2 Size:         74
GB

1 subdisks:
S ftp.p0.s0             State: up       PO:        0  B Size:         74
GB

Step 5:
Create the new filesystem by using "newfs /dev/vinum/ftp"  Mount the
file system after it's created (I mounted to /mnt).

Step 6:
Copy the contents of ad0 (the original drive mounted at /ftp) to
/dev/vinum/ftp using "cp -Rp /ftp /mnt".  Wait long time.  :)

Step 7:
Once I was sure the data was copied, I used "disklabel -e ad0" create a
vinum partition on ad0.  WARNING!!! Once you write the new disklabel,
all data is destroyed on the partition!  Be sure you are satisfied with
your copy in step 6.

Step 8:
Create vinum config file to add ad0 drive and additional subdisk to
existing plex.  Here is my config:

drive ftp0 device /dev/ad0s1h
subdisk length 0 plex ftp.p0 drive ftp0

Step 9:
Add the above config to vinum using the create command.

2 drives:
D ftp1                  State: up       Device /dev/ad1s1h      Avail:
0/76319 MB (0%)
D ftp0                  State: up       Device /dev/ad0s1h      Avail:
0/76319 MB (0%)

1 volumes:
V ftp                   State: up       Plexes:       1 Size:         74
GB


1 plexes:
P ftp.p0              C State: corrupt  Subdisks:     2 Size:         74
GB

2 subdisks:
S ftp.p0.s0             State: up       PO:        0  B Size:         74
GB
S ftp.p0.s1             State: empty    PO:       74 GB Size:         74
GB

Notice the plex state "corrupt" and the new subdisk state "empty".  I
didn't know exactly what to do so I tried just stopping the subdisk with
"vinum stop ftp.p0.s1".  It's state changed to "down" and the plex state
changed to "up".  Next I started the down subdisk and everything came
together.

2 drives:
D ftp1                  State: up       Device /dev/ad1s1h      Avail:
0/76319 MB (0%)
D ftp0                  State: up       Device /dev/ad0s1h      Avail:
0/76319 MB (0%)


1 volumes:
V ftp                   State: up       Plexes:       1 Size:        149
GB

1 plexes:
P ftp.p0              C State: up       Subdisks:     2 Size:        149
GB


2 subdisks:
S ftp.p0.s0             State: up       PO:        0  B Size:         74
GB
S ftp.p0.s1             State: up       PO:       74 GB Size:         74
GB

Step 10:
Use growfs to extend the filesystem by issuing "growfs /dev/vinum/ftp".
When complete, I verified the filesystem with fsck and everything was
OK.  Mount your new filesystem and voila!


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00b901c27c03$420057a0$0301a8c0>