Case: 2005/427 SVM default interlace and resync buffer increase Author: Truong Q. Nguyen Summary: This proposal requests a change to the default interlace value for SVM stripes and RAID5 metadevices and the mirror resync buffer size. The new default interlace and resync buffer value of 512KB would result in 15 to 50+ percent increase in throughput for I/O greater 16KB and half the resynchronization time for mirror initialization and component failure/recovery. Problem(s): There's a general misperception on the overall performance of SVM due to the small default interlace and resync buffer values. Increasing these default values will significantly enhance SVM's out-of-the-box performance and improve the perception of Solaris as the Operating System for data centers. - Sysadmins familiar with SVM can, of course, tune these values (which sometimes require reboots) to get optimal performance. This process, however, is time consuming, unfriendly and unnecessary. Proposed Solution: The solution is to increase both the current 16KB default interlace values for SVM stripes and RAID(raid5) metadevices and the 64KB resync buffer size for mirrors to 512KB. The new values would give a significant improvement to SVM's I/O and resync performance. - The proposed solution does not affect Solaris upgrade/liveupgrade in any way. That is existing SVM configuration would just work after an upgrade or liveupgrade. INFODOC: An infodoc is probably required since this work changes the behavior of creating a SVM configuration and is an incompatible change. A metainit to create a stripe/RAID metadevice in S11 will produce a different configuration (metadevice with different interlace size) than a metainit in previous Solaris releases. However, upgrading from previous releases correctly preserves existing SVM configurations since the old interlace values are still valid. The other reason for an infodoc is the possible issue when customer manually recovers stripe or RAID metadevices. For example, a customer wants to install a new Solaris release so disconnects the disks, performs the install, reattaches the disks, and runs metainit to recover the SVM config. In trying to recover the SVM configuration, customer will realize that more work/reading is needed to the configuration. Below is an example of what the customer will see as well as to correctly recover the metadevices. RAID(raid5) metadevices: /* Attempt to recover RAID device would fail */ # metainit d5 -r c1t9d0s0 c1t12d0s0 c1t13d0s0 c1t14d0s0 -k metainit: gunnison: d5: devices were not RAIDed previously or are specified in the wrong order /* Retry with the correct old interlace value */ # metainit d5 -r c1t9d0s0 c1t12d0s0 c1t13d0s0 c1t14d0s0 -k -i 32b d5: RAID is setup # mount /dev/md/dsk/d5 /raidd5 # Stripe metadevices: /* First attempt to recover the stripe would create an unusable * stripe metadevice. */ # metainit d1 1 2 c1t13d0s2 c1t14d0s2 d1: Concat/Stripe is setup # metainit d0 -m d1 d0: Mirror is setup # mount /dev/md/dsk/d0 /mirrord0 May 20 14:35:40 gunnison ufs: WARNING: Error accessing ufs log for /mirrord0; Please run fsck(1M) mount: No such device mount: Cannot mount /dev/md/dsk/d0 # metaclear -a d0: Mirror is cleared d1: Concat/Stripe is cleared /* Retry with the correct old interlace values */ # metainit d1 1 2 c1t13d0s2 c1t14d0s2 -i 32b d1: Concat/Stripe is setup # metainit d0 -m d1 d0: Mirror is setup # mount /dev/md/dsk/d0 /mirrord0 # MAN PAGE CHANGE: - metainit: update references to 16KB default and increase interlace values in examples - metasync: update the default resync buffer value. SVM DOC CHANGE: - Chapter 2. General Performance Guidelines Sequential I/O example (change 256K to 2MB) - All places/examples that use the old default values Chapter 8 Chapter 9 Chapter 14 Chapter 15 Chapter 20 Chapter 23? Chapter 25 - Solaris Tunable Parameters Reference Manual md_mirror:md_resync_bufsz: default value should be 512KB