Subject: FW: Sun DiskSuite question

HOW TO UPGRADE SOLARIS WITH VOLUMES UNDER DISK SUITE CONTROL

From Sun...

This procedure is for upgrading Solaris 2.x or both Solaris 2.x and
Solstice Disksuite.  It also addresses the root drive being under SDS
control during the upgrade process. This procedure is done in 6 PHASES.


PHASE I: Pre-Upgrade Preparations
=================================

It is very important to gather this data before proceeding with the
following procedure.

1) Get copies of the following files.

   /kernel/drv/md.conf
   /etc/opt/SUNWmd/md.tab
   /etc/opt/SUNWmd/mddb.cf
   /etc/opt/SUNWmd/md.ctlrmap  (this file is not present with SDS 3.0)
   /etc/opt/SUNWmd/md.cf

2) Backup the entire system using "ufsdump" for safe keeping.

3) If you have multiple controller #'s with storage arrays attached, make
   note of the controller #'s. (for SSA's run: ssaadm display c# for
each).

4) Get copies of /dev/dsk and /devices trees, also /etc/path_to_inst file.

   If adding new hardware to your system do not move current controllers
   to different sbus slots, this will cause controller #'s and devices to
   change after a (boot -r) resulting in devices not being mounted on
   reboot.

5) Repair any mirrors that have errors.

6) Get locations of all known replicas and command line syntax of how
   each metadevice was created.

   metastat -p > /etc/opt/SUNWmd/md.orig.tab
   metadb  > /etc/opt/SUNWmd/metadb.orig


7) Save copies of /etc/vfstab and /etc/system files.

       # cp /etc/vfstab /etc/vfstab.orig
       # cp /etc/system /etc/system.orig

8) Backup to tape of files in step #1, 6, and 7 for safe keeping.


Phase II: Unmirroring OS Filesystems
====================================

1) metaroot cxtxdxsx

   This command returns root entry in /etc/vfstab to original underlying
   physical device, for root only.

2) Edit

   /etc/vfstab:

   a) comment out all non-OS metadevices.

   b) return /usr, /var, /opt, and swap to underlying physical devices if
      they reside in a metadevice.

   /etc/system:

   c) remove bootlist state replica lines.


3) Rename the DiskSuite startup files so they are no longer initialized
   at boot time.

   # cd /etc/rcS.d; mv S35SUNWmd.init s35SUNWmd.init
   # cd /etc/rc2.d; mv S95SUNWmd.sync s95SUNWmd.sync
   # cd /etc/rc3.d; mv S25mdlogd s25mdlogd
     (for SDS 4.1 if SUNWmdn was installed)

   These links will be added later by reinstalling DiskSuite after
   the upgrade.

4) Convert the root mirror to an one-way mirror with the metadetach
   command.  We remove the primary sub-mirror because if something were to
   go wrong with the upgrade; we could use the secondary sub-mirror to
boot
   from and get back to our original config.

   So for example:

   # metastat d0

   d0: Mirror
    Submirror 0: d10
      State: Okay
    Submirror 1: d20
      State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 3026320 blocks

   d10: Submirror of d0
       State: Okay
       Size: 3026320 blocks
       Stripe 0:
           Device              Start Block  Dbase State        Hot Spare
           c0t0d0s0                   0     No    Okay


   d20: Submirror of d0
       State: Okay
       Size: 4300560 blocks
       Stripe 0:
           Device              Start Block  Dbase State        Hot Spare
           c0t10d0s0                  0     No    Okay

   #metadettach d0 d10   (where d10 contain boot disk c0t0d0)

5) Copy /etc/vfstab, /etc/system and startup files back. We copy these
   files to the secondary sub-mirror. If something happens during upgrade
   we can always boot from mirror which would have original config.

   a) cp /etc/vfstab.orig /etc/vfstab
   b) cp /etc/system.orig /etc/system
   c) cd /etc/rcS.d; mv s35SUNWmd.init S35SUNWmd.init
   d) cd /etc/rc2.d; mv s95SUNWmd.sync S95SUNWmd.sync
   e) cd /etc/rc3.d; mv s25mdlogd S25mdlogd
      (for SDS 4.1 if SUNWmdn was installed)

