SUMMARY: Changing SCSI controllers on DiskSuite managed RAID-5.

From: Dennis F. Morse (dmorse@Morsesoft.COM)
Date: Thu Nov 05 1998 - 16:34:21 CST

This is a very late summary to a question I posed about changing the
controller number that a DiskSuite RAID-5 volume is attached to. The
original question is attached at the end of this summary.

Thanks to the following people for their replies.

    "Roy S. Rapoport" <>
    Matt Simmons <>
    Casper Dik <casper@holland.Sun.COM>
    Jonathan Sturges <>
    Seth Rothenberg <>
    "Carol A. Lowry" <lowry@elrond.sp.TRW.COM>


The short summary is that no one had the correct solution and I ended up
wiping out 10 GB of application files! Not good. The key piece of
information I was missing is adding the -k option to metainit (see below).

The advice I received fell into two categories: 1) rearrange the cards so
that the controller returned to it's original setting; and 2) the DiskSuite
commands to switch controllers. The second category was what I was looking
for because there will be situations when it's not feasible to reorder the
cards. I assumed that there had to be a way to do this short of backing up
to tape, reinitializing DiskSuite, and restoring. And there is.

The replies I received from Roy S. Rapoport, Jonathan Sturges, and Seth
Rothenberg all said basically the same thing. Roy's reply was the first to

    Sun says this should work, but that you should back up your data. I've
    tried this twice. Both times it worked without a hitch.

    Say you've got in your

    d0 3 1 /dev/dsk/c2t0d0s0 1 /dev/dsk/c2t1d0s0 1 /dev/dsk/c2t2d0s0

    A) metaclear d0
    B) edit, replacing c2 with c1 in all the disks
    C) metainit d0

    d0 should now be back to normal.

I read the man page for diskinit and the example in Chapter 8 of ``Solstice
DiskSuite 4.1 User's Guide'' entitled ``How to Move a Stripe to a Different
Controller (Command Line),'' page 321, which reiterated Roy's procedure. I
couldn't find any examples for moving a RAID-5 volume. It looked like this
was what I had to do.

I took the following steps as suggested and wiped the 10 GB RAID-5 volume
clean, requiring a full restore from tape.

    1) metaclear d30
    2) edit, replacing c2 with c1 in all the disks
    3) metainit d30

I discovered after the fact, this only works for striped volumes, and *NOT*
for RAID-5 volumes.

The key piece of information I was missing is adding the -k option to the
metainit command or in the file for the RAID-5 volume definitions. I
found this after the fact, buried in the man pages for metainit and

     -k For RAID5 metadevices, informs the driver that it is
          not to initialize (zero the disk blocks) due to exist-
          ing data. Only use this option to recreate a previously
          created RAID5 device.

The command should have been

    3) metainit -k d30

Needless to say, I was not too happy after this. This is very *poor* design
on Sun's part of an interactive command. It is easy to determine if the
command is attached to a controlling terminal and prompt the user if it is.
Something like the following would be a very welcome improvement.

    # metainit d30
    metainit: Warning: All data on d30 will be lost. Continue (y/[n])?

I've maintained Sun systems for more than 10 years and this is the kind of
thing that gives UNIX a bad name. Heck, even "newfs" prompts you before
blindly constructing a new file system. Hopefully, Sun will add a prompt to
metainit to make it a little more user friendly.

The reply from Carol Lowry came too late, but it referenced a number of Sun
InfoDocs. I found a reference to the metainit -k option in InfoDoc #15966
``Moving SSA between heterogeneous hosts under SDS 4.0,'' which describe the
procedure to do exactly what I wanted. The relevant passage is

    - *IF* you had RAID-5 partitions, metainit -k them. THE -k part
      IS ABSOLUTELY CRUCIAL as it means to configure without initializing
      the parity!!!!

I had looked through the sun-managers archives before I posted, but didn't
see anything particular to RAID-5 volumes. After all of this, I went back
and searched more carefully to see if I missed anything. I did find two
posts the mentioned the -k option for RAID-5 volumes.

    Date: Fri, 18 Oct 1996 16:53:49 -0500
    From: Fletcher Cocquyt <>
    Subject: SUMMARY: (Update) How to move DiskSuite metadevices from one system to another

    Date: Wed, 27 Aug 1997 15:05:56 -0400 (EDT)
    From: "Leslie E. Forte" <>
    Subject: SUMMARY: Moving a Storage Array

Hopefully, this information will save others from the time and frustration I
went through.


Dennis Morse



> I have a time-critical problem. We just swapped out a SS10 server running > Solaris 2.5.1 (with the latest patches) and DiskSuite 4.1 (plus patch > 104172-08) and replaced it with a SS20. The RAID volume is connected to a > SunSwift fast-wide SCSI card. We also removed one of the old SBus SCSI cards > because it is no longer needed. > > After running "boot -r" the SunSwift card changed from controller 2 to > controller 1, which is the problem. How do I tell DiskSuite about the > change in the controller? "metastat" still shows /dev/dsk/c2t#d0s2 entries. > > Thanks in advance for any help.

This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:12:52 CDT