Patch-ID# 102580-13
Keywords: KAIO i18n HA metacvt RAID hotspares diskset presto mirror
Synopsis: Solstice DiskSuite 4.0: Jumbo patch
Date: Aug/28/96

Solaris Release: 2.3, 2.4, 2.5, or later

SunOS Release: 5.3, 5.4, 5.5, or later

Unbundled Product: Solstice DiskSuite

Unbundled Release: 4.0

Topic: Solstice DiskSuite 4.0: Jumbo patch

BugId's fixed with this patch: 1204343 1197922 1200302 1203186 1200689 1203565 1205220 1200486 1200301 1205423 1199594 1196387 1204530 1207664 1203768 1204341 1205314 1209464 1210917 1211366 1209002 1206419 1218675 1218867 1219078 1219587 1219973 1222845 1208206 1220284 1223225 1223655 1224730 1223725 1226416 1228642 1212146 1229953 1232569 1234290 1232158 1228637 1219830 1229668 1227838 1248694 1185326 1254203 1234290 1245599 1240097 1253688 1257187 1262065 1260203 1262284

Changes incorporated in this version: 1262065 1260203 1262284

Relevant Architectures: sparc i386

Patches accumulated and obsoleted by this patch: 

Patches which conflict with this patch: 

Patches required with this patch:
	101945-32 or later rev for KAIO on SPARC Solaris 2.4
	KAIO is not supported on Solaris 2.4 x86 at this time.

Obsoleted by: DiskSuite 4.1 or later

Files included with this patch: 

/kernel/drv/md 
/kernel/misc/md_hotspares 
/kernel/misc/md_mirror 
/kernel/misc/md_raid 
/kernel/misc/md_stripe 
/kernel/misc/md_trans 
/usr/lib/drv/preen_md.so.1 
/usr/opt/SUNWmd/locale/C/LC_MESSAGES/SUNWmd.po 
/usr/opt/SUNWmd/sbin/metaclear 
/usr/opt/SUNWmd/sbin/metadb 
/usr/opt/SUNWmd/sbin/metadetach 
/usr/opt/SUNWmd/sbin/metahs 
/usr/opt/SUNWmd/sbin/metainit 
/usr/opt/SUNWmd/sbin/metaoffline 
/usr/opt/SUNWmd/sbin/metaonline 
/usr/opt/SUNWmd/sbin/metaparam 
/usr/opt/SUNWmd/sbin/metareplace 
/usr/opt/SUNWmd/sbin/metaroot 
/usr/opt/SUNWmd/sbin/metaset 
/usr/opt/SUNWmd/sbin/metastat 
/usr/opt/SUNWmd/sbin/metasync 
/usr/opt/SUNWmd/sbin/metattach 
/usr/opt/SUNWmd/sbin/rpc.metad 
/usr/opt/SUNWmd/sbin/rpc.metamhd 
/usr/opt/SUNWmd/lib/X11/uid/Metatool/physicalview.uid 
/usr/opt/SUNWmd/sbin/metatool 

Not installed, but included:

metacvt 
metacvt.1m

	This conversion utility should be used in place of the one
	shipped on the FCS distribution. See bugIDs 1203768, 1210917,
	and 1211366 below.

Problem Description: 

Bugs corrected in revision 13:

1262065 - RAID5 resync from hotspare can corrupt small amount of data

1260203 - Bad Trap "Data Fault" occurs after a metaset -M command

1262284 - Jumpstart fails installing patchid 102580-08

Bugs corrected in revision 12:

1257187 - RAID5 can cause a panic when metareplace is done on
	  an active file system.

Bugs corrected in revision 11:

1253688 - system watchdog resets due to ERROR_MODE_RESET

	In very rare cases when mirroring swap, watchdog
	resets may occur on SRMMU (sun4m, sun4d) machines.

Bugs corrected in revision 10:

1248694 - Trying to remove a DB after a multiple disk failure will cause a panic

	Add environment variable to allow sets to be destroyed even when there
	are metadevices configured, for special case disaster recovery.

1185326 - need RPC numbers for rpc.metad and rpc.metamhd

	The RPC program numbers for rpc.metad and rpc.metamhd are still in
	the unreserved space.

