3.2.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

The server MUST implement the following elements:

ClusPrepDisk: A ClusPrepDisk is an object that is associated with a disk that is accessible to the server and implements the target role in the SCSI-3 protocol [SPC-3] with the server fulfilling the role of initiator. A disk associated with a ClusPrepDisk is typically a storage device.

ClusPrepDisk.CPrep_DiskId: A ClusPrepDisk has identification properties as specified in the CPREP_DISKID (section 2.2.2) structure.

ClusPrepDisk.DiskProps: A ClusPrepDisk has configuration properties as specified in the DISK_PROPS (section 2.2.5) or the DISK_PROPS_EX (section 2.2.6) structure.

ClusPrepDisk.AttachedState: A ClusPrepDisk has an attach state that is either Attached or Not Attached as specified in CprepDiskAttach (section 3.2.4.14).

ClusPrepDisk.OwnedState: A ClusPrepDisk has an owned state that is NotOwned, OwnedButNotByThisServer, or OwnedByThisServer. ClusPrepDisk.OwnedState transitions between NotOwned and OwnedByThisServer as specified in CprepDiskPRArbitrate (section 3.2.4.15) and CprepDiskStopDefense (section 3.2.4.6).

ClusPrepDisk.OnlineState: A ClusPrepDisk has an online state that is either Online or Not Online as specified in CprepDiskOnline (section 3.2.4.7) and CprepDiskSetOnline (section 3.2.4.26).

The disk associated with a ClusPrepDisk can have one or more partitions. Partitions are numbered from zero to the number of partitions on that disk minus one.

Partitions are associated with volumes that can have a file system. Partitions and volumes are accessible when ClusPrepDisk.OnlineState is equal to Online. How partitions and volumes are manipulated and associated with each other with respect to a disk is implementation-specific.

ClusPrepDiskList: A ClusPrepDiskList is an unordered list of ClusPrepDisks.

See CprepPrepareNodePhase2 (section 3.2.4.4) for more information on how the ClusPrepDiskList is constructed.

Prepare State: A server maintains its prepare state, which indicates whether it is capable of handling all of the methods in the interface. Possible values can be Initial, Preparing, or Online.

Latency Time Source: A server maintains a time source that can be used to measure the latency of an operation in millisecond granularity. For example, a server typically has a local time source that reports the time of day or that reports the elapsed time since the server computer booted.