From owner-freebsd-questions Fri Oct 25 18:48:14 2002 Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 66FC737B401 for ; Fri, 25 Oct 2002 18:48:10 -0700 (PDT) Received: from wantadilla.lemis.com (wantadilla.lemis.com [192.109.197.80]) by mx1.FreeBSD.org (Postfix) with ESMTP id C830643E3B for ; Fri, 25 Oct 2002 18:48:07 -0700 (PDT) (envelope-from grog@lemis.com) Received: by wantadilla.lemis.com (Postfix, from userid 1004) id EC50D812FB; Sat, 26 Oct 2002 11:18:05 +0930 (CST) Date: Sat, 26 Oct 2002 11:18:05 +0930 From: Greg 'groggy' Lehey To: Drew Tomlinson Cc: questions@freebsd.org, Kirk Strauser , Joan Picanyol , Jerry McAllister , Siegfried P Pietralla Subject: Re: Vinum - A Way to Create Without Losing Data - SOLVED Message-ID: <20021026014805.GC23340@wantadilla.lemis.com> References: <009801c2789c$2f9ee910$0301a8c0@bigdaddy> <003a01c27916$1efeed60$6e2a6ba5@TAGALONG> <00b901c27c03$420057a0$0301a8c0@bigdaddy> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <00b901c27c03$420057a0$0301a8c0@bigdaddy> User-Agent: Mutt/1.4i Organization: The FreeBSD Project Phone: +61-8-8388-8286 Fax: +61-8-8388-8725 Mobile: +61-418-838-708 WWW-Home-Page: http://www.FreeBSD.org/ X-PGP-Fingerprint: 9A1B 8202 BCCE B846 F92F 09AC 22E6 F290 507A 4223 Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG [Format recovered--see http://www.lemis.com/email/email-format.html] This would be a lot more legible if you hadn't wrapped computer output. Also, your quoted text is broken. On Friday, 25 October 2002 at 1:48:15 -0700, Drew Tomlinson wrote: > On Monday, October 21, 2002 7:39 AM, Drew Tomlinson wrote: >> On Sunday, October 20, 2002 5:52 PM, Drew Tomlinson wrote: >> >>> 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. :) Presumably this is /dev/ad0s1h or some such, not ad0. > 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. Minor detail: writing the disk label doesn't change anything on the partition. If you realise you've done it to the wrong partition, you can change it back and your data will still be there. > 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. This is an interesting question. Arguably, Vinum did the wrong thing there. This is probably a case for using Vinum commands like setstate. I think I would have done: # vinum setstate up ftp.p0.s1 ftp.p0 # vinum saveconfig > 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! Sounds good. Thanks for the feedback. Greg -- When replying to this message, please copy the original recipients. If you don't, I may ignore the reply or reply to the original recipients. For more information, see http://www.lemis.com/questions.html See complete headers for address and phone numbers To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message