6) Execute init S (go to single-user mode) fsck all underlying
partitions.

7) Reboot system


Phase III: Removing SDS
=======================

1) Verify that no metadevices are in use:

    #df -kl

        Filesystem            kbytes    used   avail capacity  Mounted on
    /dev/dsk/c0t0d0s0      96019   48553   37865    57%    /
    /dev/dsk/c0t0d0s6    1369054  487505  826787    38%    /usr
    /proc                      0       0       0     0%    /proc
    fd                         0       0       0     0%    /dev/fd
    /dev/dsk/c0t0d0s1      96019   54753   31665    64%    /var
    /dev/dsk/c0t0d0s7      24114       9   21694     1%    /export/home
    /dev/dsk/c0t0d0s4    2052609  336119 1654912    17%    /extra
    /dev/dsk/c0t0d0s5     288556  255427    4274    99%    /opt
    swap                  168776     480  168296     1%    /tmp


2) Backout SDS related patches

   # ./backoutpatch xxx

     103926-xx Online DiskSuite 3.0: Jumbo patch
     102580-xx Solstice DiskSuite 4.0: Jumbo patch
     103421-xx Solstice DiskSuite 4.0: POINT PATCH
     104172-xx Solstice DiskSuite 4.1: Jumbo patch

3) Remove SDS packages: SUNWmd, SUNWmdg, and SUNWmdn.

   # /usr/sbin/pkgrm SUNWmd SUNWmdg SUNWmdn

   (SDS 3.0 will have package SUNWmd ONLY!)

   If removing SDS 3.0 or 4.0, you will be prompted for these questions:

   -----------------------------------------------------
   ##Removing pathnames in class 
        The following files will be left installed:

                /kernel/drv/md.conf
                /etc/opt/SUNWmd/mddb.cf
                /etc/opt/SUNWmd/md.tab
                /etc/opt/SUNWmd/md.ctlrmap
                /etc/opt/SUNWmd/md.cf

        Do you with to remove them now (y,n,?) y
        The following lines will be left in /etc/system:

        *Begin MDD Database info (do not edit)
        set md:mddb_bootlist1="[SDS-MDDB-BOOTLIST]"
        *End MDD database info (do not edit)

        Do you with to remove them now (y,n,?) y
    ----------------------------------------------------

    If removing SDS4.1, you will not be prompted with these questions.
SDS 4.1
    removes them for us, this is why we need to make copies of these
    important files.

9) Remove the disksuite devices. This step is not necessary for SDS 4.1;
   it removes /dev and /devices for us.

        # rm -r /dev/md
        # rm /devices/pseudo/md*

   You have successfully backed out DiskSuite.


PHASE IV: Upgrading Solaris
===========================

1) Upgrade your system to the new Solaris release.

   See Solaris documentation for upgrade process.

2) Install current cluster patches for corresponding
   Solaris release.

3) Reboot system.


PHASE V: Installing New SDS and Recovering SDS Configurations
=============================================================

1) Install Solstice Disksuite packages SUNWmd, SUNWmdg, and SUNWmdn.

   For Solaris 2.6 Server Edition, use the the Server Intranet
   Extension 1.0 cdrom.

   # cd /cdrom/cdrom0/DiskSuite_4.1/sparc
   # pkgadd -d `pwd` SUNWmd SUNWmdg SUNWmdn

   For Solaris 7 Server Edition, use the Solaris Easy Access
   Server 2.0 cdrom.

   # cd /cdrom/cdrom0
   # ./installer &

   The installer script will launch  a graphical gui to lead
   thru the process of installing SDS 4.2 along with other bundled
   software as well.

