Date: Sat, 15 Mar 2003 16:28:20 +1030 From: Greg 'groggy' Lehey <grog@FreeBSD.org> To: Malcolm Kay <Malcolm.Kay@internode.on.net> Cc: freebsd-questions@FreeBSD.org Subject: Re: vinum based system Message-ID: <20030315055820.GS90698@wantadilla.lemis.com> In-Reply-To: <200303151623.03287.Malcolm.Kay@internode.on.net> References: <200303151623.03287.Malcolm.Kay@internode.on.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--fberPwKQctZF/fXp Content-Type: multipart/mixed; boundary="nccO0ldXW0cuDU6a" Content-Disposition: inline --nccO0ldXW0cuDU6a Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Saturday, 15 March 2003 at 16:23:03 +1030, Malcolm Kay wrote: > I am planning to put up a FreeBSD system, probably 4.8-RELEASE > when it appears, to manage backups from a number of Unix and unix-like > systems on a LAN. > > Backups will be written nightly over the LAN to a local disk system and > transfered regularly to tape via a scsi tape-drive. > > I am under pressure to make this system fairly reliable with respect > to hardware failure - particularly disk drives. The thought is to use a couple > of fairly large drives, say 120 or 160Gb running as a mirrored pair using > vinum. Having no experience with vinum or software RAID systems a number > of questions come to mind: > > 1) All the examples appear to use scsi drives; but I assume EIDE are also > usable? IDE seems to be pretty good these days and much cheaper than > scsi. Yes, correct. Note that you shouldn't have more than one disk per controller unless both use tagged queueing. > 2)To what extent can the system be fully mirrored? Without RAID hardware it > seems to me that a conventional disk partition outside the mirrored volume is > probably necessary for mounting / ; is this true? Not completely. Check the latest man pages. 4.8 will be able to handle root file systems on Vinum, though the manner in which it's done is not the same as it is for release 5 and later. > 3)If the regular partition is necessary can this be taken as a modest slice > from one of the disks whose major part is devoted to the mirror volume, > and perhaps the corresponding slice on the other used for swap? Yes, this would be a possibility, but it's not necessary. > 4)If the converse is true that the entire system can reside inside the > mirrored volume then do I need a temporary additional disk to build the > system? In any case it seems that an outside region or separate physical > disk would be better for swap. No, there's a trick there. I'm attaching the relevant text from upcoming fourth edition of "The Complete FreeBSD". This relates to release 5, but the only difference is what you put in /etc/rc.conf and /boot/loader.conf, and that's in the man page. Let me know if anything's confusing. 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 --nccO0ldXW0cuDU6a Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="vinum.txt" Installing FreeBSD on Vinum ___________________________ Installing FreeBSD on Vinum is complicated by the fact that sysinstall and the loader don't support Vinum, so it is not possible to install directly on a Vinum volume. Instead, you need to install a conventional system and then convert it to Vinum. That's not as difficult as it might sound. A typical disk installation lays out disk partitions in the following manner: da0s3a: / file system da0s3b: swap da0s3e: /usr file da0s3c: entire disk da0s3f: /var file system Figure 12-9: Typical partition layout without Vinum This layout shows three file system partitions and a swap partition, which is not the layout recommended on page 68. We'll look at the reasons for this below. Each partition corresponds logically to a Vinum subdisk. You could enclose all these subdisks in a Vinum drive. The only problem is that Vinum stores its configuration information at the beginning of the drive, and that's where the root file system is. One way to solve this problem is to put the swap partition first and make it 265 sectors longer than needed. You can do this from sysinstall simply by creating the swap partition before any other partition. Consider installing FreeBSD on a 4 GB drive. Create, in sequence, a swap partition of 256 MB, a root file system of 256 MB, a /usr file system of 2 GB, and a /var file system to take up the rest. It's important to create the swap partition at the beginning of the disk, so you create that first. After installation, the output of disklabel looks like this: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 524288 532480 4.2BSD 2048 16384 94 # (Cyl. 871*- 1729*) b: 532215 265 swap # (Cyl. 0*- 871*) c: 8386733 0 unused 0 0 # (Cyl. 0 - 13726*) e: 4194304 1056768 4.2BSD 2048 16384 89 # (Cyl. 1729*- 8594*) f: 3135661 5251072 4.2BSD 2048 16384 89 # (Cyl. 8594*- 13726*) To convert to Vinum, use disklabel with the -e (edit label) option to create a volume of type vinum that maps the c partition: h: 8386733 0 vinum # (Cyl. 0 - 13726*) After this, you have the following situation: da0s3b: swap da0s3a: / file system da0s3e: /usr file da0s3c: entire dda0s3h: vinum drive da0s3f: /var file system Figure 12-10: Partition layout with Vinum The shaded area at the top of the Vinum partition represents the configuration information, which cuts into the swap partition. To fix that, we redefine the swap partition to start after the Vinum configuration information and to be 265 sectors shorter. The file systems are relatively trivial to recreate: take the size and offset values from the disklabel output above and use them in a Vinum configuration file: drive rootdev device /dev/da0s2h volume swap plex org concat # b: 532215 265 swap sd len 532215s driveoffset 265s drive rootdev volume root plex org concat # a: 524288 532480 4.2BSD 2048 16384 94 sd len 524288s driveoffset 532480s drive rootdev volume usr plex org concat # e: 4194304 1056768 4.2BSD 2048 16384 89 sd len 4194304s driveoffset 1056768s drive rootdev volume var plex org concat # f: 3135661 5251072 4.2BSD 2048 16384 89 sd len 3135661s driveoffset 5251072s drive rootdev The comments are the corresponding lines from the disklabel output. They show the corresponding values for size and offset. Run vinum create against this file, and confirm that you have the volumes /, /usr and /var. Next, ensure that you are set up to start Vinum with the new method. You should have the following lines in /boot/loader.conf: vinum_load="YES" vinum.autostart="YES" Then reboot to single user mode, start Vinum and run fsck against the volumes, using the -n option to tell fsck not to correct any errors it finds. You should see something like this: # fsck -n -t ufs /dev/vinum/usr ** /dev/vinum/usr (NO WRITE) ** Last Mounted on /usr ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 35323 files, 314115 used, 718036 free (4132 frags, 89238 blocks, 0.4% fragmentation) If there are any errors, they will probably be because you have miscalculated size or offset. You'll see something like this: # fsck -n -t ufs /dev/vinum/usr ** /dev/vinum/usr (NO WRITE) Cannot find file system superblock /dev/vinum/usr: CANNOT FIGURE OUT FILE SYSTEM PARTITION You need to do this in single user mode because the volumes are shadowing file systems, and it's normal for open file systems to fail fsck, since some of the state is in buffer cache. If all is well, remount the root file system read-write: # mount -u / Then edit /etc/fstab to point to the new devices. For this example, /etc/fstab might initially contain: # $Id: fstab,v 1.3 2002/11/14 06:48:16 grog Exp $ # Device Mountpoint FStype Options Dump Pass# /dev/da0s4a / ufs rw 1 1 /dev/da0s4b none swap sw 0 0 /dev/da0s4e /usr ufs rw 1 1 /dev/da0s4f /var ufs rw 1 1 Change it to reflect the Vinum volumes: # $Id: fstab,v 1.3 2002/11/14 06:48:16 grog Exp $ # Device Mountpoint FStype Options Dump Pass# /dev/vinum/swap none swap sw 0 0 /dev/vinum/root / ufs rw 1 1 /dev/vinum/usr /usr ufs rw 1 1 /dev/vinum/var /var ufs rw 1 1 Then reboot again to mount the root file system from /dev/vinum/root. You can also optionally remove all the UFS partitions except the root partition. The loader doesn't know about Vinum, so it must boot from the UFS partition. Once you have reached this stage, you can add additional plexes to the volumes, or you can extend the plexes (and thus the size of the file system) by adding subdisks to the plexes, as discussed on page 229. --nccO0ldXW0cuDU6a-- --fberPwKQctZF/fXp Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (FreeBSD) iD8DBQE+csD8IubykFB6QiMRAroyAJ414Rihf7ED9x1lQXiS6w5aPRJAXACgm961 FqaAYSsWowAK/iN/FN90dWo= =fRcR -----END PGP SIGNATURE----- --fberPwKQctZF/fXp-- 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?20030315055820.GS90698>