Patch-ID# 102580-16 Keywords: KAIO i18n HA metacvt RAID hotspares diskset presto mirror sync Synopsis: Solstice DiskSuite 4.0: Jumbo patch Date: May/12/97 Solaris Release: 2.3_x86, 2.4_x86, 2.5_x86, or later SunOS Release: 5.3_x86, 5.4_x86, 5.5_x86, 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 4019273 4043506 4045398 Changes incorporated in this version: 4043506 4045398 Relevant Architectures: sparc x86 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 16: 4043506 - mirror_map_write() overwrites label on x86 during metareplace of mirror component 4045398 - ODS syncing devices will cause a read to hang Bugs corrected in revision 15: 4041484 - system panics during ha-switch due to mirror_mark_resync_region Bugs corrected in revision 14: 4019273 - mirror not synchronizing properly with ODS 3.0 or ODS 4.0 In some circumstances, when an application is modifying pages as they are being written, submirrors may momentarily contain different copies of data. This fix narrows this window to a much smaller time. 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 existance. 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 labelled RAID devices do not use labelled (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, metadevices 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.