1254203 - Access to data is not always denied when there are too few replicas

	Access to data should be denied if there are not enough replicas
	(HALF+1) to guarantee the integrity.

1234290 - metatool not running that the system connect to SSA units and
	locale = ja

	metatool was linked with the 2.5 version of libgen in patch 08
	due to a bug in the 2.4 version of libgen. The CLI is also
	encountering the same problem as encountered by metatool, so
	all of the CLI have been relinked with the 2.5 version of
	libgen as well.

1245599 - Logging UFS sometimes runs faster when not logging userdata

	A /etc/system tunable will be added which can disable userdata logging:
		set md_trans:md_trans_no_userdata = 1

1240097 - Certain drop operations can hang metatool.

	Dragging objects and drop them outside of metatool can hang the
	application. For example, dropping into a dtterm, or trying to
	drop into Storage Manager.

Bugs corrected in revision 09:

1219830 - RAID5 with HOT SPARE stays in resyncing mode, after power loss.

	If there is a machine failure or system crash during a
	resync the resync will not restart.  This can occur
	with or without hotspares.  The raid device will stay
	in the resyncing state and never do the actual resync.  
	On a system using hotspares the fix may resync to the 
	hotspare even if that has already been done.  After that
	a metareplace can be done to return the original component
	to the raid metadevice.  If hotspare are not in use the
	resync will be back to the correct component.

1229668 - Upgrading the firmware in a ssa to 2.4 causes the WWW to change
1227838 - ssaadm download fails if DiskSuite diskset is still active

	See the special note below for downloading firmware to a
	SPARCstorage Array.

Bugs corrected in revision 08:

1234290 - metatool not running that the system connect to SSA units and
	locale = ja

	The DiskSuite graphical user interface needed relinking with the
	Solaris 2.5 version of libgen.a, due to a bug in the 2.4 version
	of libgen.a

1232158 - metaset does not take a set when a disk in an ssa is offline

1228637 - System (SNI PCE-5S) panics when ODS database is unreachable

Bugs corrected in revision 07:

1228642 - System fails to boot when a majority of SDS replicas are lost

1229953 - when optimized resync records are on failed drive mirror does
	  not get set up

	In some cases, when mirroring root, recovery from losing a
	majority of replicas is not possible.

1212146 - user stack problems with metadevice read

	The DiskSuite driver refuses I/O to odd-aligned user buffers.

1232569 - Old data may overwrite new data after a crash

	Under rare circumstances, a RAID-5 metadevice can replay I/O
	out of order after a system crash.

1232582 - RAID/loaderror test fails intermittently

	Under rare circumstances, a resyncing RAID-5 metadevice under
	heavy I/O load can corrupt data. This is most common on SS5.
	
Bugs corrected in revision 05:

1220284 - If half or more of the disks in a metaset fail, the data is
	  lost after reboot

1223225 - cannot take ownership of a diskset if a mirror cannot be opened
	
1223655 - md does not check for FWRITE on open if databases are stale

1226416 - set remains stale after replicas are fixed

	Recovery from catastrophic diskset failure (half or more of the
	disks or database replicas inaccessible) was not possible,
	short of bringing the disks back or re-creating the diskset.

	This fix allows the user to take the diskset, with the new "-M"
	flag, delete replicas down to a majority, release the diskset,
	re-take the diskset, and repair the damage.

1224730 - Mirror resync region process can deadlock

	System failure during the after reboot or takeover resync could
	deadlock the system on the next reboot or diskset takeover.

1223725 - Incorrect memory allocation under heavy system load

	I/O an become serialized (slow) under some heavy load
	conditions.

Bugs corrected in revision 04:

1222845 - metatool patch 3 can not be installed if /usr is under
	  DiskSuite control.

	A bug in installpatch prevented installation of the DiskSuite
	jumbo patch if root or /usr was mounted on a metadevice.

1208206 - pr: Combination of Prestoserve and ODS highly unreliable
	  on filesystem recovery.

	The following workaround may be used:

The solution is to not load and enable prestoserve until the ODS metadisk is 
enabled.  This may be done as follows:
 
1. Edit the /etc/system file.  Add the line
 
exclude: drv/pr

