1 marek 1.1 // Copyright (c) 2008 DMTF. All rights reserved.
2 [Association, Version ( "2.19.0" ),
3 ClassConstraint { "inv: self.Dependent.IsComposite = true" },
4 UMLPackagePath ( "CIM::Device::StorageExtents" ),
5 Description (
6 "This specialization defines how data is striped across "
7 "StorageExtents. Additionally, it includes information on "
8 "distribution of check data so that the \'usual case\' RAID "
9 "devices can be created in one step." )]
10 class CIM_CompositeExtentBasedOn : CIM_BasedOn {
11
12 [Override ( "Antecedent" ),
13 Min ( 1 ),
14 Description ( "The underlying StorageExtent." )]
15 CIM_StorageExtent REF Antecedent;
16
17 [Override ( "Dependent" ),
18 Description (
19 "The StorageExtent which is built on the StorageExtent." )]
20 CIM_StorageExtent REF Dependent;
21
22 marek 1.1 [Required, Override ( "OrderIndex" ),
23 Description (
24 "Order matters to composite extents. An example of the "
25 "use of this property is when defining a RAID-0 striped "
26 "array of 3 disks. The resultant RAID array is a "
27 "composite extent that is dependent on (as described by "
28 "CompositeExtentBasedOn) the StorageExtents that "
29 "represent each of the 3 disks. The OrderIndex of each "
30 "CompositeExtentBasedOn association from the disk Extents "
31 "to the RAID array could be specified as 1, 2 and 3 to "
32 "indicate the order in which the disk Extents are used to "
33 "access the RAID data." ),
34 MappingStrings { "MIF.DMTF|Protected Space Extent|001.1" }]
35 uint16 OrderIndex;
36
37 [Description (
38 "True if logical blocks in the underlying StorageExtents "
39 "are mapped in decrementing order. This property "
40 "corresponds to the INCDEC value in the SCSI SCC-2 Volume "
41 "Set PS_Extent Descriptor." )]
42 boolean LBAsMappedByDecrementing;
43 marek 1.1
44 [Description (
45 "True if the logical block mapping algorithm includes "
46 "check data bytes. This property corresponds to the "
47 "NOCHKSKIP attribute in the SCC-2 Volume Set PS_Extent "
48 "Descriptor." )]
49 boolean LBAMappingIncludesCheckData;
50
51 [Description (
52 "The total number of blocks that will be consumed on the "
53 "Dependent Extent. This is limited by the Antecedent\'s "
54 "NumberOfBlocks, but is included explicitly to provide "
55 "for the DMTF MIF mapping. In SCSI SCC, this is "
56 "equivalent to the NUMBER OF LBA_PS(s) field in the "
57 "Volume Set PS_Extent Descriptor." ),
58 MappingStrings { "MIF.DMTF|Protected Space Extent|001.3" },
59 ModelCorrespondence { "CIM_StorageExtent.NumberOfBlocks" }]
60 uint64 NumberOfBlocks;
61
62 [Description (
63 "The Dependent\'s BlockSize is limited by the "
64 marek 1.1 "Antecedent\'s. In SCSI SCC, this is equivalent to the "
65 "NUMBER OF BYTES PER LBA_PS field in the RedundancyGroup "
66 "P_Extent Descriptor." ),
67 Units ( "Bytes" ),
68 MappingStrings { "MIF.DMTF|Protected Space Extent|001.4" },
69 ModelCorrespondence { "CIM_StorageExtent.BlockSize" },
70 PUnit ( "byte" )]
71 uint64 BlockSize;
72
73 [Description (
74 "Number of bytes which form the stripe size for the "
75 "Dependent StorageExtent. If the CompositeExtent is "
76 "concatenated instead of striped, then "
77 "UserDataStripeDepth should be set to zero." ),
78 Units ( "Bytes" ),
79 MappingStrings { "MIF.DMTF|Protected Space Extent|001.6" },
80 PUnit ( "byte" )]
81 uint64 UserDataStripeDepth;
82
83 [Description (
84 "Number of bytes of user data to skip before starting the "
85 marek 1.1 "check data interleave." ),
86 Units ( "Bytes" ),
87 MappingStrings { "MIF.DMTF|Physical Extent|001.6" },
88 PUnit ( "byte" )]
89 uint64 UnitsBeforeCheckDataInterleave;
90
91 [Description (
92 "Number of bytes to be reserved for check data." ),
93 Units ( "Bytes" ),
94 MappingStrings { "MIF.DMTF|Physical Extent|001.7" },
95 PUnit ( "byte" )]
96 uint64 UnitsOfCheckData;
97
98 [Description ( "Number of bytes to be reserved for user data." ),
99 Units ( "Bytes" ),
100 MappingStrings { "MIF.DMTF|Physical Extent|001.8" },
101 PUnit ( "byte" )]
102 uint64 UnitsOfUserData;
103
104
105 };
|