All: I just wanted to take a moment thank the OpenBSD community and dev team. Great tools such as pf(4), pfsync(4), etc. enabled me to perform a zero-downtime upgrade of a very large core router last week.
Per my original patch set to enable this raid(4) RAIDFrame enabled upgrade, there are few notes to share regarding actual usage: 1) When booting from the CD, it is important to interrupt the 2nd stage boot loader sequence and: "boot bsd -a" This will prompt you for the root device, which should be "rd0a", otherwise the RAID_AUTOCONFIG will take it as raid0a Or: Just before your last shutdown before upgrading, use raidctl(8) to modify the raidset to "-A yes dev" instead of "-A root dev". 2) There is one more additional patch that needs to occur in install.sub I ran into a small bug src/distrib/miniroot/install.sub http://www.openbsd.org/cgi-bin/cvsweb/src/distrib/miniroot/install.sub?rev=1.406&content-type=text/x-cvsweb-markup DKDEVS=$(scan_dmesg "${MDDKDEVS:-/^[sw]d[0-9][0-9]* /s/ .*//p}") This can be overridden (I'm only realizing now) by EXPORT'ing MDDKDEVS="" at run time. However, the long term fix (if/when raid(4) is updated), is to fix the regex. Unfortunately, I'm having some trouble updating this BRE REGEX. re_format(7) hackers feel free to pitch in. OpenBSD sed(1) doesn't support ERE (Extended Regular Expressions), but egrep(1) of course does. Normally I would switch this to: /^(rai|[sw])d[0-9][0-9]* /s/ .*//p And with "E" grep I would get: $ egrep '^(rai|[wd])d[0-9][0-9]* ' /var/run/dmesg.boot wd0 at pciide1 channel 0 drive 0: <WDC WD800JD-75LSA0> wd1 at pciide1 channel 1 drive 0: <WDC WD800JD-75LSA0> raid0 (root): (RAID Level 1) total number of sectors is... raid1 (root): (RAID Level 1) total number of sectors is.... But apparently the "start(thisString|[thatCharActerClass])rest" syntax doesn't work in non-ERE mode. Maybe someone can help out there. Also, updating the kernel (/bsd), the 2nd stage boot (/boot) is tricky and a manual process when using this CD to upgrade: 3) To make bsd.mp+raidframe a "Install Set" option, declare / export: MDSETS="bsd.mp+raidframe" to have install.sub suck it into the $THESETS append list. According to the upgrade.sh, this will install it into your root dir (raid0a?) "/" path; which is wrong (I use a symlink for my kernel), but at least you'll be able to copy it to wd0a:/antiraid/bsd and wd0b:/antiraid/bsd ... or: Wait for upgrade.sh to finish up and remount /dev/cd0a manually again against /mnt2. I have updated this image to the latest OpenBSD 4.0-stable sources. Tags: -r "OPENBSD_4_0", -D "11/06/06 10:58:26 EST". http://people.collaborativefusion.com/~seklecki/openbsd_4.0_stableUpdate_wRAIDFrame.iso SHA1: b7e33764ab96e1a2db0d125d07e9628367680858 Size: 175331328 -- Brian A. Seklecki <[EMAIL PROTECTED]> Collaborative Fusion, Inc. Subject: If you please: OpenBSD 4.0/i386 ISO (-stable w/ RAIDFrame) From: "Brian A. Seklecki" <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Organization: Collaborative Fusion, Inc. Message-Id: <[EMAIL PROTECTED]> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit X-Mailer: Evolution 2.2.3-10mdk Date: Sat, 11 Nov 2006 05:28:53 -0500 SHA1 (public_html/obsdcd_4.0_updateWRAID.iso) = 36c5fe6cb3cd0af6ded8e25a24e2f70f4faaa6cf 36c5fe6cb3cd0af6ded8e25a24e2f70f4faaa6cf obsdcd_4.0_updateWRAID.iso -rw-r--r-- 1 lavalamp lavalamp 175319040 Nov 11 05:25 public_html/obsdcd_4.0_updateWRAID.iso