I am interested in any programming facilities (QIO,
application calls, sharables etc) that I can link with or
call to, to get information about stripe and RAid sets
from within a program. Specifically, I am looking for the
name of the devices, its members, their status, chunk
size etc.
Is there any such thing available? I am not concerned
if I have to get to the information via unspported means
(I.e. internal structures etc) I am only looking for
information about the device (AKA GETDVI system service)
without having to know the device names, members etc.
Any help would be most appreciated!!
Thanks in advance!
For the host-based StorageWorks RAID Software for OpenVMS, there is limited
information available via the traditional VMS system methods (i.e. $GETDVI) at
present (basically, you can tell whether it is a RAID-5 array or a RAID-0/0+1
array, but that's about it).
To help get around this deficiency until $GETDVI learns how to get the
necessary info from DPDRIVER, there were a couple of command procedures shipped
starting with V2.2 of StorageWorks RAID Software for OpenVMS that will parse
the output of RAID SHOW commands to obtain information about all the host-based
RAID-0, 0+1, and RAID-5 arrays and put the info into DCL symbols (or logical
names) where a program or command procedure can access it.
The information provided is:
For arrays:
RAID$CONFIG_ARRAY_COUNT Number of RAID arrays
RAID$CONFIG_ARRAY_n_ID RAID array ID for each RAID array
RAID$CONFIG_ARRAY_n_RAID_LEVEL RAID array RAID Level (0, 5, 0+1)
RAID$CONFIG_ARRAY_n_STATE RAID array state (normal,
reconstructing, etc.)
RAID$CONFIG_ARRAY_n_VIRTUAL_DEVICE_LIST DPAn: device name(s) for partitions
RAID$CONFIG_ARRAY_n_MEMBER_COUNT RAID array size (# of members)
RAID$CONFIG_ARRAY_n_MEMBER_m_DEVICE_NAME Member device names
RAID$CONFIG_ARRAY_n_MEMBER_m_STATE Member state (normal, missing...)
In addition, for RAID 0+1 arrays:
RAID$CONFIG_ARRAY_n_MEMBER_m_SHADOW_MEMBER_COUNT Shadow set depth
RAID$CONFIG_ARRAY_n_MEMBER_m_SHADOW_MEMBER_s_DEVICE_NAME Device names
RAID$CONFIG_ARRAY_n_MEMBER_m_SHADOW_MEMBER_s_STATE State of each:
"ShadowMember", "FullCopying", or "MergeCopying"
For sparesets:
RAID$CONFIG_SPARESET_COUNT Number of sparesets
RAID$CONFIG_SPARESET_n_ID Spareset ID for each spareset
RAID$CONFIG_SPARESET_n_CHARACTERISTIC_SIZE Spareset characteristic size
RAID$CONFIG_SPARESET_n_MEMBER_COUNT Spareset size (# of members)
RAID$CONFIG_SPARESET_n_MEMBER_m_DEVICE_NAME Member device names
RAID$CONFIG_SPARESET_n_MEMBER_m_STATE Member state (bound, etc.)
This info could be used to do things like automatic notification of RAID array
membership changes and so forth. There's also an example command procedure
which uses this capability to do a real-time color display of RAID array
status.
Look for RAID$CONFIG.COM and RAID$DISPLAY.COM in SYS$EXAMPLES: after installing
V2.2 or a later version.
(They don't currently get you the chunk size, but you could easily edit them to
add that capability, as the info is contained in the RAID SHOW output.)
For HSJ/HSD/HSZ stripesets, mirrorsets, and raidsets, the problem is harder,
since these devices just appear as large DUAxx: devices to OpenVMS. I'm not
aware of a similar utility to obtain info about HSx arrays, but in theory one
should be able to do a $SET HOST/DUP to the HSJ/HSD ($SET HOST/SCSI to the HSZ
using HSZterm), do SHOW commands, and parse the output as well.
At the U.S. Fall DECUS, I saw a demo of a GUI interface that displayed
HSx RAID configuration information, but I don't know the status of this
in product form.
I hope this helps.