This will keep the Prestoserve driver from being loaded early in boot.

2. Edit the /etc/init.d/SUNWmd.init file and add the following lines to
   the the end of the "start" case:
 
'start')
        rm -f /tmp/.mdlock
        if [ -x "$METAINIT" -a -c "$METADEV" ]; then
                #echo "$METAINIT -r"
                $METAINIT -r
                error=$?
                #echo "$error"
                case "$error" in
                0|1)    ;;
                66)     echo "Insufficient metadevice database replicas"
                        echo "located. Use metadb to delete databases which"
                        echo "are no longer in existence. Exit the shell"
                        echo "when done to continue the boot process."
                        /sbin/sulogin < /dev/console
                        echo "Resuming system initialization."
                        ;;
                *)      echo "Unknown $METAINIT -r failure $error."
                        ;;
                esac
               modload /kernel/drv/pr
               presto -p >/dev/null
        fi
        ;;

This will cause the Prestoserve driver to be loaded after metadevice
initialization, and flush out any data.

3. Edit the /etc/init.d/prestoserve file and replace the following line:
 
presto -u
 
with the following line:
 
presto -u /file_system1 /file_system2 ....... /file_systemN
 
Where /file_system1,/file_system2 ....... /file_systemN should be a list of 
every filesystem to be accelerated with Prestoserve.  The list must not 
include /, /usr usr/kvm, /var, or /var/adm.
 
Bugs corrected in revision 03:
 
1218675 - ODS mirroring doesn't work on metadevices build up from slices
	  bigger than 4 GB
	    
	Mirroring concatenations with components bigger than 4 GB
	hangs the driver if component fails.

1218867 - Raid-5, unrecoverable after system crash, metareplace didn't
	  reset state

	Losing all of the disks in a RAID-5 metadevice can lead to
	time consuming repair.

	Raid has been changed to support raid devices built on single
	controller.  This is mainly for users of SSA-100 and SSA-200,
	who are placing the entire raid device on a single SSA.

	The change involves LAST ERRORED devices.  Last errored is the
	condition that occurs when more than a single slice fails in a
	raid device.  When this occurs, writes are disallowed and opens
	return ENXIO.  The raid device must be repaired starting with
	the slice that is in ERRORED or maintenance state.

	The LAST ERRORED condition is no longer persistent.  Last
	errored is cleared at each open or mount of the raid device.
	In the event that a slice really LAST ERRORED the error will
	occur again.  This handles the situation of all the slices in a
	raid failing. Last errored will be cleared at the next use,
	such as open or mount.

	The change effects two areas of operation.  The first is a
	device that does not operate at a boot.  The second is when a
	controller, cable, or SSA fails during operation.

	Where a controller fails to operate after a boot, any attempt
	to open or mount the raid device results in no change of state,
	and an error being logged, indicating that the open failed.  As
	before, the open or mount will return ENXIO.

	When a controller fails during use, a single slice in the raid
	will become ERRORED, and all others will become LAST ERRORED.
	Once the problem is corrected, the next mount or open all
	slices in LAST ERRORED will return to OKAY.  Only one slice,
	the ERRORED one, will need to be enabled by metareplace -e
	(1m).

	Since data integrity is only guaranteed for the worst case of a
	single slice failing, raid metadevices become read only if more
	than one errors occur.  This change will cause the second error
	to be lost at the next mount or open.  This is an unfortunate
	side effect that can be checked for by doing a metastat(1m)
	before mount or open.  If a slice is LAST ERRORED, it is
	necessary to take corrective action.

1219078 - If a set becomes stale (50% replica loss) all metadevices
	  become read-only

	Losing more than half of the replicas on a shared diskset
	can cause all disksets (including "local" metadevices) to
	to become read-only.

1219587 - metareplace -e cNtNdNsN on offline submirror brings submirror
	  online w/o resync

	The user was not prevented from replacing offlined disks. The
	correct repair method is to replace errored disks, or to detach
	the submirror, replace the disk, and re-attach the submirror.

1219973 - metaset(1M) does not always balance replicas properly on SSA's

	The database replica balancing mechanism chooses bad
	configurations if disks in a diskset are not spread evenly
	across all controllers.

Bugs corrected in revision 02:

