Logical WORM

Logical WORM (LWORM) is a software-emulated, virtual equivalent of the Write-Once, Read-Many (WORM) capability available on physical tape media.

The LWORM attribute emulates physical WORM to leverage host software support of WORM physical media. With LWORM, an attached host recognizes the TS7700 as an LWORM-compliant library, able to contain WORM-compliant virtual drives.
The LWORM attribute provides the following functions:
  • Assigns a data class construct property to volumes assigned as LWORM-compliant, either upon the first mount or during reuse from scratch
  • Generates a temporary World Wide Identifier (WWID) during WORM type assignment that is sent to the host, then bound (persistently saved) to the volume
  • Generates and maintains a persistent write-mount count for each LWORM volume synchronized to the host software
  • Permits appends to LWORM volumes using only physical WORM append guidelines
  • Permits host software to access LWORM attributes for a given, mounted volume
Logical WORM attributes cannot be appended to previously written volumes. In order for the volume to be LWORM-compliant, it must be assigned so before data is written to it, either upon the first mount or during reuse from scratch. When all clusters within a TS7700 are LWORM-compliant, the host Read Device Characteristics commands begin to set a new flag stating the device or composite-library is LWORM-compliant.

Data Class LWORM assignment (binding)

Virtual volumes are configured as LWORM volumes in the Data Class record, modifiable on the Data Class panel of the TS7700 Management Interface. Binding refers to the process of persistently saving a type or attribute property of a volume. Prior to the binding of the property, any derived or assigned properties can be utilized but they are not permanent until the binding event occurs. Once the binding succeeds, the type and or attributes are said to be “bound” to the volume.
LWORM can be set for a new or existing Data Class, however the WWID for the volume can only be bound or cleared upon one of the following:
  • The first use of the volume after insert
  • The first reuse of the volume after scratch
The first use or reuse of an LWORM volume is only valid when the first write also occurs at the load point beginning of tape (BOT). Prior to the first write at BOT, the volume is only a candidate for use or reuse and any previously bound or NULL information remains unchanged.

Mount with expected WORM binding or clearing

During a mount, the TS7700 creates a new WWID for the volume if both of the following are true:
  1. The pending Data Class assignment states the volume should be treated as an LWORM
  2. The volume has never accepted a write operation (is newly inserted) or the mount sequence is scratch
If the pending Data Class assignment states the volume should not be treated as a logical worm and the other variables are true, then a temporary NULL WWID value is assumed.
Once a WWID is bound to a volume, all future non-scratch mounts treat the volume as an LWORM volume independent of any currently configured Data Class settings. Once a WWID is already bound, changes to the Data Class name or attributes for the volume do not affect the binding of the LWORM volume type. A bound LWORM volume is composite in scope, which means that when it is bound with a WWID, all clusters within a grid honor all LWORM rules associated with that volume. Binding (to a new WWID or clearing of an existing WWID) can only occur at first use or reuse of a volume.
Important: A non-LWORM volume with existing data cannot be bound to a WWID by configuring a Data Class then performing a mount or demount sequence unless the mount is a scratch mount and a write operation occurs at BOT. Any previously bound WWID can be cleared (NULL WWID) through the binding process only if a scratch mount operation has a pending non-LWORM Data Class setting and a first write occurs at BOT. This is the means of which an LWORM volume can legally be reused as a standard read and write volume.

WWID and write-mount count z/OS® DFSMS synchronization

The write-mount count is a host software synchronized value that mimics tape media WORM behavior. Each time a volume is assigned a new WWID, a write-mount count (initially set to zero) must be associated with and bound to the volume during the first write from BOT. Each time a volume is mounted thereafter and at least one write operation of any kind is issued during that mount, the write-mount count for the volume is increased by one. The write-mount count can be used to count the total number of times a volume was mounted with modifications. When the write-mount count is bound for the first time it has a value of 1, which represents the initial value of 0 increased by one due to the first write from BOT.
To keep the host and the TS7700 data facility system managed storage (DFSMS) synchronized, WWID and write-mount count are handled as follows:
Table 1. WWID and write-mount count scenarios. Table describes conditions of host write-mount count scenarios.
If Then Result
The host has previously expired and reused a volume and the user designates the volume can be reused. The Removal Media Manager (RMM) resets the explicit WORM identifier, the WWID, and write-mount count within the host catalogue. The host is informed that the current reset assignment represents a standard read and write volume without any WORM obligations. Host software can mark the volume for scratch and it can be returned to scratch during the next scratch processing phase.
During host software mount processing, a mount with expected WORM binding or clearing occurs. A WWID is temporarily generated and eventually bound or cleared at first write from BOT. If a first write from BOT does not occur, this temporary WWID is discarded leaving any previously bound WWID value intact.
A new WWID is temporarily assigned. The TS7700 resets the write-mount count for the volume to 0 (within memory). During the first write from BOT, this write-mount count is increased to a value of 1 and bound when the temporary WWID is bound.

If a first write from BOT does not occur, this write-mount count is discarded, leaving any previously bound write-mount count value intact.

If a NULL-WWID is to be bound (for example, standard read and write volume), the write-mount count is not increased with each first write operation.

Logical WORM volume usage restrictions

Logical WORM volumes must have Non-Rewriteable concepts implied by the LWORM type of the volume. Once a WWID is bound to a volume, only WORM-supported appends are allowed. No retention concepts such as prevention of eject, delete, delete-expire, nor assignment to scratch categories are restricted by the TS7700.
However, any attempt to overwrite previously written data on an LWORM bound volume (independent of write-mount count) fails if it does not meet the Append Only Rules, as follows:
  1. Appending restrictions are the same as those for physical WORM.
  2. If a volume has previously accepted a completed EOV construct sequence followed by one or two tape marks, the volume can no longer be written to.
  3. Writing is not allowed at any location prior to the start of a construct sequence, where both of the following are true:
    • The sequences are those explicitly enumerated below
    • At least one non-construct record has been written to the tape (rule 6 is an exception)
  4. Writing is not allowed over or before any construct sequence that is followed by another construct sequence or data virtual block that have been explicitly or implicitly synchronized. The synchronization event should, at a minimum, progress the legal append point to the block following the last completed construct sequence. Explicit synchronization results from the acceptance of one of the following commands:
    • SYNC
    • WTM
    • RUN
    Implicit synchronization includes:
    1. Synchronize Buffer
    2. Forward Space Block, Forward Space File, Backward Space Block, Backward Space File, Rewind, Rewind Unload, Write Tape Mark, Erase Gap, Data Security Erase or Locate Block
    3. Read Forward, Read Previous or Read Backward and there is buffered write data
    4. A Write command is issued in a command chain following either a Mode Set command that specifies tape write immediate mode or a Set Tape Write Immediate command
    5. The virtual end of volume point is reached or exceeded
  5. Overwriting of any data virtual block that has been explicitly or implicitly synchronized is not allowed. The synchronization event, at a minimum, advances the legal append point to the block following the last completed non-construct data virtual block.
  6. Full overwrite of the entire tape and any constructs is permitted so long as no data virtual blocks (non-constructs) have been written.
  7. All or partial overwrite of the last construct sequence is permitted when the construct sequence is either incomplete, or is not followed by additional data or tape marks.
  8. Writing is not allowed at points other than following the last complete volume record of any type when a volume is loaded and its ending disposition cannot be definitively determined. This can occur after an outage or after a volume corruption where the last known persistent append point is either unknown or no longer valid.