2) Install the appropriate patches for your SDS release.

   104172-xx Solstice DiskSuite 4.1: Jumbo patch
   106627-xx Solstice DiskSuite 4.2: Product patch

3) Execute init 6 to reboot.

4) Re-create all of your state database replicas via the metadb command.
   Use the metadb.orig (from PHASE I) file as your reference.

   For example to recreate these replicas:

           flags           first blk       block count
     a m  p  luo        16              1034            /dev/dsk/c0t9d0s7
     a    p  luo        1050            1034            /dev/dsk/c0t9d0s7
     a    p  luo        2084            1034            /dev/dsk/c0t9d0s7
     a    p  luo        16              1034            /dev/dsk/c0t10d0s7
     a    p  luo        1050            1034            /dev/dsk/c0t10d0s7
     a    p  luo        2084            1034            /dev/dsk/c0t10d0s7

   Use this command syntax:

   # metadb -f -a -c 3 c0t9d0s7 c0t10d0s7

   (where the # after the -c is the number of replicas to put in each
slice)

5) Execute init 6 to reboot which will elect one of the replicas to be the
   master replica.

6) Editing the /etc/opt/SUNWmd/md.tab file.

   i) cp md.orig.tab md.tab (md.orig.tab from PHASE I)

   ii) make the following changes to the contents of the md.tab to avoid
       data loss during process of reinitialize metadevices under new
       version of SDS.

      Modification Rules:
      -------------------

      a. Convert any 2-way metamirrors to 1-way meta-mirrors.

         For example:  d40 -m d14 d24 1

         Change to:  d40 -m d14

         Remember to reattach secondary sub-mirror to main meta-mirror
         after metadevice have been reinitialized and system have been
         rebooted.

         For example:  #metattach d40 d24

      b. Verify that there is a -k option in raid5 metadevice syntax.
         If it's not there, then add it.

         For example:  d6 -r c1t10d0s0 c1t11d0s0 c1t12d0s0 -k -i 32b

      c. For Trans metadevice, follow same rules as for 2-way mirrors.
         Just convert any 2-way mirrors to 1-way mirror.  It doesn't
matter
         if the 2-way mirror is the logging device, the master device, or
         it could be both.

         For example:  d9 -t d19 d29
                       d19 1 2 c1t11d0s4 c1t12d0s4 -i 32b
                       d29 -m d39 d49 1
                       d39 1 1 c1t12d0s5
                       d49 1 1 c1t11d0s5

         Change to:    d9 -t d19 d29
                       d19 1 2 c1t11d0s4 c1t12d0s4 -i 32b
                       d29 -m d39
                       d39 1 1 c1t12d0s5
                       d49 1 1 c1t11d0s5

         Remember to:  # metattach d29 d49
         (after Trans metadevice has been re-initialized and system have
          have been rebooted.)

      d. Recursively remove all metadevice entries that corresponds to
         metadevices containing OS filesystems.  It is safer to re-mirror
         these filesystems after reinitializing the non-OS metadevices.

7) Re-create the metadevices using metainit -a

   # /usr/opt/SUNWmd/sbin/metainit -a

   If for any reasons that the reinitialization of any metadevices should
   failed or data is corrupt within reinitialized metadevice, then fall
   back to the "newfs and restore from backup" strategy.

8) Edit the /etc/vfstab file to now mount non-OS metadevices upon boot up.

9) Execute init 6 to reboot system.

10) Use metattach to attach submirrors to all mirrors that previously had
    two(or more)-way meta-mirrors.

    example:   # metattach d0 d20
    example:   # metattach d4 d23

11) Compare the /kernel/drv/md.conf file to the original file
    /kernel/drv/md.conf any changes made to this file will have to be
    repeated, default metadevices is 128

PHASE VI: Remirroring OS Filesystems
====================================

1. Once system is stable, go ahead and proceed with procedures to mirror
   /, /usr, /var, /opt, and swap.

2. See SDS documentation for exact step-by-step procedures.

   Once remirroring of OS filesystems is done, the upgrade process is
   complete.