1210917 - S94SUNWmd.cvt does not remove itself when root is not a metadevice

	Using metacvt to upgrade Online: DiskSuite revisions 2.0 - 3.0
	can fail if the root filesystem is not on a metadevice.

1211366 - Description of unavailable option, -f, is left undeleted in
	  manpage/metacvt.1m.

	Usage message problem.

1209002 - Hot sparing for RAID does not happen if all hotspares are labeled

	RAID devices do not use labeled (slice starting at cylinder 0)
	hotspares.

1206419 - Bad message is used for popup title of "Slice Remove Error".

	Internationalization fix for Japan localization.

Bugs corrected in revision 01:

1204343 - KAIO patch for 494 exists, SDS needs to keep up, KAIO no build 494

	Performance improvement for users of libaio. Requires Solaris
	2.4 patch 101945-27 and 102020-05 or later for SPARC. KAIO for
	Solaris 2.4 x86 is not supported at this time.

1197922 - Sets: clearing a stripe that is in a set and has a hotspare hangs

	Clearing some stripes which have been hotspared may hang
	or panic the system in some circumstances.

1200302 - Problem for showing Component lists which is displayed on Drop
	  site of Disk View.
1203186 - L10Ned message for "Show Trans..." in the Mirror Information
	  can not be seen.
1200689 - Device name for "stripe x of dx" is not messaged.
1203565 - Additional error messages needing to be in I18N format
1205220 - "OK" is not  good button name.
1200486	- Problem List dumps core when selecting [File] -> [Log to file...]
1200301	- A message related label named FROM_STRING for Size filter is
	  not CATALOGED.
1205423 - Stripe number does not displayed correctly on Concat Information
	  window.

	Internationalization fixes for Japan localization.

1199594 - RAID SETs - if an error occurs on a raid in a large set
	  the system panics

	RAID metadevices in disksets may panic the system if a
	component fails.

1196387 - RAID: attach device fails, replace successful, metadevice
	  stays in maintenance

	Recovery from a failed attach, while successful, can
	leave the device in a confusing state.

1204530 - Trans device showing error status if subcomponent is ok

	Confusing UFS logging device status.

1207664 - Making a slice in a one way mirror makes the tool almost unusable

	Attaching 2nd submirror when 1st submirror is unreadable
	can corrupt metadevice state database.

1203768 - metacvt cannot handle system fs's that the master trans device
	  is a mirror.

	Using metacvt to upgrade Online: DiskSuite revisions 2.0 - 3.0
	can fail if system (used by operating system install) filesystems
	are on UFS logging devices which have mirrored subdevices.

1204341 - dropping a concat into a toplevel concat causes a SEGV

1205314 - support SSA200 in the GUI

	The graphical user interface, metatool, displays a SPARCstorage
	Array model 200 with 3 trays of 2 busses each, instead of
	6 trays of 1 bus each.

1209464 - metainit ordering dependency in md.tab

	metainit -a will fail if the metadevice hierarchy is
	deeper than 3 levels. This commonly occurs when a UFS
	logging device has a master subdevice consisting of a
	mirror with stripes with hotspare pools. The metacvt
	conversion script may not work for metadevices such
	as this too.

Patch Installation Instructions: 
-------------------------------- 
  Refer to the "Install.info" file within the patch for instructions on
  using the generic 'installpatch' and 'backoutpatch' scripts provided
  with each patch.  Any other special or non-generic installation
  instructions should be described below.

Special Install Instructions: 
----------------------------- 

  The metacvt script is not installed by this patch. Users of this
  script may copy it out of the patch and use it according to the
  directions for the original metacvt script in the FCS product.

Special Note for Downloading Firmware to a SPARCstorage Array:
--------------------------------------------------------------

  When downloading firmware to a SSA controller ( ssaadm(1M)/
  ssacli(1M) ) all I/O to the SSA must be quiescent.  Be sure that
  no I/O is active on metadevices defined that exist on disks 
  within a SSA.  In particular, insure that ownership of any diskset 
  metadevices has been released since an implicit I/O stream exists 
  while ownership of a diskset is maintained.  Refer to the online
  manual page for metaset(1M) for details of taking/releasing ownership
  of a diskset.
