1 LD The logical disk utility is a system management tool available to any user for controlling logical disk usage. A Logical Disk is a file available on a Physical Disk, which acts as a real Physical Disk (the file may or may not be contiguous). The Logical Disks are available in any directory of the Physical Disk. A large disk can be divided into smaller sections, each a Logi- cal Disk, supporting the same I/O functions as the Physical Disk. By giving the Logical Disk File a good protection level and mounting it private or with device protection, you are able to add a number of protection levels to your file system. The logical disk is controlled by the LD utility, which can be directly invoked from DCL. Format: LD [/qualifiers] [Filespec] [Device] 2 Author The author of this piece of software is Jur van der Burg, HP OpenVMS engineering, Utrecht, Holland. In case of problems/questions/suggestions please contact the author at lddriver@hp.com. 2 Command_summary LD CREATE [/LOG] [/SIZE=xxx] [/BACKUP] [/CONTIGUOUS] [/LBN=xxx] [/TRACKS=xxx] [/SECTORS=xxx] [/CYLINDERS=xxx] [/MAXBLOCKS=xxx] [/CLONE=device] [/EXTEND] Filespec LD CONNECT [/LOG] [/SYMBOL] [/REPLACE] [/SHARE] [/CLONE=device] [/TRACKS=xxx] [/SECTORS=xxx] [/CYLINDERS=xxx] [/MAXBLOCKS=xxx] [/ALLOCLASS=xxx] [/AUTOGEOMETRY] [/SAVE] [/LBN=(START=xxx,END=xxx,COUNT=xxx)] [/LOCK] [/FORCED_ERROR] Filespec [LDan:] [Logicalname] LD DISCONNECT [/ALL] [/LOG] [/ABORT] LDan: LD TRACE [/ACCURATE] [/FDT] [/SIZE=xxx] [/RESET] LDan: LD TRACE/STOP [/ALL] [LDan:] LD NOTRACE LDan: LD WATCH LDan: lbn [,lbn...] [/FUNCTION=READ,WRITE,ALL,CODE=xxx] [/ACTION=SUSPEND,CRASH,OPCOM,ERROR[=xxx]] [/FILE=filespec] LD NOWATCH LDan: [lbn [,lbn...]] [/INDEX=n] LD WATCH/RESUME LDan: [lbn [,lbn...]] [/INDEX=n] LD PROTECT [/PERMANENT] LDan: LD NOPROTECT [/PERMANENT] LDan: LD SHOW [/ALL] [LDan:] LD SHOW/WATCH LDan: [lbn [,lbn...]] LD SHOW/TRACE [/STATUS] [/RESET] [/OUTPUT=Filespec] [/INPUT=filespec] [/BINARY] [/ENTRIES=[(XXX,YYY)]] [/HEADER] [/CONTINUOUS] [/VERSION_LIMIT=xxx] [/BLOCKS=xxx] [/WARNINGS] [/NUMBER] [/PID] [/LBN] [/BYTECOUNT] [/IOSB[=COMBINATION,TEXT,HEX,LONGHEX]] [/TIMESTAMP[=ABSOLUTE,ELAPSED,COMBINATION,DELTA]] [/FUNCTION[=TEXT,HEX]] [/ACCURATE] [/FDT] LDan: LD HELP [Topic] LD VERSION 2 Driver_functions The LDDRIVER understands all functioncodes normally available for disks. Some special functions are used to control the logical disk driver. All functions assume that a channel has been assigned to the device on which to operate. One exception is the 'Connect' function which needs a channel to LDA0:. This will then create a new device (because LDA0: is a cloned device). A file with LDdriver specific definitions is included in the kit (LDDEF.H). This file will be included in VMS from version V8.2-1 and up. The only function to control the driver is IO$_LD_CONTROL which is defined in LDDEF.H. A sub-function must be given as P6 of the QIO request. 3 Connect This function connects a file to a logical disk: Function: IO$_LD_CONTROL P1 = address of SBK block (Attributes Statistics Block) returned by XQP IO$_ACCESS!IO$M_ACCESS function used to open the file to connect. P2 = logical disk size. If 0, the allocated size will be used P3 = Number of tracks (optional) P4 = Number of sectors (optional) P5 = Number of cylinders (optional) P6 = Subfunction: LDIO$K_CONNECT The P6 argument may also contain the following sub-flags: LDIO$M_LOCK Will lock the container file LDIO$M_NOFE Will set the NOFE bit to prevent handling forced errors. This function connects a complete physical disk to a logical disk: Function: IO$_LD_CONTROL P1 = descriptor of buffer which contains device name of physical device P6 = Subfunction: LDIO$K_CONNECT | LDIO$M_REPLACE This function connects a partial physical disk to a logical disk: Function: IO$_LD_CONTROL P1 = descriptor of buffer which contains device name of physical device P2 = Starting LBN (logical block number) P3 = Ending LBN P4 = Number of LBN's P6 = Subfunction: LDIO$K_CONNECT | LDIO$M_LBN Either P3 or P4 must be specified. IOSB word 0 = status Errors returned: SS$_DEVACTIVE Device already connected SS$_FORMAT FCB specified in SBK is invalid or file not opened SS$_ACCVIO One of the parameters cannot be read/written SS$_IVDEVNAM Attempt to connect to devicetype other than a disk SS$_FILNOTCNTG Logical disk file not contiguous SS$_DATAOVERUN Filename of file to connect too long SS$_FILALRACC File already in use (may be on other cluster nodes) SS$_ILLKLKNUM Disk size specified in P2 past end of file SS$_IVADDR Disk bigger than 2097151 blocks SS$_NORMAL Successful completion SS$_BADPARAM Invalid geometry information specified SS$_UNSUPPORTED Shared access was specified while no cluster code is loaded SS$_ACCONFLICT Shared access was specified while the device is not cluster-wide visible SS$_WRONGACP Container file is not on ODS-2 or ODS-5 disk SS$_WRONGSTATE Container file is not opened without caching (V8.2 and up) The following errors are returned for LDIO$M_REPLACE or LDIO$M_LBN only: SS$_DEVFOREIGN Device foreign mounted SS$_DEVMOUNT Device mounted SS$_DEVALLOC Device already allocated Other possible errors are errors returned by the lockmanager and errors returned by IOC$SEARCH. 3 Disconnect This function disconnects a file or device from a logical disk: Function: IO$_LD_CONTROL P6 = Subfunction: LDIO$K_DISCONNECT IOSB word 0 = status The subfunctionmodifier LDIO$M_ABORT allows the file to be disconnected regardless of it's state. Errors returned: SS$_DEVFOREIGN Device mounted foreign SS$_DEVMOUNT Device mounted SS$_BADFILEHDR Bad logical disk file SS$_DEVASSIGN Device still active (reference count > 0) SS$_DEVINACT Device not connected SS$_FORMAT FCB specified in SBK is invalid SS$_ACCVIO SBK block cannot be read SS$_NORMAL Successful completion Other possible errors are errors returned by the lockmanager. 3 Display_status This function retrieves the current status of a LDAn device: Function: IO$_LD_CONTROL P1 = address of buffer which receives the device- or filename currently connected P2 = size of buffer which receives the device- or filename P3 = address of 3 word buffer which receives the file-id of the connected file P4 = Address of buffer to receive start lbn (for lbn mapping) P5 = Address of buffer to receive end lbn (for lbn mapping) P6 = Subfunction: LDIO$K_GET_CONNECTION IOSB word 0 = status word 1 = number of characters transferred longword 1 = status flag bit 0 : 0 = disconnected 1 = connected bit 1 : 0 = normal connection 1 = replaced drive bit 2 : 0 = normal connection 1 = replaced to DECRAM disk bit 3 : 0 = normal access 1 = write protected bit 4 : 0 = local access 1 = shared access bit 8 : 0 = normal timing 1 = accurate timing bit 9 : 0 = normal trace 1 = FDT trace active bit 10: 0 = normal connection 1 = LBN mapping used The buffer specified in the P1 parameter is only valid when the unit is connected (IOSB longword 1 bit 0 set). If a buffersize of 0 is specified only the status is returned. Errors returned: SS$_ACCVIO Buffer can not be written SS$_DEVINACT Device not connected SS$_NORMAL Successful completion 3 Disable_protect This function unprotects a drive: Function: IO$_LD_CONTROL P6 = Subfunction: LDIO$K_DISABLE_PROTECT IOSB word 0 = status Errors returned: SS$_NORMAL Successful completion 3 Disable_trace This function disables tracing: Function: IO$_LD_CONTROL P6 = Subfunction: LDIO$K_DISABLE_TRACE IOSB word 0 = status Errors returned: SS$_NODATA Trace is not active SS$_NORMAL Successful completion 3 Disable_watch This function disables watchpoints: Function: IO$_LD_CONTROL P1 = address of watchpt structures P2 = number of watchpt structures, if 0 all entries will be removed P6 = Subfunction: LDIO$K_DISABLE_WATCH The watchpt structure (if specified) must contain a matching lbn, action, function, flags and returncode. These can all be retrieved with the LDIO$K_GET_WATCH function. IOSB word 0 = status longword 1 = current number of watchpoints Errors returned: SS$_DATALOST No active watchpoints SS$_DATACHECK Specified entry not found SS$_NORMAL Successful completion 3 Enable_protect This function write-protects a drive: Function: IO$_LD_CONTROL P6 = Subfunction: LDIO$K_ENABLE_PROTECT IOSB word 0 = status Errors returned: SS$_NORMAL Successful completion 3 Enable_trace This function enables tracing: Function: IO$_LD_CONTROL P1 = number of trace buffer packets to allocate P6 = Subfunction: LDIO$K_ENABLE_TRACE IOSB word 0 = status To reset the tracebuffer the additional subfunctionmodifier LDIO$M_RESET can be specified. No new tracebuffer will be allocated when that is done. Requests for FDT tracing need to add the subfunctionmodifier LDIO$M_FDTTRACE. Requests for accurate timing tracing need to add the subfunctionmodifier LDIO$M_ACCURATE. Errors returned: SS$_ACCVIO Parameter cannot be read SS$_BADPARAM Zero buffer size specified SS$_EXBYTLM Exceeded BYTLM quota for the process SS$_INSFMEM Not enough memory to allocate trace buffer SS$_TOOMUCHDATA Trace is already active SS$_NORMAL Successful completion 3 Enable_watch This function enables watchpoints: Function: IO$_LD_CONTROL P1 = address of watchpt structures P2 = number of watchpt structures P6 = Subfunction: LDIO$K_ENABLE_WATCH The watchpt structure must contain a valid lbn, action, function, flags and returncode. IOSB word 0 = status longword 1 = current number of watchpoints Errors returned: SS$_ACCVIO Buffer can not be read SS$_NOPRIV Action needs ownership of device or CMKRNL SS$_NOCMKRNL CMKRNL privilege needed for CRASH action SS$_EXBYTLM Out of BYTLIM quota for watch buffers SS$_DEVREQERR FILE watchpoint must be on the LD device SS$_ILLBLKNUM Watchpoint past end of file or end of disk or VBN zero specified for file SS$_BADPARAM Zero buffer length specified or action out of range SS$_FORMAT FCB specified in SBK is invalid or file not opened with cathedral windows SS$_INSFMEM Not enough memory to allocate watchpoint buffer SS$_NORMAL Successful completion 3 Get_suspend_list This function retrieves the list of suspended watchpoints: Function: IO$_LD_CONTROL P1 = address of suspend_list structures P2 = size in bytes of suspend_list buffer P6 = Subfunction: LDIO$K_GET_SUSPEND_LIST This function reads the number of suspended watchpoints: Function: IO$_LD_CONTROL P6 = Subfunction: LDIO$K_GET_SUSPEND_LIST | LDIO$M_INQUIRE IOSB word 0 = status word 1 = number of bytes written longword 1 = current number of suspended watchpoints Errors returned: SS$_INSFMEM Not enough memory to allocate temporary buffer SS$_ACCVIO Buffer can not be written SS$_DATALOST No active watchpoints SS$_IVBUFLEN Output buffer too small SS$_NORMAL Successful completion 3 Get_watch This function retrieves watchpoints: Function: IO$_LD_CONTROL P1 = address of watchpt structures P2 = size in bytes of watchpt buffer P6 = Subfunction: LDIO$K_GET_WATCH This function reads the number of watchpoints: Function: IO$_LD_CONTROL P6 = Subfunction: LDIO$K_GET_WATCH | LDIO$M_INQUIRE IOSB word 0 = status word 1 = number of bytes written longword 1 = current number of watchpoints Errors returned: SS$_INSFMEM Not enough memory to allocate temporary buffer SS$_ACCVIO Buffer can not be written SS$_DATALOST No active watchpoints SS$_IVBUFLEN Output buffer too small SS$_NORMAL Successful completion 3 Read_tracebuffer This function reads the tracebuffer size: Function: IO$_LD_CONTROL P6 = Subfunction: LDIO$K_GET_TRACE | LDIO$M_INQUIRE IOSB word 0 = status word 1 = 0 longword 1 = tracebuffer size (number of packets) If the iosb status is SS$_WASSET FDT tracing is active. This function reads the tracebuffer data: Function: IO$_LD_CONTROL P1 = address of buffer which receives trace info P2 = size of trace buffer in bytes P6 = Subfunction: LDIO$K_GET_TRACE IOSB word 0 = status word 1 = 0 longword 1 = number of packets transferred or the number of lost packets in case of SS$_DATAOVERRUN. If the return status was SS$_DATAOVERRUN the buffer contains the number of packets as returned by the LDIO$K_GET_TRACE | LDIO$M_INQUIRE function. To read the tracebuffer data and to reset the buffer after the data has been read the subfunctionmodifier LDIO$M_RESET can be specified. If LDIO$M_NOWAIT is omitted the I/O request will wait until new trace data is available. Errors returned: SS$_ACCVIO Buffer can not be written SS$_NODATA Trace is not active SS$_IVBUFLEN Buffer too small to contain all trace data SS$_DATAOVERRUN The tracebuffer has been overrun SS$_NORMAL Successful completion 3 Reset_tracebuffer This function resets the tracebuffer: Function: IO$_LD_CONTROL P6 = Subfunction: LDIO$K_RESET_TRACE IOSB word 0 = status Errors returned: SS$_NODATA Trace is not active SS$_NORMAL Successful completion 3 Resume_watch This function resumes a suspended watchpoint: Function: IO$_LD_CONTROL P1 = address of suspend_list structures P2 = size in bytes of suspend_list buffer P6 = Subfunction: LDIO$K_RESUME_WATCH IOSB word 0 = status word 1 = number of bytes written Errors returned: SS$_INSFMEM Not enough memory to allocate temporary buffer SS$_ACCVIO Buffer can not be written SS$_DATALOST No active watchpoints SS$_DATACHECK Nothing resumed SS$_NORMAL Successful completion 3 Set_allocation_class This function enables presetting of the allocation class of the LD device. This may only be done when no devices are connected. Function: IO$_LD_CONTROL P1 = allocation class P6 = Subfunction: LDIO$K_SET_ALLOCLASS IOSB word 0 = status Errors returned: SS$_BADPARAM Allocation class > 255 specified SS$_UNSAFE There are still connected LD devices SS$_NORMAL Successful completion 3 Set_unitnumber This function enables presetting of the next assigned unitnumber. Function: IO$_LD_CONTROL P1 = unitnumber to preset P6 = Subfunction: LDIO$K_SET_SEED IOSB word 0 = status Errors returned: SS$_BADPARAM Unitnumber less than 0 or greater than 9999 SS$_NORMAL Successful completion 3 Other_features After modification of the driver it is possible to RELOAD it without rebooting the system, provided that the size of the UCB did not change. If the reloaded driver detects a different UCB size, the unit will be placed off-line and the system has to be rebooted. The reload is only possible on a VAX. If there is still a file or device connected to any LDAn device the driver cannot be reloaded. In that case all LDAn devices have to be disconnected first. If a tracebuffer is allocated before reloading, it will be deallocated. All trace data will be lost. 2 Error_messages A number of error messages can be returned by the LD utility. 3 ACCURATE %LD-I-ACCURATE, Accurate timing is active An LD SHOW/TRACE/STATUS command was given while accurate trace timing is active. This status is only returned on Alpha. 3 ALLOCLASS %LD-F-ALLOCLASS, Allocation class mismatch An LD CONNECT/SHARE command was given where the current allocation class of the specified LD device was different on the current node then on another cluster node where the file is connected. 3 ALREADYCONN %LD-F-ALRDYCONN, Device already connected An LD CONNECT command is given while the logical disk device was already connected. This errormessage can only occur if the driver has been assembled without cloned device support. 3 BADALLOCLASS %LD-F-BADALLOCLASS, Bad allocation class specified An LD CONNECT/ALLOCLASS command was given with an allocation class bigger than the limit of 255. 3 BADDEVSYNTAX %LD-F-BADDEVSYNTAX, Bad device syntax (LDAZ:) A unit to use as a logical disk was specified with a bad syntax. 3 BADENTPARAM %LD-F-BADENTPARAM, Bad /ENTRIES parameter(s) An LD SHOW/TRACE/ENTRIES command was given where either the second parameter was less than the first, or one of the parameters was less than 0. 3 BADUNIT %LD-F-BADUNIT, Bad unit number LDAnnnnn An LD command was given where the unit number is out of range. A valid unit numer ranges from 1 to 9999. 3 BLKOUTOFRANGE %LD-F-BLKOUTOFRANGE, Blocks out of range An LD CONNECT/LBN=(START=x,END=y) command was given where the starting end ending blocks are outside the LBN's of the source device. This error can also occur on an LD CONNECT/LBN=(START=x,COUNT=y) command where y would cause LD to go past the end of the disk. 3 CANTREADOLDFMT %LD-F-CANTREADOLDFMT, Can't read old format datafile (Version 2) An attempt was made to read a datafile which was created with an old version of LD. Use the old version of LD to read the file. 3 CLONENOTMOUNTED %LD-F-CLONENOTMOUNTED, Clone device must be mounted A CREATE/CLONE=dev or CONNECT/CLONE=dev command was given where 'dev' was not mounted. 3 CLOSERR %LD-F-CLOSERR, Unable to close file $1$DUA0:[DATA]LD_TRACE.LOG;1 An LD SHOW/TRACE/{IN,OUT}PUT command was given, and the close of the in- or output file had a problem. 3 CONFQUAL %LD-F-CONFQUAL, Conflicting qualifiers Conflicting qualifiers were given for the specified command. Check the documentation. 3 CONNECTED %LD-I-CONNECTED, Device _THEBUG$LDA1: is connected to $1$DUA1:[DIR]DISKFILE.DSK;1 An LD CONNECT/LOG command is given, or an LD SHOW command. %LD-I-CONNECTED, Device _THEBUG$LDA1: is connected to $1$DUA1: (Replaced) An LD CONNECT/LOG/REPLACE command is given, or an LD SHOW command. The complete device was replaced. 3 CONTTRACEACT %LD-F-CONTTRACEACT, Continuous tracing is already active for device _THEBUG$LDA1: An LD SHOW/TRACE/CONTINUOUS command was given while such command for the same device was already in progress. 3 CONTTRACENOTACT %LD-F-CONTTRACENOTACT, Continuous tracing is not active for device _THEBUG$LDA1: An LD TRACE/STOP command was given for a specified device while there was no continuous trace active for that device. 3 CREATED %LD-I-CREATED, File $1$DUA1:[DIR]DISKFILE.DSK;1 created An LD CREATE/LOG command is given. 3 CREATERR %LD-F-CREATERR, Unable to create file $1$DUA0:[TMP]DATA.DSK;1 An LD CREATE command was given, but the command was unable to complete. The accompanying message shows more info. 3 CYLINDERS %LD-F-CYLINDERS, Cylinders mismatch An LD CONNECT/SHARE command was given where the number of cylinders did not match the number of cylinders for the containerfile on another node. 3 DETECTEDERR %LD-F-DETECTEDERR, Detected fatal error A general fatal error was detected. Look at the accompanying errormessage. 3 DEVASSIGN %LD-F-DEVASSIGN, Device has channels assigned An LD DISCONNECT command was given on a device with active channels. Most probably an LD SHOW/TRACE/CONTINUOUS command is still active. 3 DEVCONNECTED %LD-F-DEVCONNECTED, Cannot set allocation class with active LD devices An LD CONNECT/ALLOCLASS command was given while there were already LD devices connected. All devices have to be disconnected before an allocation class can be set. 3 DEVICEINUSE %LD-F-DEVICEINUSE, Device incompatible connected to other LD disk in cluster An LD CONNECT command is given where the device to be replaced was already in use by another logical disk or by VMS, either on this system or on another system in a cluster. 3 DEVICENAME %LD-F-DEVICENAME, Devicename mismatch An LD CONNECT command is given where the devicename of a shared device or file was not the same as the one on a remote node. 3 DRIVERVERSION %LD-I-VERSION, LD version V8.1, module X-5 built on Oct 13 2005 18:27:34 %LD-I-DRIVERVERSION, Driver version: 12-OCT-2005 22:03:13.94 An LD VERSION command was given, and the resulting information is displayed. 3 DUPUNIT %LD-F-DUPUNIT, Duplicate unitnumber An LD CONNECT file LDAxx command was given while the device LDAxx already exists. 3 EXTENDED %LD-I-EXTENDED, File $1$DUA1:[DIR]DISKFILE.DSK;1 extended to 10000 blocks An LD CREATE/EXTEND/SIZE=10000/LOG command is given. 3 FDTACTIVE %LD-I-FDTACTIVE, FDT Tracing is active An LD SHOW/TRACE/STATUS command was given while FDT tracing is active. This status is only returned on Alpha. 3 FILEIDINUSE %LD-F-FILEIDINUSE, File ID in use An LD CONNECT command is given where the specified file is already in use, possibly on a remote node. 3 FILEINUSE %LD-F-FILEINUSE, File incompatible connected to other LD disk in cluster An LD CONNECT command is given where the logical disk file was already in use by another logical disk, either on this system or on another system in a cluster. The connect specified on the other system was done in a way which is not compatible with the current connect parameters. This can happen if another node specified for example /MAXBLOCKS, or /TRACKS which were not or incompatible specified on the local node. The complete geometry must be the same on all nodes. 3 FILEONOTHER %LD-F-FILEONOTHER, File not allowed to be on other device An LD WATCH/FILE=filespec command was given where the specified file did not reside on the specified LD device. 3 FILEONVOLSET %LD-F-FILEONVOLSET, File watchpoint on volumeset not allowed An LD WATCH/FILE=filespec command was given where the specified file resides on a volume set. This is not supported. 3 FILREADERR %LD-F-FILREADERR, Unable to read input file $1$DUA0:[TMP]FILE.DAT;1 An LD SHOW/TRACE/INPUT command was given where the requested inputfile could not be read. 3 FILWRTERR %LD-F-FILWRTERR, Unable to write output file $1$DUA0:[TMP]FILE.DAT;1 An LD SHOW/TRACE/OUTPUT command was given where the requested outputfile could not be written. 3 INCMPPROT %LD-F-INCMPPROT, Incompatible locking protocol in use An LD CONNECT/SHARE command was given while an incompatible version of LDDRIVER was connected to the same resource on another node in a cluster. Make sure that all systems in a cluster sharing an LD connected resource have the same version of LD installed. 3 INFILERR %LD-F-INFILERR, Unable to open input file $1$DUA0:[TMP]FILE.DAT;1 An LD SHOW/TRACE/INPUT command was given where the requested inputfile could not be opened. 3 INVGEOMETRY %LD-F-INVGEOMETRY, Invalid geometry specified An LD CONNECT command is given where the geometry specified with /TRACKS, /SECTORS or /CYLINDERS is invalid. TRACKS and SECTORS are limited to 255, CYLINDERS is limited to 65535. This error can also be returned if TRACKS * SECTORS * CYLINDERS is less than the maximum logical blocknumber of the container file. 3 INVVERSIONFMT %LD-F-INVVERSIONFMT, Invalid driver version format An LD VERSION command was given where the version information returned by the driver is incompatible with the LD utility command program used to get this info. 3 MAXBLOCK %LD-F-MAXBLOCK, Maximum blocknumber mismatch An LD CONNECT/SHARE command was given where the maximum number of blocks did not match the maximum number of blocks for the containerfile on another node. 3 NOCLUSTER %LD-F-NOCLUSTER, No cluster code loaded An LD CONNECT/SHARE command is given when the system is not running VMSCluster software. 3 NOGROUPPRIV %LD-F-NOGROUPPRIV, No privilege to stop trace of device _THEBUG$LDA1: An attempt was made to stop the continuous trace of device THEBUG$LDA1 while the trace was started by a process in the same UIC group. This operation need GROUP privilege. 3 NOLBNMAP %LD-F-NOLBNMAP, No lbn mapping specified An LD CONNECT/SHARE command was given when the shared device was created with LBN mapping. 3 NOREADWRITE %LD-F-NOREADWRITE, No read or write function specified for file mode An LD WATCH/FILE=filespec command was given where the function was not one of the following: READPBLK, WRITEPBLK, WRITECHECK or DSE. Such watchpoint may only be specified in combination with a data- transfer function. 3 NOSHARE %LD-F-NOSHARE, No sharing specified for file on this node An LD CONNECT command was given while the specified containerfile was connected with /SHARE on another node. 3 NOTADISK %LD-F-NOTADISK, Clone device must be a disk An LD CONNECT/CLONE=dev or CREATE/CLONE=dev was given where 'dev' was not a disk. 3 NOTCONNECTED %LD-W-NOTCONNECTED, Device _THEBUG$LDA1: is not connected An LD SHOW command is given, and the disk was not connected to a file. An LD DISCONNECT command is given while the logical disk device was not connected. This errormessage can only occur if the driver has been assembled without cloned device support. 3 NOTRCDATA %LD-F-NOTRCDATA, No trace data available An LD SHOW/TRACE command was given while the tracebuffer did not contain any data. 3 NOTREPLACED %LD-F-NOTREPLACED, Device was not connected as replaced on other node An LD CONNECT/REPLACE command was given where the specified device was connected on another node, but not as /REPLACED. 3 NOTSAVED %LD-W-NOTSAVED, Container file metadata has not been saved An LD CONNECT/SAVE or LD [NO]PROTECT/PERMANENT command was given where the fileheader of the container file does not have enough space to store the metadata. This can happen if the containerfile was created with an old version of the LD utility. Notice that this is a warning only, to fix this a new container file must be created. 3 NOTSHARED %LD-F-NOTSHARED, File is not shared on other node An LD CONNECT/SHARE command was given while the specified containerfile was not connected with /SHARE on another node. 3 NOTVISIBLE %LD-F-NOTVISIBLE, Device is not visible on other nodes An LD CONNECT/SHARE command is given when the device to be replaced or the device on which the container file resides is not visible by other cluster nodes. 3 NOUNITSFOUND %LD-F-NOUNITSFOUND, No usable logical disk units found An LD SHOW/ALL or TRACE/STOP/ALL command was given while no connected units were found. 3 NOWATCHDATA %LD-F-NOWATCHDATA, No watchpoint data available An LD SHOW/WATCH command was given while no watchpoints were set. 3 NOWDISCONN %LD-I-NOWDISCONN, Device $8$LDA1: is now disconnected from file $8$DIA2:[LD]DEVICE1.DSK;1 An LD DISCONNECT/LOG command is given. 3 NOWORLDPRIV %LD-F-NOWORLDPRIV, No privilege to stop trace of device _THEBUG$LDA1: An attempt was made to stop the continuous trace of device THEBUG$LDA1 while the trace was started by a process in another UIC group. This operation needs WORLD privilege. 3 OPENERR %LD-F-OPENERR, Unable to open file NOFILE An LD CONNECT command was given where the container file could not be opened. 3 OUTFILERR %LD-F-OUTFILERR, Unable to open output file $1$DUA0:[TMP]FILE.DAT;1 An LD SHOW/TRACE/OUTPUT command was given where the requested outputfile could not be opened. 3 PASTDATA %LD-F-PASTDATA, Requested entry(s) past end of data An LD SHOW/TRACE/ENTRIES command was given where the requested entries were beyond the available data. 3 RANGEINUSE %LD-W-RANGEINUSE, LBN range already in use An LD CONNECT/LBN command was given where the requested range of logical blocknumbers was already in use elsewhere in the cluster. This can also happen if there's an overlap with an existing range. 3 REMOTEALLOC %LD-W-REMOTEALLOC, Device _$1$LDA1: is allocated on a remote node An LD SHOW or an LD DISCONNECT command was given while the specified LD device was mounted private on a remote node. This can only happen on an LD device which was connected with /SHARE. 3 SECTORS %LD-F-SECTORS, Sectors mismatch An LD CONNECT/SHARE command was given where the number of sectors did not match the number of sectors for the containerfile on another node. 3 STARTLBN %LD-F-STARTLBN, Starting lbn mismatch An LD CONNECT/LBN=START=x/SHARE command was given where the starting LBN did not match the starting LBN on another node. 3 STATUS %LD-I-STATUS, Device _THEBUG$LDA1: has a tracebuffer of 512 entries (139 valid records) An LD SHOW/TRACE/STATUS command is given. The specified device has 512 tracebuffer entries allocated, of which 139 are currently in use. 3 TRACESTOPPED %LD-I-TRACESTOPPED, Trace stopped by process 0C20025E (HOSTbuster) An LD TRACE/STOP command was given for a device to force a SHOW/TRACE/CONTINUOUS command which was in progress by another process to exit. The process issuing the command is indicated by the process id and process name. 3 TRACKS %LD-F-TRACKS, Tracks mismatch An LD CONNECT/SHARE command was given where the number of tracks did not match the number of tracks for the containerfile on another node. 3 TRCDISABL %LD-F-TRCDISABL, Tracing is disabled An LD SHOW/TRACE command was given while tracing was not enabled for the specified device. 3 TRCENABL %LD-F-TRCENABL, Tracing is already enabled An LD TRACE command was given while tracing was already enabled. 3 UNIT %LD-I-UNIT, Allocated device is _THEBUG$LDA4: An LD CONNECT command was given without /LOG and without a device specification. This informational message shows which device was assigned to the specified file. 3 UNITNUMBER %LD-F-UNITNUMBER, Unitnumber mismatch An LD CONNECT/SHARE command was given when the specified unit number was different than the unitnumber for the same containerfile used on another node. 3 UNSUPPORTEDFS %LD-F-UNSUPPORTEDFS, Unsupported filesystem An LD CONNECT command was given while the specified containerfile was located on an unrecognized filesystem. 3 VERSION %LD-I-VERSION, LD version V8.1, module X-5 built on Oct 13 2005 18:27:34 %LD-I-DRIVERVERSION, Driver version: 12-OCT-2005 22:03:13.94 An LD VERSION command was given, and the resulting information is displayed. 3 VBNERROR %LD-F-VBNERROR, Illegal virtual block number specified An LD WATCH/FILE=filespec command was given where the VBN to watch was either zero or beyond the end of file. 3 WPTNOTFOUND %LD-F-WPTNOTFOUND, Watchpoint not found An LD SHOW/WATCH command was given where the specified watchpoint does not exist. 3 Other The VAX/VMS System Messages and Recovery Procedures Reference Man- ual lists other possible messages and provides explanations and suggested user actions. Note that when errormessages are returned, and you cannot trace them back to the Logical Disk, perform the same checks again for the Physical Disk on which the Logical File resides. 2 Features Logical disks may be just a single disk, part of a volumeset, part of a stripeset, part of a host-based shadowset, part of a host-based raid set or any combination. The file to be used for the logical disk may be placed on any physical disk, in any directory. A backup can be made to protect the disk. A physical device may be 'replaced' by a logical disk to enable logging of all I/O of the physical disk (See CONNECT/REPLACE). 2 HELP Provides interactive help. 2 New_features_V5.0 Enable/disable write-protection of a device with the next command: LD [NO]PROTECT LDan: Watchpoint support. A watchpoint is a marker which can be set on one or more logical blocks of a disk. The watchpoint consists of a function- code, an action, an error return code and one logical block number. When an I/O request is done to the driver it will check if the request matches one of the watchpoints. If true then the action specified for that watchpoint will be executed. An action can be for example an OPCOM message, but also to return an error code, or to suspend the I/O thread, or to crash the system. The following commandfile will for example put the device into mount- verification: $ SET VERIFY $ SET NOON $! $! Example of how to put a device into mountverification $! $ LD CREATE/NOBACKUP TEMPDISK.DSK $ LD CONNECT/LOG TEMPDISK.DSK LDA1: $ INIT/NOHIGH/SYSTEM LDA1: TEST $ LD TRACE LDA1 $ MOUNT LDA1: TEST $ LD WATCH LDA1: 1/ACTION=OPCOM/FUNCTION=CODE=%X080C $ LD WATCH LDA1: 1/ACTION=ERROR=%X84/FUNCTION=CODE=%X0808 $ LD WATCH LDA1: 10/ACTION=ERROR=%X84/FUNCTION=READ $ LD SHOW/WATCH LDA1: $ REPLY/ENABLE/TEMP $ SPAWN/NOWAIT/INPUT=NL: DUMP LDA1:/BLOCK=(START=10,COUNT=1) $ INQUIRE DUMMY "Press return to continue" $ LD NOWATCH LDA1: $ LD SHOW/TRACE LDA1: $ REPLY/DISABLE $ DISMOUNT LDA1: $ LD DISCONNECT LDA1: $ DELETE/NOLOG/NOCONF TEMPDISK.DSK; 2 New_features_V5.1 Shared access of the container file or a replaced device are now possible by connecting with the /SHARE switch. For this to work the 'LD' devicename must be the same on all nodes of the cluster which connect to the same container file or device. Device geometry can now be specified by connecting a device with the /SECTORS, /TRACKS and /CYLINDERS qualifiers. Also the maximum usable size may be given with the /MAXBLOCKS qualifier, which supersedes the /ALLOCATED qualifier. An allocation class may be specified for the LD device with the /ALLOCLASS qualifier for CONNECT. If this is not done then the default is the value from the systemparameter ALLOCLASS. A switch was added to CONNECT, /SYMBOL. This allows a DCL symbol to be set representing the created unit number if it was not specified. 2 New_features_V6.0 The driver is finally supported by ALPHA/VMS. The restriction that container files had to be contiguous is removed. Also, nesting of LD devices (container file on a logical disk) is now allowed. A watchpoint may now specify /FUNCTION=ALL to trap all function codes. 2 New_features_V6.2 If one needs more than 9999 logical disk devices then another 'controller' may be used by specifying a new device at connection time: $ RUN SYS$SYSTEM:SYSMAN IO CONNECT LDA0/NOADAPTER/DRIVER=SYS$LDDRIVER IO CONNECT LDB0/NOADAPTER/DRIVER=SYS$LDDRIVER IO CONNECT LDC0/NOADAPTER/DRIVER=SYS$LDDRIVER 2 New_features_V6.3 FDT routine access can now be traced. This will show access to the driver which is otherwise hidden, since some driver functions can complete in the FDT routines. It can be enabled with $ LD TRACE/FDT (Alpha only). Accurate timing of I/O requests can now be done by enabling it this way: $ LD TRACE/ACCURATE (Alpha only). This allows I/O duration to be measured with a resolution of one microsecond, as opposed to the normal 10 mSec accuracy. The drawback is that if this is used all I/O has to go through the primary processor. Container files may now reside on remotely mounted NFS volumes. Note however that members of a shadowset may not be used if they reside on such a device. This is because the NFSdriver does not support the IO$_WRITECHECK function. This restriction will be lifted in a future release. The restriction of the maximum size of the logical disk not exceeding 2097120 blocks without specifying the geometry has been lifted. Any size up to the size of the disk holding the containerfile is allowed. 2 New_features_V7.0 There are new CREATE qualifiers: /TRACKS=nnn /SECTORS=nnn /CYLINDERS=nnn /MAXBLOCKS=nnn These settings will be stored in the containerfile as metadata (in the fileheader), and if present will be used when the containerfile is connected (unless /NOAUTOGEOMETRY is specified). /LBN=nnn Allows placement of the containerfile on a specific LBN. If that LBN is not available an error will be returned. Notice that when /CONTIGUOUS is not specified and the request succeeds the file may be split in multiple segments at the discretion of the XQP, in that case only the first part of the file will be on the specified LBN. /CLONE=device Allows size and geometry to be cloned from the specified device. This device has to be mounted for this to function. The geometry will automatically be saved in the containerfile. New CONNECT qualifiers: /CLONE=device Allows size and geometry to be cloned from the specified device. This device has to be mounted for this to function. Other geometry data may be overruled when specified on the commandline. /AUTOGEOMETRY This is the default. On a connect the containerfile is checked if there's geometry info available, and if true that's used for connect unless /NOAUTOGEOMETRY is specified. /SAVE Updates the geometry data in the containerfile. New [NO]PROTECT qualifiers: /PERMANENT Save writelock status in the containerfile so that it may be used during CONNECT (like emulating a 'hardware write protect' button). Other features: Interactive help is available with the LD HELP command. If a shared file is connected and an error is returned due to incompatibilities with sharing of other nodes, a more verbose error message is given with the reason for the failure, like invalid allocation class, unit number, etc. The following will automatically connect the right unit if it's not specified and file sharing is wanted: $ LD CONNECT DISK:[DIR]FILE.DSK/SHARE This way of connecting needs CMKRNL privilege. If this privilege is lacking a clear error message will be displayed about that. There's no problem anymore in using an ODS5 volume for the containerfile, this restriction has been lifted. Using a containerfile exceeding 4Gb will not crash the system anymnore. 2 New_features_V8.0 A physical disk may be connected to a logical disk, whereby it can be specified which lbn range of the physical disk to use. For example, we want to connect a device LDA1 to blocks 1000 through 20000 of a physical device: $ LD CONNECT DKA0: LDA1:/LBN=(START=1000,END=20999) Or we can specify a number of blocks to use: $ LD CONNECT DKA0: LDA1:/LBN=(START=1000,COUNT=20000) This will map lbn's 1000 through 20999 of DKA0: which can be accessed as a disk through LDA1: This functionality may also be used clusterwide by adding /SHARE. All nodes sharing a disk this way must specify the same parameters. Geometry is calculated by the driver and cannot be specified. Multiple ranges may be used for multiple LD devices, as long as there's no overlap. The range check is done on all cluster members. An example can be to partition a disk without any file structure on it: $ LD CONNECT DKA0: LDA1:/LBN=(START=0,COUNT=100000) $ LD CONNECT DKA0: LDA2:/LBN=(START=100000,COUNT=100000) $ LD CONNECT DKA0: LDA3:/LBN=(START=200000,COUNT=100000) $ LD CONNECT DKA0: LDA4:/LBN=(START=300000,COUNT=100000) This can also be shared: $ LD CONNECT DKA0: LDA5:/LBN=(START=400000,COUNT=100000)/SHARE In that case the partition can be accessed from other cluster members as well. Notice that the physical disk in question will be protected by a lock, and may not be mounted anywhere. A new locking protocol is in use between LDDRIVER's on different nodes in a cluster. The new V8.0 driver can deal with connected devices by old LDDRIVER's, old drivers however may not be able to connect to shared resources of the new drivers. If one driver is the first to connect to a resource it will establish the locking version in use. This means that if an old driver connects as the first one, the connection will work. Example: oldsys> ld connect d1 lda1/share/log %LD-I-CONNECTED, Connected $7$LDA1: to $8$DUA15:[LD]D1.DSK;1 (Shared) newsys> ld connect d1 lda1/share/log %LD-I-CONNECTED, Connected $7$LDA1: to $8$DUA15:[LD]D1.DSK;1 (Shared) (Old driver connected on other node) Notice that the new driver will tell us that an old driver has connected to the resource, and that an upgrade may be required. If the new driver connects first the old driver will issue a different error message: newsys> ld connect d1 lda1/share/log %LD-I-CONNECTED, Connected $7$LDA1: to $8$DUA15:[LD]D1.DSK;1 (Shared) oldsys> ld connect d1 lda1/share/log %LD-F-FILEINUSE, File incompatible connected to other LD disk in cluster This makes connection to a shared resource dependent on the order of the nodes where the connection occurs. For this reason it is advisable to install the new LD version on all nodes in a cluster if shared resources are used. The include file for the callable interface has changed. It used to be LD_DEFINES.H and is still included, but the new definitions are now in LDDEF.H created from and sdl source file. It is preferred to use the new definitions as they will become part of VMS in the future. 2 New_features_V8.1 The container file can now be locked to prevent file deletion: $ LD CONNECT DKA0:[LD]DISK1.DSK LDA1:/LOCK In previous versions the container file could be deleted, but the actual deletion did not take place until the file was disconnected so no harm was done. This is the same bahaviour as what's in place for page-, swap- and dumpfiles. Creation of container files will now make sure that there's room in the fileheader to save metadata like geometry and write-protect status. In previous versions this space was not always created (for example when there was a default acl on the container file's parent directory). This could also result in an SS$_HEADERFULL error when creating the file. A logical name pointing to the LD device can now be specified when the device is connected: $ LD CONNECT DKA0:[LD]DISK1.DSK LDA1: LOGNAME If the optional Logicalname argument is specified a logical name pointing to the device will be created in the process table. Notice that the logical name will not be deassigned when the device is disconnected. Specifying the LD device to connect to is optional, and it works also if an alternate controller is used without a unit number (for example, LDB). So you can let the driver automatically select a unitnumber when it's not specified, so this will work: $ LD CONNECT DISK.DSK LDB The file will then be connected to the next unitnumber on the B controller. Retrieving LD version information can now be done with the LD VERSION command. The qualifier /NOFORCED_ERROR on an LD CONNECT command will allow the LD device to prevent handling of forced errors and return an SS$_UNSUPPORTED error if an attempt is made to create a forced error. This can be used in testing host-based volume shadowing. The qualifier /EXTEND on an LD CREATE command allows for extension of an existing container file. Specify /SIZE=xxx to set the number of blocks to extend the current file to. The control utility will now check if the driver is loaded, as well as that it is installed with the correct privileges. If this is not the case then a message will be given to execute LD$STARTUP.COM. 2 New_features_V8.2 V8.2 is mainly a bugfix release. The only feature that has been extended is the version information from the LD VERSION command. 2 Parameters Filespec Specifies the logical disk file to create or to connect. Any legal VMS filespec without wildcards or nodename is acceptable. Device Logical disk devicename, LDan where n is 1 to 9999. 2 Privileges_and_Quotas To control creation and deletion of logical devices one needs PHY_IO privilege for the LD utility. To use continuous tracing SYSLCK privilege is needed. The startup commandfile, SYS$STARTUP:LD$STARTUP.COM will install the LD utility with these privileges so that ordinary users can play around by creating and removing disks. Note that the users will be charged against BYTLM for each unit they create. Also, the creation of a tracebuffer will be charged against BYTLM, as well as creating of a watchpoint. Connecting a shared disk which is already connected on another cluster node without specifying a unit number needs CMKRNL privilege. Due to possible security implications the LD utility is not installed with this privilege. 2 Restrictions A file used for a logical disk may not be used for any other logical disk, unless /SHARE is specified. If that is not done, the driver will return SS$_FILALRACC. The same is true when one tries to replace a device, the error returned in that case will be SS$_DEVALLOC. A containerfile for a logical disk must reside on an ODS-2 or an ODS-5 volume. Spiralog volumes are not supported. If a continuous trace is in progress it is impossible to mount a logical disk because the reference count is not zero. Stop the trace, mount the disk and restart the trace. No trace- data will be lost because the driver will buffer this. Container files may now reside on remotely mounted NFS volumes. Note however that members of a shadowset may not be used if they reside on such a device. This is because the NFSdriver does not support the IO$_WRITECHECK function. This restriction may be lifted in a future release. 2 Setup The logical disk has to be setup by connecting the driver with SYSGEN. The unitnumber can be selected by the user connecting the logical disk. To connect the driver on VAX: $ RUN SYS$SYSTEM:SYSGEN CONNECT LDA0/NOADAPTER To connect the driver on Alpha or IA64: $ RUN SYS$SYSTEM:SYSMAN IO CONNECT LDA0/NOADAPTER/DRIVER=SYS$LDDRIVER This assumes that the driver is in SYS$LOADABLE_IMAGES: For convenience a startup procedure is supplied where logical disks are enabled: SYS$STARTUP:LD$STARTUP.COM. 3 Example An example of setting up some Logical Disks. $ @SYS$STARTUP:LD$STARTUP $ LD CREATE/SIZE=8192 $1$DUA1:[TEMP]USER.DSK;1 $ LD CONNECT $1$DUA1:[TEMP]USER.DSK;1 LDA1: $ INITIALIZE LDA1: USERDSK1 $ MOUNT LDA1: USERDSK1 2 IO_Trace_example An example of traced I/O: $ LD SHOW/TRACE/ENTRIES=(12,23)/IOSB=COMBINATION LDA1: I/O trace for device _THEBUG$LDA1: 24-FEB-1994 16:36:56.31 on node THEBUG:: Start Time Elaps Pid Lbn Bytes Iosb Count Function ------------------------------------------------------------------- 20:52:30.01 00.02 202000C4 5 512 NORMAL 512 READPBLK 20:52:30.03 00.03 202000C4 5 512 NORMAL 512 WRITEPBLK|DATACHECK 20:52:30.07 00.00 202000C4 0 0 NORMAL 0 UNLOAD 23:16:18.05 00.00 202000C5 0 32 NORMAL 0 SETMODE|LINE_OFF 23:16:30.13 00.00 202000C5 0 11 NORMAL 0 SETMODE|LINE_ON|NEWLINE 23:17:05.70 00.05 202000C5 0 0 NORMAL 0 PACKACK|INHERLOG 23:17:05.76 03.22 202000C5 1 512 NORMAL 512 READPBLK 23:17:09.00 00.67 202000C5 608509 512 NORMAL 512 READPBLK 23:17:09.67 00.03 202000C5 608510 512 NORMAL 512 READPBLK 23:17:09.70 00.27 202000C5 608334 512 NORMAL 512 READPBLK 23:17:09.97 00.00 202000C5 608334 512 WRITLCK 0 WRITEPBLK 23:17:10.04 00.29 202000C5 608508 512 NORMAL 512 READPBLK 2 CONNECT LD CONNECT file_or_device [LDAn:] [Logicalname] This command will connect the Logical Disk File to the Logical Disk device. This function must be performed before the logical disk can be mounted or otherwise used. It requires the Physical Disk to be mounted and requires read and write access to the Logical Disk File. If the LD-device is not specified, it will be assigned by the driver, and an informational message will be given about which device is selected. If the LD-device is not specified and a file is connected /SHARED, the corresponding device is automatically created provided that the process issueing the command has CMKRNL privilege. If the device is specified, and if that device does not exist it will be created as specified. If the optional Logicalname argument is specified a logical name pointing to the device will be created in the process table. Notice that the logical name will not be deassigned when the device is disconnected. Specifying the LD device to connect to is optional, and it works also if an alternate controller is used without a unit number (for example, LDB). So you can let the driver automatically select a unitnumber when it's not specified, so this will work: $ LD CONNECT DISK.DSK LDB The file will then be connected to the next unitnumber on the B controller. 3 /ALLOCLASS /ALLOCLASS=allocation_class If this qualifier is specified, the specified allocation class will be set for all LD devices. This qualifier can only be set when there are currently no LD devices connected. Setting an allocation class can be usefull if LD device needs to be shared in a cluster where different nodes have different allocation classes. 3 /AUTOGEOMETRY /AUTOGEOMETRY This is the default. On a connect the containerfile is checked if there's geometry info available, and if true that's used for connect unless /NOAUTOGEOMETRY is specified. 3 /CLONE /CLONE=device Allows size and geometry to be cloned from the specified device. This device has to be mounted for this to function. Other geometry data may be overruled when specified on the commandline. 3 /CYLINDERS /CYLINDERS=number_of_cylinders When this qualifier is specified the device will be created with the specified number of cylinders. If not specified, and no /TRACKS and /SECTORS switches are specified, then the device geometry will be calculated by the driver. If it is specified then any other geometry switch will default to 1 when not specified. The maximum number of cylinders is 65535. If SECTORS * TRACKS * CYLINDERS is less than the capacity of the containerfile an error message will be issued. WARNING: If a container file has been used and is reconnected with other geometry information which results in another disksize then diskcorruption may result. This qualifier may not be used together with /REPLACE or /LBN. For /REPLACE the geometry will be inherited from the replaced device. For /LBN the driver will create the appropriate geometry. 3 /FORCED_ERROR /FORCED_ERROR (default) /NOFORCED_ERROR This qualifier will allow the LD device to handle forced errors, provided that the underlaying physical device is capable of handling them too. Specify /NOFORCED_ERROR to prevent the device from handling these errors and return an SS$_UNSUPPORTED error if an attempt is made to create a forced error. This can be used in testing host-based volume shadowing. 3 /LBN /LBN=(START=x,END=y) or /LBN=(START=X,COUNT=y) Connect an LD device to a physical disk, starting at LBN x, with either an end-lbn specified or a count. The ending lbn may not be beyond the end of the physical device. The count plus the starting lbn may also not be beyond the end. With this qualifier it is possible to partially map a physical disk. 3 /LOCK /LOCK /NOLOCK (default) This qualifier will lock the container file in a manner that prevents deletion. Without this the file can be deleted, but the actual deletion will only take place when the container file is disconnected so no harm will be done. This is the same bahaviour as what's in place for page-, swap- and dumpfiles. 3 /LOG /LOG /NOLOG (default) Shows the connection between the logical disk and the file or device after the connection has been completed. 3 /MAXBLOCKS /MAXBLOCKS=number_of_block When this qualifier is specified the specified number of blocks will be the maximum used for the device. It may not be bigger than the allocated size of the container file. 3 /REPLACE When this qualifier is specified one has to specify a devicename instead of a filespec. This has the effect of replacing the physical drive with the logical drive, and it enables all I/O requests to the physical device to be logged. The physical device will be marked allocated and unavailable. 3 /SAVE /SAVE Updates the geometry data in the containerfile. 3 /SECTORS /SECTORS=number_of_sectors When this qualifier is specified the device will be created with the specified number of sectors. If not specified, and no /CYLINDERS and /TRACKS switches are specified, then the device geometry will be calculated by the driver. If it is specified then any other geometry switch will default to 1 when not specified. The maximum number of sectors is 255. If SECTORS * TRACKS * CYLINDERS is less than the capacity of the containerfile an error message will be issued. WARNING: If a container file has been used and is reconnected with other geometry information which results in another disksize then diskcorruption may result. This qualifier may not be used together with /REPLACE or /LBN. For /REPLACE the geometry will be inherited from the replaced device. For /LBN the driver will create the appropriate geometry. 3 /SHARE If this qualifier is specified, then sharing the container file with other nodes in a cluster is allowed, provided that the same devicename (ALLDEVNAM) is used on every node accessing the file, and that the specified geometry is the same on every node. If the containerfile needs to be accessed on other nodes as well then the CONNECT/SHARE command must be issued on all nodes wanting to share the container file. If used together with /REPLACE then sharing of another device is allowed. 3 /SYMBOL When this qualifier is specified a local DCL symbol representing the unit number will be created: LD_UNIT. This can be useful when a connect is done without specifying a unit number. With this qualifier included a command procedure is able to use this in subsequent commands. 3 /TRACKS /TRACKS=number_of_tracks When this qualifier is specified the device will be created with the specified number of tracks. If not specified, and no /CYLINDERS and /SECTORS switches are specified, then the device geometry will be calculated by the driver. If it is specified then any other geometry switch will default to 1 when not specified. The maximum number of tracks is 255. If SECTORS * TRACKS * CYLINDERS is less than the capacity of the containerfile an error message will be issued. WARNING: If a container file has been used and is reconnected with other geometry information which results in another disksize then diskcorruption may result. This qualifier may not be used together with /REPLACE or /LBN. For /REPLACE the geometry will be inherited from the replaced device. For /LBN the driver will create the appropriate geometry. 2 CREATE LD CREATE filespec This command will create a file which can be used as a Logical Disk. The default extension is ".DSK". The file will be set /NOMOVE and /CACHING_ATTRIBUTE=NO_CACHING. 3 /BACKUP /BACKUP (default) /NOBACKUP This qualifier can be used to mark the file /NOBACKUP. In that case when a backup of the file is done only the file- header will be copied. On a restore the file will be re- created, and all data will be lost. 3 /CLONE /CLONE=device Allows size and geometry to be cloned from the specified device. This device has to be mounted for this to function. The geometry will automatically be saved in the containerfile. 3 /CONTIGUOUS /CONTIGUOUS /NOCONTIGUOUS (default) This qualifier can be used to create the container file contiguous. 3 /CYLINDERS /CYLINDERS=number_of_cylinders When this qualifier is specified the device will be created with the specified number of cylinders. If not specified, and no /TRACKS and /SECTORS switches are specified, then the device geometry will be calculated by the driver. If it is specified then any other geometry switch will default to 1 when not specified. The maximum number of cylinders is 65535. If SECTORS * TRACKS * CYLINDERS is less than the capacity of the containerfile an error message will be issued. This setting will be stored in the containerfile as metadata (in the fileheader), and if present will be used when the container file is connected (unless /NOAUTOGEOMETRY is specified). 3 /EXTEND /EXTEND This qualifier allows for extension of an existing container file. Specify /SIZE=xxx to set the number of blocks to extend the current file to. 3 /LBN /LBN=nnn Allows placement of the containerfile on a specific LBN. If that LBN is not available an error will be returned. Notice that when /CONTIGUOUS is not specified and the request succeeds the file may be split in multiple segments at the discretion of the XQP, in that case only the first part of the file will be on the specified LBN. 3 /LOG /LOG /NOLOG (default) Shows the complete filespec of the created file after file creation. 3 /MAXBLOCKS /MAXBLOCKS=number_of_block When this qualifier is specified the specified number of blocks will be the maximum used for the device. It may not be bigger than the allocated size of the container file. This setting will be stored in the containerfile as metadata (in the fileheader), and if present will be used when the container file is connected (unless /NOAUTOGEOMETRY is specified). 3 /SECTORS /SECTORS=number_of_sectors When this qualifier is specified the device will be created with the specified number of sectors. If not specified, and no /CYLINDERS and /TRACKS switches are specified, then the device geometry will be calculated by the driver. If it is specified then any other geometry switch will default to 1 when not specified. The maximum number of sectors is 255. If SECTORS * TRACKS * CYLINDERS is less than the capacity of the containerfile an error message will be issued. This setting will be stored in the containerfile as metadata (in the fileheader), and if present will be used when the container file is connected (unless /NOAUTOGEOMETRY is specified). 3 /SIZE /SIZE[=disksize] Specifies the size of the logical disk file. The default size is 512 blocks. 3 /TRACKS /TRACKS=number_of_tracks When this qualifier is specified the device will be created with the specified number of tracks. If not specified, and no /CYLINDERS and /SECTORS switches are specified, then the device geometry will be calculated by the driver. If it is specified then any other geometry switch will default to 1 when not specified. The maximum number of tracks is 255. If SECTORS * TRACKS * CYLINDERS is less than the capacity of the containerfile an error message will be issued. This setting will be stored in the containerfile as metadata (in the fileheader), and if present will be used when the container file is connected (unless /NOAUTOGEOMETRY is specified). 2 DISCONNECT LD DISCONNECT [LDAn:] This command will disconnect the Logical Disk device from the Logical Disk file, or from the physical disk. 3 /ABORT This qualifier can be used if the normal disconnect command does not disconnect the file (for example, when the file has been deleted). The ABORT qualifier disconnects the Logical Disk as it is (No checks.) When the physical disk is dismounted, and the logical disk is still active,the physical disk will enter a marked for dismount state until the logical disk is no longer connected. The steps to follow if this happens are described below; $ DISMOUNT LDA1: $ LD DISCONNECT/ABORT LDA1: $ DISMOUNT DDan: Be careful using the ABORT qualifier because it disconnects the Logical Disk independent of the state it is in. 3 /ALL This qualifier disconnects all LDAn devices. No devicename has to be given in this case. 3 /LOG /LOG /NOLOG (default) Shows the status after the device has been disconnected. 2 NOPROTECT LD NOPROTECT LDan: This command will remove write-protection of the specified device. 3 /PERMANENT /PERMANENT Save writelock status in the containerfile so that it may be used during CONNECT (like emulating a 'hardware write protect' button). 2 NOWATCH LD NOWATCH LDan: [lbn [,lbn...]] This command will remove the specified watchpoint. 3 /INDEX /INDEX=n This qualifier will remove only the specified watchpoint. This is an alternate way for specifying a watchpoint which is needed for watchpoints without an lbn (IO$_PACKACK watchpoints for example). 2 SHOW LD SHOW [LDAn:] This command will display information about the status and the connected Logical Disk file or device. It can also be used to display the tracebuffer. 3 /ACCURATE This qualifier allows accurate timing to be displayed from the tracebuffer, provided that it was enabled with the setup of the trace. This function is only supported on Alpha. 3 /ALL This qualifier will show the status of all LDAn devices on the system. It can not be specified in combination with /TRACE. No devicename must be given in this case. 3 /BINARY This qualifier forces the tracebuffer data to be written to the outputfile in binary form. The is required when the outputfile has to be processed later on with /INPUT. 3 /BLOCKS /BLOCKS=blocks This qualifier specifies the maximum size of a diskfile with tracedata. After this size is reached the current file is closed, and a new one with a higher version is opened. If this qualifier is not specified then there's no limit. If the /VERSION_LIMIT qualifier is specified too, then the excess datafiles will be purged. 3 /BYTECOUNT /BYTECOUNT (Default) /NOBYTECOUNT This qualifier enables to number of requested bytes to be displayed. 3 /CONTINUOUS /CONTINUOUS When this qualifier is specified, the trace buffer of the specified device will be dumped (if there's still data waiting). After that the program will wait for new data to show up, and display that if it's available. To exit this mode one can type either a Control-Z or a Control-C. Another way is to issue a LD TRACE/STOP command from another process. 3 /ENTRIES /ENTRIES[=(XXX,YYY)]] This qualifier allows selection of the tracebuffer contents. If one parameter is specified, it will be the number of entries from the start of the tracebuffer when positive, or from the end of the tracebuffer when negative. For example, /ENTRIES=10 will show the first 10 entries, while /ENTRIES=-10 will show the last 10 entries. When two parameters are specified, a range of entries will be shown. For example, /ENTRIES=(30,50) will show all entries from entry 30 through entry 50 inclusive. The default of -10 will show the last 10 entries. 3 /FDT This qualifier allows FDT routine access to be displayed from the tracebuffer, provided that it was enabled with the setup of the trace. This function is only supported on Alpha. 3 /FUNCTION /FUNCTION[=Keyword] /NOFUNCTION This qualifier enables the Function code of the request to be displayed. An optional keyword may be given: FUNCTION=TEXT Displays the translated I/O request function along with eventual functioncode modifiers. Function bits which could not be translated will be shown in hexadecimal format. FUNCTION=HEX Displays the I/O request function code in hexadecimal format. The default is /FUNCTION=TEXT. 3 /HEADER /HEADER (Default) /NOHEADER This qualifier enables a header to be displayed before showing tracedata. The header contains a timestamp of when the trace was made, a devicename of the LD-device involved and the nodename of the system. 3 /NUMBER /NUMBER /NONUMBER (Default) This qualifier enables entrynumbers to be displayed. 3 /INDEX /INDEX=n This qualifier enables watchpoint display by index. The parameter is the watchpoint number as seen by the driver. 3 /INPUT /INPUT[=filespec] This qualifier forces input tracedata to be read from the specified file. The default filename is LD_TRACE.DAT. 3 /IOSB /IOSB[=Keyword] /NOIOSB This qualifier enables the I/O status block of the request to be displayed. An optional keyword may be given: IOSB=TEXT Displays the translated errortext from the iosb. IOSB=HEX Displays the first longword of the iosb in hexadecimal format. IOSB=LONGHEX Displays both longwords of the iosb in hexadecimal format. IOSB=COMBINATION Displays the translated error text from the iosb, as well as the returned count in the upper first word of the iosb. The default is /IOSB=TEXT. 3 /LBN /LBN (Default) /NOLBN This qualifier enables to Logical blocknumber of the request to be displayed. 3 /OUTPUT /OUTPUT[=filespec] This qualifier forces output of the tracedata data to be written to the specified file. The default output will be readable ASCII, unless /BINARY was also specified. In that case a binary file will be written which can be processed at a later time with /INPUT. The default filename is LD_TRACE.LOG for normal ASCII output, and LD_TRACE.DAT for binary output. 3 /PID /PID (Default) /NOPID This qualifier enables to Process Identification of the requesting process to be displayed. 3 /RESET When this qualifier is specified in combination with /TRACE, the tracebuffer will be dumped and the buffer will be reset afterwards. This is an atomic operation, such that no bufferdata will be lost. 3 /STATUS This qualifier will show the currently allocated size of the tracebuffer, as well as the number of entries in use. It must be used in combination with /TRACE. 3 /TIMESTAMP /TIMESTAMP[=Keyword] /NOTIMESTAMP This qualifier enables the Start-time as well as the End-time or the Elapsed time of an I/O request to be displayed. An optional keyword may be given: TIMESTAMP=ABSOLUTE Displays the Start-time of the request as well as the End-time in absolute format. TIMESTAMP=ELAPSED Displays the Elapsed time of the request. TIMESTAMP=COMBINATION Displays the Start-time of the request in absolute format as well as the Elapsed time of the request. TIMESTAMP=DELTA Displays the elapsed time between the current request and the previous request. If the start-time of the previous request was after the start-time of the current request (out of order I/O completion) the line will be preceded with a dash. The default is /TIMESTAMP=COMBINATION. 3 /TRACE When this qualifier is specified, the trace buffer of the specified device will be dumped. 3 /VERSION_LIMIT /VERSION_LIMIT=limit This qualifier can be used when a continuous trace is made to control the number of concurrent datafiles on disk. Anytime the datafilesize exceeds the size specified with /BLOCKS a new file will be created after the old file is closed. If there are more files available than the number specified with this qualifier, they will be purged up till the specified limit. 3 /WARNINGS /WARNINGS (Default) /NOWARNINGS When this qualifier is specified a warning will be given anytime when there are tracerecords lost. The number of lost records will be displayed. /NOWARNINGS will suppress these messages. 3 /WATCH When this qualifier is specified, the currently set watchpoints of the specified device will be dumped. 2 TRACE LD TRACE LDan: This command initializes the trace buffer for the specified device. This buffer will log the following data for every I/O request: o Process ID o Logical block number o I/O request size o I/O Function code o I/O status block o Timestamp from the start of the I/O request o Timestamp from the end of the I/O request The default size is 512 entries, the maximum is as big as pool will allow. The allocated size from pool will be: PoolSize (in Bytes) = (N * 44) + 12 where N equals the number of entries. 3 /ACCURATE This qualifier allows a more accurate timing of I/O requests by means of hardware counters on the Alpha CPU. The resolution will be one microseond as opposed to the 10 mSec standard resolution. The drawback is that in an SMP system there is a possibility that an I/O request needs to be rescheduled on the processor where the request was originating, which may give a small performance issue. This function is only supported on Alpha. 3 /ALL This qualifier can be used in combination with /STOP to stop all processes which are currently tracing data for all LD devices. 3 /FDT Allows FDT routine access to be traced. This is a form of preprocessing which every I/O request goes through. This qualifier causes usage of additional entries in the tracebuffer for almost every I/O request, hence it is made optional. This qualifier will only work on Alpha. 3 /RESET When this qualifier is specified the tracebuffer will be reset. All data currently in the buffer will be lost. 3 /SIZE /SIZE[=number_of_entries] Specifies the size of the tracebuffer. The default size is 512 entries. 3 /STOP This qualifier can be used to stop another process which has issued a SHOW/TRACE/CONTINUOUS command. The devicename must be specified (unless /ALL was given). If the trace was started by a process in the same UIC group, GROUP privilege is needed. If the process belongs to another UIC group, WORLD privilege is needed. 2 NOTRACE LD NOTRACE LDan: This command deallocates the tracebuffer. All data currently available in the buffer will be lost. 2 PROTECT LD PROTECT LDan: This command will write-protect the specified device. 3 /PERMANENT /PERMANENT Save writelock status in the containerfile so that it may be used during CONNECT (like emulating a 'hardware write protect' button). 2 WATCH LD WATCH LDan: lbn [,lbn...] This command will set a watchpoint on a virtual or logical blocknumber on the specified device. The lbn is ignored on I/O functions which don't need an lbn (IO$_PACKACK for example). This makes it possible to let the driver take some actions dependant of which lbn was accessed with a specified function- code. 3 /FUNCTION /FUNCTION[=Keyword] This qualifier specifies for which I/O function the watchpoint is set. An optional keyword may be given: FUNCTION=ALL The watchpoint is set for all I/O functions FUNCTION=READ The watchpoint is set for IO$_READPBLK FUNCTION=WRITE The watchpoint is set for IO$_WRITEPBLK FUNCTION=CODE=number The watchpoint is set for the specified I/O function code The default is /FUNCTION=READ 3 /ACTION /ACTION[=Keyword] This qualifier specifies the action to be performed when a valid watchpoint is encountered. To be able to set a watchpoint one must have either CMKRNL privilege, or be the owner of the device. A watchpoint may have one action only: CRASH, ERROR or SUSPEND. An exception is OPCOM, which may be specified in addition to any other action for a specific watchpoint. An optional keyword may be given: ACTION=CRASH This action will crash the system when a matching lbn and function are found. Usage of this keyword needs CMKRNL privilege. The bugcheck type will be RSVD_LP. ACTION=ERROR[=code] This action will return a user-specified errorcode when a matching lbn and function are found. When the code is not specified SS$_BUGCHECK will be returned. ACTION=SUSPEND This action will suspend the thread when a matching lbn and function are found. This enables one to look at the system with SDA for further investigation. LD SHOW/WATCH will show all processes waiting for a specific watchpoint, while LD WATCH/RESUME will resume the thread. ACTION=OPCOM This action will display an OPCOM message when a matching lbn and function are found. The message includes the process-id and the imagename doing the request, the devicename, the functioncode and the lbn. If the watchpoint was a virtual one (/FILE specified) then it will show the vbn as well as the file-id of the corresponding file. The default is /ACTION=ERROR=676 (SS$_BUGCHECK) 3 /FILE /FILE=filespec This qualifier will enable a virtual watchpoint on the specified file. The parameter(s) will then be virtual blocknumbers of the file. 3 /RESUME /RESUME This qualifier resumes a suspended watchpoint. The parameter is the watchpoint to resume. An alternate way to resume a watchpoint is by /INDEX. If no parameter is specified then all suspended watchpoints will be resumed. 3 /INDEX /INDEX=n This qualifier enables watchpoint resume by index. The parameter is the watchpoint number to resume. 2 VERSION This command will show the current version of the LD utility and the driver. 2 Examples A couple of examples of some of LDdriver's capabilities. 3 WatchPoint An example of watchpoint usage: $ LD CREATE TMP $ LD CONNECT/LOG TMP LDA1 %LD-I-CONNECTED, Device THEBUG$LDA1: is connected to $8$DIA0:[USERS.VDBURG.LD]TMP.DSK;1 $ INIT LDA1: TEST $ MOUNT/SYSTEM LDA1: TEST %MOUNT-I-MOUNTED, TEST mounted on _THEBUG$LDA1: (THEBUG) $ COPY/ALLOC=10 NL: LDA1:[000000]JUNK.DAT $ SET FILE/END LDA1:[000000]JUNK.DAT $ LD WATCH LDA1 5/FILE=LDA1:[000000]JUNK.DAT/ACTION=ERROR=%X2C $ LD WATCH LDA1 5/FILE=LDA1:[000000]JUNK.DAT/ACTION=OPCOM $ LD WATCH LDA1 1/ACTION=SUSPEND $ LD SHOW/WATCH LDA1: Index LBN Action Function Error return code -------------------------------------------------------------------- THEBUG$LDA1:[000000]JUNK.DAT;1: 1 5 Opcom READPBLK THEBUG$LDA1:[000000]JUNK.DAT;1: 2 5 Error READPBLK 002C (ABORT) 3 1 Suspend READPBLK $ DUMP LDA1:[000000]JUNK.DAT/BLOCK=(START=5,COUNT=1) %%%%%%%%%%% OPCOM 28-FEB-1994 14:38:17.90 %%%%%%%%%%% Message from user VDBURG on THEBUG ***** LDdriver detected VBN watchpoint access ***** PID: 2020006A Image: DUMP Device: THEBUG$LDA1: Function: 000C VBN: 5 File id: (11,1,0) %DUMP-E-READERR, error reading LDA1:[000000]JUNK.DAT;1 -SYSTEM-F-ABORT, abort $ SPAWN/NOWAIT/INPUT=NL: DUMP/BLOCK=(START=1,COUNT=1) LDA1: %DCL-S-SPAWNED, process VDBURG_1 spawned $ WAIT 0:0:1 $ LD SHOW/WATCH LDA1: Index LBN Action Function Error return code -------------------------------------------------------------------- THEBUG$LDA1:[000000]JUNK.DAT;1: 1 5 Opcom READPBLK THEBUG$LDA1:[000000]JUNK.DAT;1: 2 5 Error READPBLK 002C (ABORT) 3 1 Suspend READPBLK Suspended process: 202000E7 $ LD WATCH/RESUME LDA1: Dump of device LDA1: on 28-FEB-1994 14:38:20.47 Logical block number 1 (00000001), 512 (0200) bytes 00010201 00000018 00000004 00000001 ................ 000000 00000080 00000007 00050004 00030002 ................ 000010 00400040 00000000 00000000 000A0001 ............@.@. 000020 . . . 3 MountVerification An example of how to put a disk into Mountverification: $ ld create/nobackup tempdisk.dsk $ ld connect/log/symbol tempdisk.dsk %LD-I-CONNECTED, Connected $7$LDA7: to $7$DKC0:[LD]TEMPDISK.DSK;1 $ init/nohigh/system lda7: test $ mount lda7: test %MOUNT-I-MOUNTED, TEST mounted on _$7$LDA7: (UTRI64) $ ld trace lda7: $ ld watch lda7: 1/action=error=%x84/function=code=%x0808 $ ld watch lda7: 10/action=error=%x84/function=read $ ld watch lda7: 10/action=opcom/function=read $ ld show/watch lda7: Index LBN Action Function Error return code -------------------------------------------------------------------- 1 Error PACKACK|INHERLOG 0084 (DEVOFFLINE) 2 10 Opcom READPBLK 3 10 Error READPBLK 0084 (DEVOFFLINE) $ reply/enable/temp %%%%%%%%%%% OPCOM 20-DEC-2004 22:24:33.86 %%%%%%%%%%% Operator _UTRI64$VTA3: has been enabled, username VDBURG %%%%%%%%%%% OPCOM 20-DEC-2004 22:24:33.86 %%%%%%%%%%% Operator status for operator _UTRI64$VTA3: CENTRAL, PRINTER, TAPES, DISKS, DEVICES, CARDS, NETWORK, CLUSTER, SECURITY, LICENSE, OPER1, OPER2, OPER3, OPER4, OPER5, OPER6, OPER7, OPER8, OPER9, OPER10, OPER11, OPER12 $ spawn/nowait/input=nl: dump lda7:/block=(start=10,count=1) %DCL-S-SPAWNED, process VDBURG_121 spawned $ inquire dummy "Press return to continue Press return to continue: %%%%%%%%%%% OPCOM 20-DEC-2004 22:24:33.90 %%%%%%%%%%% Device $7$LDA7: (UTRI64) is offline. Mount verification is in progress. Press return to continue: %%%%%%%%%%% OPCOM 20-DEC-2004 22:24:33.90 %%%%%%%%%%% Message from user VDBURG on UTRI64 ***** LDdriver detected LBN watchpoint access ***** PID: 5F000428 Image: DCL Device: $7$LDA7: (UTRI64) Function: 000C LBN: 10 Press return to continue: $ ld nowatch lda7: $ ld show/trace lda7: I/O trace for device $7$LDA7: 20-DEC-2004 22:24:4.66 on node UTRI64:: Start Time Elaps Pid Lbn Bytes Iosb Function ------------------------------------------------------------- 22:24:33.90 00.00 5F000428 10 512 DEVOFFLINE READPBLK 22:24:33.90 00.00 00000000 0 0 DEVOFFLINE PACKACK|INHERLOG 22:24:34.29 00.00 00000000 0 0 DEVOFFLINE PACKACK|INHERLOG 22:24:35.29 00.00 00000000 0 0 DEVOFFLINE PACKACK|INHERLOG 22:24:36.29 00.00 00000000 0 0 DEVOFFLINE PACKACK|INHERLOG 22:24:37.29 00.00 00000000 0 0 DEVOFFLINE PACKACK|INHERLOG 22:24:38.29 00.00 00000000 0 0 DEVOFFLINE PACKACK|INHERLOG 22:24:39.29 00.00 00000000 0 0 DEVOFFLINE PACKACK|INHERLOG 22:24:40.29 00.00 00000000 0 0 DEVOFFLINE PACKACK|INHERLOG $ reply/disable %%%%%%%%%%% OPCOM 20-DEC-204 22:24:40.68 %%%%%%%%%%% Operator _UTRI64$VTA3: has been disabled, username VDBURG $ wait 0:0:1 Dump of device LDA7: on 20-DEC-2004 22:24:33.90 Logical block number 10 (0000000A), 512 (0200) bytes 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000020 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000060 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000080 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000E0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000100 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000120 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000140 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000160 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000180 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0001A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0001C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0001E0 $ dism lda7: $ ld disc lda7: $ delete/nolog/noconf tempdisk.dsk; 3 BigDisk How to create a big disk: $! create a bigggg disk $! $! Volset DPA DSA LDA Label $!--------------------------------------------------------------------- $! LDA1 $! DSA10 ST0000000000 $! LDA2 $! DPA20 $! LDA3 $! DSA11 ST0000000001 $! LDA4 $! BIGDISK $! LDA5 $! DSA12 ST1000000000 $! LDA6 $! DPA21 $! LDA7 $! DSA13 ST1000000001 $! LDA8 $! $ size = 1000000 $ ld create/log/nobackup/size=1000000 $7$dkc0:[ld]ld1.dsk %LD-I-CREATED, File $7$DKC0:[LD]LD1.DSK;2 created $ ld create/log/nobackup/size=1000000 $7$dkc0:[ld]ld2.dsk %LD-I-CREATED, File $7$DKC0:[LD]LD2.DSK;2 created $ ld create/log/nobackup/size=1000000 $7$dkc0:[ld]ld3.dsk %LD-I-CREATED, File $7$DKC0:[LD]LD3.DSK;2 created $ ld create/log/nobackup/size=1000000 $7$dkc0:[ld]ld4.dsk %LD-I-CREATED, File $7$DKC0:[LD]LD4.DSK;2 created $ ld create/log/nobackup/size=1000000 $7$dkc0:[ld]ld5.dsk %LD-I-CREATED, File $7$DKC0:[LD]LD5.DSK;2 created $ ld create/log/nobackup/size=1000000 $7$dkc0:[ld]ld6.dsk %LD-I-CREATED, File $7$DKC0:[LD]LD6.DSK;2 created $ ld create/log/nobackup/size=1000000 $7$dkc0:[ld]ld7.dsk %LD-I-CREATED, File $7$DKC0:[LD]LD7.DSK;2 created $ ld create/log/nobackup/size=1000000 $7$dkc0:[ld]ld8.dsk %LD-I-CREATED, File $7$DKC0:[LD]LD8.DSK;2 created $ ld conn/log $7$dkc0:[ld]ld1.dsk lda1 %LD-I-CONNECTED, Connected $7$LDA1: to $7$DKC0:[LD]LD1.DSK;1 $ ld conn/log $7$dkc0:[ld]ld2.dsk lda2 %LD-I-CONNECTED, Connected $7$LDA2: to $7$DKC0:[LD]LD2.DSK;1 $ ld conn/log $7$dkc0:[ld]ld3.dsk lda3 %LD-I-CONNECTED, Connected $7$LDA3: to $7$DKC0:[LD]LD3.DSK;1 $ ld conn/log $7$dkc0:[ld]ld4.dsk lda4 %LD-I-CONNECTED, Connected $7$LDA4: to $7$DKC0:[LD]LD4.DSK;1 $ ld conn/log $7$dkc0:[ld]ld5.dsk lda5 %LD-I-CONNECTED, Connected $7$LDA5: to $7$DKC0:[LD]LD5.DSK;1 $ ld conn/log $7$dkc0:[ld]ld6.dsk lda6 %LD-I-CONNECTED, Connected $7$LDA6: to $7$DKC0:[LD]LD6.DSK;1 $ ld conn/log $7$dkc0:[ld]ld7.dsk lda7 %LD-I-CONNECTED, Connected $7$LDA7: to $7$DKC0:[LD]LD7.DSK;1 $ ld conn/log $7$dkc0:[ld]ld8.dsk lda8 %LD-I-CONNECTED, Connected $7$LDA8: to $7$DKC0:[LD]LD8.DSK;1 $ ld trace lda1 $ ld trace lda2 $ ld trace lda3 $ ld trace lda4 $ ld trace lda5 $ ld trace lda6 $ ld trace lda7 $ ld trace lda8 $ ld show/all %LD-I-CONNECTED, Connected _$7$LDA1: to $7$DKC0:[LD]LD1.DSK;1 %LD-I-CONNECTED, Connected _$7$LDA2: to $7$DKC0:[LD]LD2.DSK;1 %LD-I-CONNECTED, Connected _$7$LDA3: to $7$DKC0:[LD]LD3.DSK;1 %LD-I-CONNECTED, Connected _$7$LDA4: to $7$DKC0:[LD]LD4.DSK;1 %LD-I-CONNECTED, Connected _$7$LDA5: to $7$DKC0:[LD]LD5.DSK;1 %LD-I-CONNECTED, Connected _$7$LDA6: to $7$DKC0:[LD]LD6.DSK;1 %LD-I-CONNECTED, Connected _$7$LDA7: to $7$DKC0:[LD]LD7.DSK;1 %LD-I-CONNECTED, Connected _$7$LDA8: to $7$DKC0:[LD]LD8.DSK;1 $ raid init/noconfirm/raid_level=0 st0 lda1,lda3 %RAID-I-PRTCREATED, Array partition 1 created: 1995112 blocks $ raid init/noconfirm/raid_level=0 st1 lda5,lda7 %RAID-I-PRTCREATED, Array partition 1 created: 1995112 blocks $ raid bind st0 lda1,lda3/shadow/use_shadow=(dsa10,dsa11) dpa20 %RAID-I-ISBOUND, unit _DSA10: is bound as a member of array ST0 %RAID-I-INUSE, unit _$7$LDA1: is a shadow set member of _DSA10: %RAID-I-ISBOUND, unit _DSA11: is bound as a member of array ST0 %RAID-I-INUSE, unit _$7$LDA3: is a shadow set member of _DSA11: %RAID-I-VUCREATE, virtual unit DPA0020: was created for partition 1 on ST0 $ raid bind st1 lda5,lda7/shadow/use_shadow=(dsa12,dsa13) dpa21 %RAID-I-ISBOUND, unit _DSA12: is bound as a member of array ST1 %RAID-I-INUSE, unit _$7$LDA5: is a shadow set member of _DSA12: %RAID-I-ISBOUND, unit _DSA13: is bound as a member of array ST1 %RAID-I-INUSE, unit _$7$LDA7: is a shadow set member of _DSA13: %RAID-I-VUCREATE, virtual unit DPA0021: was created for partition 1 on ST1 $ mount/system dsa10:/shadow=_$7$LDA2: st0000000000 %MOUNT-I-MOUNTED, ST0000000000 mounted on _DSA10: %MOUNT-I-SHDWMEMCOPY, _$7$LDA2: (UTRA41) added to the shadow set with a copy operation %MOUNT-I-ISAMBR, _$7$LDA1: (UTRA41) is a member of the shadow set $ mount/system dsa11:/shadow=_$7$LDA4: st0000000001 %MOUNT-I-MOUNTED, ST0000000001 mounted on _DSA11: %MOUNT-I-SHDWMEMCOPY, _$7$LDA4: (UTRA41) added to the shadow set with a copy operation %MOUNT-I-ISAMBR, _$7$LDA3: (UTRA41) is a member of the shadow set $ mount/system dsa12:/shadow=_$7$LDA6: st1000000000 %MOUNT-I-MOUNTED, ST1000000000 mounted on _DSA12: %MOUNT-I-SHDWMEMCOPY, _$7$LDA6: (UTRA41) added to the shadow set with a copy operation %MOUNT-I-ISAMBR, _$7$LDA5: (UTRA41) is a member of the shadow set $ mount/system dsa13:/shadow=_$7$LDA8: st1000000001 %MOUNT-I-MOUNTED, ST1000000001 mounted on _DSA13: %MOUNT-I-SHDWMEMCOPY, _$7$LDA8: (UTRA41) added to the shadow set with a copy operation %MOUNT-I-ISAMBR, _$7$LDA7: (UTRA41) is a member of the shadow set $ init/nohig dpa20: vset0 $ init/nohig dpa21: vset1 $ mount/system/bind=bigdisk dpa20,dpa21: vset0,vset1 bigdisk %MOUNT-I-MOUNTED, VSET0 mounted on _DPA20: (UTRA41) %MOUNT-I-MOUNTED, VSET1 mounted on _DPA21: (UTRA41) $ ld show/trace/status lda1 %LD-I-STATUS, Device $7$LDA1: has a tracebuffer of 512 entries (512 valid records) $ ld show/trace/status lda2 %LD-I-STATUS, Device $7$LDA2: has a tracebuffer of 512 entries (512 valid records) $ ld show/trace/status lda3 %LD-I-STATUS, Device $7$LDA3: has a tracebuffer of 512 entries (512 valid records) $ ld show/trace/status lda4 %LD-I-STATUS, Device $7$LDA4: has a tracebuffer of 512 entries (512 valid records) $ ld show/trace/status lda5 %LD-I-STATUS, Device $7$LDA5: has a tracebuffer of 512 entries (512 valid records) $ ld show/trace/status lda6 %LD-I-STATUS, Device $7$LDA6: has a tracebuffer of 512 entries (512 valid records) $ ld show/trace/status lda7 %LD-I-STATUS, Device $7$LDA7: has a tracebuffer of 512 entries (512 valid records) $ ld show/trace/status lda8 %LD-I-STATUS, Device $7$LDA8: has a tracebuffer of 512 entries (512 valid records) $ sh dev ld Device Device Error Volume Free Trans Mnt Name Status Count Label Blocks Count Cnt $7$LDA0: (UTRA41) Online 0 $7$LDA1: (UTRA41) ShadowSetMember 0 (member of DSA10:) $7$LDA2: (UTRA41) ShadowCopying 0 (copy trgt DSA10: 6% copied) $7$LDA3: (UTRA41) ShadowSetMember 0 (member of DSA11:) $7$LDA4: (UTRA41) ShadowCopying 0 (copy trgt DSA11: 4% copied) $7$LDA5: (UTRA41) ShadowSetMember 0 (member of DSA12:) $7$LDA6: (UTRA41) ShadowCopying 0 (copy trgt DSA12: 3% copied) $7$LDA7: (UTRA41) ShadowSetMember 0 (member of DSA13:) $7$LDA8: (UTRA41) ShadowCopying 0 (copy trgt DSA13: 1% copied) $ sh dev dsa10 Device Device Error Volume Free Trans Mnt Name Status Count Label Blocks Count Cnt DSA10: Mounted 0 ST0000000000 0 2 1 $7$LDA1: (UTRA41) ShadowSetMember 0 (member of DSA10:) $7$LDA2: (UTRA41) ShadowCopying 0 (copy trgt DSA10: 6% copied) $ sh dev dsa11 Device Device Error Volume Free Trans Mnt Name Status Count Label Blocks Count Cnt DSA11: Mounted 0 ST0000000001 0 2 1 $7$LDA3: (UTRA41) ShadowSetMember 0 (member of DSA11:) $7$LDA4: (UTRA41) ShadowCopying 0 (copy trgt DSA11: 4% copied) $ sh dev dsa12 Device Device Error Volume Free Trans Mnt Name Status Count Label Blocks Count Cnt DSA12: Mounted 0 ST1000000000 0 2 1 $7$LDA5: (UTRA41) ShadowSetMember 0 (member of DSA12:) $7$LDA6: (UTRA41) ShadowCopying 0 (copy trgt DSA12: 3% copied) $ sh dev dsa13 Device Device Error Volume Free Trans Mnt Name Status Count Label Blocks Count Cnt DSA13: Mounted 0 ST1000000001 0 2 1 $7$LDA7: (UTRA41) ShadowSetMember 0 (member of DSA13:) $7$LDA8: (UTRA41) ShadowCopying 0 (copy trgt DSA13: 1% copied) $ sh dev bigdisk Device Device Error Volume Free Trans Mnt Name Status Count Label Blocks Count Cnt DPA20: (UTRA41) Mounted 0 VSET0 1994928 1 1 DPA21: (UTRA41) Mounted 0 VSET1 1994944 1 1 3 IoTrace $ ld create trace.dsk $ ld connect trace lda1 $ ld trace lda1 $ init/nohigh/sys lda1 trace $ mount/sys lda1 trace %MOUNT-I-MOUNTED, TRACE mounted on _$7$LDA1: (UTRA41) $ ld sh/tr lda1 I/O trace for device $7$LDA1: 20-DEC-2004 23:46:49.10 on node UTRA41:: Start Time Elaps Pid Lbn Bytes Iosb Function -------------------------------------------------------------- 23:46:27.89 00.00 5F200220 0 0 NORMAL PACKACK 23:46:27.89 00.01 5F200220 1 512 NORMAL READPBLK 23:46:27.90 00.00 5F200220 2 512 NORMAL WRITEPBLK 23:46:27.91 00.00 5F200220 2 512 NORMAL WRITEPBLK 23:46:27.92 00.01 5F200220 0 512 NORMAL WRITEPBLK|DATACHECK 23:46:27.94 00.01 5F200220 511 512 NORMAL WRITEPBLK|DATACHECK 23:46:27.95 00.01 5F200220 1 512 NORMAL WRITEPBLK|DATACHECK 23:46:27.96 00.01 5F200220 510 512 NORMAL WRITEPBLK|DATACHECK 23:46:27.97 00.01 5F200220 2 512 NORMAL WRITEPBLK|DATACHECK 23:46:27.99 00.01 5F200220 509 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.00 00.01 5F200220 3 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.01 00.01 5F200220 508 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.02 00.01 5F200220 4 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.04 00.01 5F200220 507 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.05 00.01 5F200220 5 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.06 00.01 5F200220 506 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.07 00.01 5F200220 6 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.09 00.01 5F200220 505 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.10 00.01 5F200220 7 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.11 00.01 5F200220 504 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.12 00.01 5F200220 8 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.14 00.00 5F200220 503 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.15 00.01 5F200220 9 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.16 00.01 5F200220 502 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.18 00.01 5F200220 10 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.20 00.01 5F200220 501 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.21 00.01 5F200220 11 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.23 00.01 5F200220 500 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.25 00.01 5F200220 12 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.26 00.01 5F200220 499 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.28 00.01 5F200220 13 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.30 00.01 5F200220 498 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.31 00.01 5F200220 14 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.33 00.01 5F200220 497 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.35 00.01 5F200220 15 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.36 00.01 5F200220 496 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.38 00.01 5F200220 16 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.40 00.01 5F200220 495 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.41 00.01 5F200220 17 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.43 00.01 5F200220 494 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.45 00.01 5F200220 18 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.46 00.01 5F200220 493 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.48 00.01 5F200220 19 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.50 00.01 5F200220 492 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.51 00.01 5F200220 20 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.53 00.01 5F200220 491 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.55 00.01 5F200220 21 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.56 00.01 5F200220 490 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.58 00.01 5F200220 22 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.60 00.01 5F200220 489 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.61 00.01 5F200220 23 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.63 00.01 5F200220 488 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.65 00.01 5F200220 24 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.66 00.01 5F200220 487 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.68 00.01 5F200220 25 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.70 00.01 5F200220 486 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.71 00.01 5F200220 26 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.73 00.01 5F200220 485 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.75 00.01 5F200220 27 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.76 00.01 5F200220 484 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.78 00.01 5F200220 28 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.80 00.01 5F200220 483 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.81 00.01 5F200220 29 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.83 00.01 5F200220 482 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.85 00.01 5F200220 30 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.86 00.01 5F200220 481 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.88 00.01 5F200220 31 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.90 00.01 5F200220 480 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.91 00.01 5F200220 32 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.93 00.01 5F200220 479 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.95 00.01 5F200220 5 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.96 00.01 5F200220 6 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.98 00.01 5F200220 0 512 NORMAL WRITEPBLK|DATACHECK 23:46:28.99 00.01 5F200220 0 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.01 00.01 5F200220 1 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.03 00.01 5F200220 2 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.04 00.01 5F200220 7 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.06 00.01 5F200220 12 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.08 00.01 5F200220 14 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.10 00.01 5F200220 13 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.11 00.01 5F200220 15 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.13 00.01 5F200220 16 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.15 00.01 5F200220 8 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.16 00.01 5F200220 24 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.18 00.01 5F200220 10 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.20 00.01 5F200220 9 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.21 00.01 5F200220 17 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.23 00.01 5F200220 11 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.25 00.01 5F200220 3 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.26 00.00 5F200220 25 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.27 00.00 5F200220 17 512 NORMAL READPBLK 23:46:29.28 00.01 5F200220 17 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.30 00.00 5F200220 5 512 NORMAL READPBLK 23:46:29.30 00.01 5F200220 5 512 NORMAL WRITEPBLK|DATACHECK 23:46:29.32 00.00 5F200220 0 0 NORMAL AVAILABLE 23:46:34.08 00.00 5F200220 0 0 NORMAL PACKACK|INHERLOG 23:46:34.08 00.01 5F200220 1 512 NORMAL READPBLK 23:46:34.10 00.00 5F200220 0 0 NORMAL AVAILABLE|INHERLOG 23:46:40.77 00.00 5F200220 0 0 NORMAL PACKACK 23:46:40.77 00.00 5F200220 1 512 NORMAL READPBLK 23:46:40.77 00.02 5F200220 2 512 NORMAL WRITEPBLK 23:46:40.80 00.00 5F200220 2 512 NORMAL WRITEPBLK 23:46:40.81 00.01 5F200220 0 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.83 00.01 5F200220 511 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.84 00.01 5F200220 1 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.85 00.01 5F200220 510 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.86 00.01 5F200220 2 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.88 00.01 5F200220 509 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.89 00.01 5F200220 3 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.90 00.01 5F200220 508 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.91 00.01 5F200220 4 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.93 00.01 5F200220 507 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.94 00.01 5F200220 5 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.95 00.01 5F200220 506 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.96 00.01 5F200220 6 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.98 00.01 5F200220 505 512 NORMAL WRITEPBLK|DATACHECK 23:46:40.99 00.01 5F200220 7 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.00 00.01 5F200220 504 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.01 00.01 5F200220 8 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.03 00.01 5F200220 503 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.04 00.01 5F200220 9 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.05 00.01 5F200220 502 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.07 00.01 5F200220 10 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.09 00.01 5F200220 501 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.10 00.01 5F200220 11 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.12 00.01 5F200220 500 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.14 00.01 5F200220 12 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.15 00.01 5F200220 499 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.17 00.01 5F200220 13 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.19 00.01 5F200220 498 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.20 00.01 5F200220 14 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.22 00.01 5F200220 497 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.24 00.01 5F200220 15 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.25 00.01 5F200220 496 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.27 00.01 5F200220 16 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.29 00.01 5F200220 495 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.30 00.01 5F200220 17 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.32 00.01 5F200220 494 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.34 00.01 5F200220 18 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.35 00.01 5F200220 493 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.37 00.01 5F200220 19 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.39 00.01 5F200220 492 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.40 00.01 5F200220 20 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.42 00.01 5F200220 491 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.44 00.01 5F200220 21 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.45 00.01 5F200220 490 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.47 00.01 5F200220 22 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.49 00.01 5F200220 489 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.50 00.01 5F200220 23 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.52 00.01 5F200220 488 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.54 00.01 5F200220 24 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.55 00.01 5F200220 487 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.57 00.01 5F200220 25 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.59 00.01 5F200220 486 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.60 00.01 5F200220 26 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.62 00.01 5F200220 485 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.64 00.01 5F200220 27 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.65 00.01 5F200220 484 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.67 00.01 5F200220 28 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.69 00.01 5F200220 483 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.70 00.01 5F200220 29 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.72 00.01 5F200220 482 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.74 00.01 5F200220 30 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.75 00.01 5F200220 481 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.77 00.01 5F200220 31 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.79 00.01 5F200220 480 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.80 00.01 5F200220 32 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.82 00.01 5F200220 479 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.84 00.01 5F200220 5 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.85 00.01 5F200220 6 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.87 00.01 5F200220 0 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.88 00.01 5F200220 0 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.90 00.01 5F200220 1 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.92 00.01 5F200220 2 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.93 00.01 5F200220 7 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.95 00.01 5F200220 12 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.97 00.01 5F200220 14 512 NORMAL WRITEPBLK|DATACHECK 23:46:41.99 00.01 5F200220 13 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.00 00.01 5F200220 15 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.02 00.01 5F200220 16 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.04 00.01 5F200220 8 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.05 00.01 5F200220 24 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.07 00.01 5F200220 10 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.09 00.01 5F200220 9 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.10 00.01 5F200220 17 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.12 00.01 5F200220 11 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.14 00.01 5F200220 3 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.15 00.00 5F200220 25 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.16 00.00 5F200220 17 512 NORMAL READPBLK 23:46:42.17 00.01 5F200220 17 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.19 00.00 5F200220 5 512 NORMAL READPBLK 23:46:42.19 00.01 5F200220 5 512 NORMAL WRITEPBLK|DATACHECK 23:46:42.21 00.00 5F200220 0 0 NORMAL AVAILABLE 23:46:42.89 00.00 5F200220 0 0 NORMAL PACKACK|INHERLOG 23:46:42.89 00.00 5F200220 1 512 NORMAL READPBLK 23:46:42.89 00.00 5F200220 2 512 NORMAL READPBLK 23:46:42.89 00.00 5F200220 8 512 NORMAL READPBLK 23:46:42.89 00.00 5F200220 9 512 NORMAL READPBLK 23:46:42.90 00.00 5F200220 5 512 NORMAL READPBLK 23:46:42.90 00.00 5F200220 5 512 NORMAL WRITEPBLK 23:46:42.90 00.00 5F200220 5 512 NORMAL WRITEPBLK 23:46:42.91 00.00 5F200220 6 512 NORMAL READPBLK 23:46:42.91 00.00 5F200220 7 512 NORMAL READPBLK 23:46:42.91 00.00 5F200220 11 512 NORMAL READPBLK|EXFUNC 23:46:42.92 00.00 5F200220 3 512 NORMAL READPBLK|EXFUNC 23:46:42.93 00.00 5F200220 0 0 NORMAL PACKACK|BYPASS_VALID_CHK 23:46:42.93 00.00 5F200220 5 512 NORMAL READPBLK|EXFUNC 23:46:42.93 00.00 5F200220 17 512 NORMAL READPBLK|EXFUNC 23:46:42.94 00.01 5F200220 3 512 NORMAL WRITEPBLK|EXFUNC|DATACHECK 23:46:42.95 00.01 5F200220 17 512 NORMAL WRITEPBLK|EXFUNC|DATACHECK 23:46:42.97 00.00 5F200220 25 1024 NORMAL READPBLK 23:46:42.98 00.01 5F200220 17 512 NORMAL WRITEPBLK|EXFUNC|DATACHECK