Professional Documents
Culture Documents
Storage
Network
Management
Roger Cummings
SAN Technologist, VERITAS Software
Cummings_i–x_001–105 3/2/04 12:55 PM Page iv
Copyright © 2004 Storage Networking Industry Association (SNIA). All rights reserved.
The SNIA logo is a trademark of SNIA. This publication—photography, illustration, and
text—is protected by copyright and permission should be obtained from the publisher
prior to any prohibited reproduction, storage in a retrieval system, or transmission in any
form or by any means, electronic, mechanical, photocopying, recordings, or likewise. To
obtain permission(s) to use material from this work, please submit a written request to
SNIA, Permissions Department, 301 Rockrimmon Blvd, South, Colorado Springs, CO
80919. For information regarding permissions, call (719) 884-8903.
Photography, illustration, and text incorporated into SNIA printed publications are copy-
right protected by SNIA or other owners and/or representatives. Downloading, screen cap-
turing or copying these items in any manner for any use other than personally viewing the
original document in its entirety is prohibited.
Notice to Government End Users: SNIA software and documentation are provided with
restricted rights. Use, duplication or disclosure by the Government is subject to the restric-
tions set forth in FAR 52.227-19 and subparagraph (c)(1)(ii) of Rights in Technical Data
and Computer Software clause at DFARS 252.227-7013.
Cummings_i–x_001–105 3/2/04 12:55 PM Page v
Contents
Preface vii
About the Author x
Chapter 1 Introduction 1
Chapter 2 Definition of Terminology 5
Chapter 3 A Brief History of Management Protocols 13
Chapter 4 An Overview of Current Management Techniques 17
Chapter 5 An Introduction to Web-Based
Enterprise Management and SMI-S 21
Chapter 6 Profiles of Storage Network Equipment Types 51
Chapter 7 Available Tools and Development Facilities 83
Chapter 8 Future Developments and Goals 89
Chapter 9 Summary 93
Appendix A Applicable Standards 95
Appendix B Recommended Bibliography 101
Publications 101
Web Sites 102
Cummings_i–x_001–105 3/2/04 12:55 PM Page vi
Cummings_i–x_001–105 3/2/04 12:55 PM Page vii
Preface
Development of the Fibre Channel interface in the early 1990s presaged a major
change in computer architecture: the separation of storage peripherals from
processing complexes. This change allowed storage capacities to increase almost
without limit, regardless of the physical limitations of server cabinets and cable
lengths. The impact of this new architecture was not immediately apparent
because the new interface still used the Small Computer System Interface (SCSI)
command sets that had been used by a predecessor interface for many years,
and thus did not require any major operating system changes. The small number
of disks in the initial Fibre Channel configurations could be discovered, managed,
and configured using exactly the same schemes as for that predecessor interface.
As these configurations grew to incorporate hundreds of devices connected
by switches, the load placed on the administrators using these schemes became
intolerable.
With the advent of storage networks, for the first time servers running dis-
parate operating systems (for example, Windows and UNIX) could feasibly be
connected to the same set of storage resources. Again, this advance required little
change in the operating systems themselves, because they continued to be unaware
of each other. The systems were not only incapable of sharing stored information,
but could destroy information in unrecognized formats. To provide the requisite
isolation between noncooperating systems, additional services were introduced
into the storage network, together with new features, such as zoning, that
restricted the connectivity available to each server. In addition, virtualization
began to be widely employed as a mechanism of separating each server’s view of
storage from its actual physical configuration in the network. These new features
inevitably added considerable complexity to the management of storage networks.
Throughout the industry, therefore, new specialist administration groups were
formed to manage storage and its infrastructure, which in turn led to the creation
of applications specifically tailored to support this task.
Such applications, however, proved difficult to develop for two major reasons.
First, storage infrastructure is much more fragmented, and of much less end-to-
end nature, than a comparable network infrastructure. Although network infra-
structure management is complicated by network address translators, storage
networks have virtualization devices that provide both address translation and
complex processing of the information itself. Additionally, storage networks have
bridges that always terminate the SCSI command protocols and may also trans-
late between different transport technologies. Both of these classes of device are
largely opaque to any management technology.
vii
Cummings_i–x_001–105 3/2/04 12:55 PM Page viii
viii Preface
Preface ix
ment of network storage will become simpler and cheaper than managing an
equivalent amount of storage attached directly to servers. Ultimately, when the
reduced costs for management are delivered, end users will be able to build larger
more powerful networks and to adopt storage networks more rapidly.
The Storage Networking Industry Association (SNIA) is working on defini-
tions to meet the above requirements as part of its Storage Management Initia-
tive (SMI). SMI is based on the Common Information Model (CIM) and
Web-Based Enterprise Management (WBEM) standards as pioneered by the Dis-
tributed Management Task Force (DMTF). By leveraging and extending existing
definitions, application developers will have access to technology proven in other
applications and information definitions that promote the maximum common-
ality among all similar types of equipment, even beyond storage applications.
Early versions of applications using this technology have already been demon-
strated at industry conferences, and the definitions have reached a level of stabil-
ity that is appropriate for widespread deployment.
This booklet is therefore being created at a highly significant time in the devel-
opment of storage network management. The work in SMI to support equivalents
to the basic storage functionality found in other access schemes and information
sources is drawing to a close, and production-grade applications utilizing these def-
initions are being deployed. But the work to incorporate additional definitions nec-
essary to provide significant simplification of the management and administration
of storage networks is just beginning. Substantial work lies ahead, but the foun-
dations necessary to support that work have been put in place. The goal of an intel-
ligent, self-administering storage network, regarded as impossible with predecessor
technologies, is clearly achievable using the definitions SMI has created. The aim
of this work is simple: to remove the administrative burden as a consideration in
the decision to deploy larger and more powerful storage networks.
Acknowledgments
Much of the information contained in this booklet is based upon the manage-
ment tutorials that have been presented at the twice-yearly StorageNetworking-
World conferences by Mark Carlson, John Crandall, and Steve Jerman, who have
devoted much time and energy to leadership roles in the SNIA standardization
effort. Creating the tutorial series was an initiative of the SNIA Education Com-
mittee, and in particular of Paul Massiglia. Steve Peters and Mike Walker have also
created key documents that have been utilized. The SMI Forum within SNIA, and
in particular Roger Reich, its Chairman, has also contributed substantially to the
materials underlying this effort. Educational resources of the DMTF have also
been utilized.
Cummings_i–x_001–105 3/2/04 12:55 PM Page x
x
Cummings_i–x_001–105 3/2/04 12:55 PM Page 1
Introduction
1
Cummings_i–x_001–105 3/2/04 12:55 PM Page 2
Management Application
Integration Infrastructure
Object Model Mapping
Discovery Security
Service Protocol Mapping Service
Transport Mapping
SNMP
Command CORBA
Telnet SCSI XML ..... . TCP/IP
RPC Line
C++ C Java Mode DTD ... .
.
Library Socket
Library Library Page FC-GS
Device Types
device support can be added. Users have begun to view interoperability of new
devices with their existing management schemes as being as important as, if not
more so than, the interoperability of the “data”interfaces such as SCSI or Fibre
Channel.
These difficulties caused several members of the Storage Networking Indus-
try Association (SNIA) to meet in private session in 2000 to discuss ways to obvi-
ate this bottleneck. They spent two years defining a consistent management
interface suitable for various types of storage network equipment, which became
a specification called “Bluefin” that the group presented to SNIA in mid-2002 as
a basis for further work. The Storage Management Initiative (SMI) that resulted
has leveraged the existing work of the Distributed Management Task Force
(DMTF) to define a single interface sufficiently rich and extensible to support all
of the management functions required in a storage network (see Figure 1–1). The
interface also maximizes the commonality of the information reported and the
controls supported. To introduce that interface, this booklet will:
• Define terminology used in established network management and developed
anew for storage networking
• Provide a brief history of the development of management tools for net-
works, covering both the advent of the Internet and developments in the
Internet Engineering Task Force
Cummings_i–x_001–105 3/2/04 12:55 PM Page 3
Chapter 1 Introduction 3
Definition of
Terminology
This chapter contains three sections. The first contains established terms from
computer networking, the second terminology specifically related to CIM, and the
third terms associated with the newer discipline of storage networking.
For greater detail or for a more comprehensive dictionary of terms used
throughout storage networking, please see the Web site at www.snia.org.
5
Cummings_i–x_001–105 3/2/04 12:55 PM Page 6
BER Basic Encoding Rules. An encoding scheme which allows each data item to
be identified and excoded separately. Roughly corresponds to the Type Length
Value (TLV) scheme used in many protocols.
Communication A process by which information is transferred between at least
two parties.
Communication channel The medium through which information is transmitted.
CSMA Carrier Sense Multiple Access. A contention media-access strategy.
CSMA/CD CSMA with Collision Detection.
DA Directory Agent. In the context of the Service Location Protocol (SLP), a
process that caches SLP service advertisements registered by Service Agents and
forwards the service advertisements to User Agents on demand.
DAAdvert Directory Agent Advertisement. A message by which a Directory
Agent can advertise its presence and capabilities.
DHCP Dynamic Host Control Protocol. An Internet protocol that allows nodes
to dynamically acquire (“lease”) network addresses for periods of time rather than
having to preconfigure them. DHCP greatly simplifies the administration of large
networks and networks in which nodes frequently join and part.
DMTF Distributed Management Task Force. An industry organization that
develops management standards for computer system and enterprise environ-
ments. DMTF standards include WBEM, CIM, DMI, DEN, and ARM. (See
http://www.dmtf.org.)
Ethernet A popular local-area network that uses a contention media-access
method over a bus topology of coaxial cable. Also used to refer to the standard
specified by IEEE 802.3.
Gateway A computer that interconnects disparate types of networks, translating
protocols as necessary. For example, a gateway might connect personal comput-
ers on a LAN to a mainframe computer.
Host Computer that controls network communication in a hierarchical network.
HTTP HyperText Transfer Protocol. A request–reply application-level protocol
widely used on the Internet.
IANA Internet Assigned Numbers Authority. The administrator of identifiers
associated with IETF RFCs.
IEEE Institution of Electrical and Electronic Engineers. A worldwide organiza-
tion incorporating a Standards Association (IEEE-SA), which is an ANSI-accred-
ited standards developer in a number of areas, including LANs and wireless LANs.
(See http://www.ieee.org.)
IETF Internet Engineering Task Force. A large, open international community
of network designers, operators, vendors, and researchers concerned with the
Cummings_i–x_001–105 3/2/04 12:55 PM Page 7
evolution of the Internet architecture and the smooth operation of the Internet.
(See http://www.ietf.org.)
Interconnect element Nonterminal network elements, such as switches, hubs,
routers, and directors.
IP Internet Protocol.
ISO International Standards Organization. A worldwide organization headquar-
tered in Geneva. (See http://www.iso.ch.)
LAN Local-Area Network. A network that is limited to a small geographic area.
MAC Media-Access Control. Portion of the Data Link layer that controls access
to the communication channel.
Network A collection of hardware and software that enables a group of com-
puters to communicate and provide users with access to shared resources.
Network adapter A device that enables a computer to attach to a network.
Network architecture A description of how communication occurs within a spe-
cific type of network.
Network segment An uninterrupted length of the network communication
channel. For example, a single cable between two repeaters, bridges, or routers is
a segment.
OSI Open Systems Interconnection. A protocol stack for network communica-
tion, now largely superseded by TCP/IP.
Protocol A code or set of rules by which communication is initiated, maintained,
and terminated.
Protocol stack A layered set of protocols that work together to provide network
functions. Each intermediate protocol layer uses the layer below it to provide a
service to the layer above.
Receiver The component on the “hearing” end of a transmission.
Repeater A device that connects two network segments to make them work as
one. Repeaters can extend the length of a network beyond the physical limitations
of a single cable.
RFC Request for Comments. Documents published by the IETF.
Ring A network topology that connects network devices in a continuous loop.
Router A device that connects networks and can determine the best path for data
when there are multiple paths.
Scope A set of services, typically making up a logical administrative group.
SA Service Agent. A process working on behalf of one or more services to adver-
tise the services in the network.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 8
CIM Terminology
Aggregation A strong form of an association. For example, the containment rela-
tionship between a system and the components that make up the system can be
called an aggregation. An aggregation is expressed as a qualifier on the associa-
tion class. Aggregation often implies, but does not require, that the aggregated
objects have mutual dependencies.
Cardinality The number of values that may apply to an attribute for a given
entity. Refer to the Unified Modeling Language.
CIM Common Information Model. An object oriented description of the enti-
ties and relationships in a business’s management environment maintained by the
Distributed Management Task Force. CIM is divided into a core model and com-
mon models. The core model addresses high-level concepts (such as systems and
devices), as well as fundamental relationships (such as dependencies). The com-
mon models describe specific problem domains such as computer system, net-
work, user, or device management. The common models are subclasses of the core
model and may also be subclasses of each other.
Client A process that issues requests for service. Formulating and issuing requests
may involve multiple client processes distributed over one or more computer sys-
tems. The collection of client processes involved in formulating and issuing
requests is known as a consumer.
Consumer A host, identified by HBA WWN or other identifier that is allowed
access to a storage-addressable unit.
Cooperating clients A set of consumer processes that are aware of each other and
are able to coordinate access to (and control of) resources among themselves.
Enumerate An operation used to determine the subclasses, subclass names,
instances, and instance names in the target namespace. If successful, the method
returns zero or more requested elements that meet the required criteria.
Extrinsic method A method defined as part of the CIM schema. Extrinsic meth-
ods are invoked on a CIM Class (if static) or Instance (otherwise). An extrinsic
method call is represented in XML by the METHODCALL element and the
response to that call is represented by the METHODRESPONSE element. See
also Intrinsic method.
Intrinsic method Operations made against a CIM server and a CIM namespace
independent of the implementation of the schema defined in the server. Exam-
ples of intrinsic methods in XML include the IMETHODCALL element and
Cummings_i–x_001–105 3/2/04 12:55 PM Page 10
joins the XML data description language and HTTP transport protocol with an
underlying information model, CIM, to create a conceptual view of the enterprise.
XML-CIM Listener A server application that receives and processes XML-CIM
Export Message requests and issues XML-CIM Export Message responses.
XML-CIM Server A server that receives and processes XML-CIM Operation
requests and issues XML-CIM Operation responses.
A Brief History
of Management
Protocols
The roots of the network management protocols that are in common use today
can be traced back to developments in the late 1980s. Prior to that time, network
management had typically been performed using low-level signaling techniques
to send special control information. Receipt of this information would cause
receiving hardware to cease normal operation and enter a special diagnostic mode
in which it responded to commands contained in the information. This approach
worked well in homogeneous networks, which used the same interface technol-
ogy throughout. However, with the advent of protocol stacks and abstraction of
the lower level network characteristics, networks began to support multiple dif-
ferent types of interface technology, which meant that a different approach was
necessary in order to support network-wide management. At this point, both the
TCP/IP and Open System Interconnect (OSI) protocol stacks began to define net-
work management protocols that operated at the application layer. This change
in approach had both advantages and disadvantages. The major advantage was
that management could now be performed using the same tools at any point in
the network; the major disadvantage was that management was only possible
when the entire protocol stack was active and working correctly.
The move to an application-layer approach caused the creation of a
client/server architecture that is still in widespread use (see Figure 3–1). A man-
agement client that executed under the user account of the network administra-
tor on a host computer communicated with management servers resident on each
of the other items of equipment in the network that required management. In
early networks, the servers tended to reside on only two types of “other equip-
ment” hosts, and computers acting as gateways between multiple physical network
segments. In fact, one of the earliest definitions for the protocol between such
clients and servers was the Internet Engineering Task Force’s (IETF’s) Simple
Gateway Monitoring Protocol, defined in November 1987. This protocol intro-
duced a number of approaches that are still evident in network management pro-
13
Cummings_i–x_001–105 3/2/04 12:55 PM Page 14
S S
S
S
gateways
C
S
S
C Management Client
hosts S Management Server
Unmanaged System
tocols. It adopted Abstract Syntax Notation 1 (ASN.1) and its Basic Encoding
Rules (BER) to define the contents of the protocol data units exchanged between
the client and the server, rather than any fixed format. Three of the primitive data
types defined by ASN.1 were used: octet (byte) string, integer, and unique iden-
tifier. The information upon which the protocol operated was defined only in
terms of variables identified by an octet string name, and able to contain either
an integer or octet string value. Three general variables, and two sets of nine vari-
ables each, instrumenting network interface performance and IP addressing/rout-
ing, were all that was included. The protocol was defined in terms of primitive
handshake operations to read and set the values contained in those variables, with
a minimal number of unsolicited messages for traps. There were no “imperative”
commands with more specific functions like “disable interface”; these were viewed
as being unnecessarily specific. Such actions were expected to be triggered by set-
ting a variable to a specific value. The protocol was also designed to operate over
an unreliable, connectionless transport. The encoding rules specified that each
variable be encoded as a type, a length, and a value.
An effort contemporary with the Simple Gateway Monitoring Protocol
(SGMP) in the IETF, called the High-Level Entity Management system, also estab-
lished a precedent by having its protocol, control language, and information vari-
ables defined in separate documents.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 15
appear until the late 1990s, and did not become full Internet standards until 1999.
SMIv2 is more restrictive than SMIv1 in a number of areas, including restriction
of the maximum length of identifiers to 64 octets, and disallowal of the use of
hyphens in identifiers (although this still widely occurs). SMIv2 introduces an
additional syntax called counter64, but RFC2576 gives explicit rules defining how
this should be handled in situations where multiple versions are employed in the
same system. Any variables in the counter64 syntax are reported as a “noSuch-
Name” exception to an SMIv1 client, and any Request from such a client that con-
tains a variable binding with the counter64 syntax is discarded and a parse error
logged.
SMIv3, incorporating both a user-based security model and view-based
access control, was completed in 1999 but has not yet gone beyond Draft Stan-
dard status at the IETF.
The history described above, therefore, is one of incremental extension and
clarification since the move to application-level management in the late 1980s.
The “data model” has remained largely unchanged in that time, and still consists
of independently specified variables collected into groups for ease of access only.
Relationships and dependencies between the variables are still expressed only in
the text of descriptions, and therefore cannot be analyzed or checked by tools such
as compilers. Although this approach is eminently suitable for the job for which
it was first envisaged, namely the collection of statistics from gateways, it has dis-
tinct limitations with respect to the overall management of today’s dynamically
changing networks.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 17
An Overview of
Current Management
Techniques
This chapter describes the techniques presently being used by managers of net-
works in general, and storage networks in particular. The current state of the art
is defined. Standardized information definitions presently used with the proto-
cols defined in the previous chapter are also described in detail.
it seems, are making management data and configuration control facilities avail-
able via HTML pages hosted on the equipment itself; apparently they believe that
this is an easier task than writing a MIB and creating an SNMP agent! Such pages
are by definition created for a human to view and manipulate, but requiring a
manager to create a separate connection with each piece of equipment is oner-
ous. There are also no standards for such pages, and each therefore tends to be
very different and reflect the manufacturer’s branding, thus requiring the network
manager to climb a learning curve for each new equipment type. Use of the pages
as a source of information for management applications is also problematic. The
process of extracting the information from the received HTML code is known by
the graphic term “screen scraping,” and it tends to be unstable in the face of equip-
ment firmware changes. At one end of the stability spectrum, simple design
changes to the pages that would have no effect on the viewing manager can lead
to the information being extracted erroneously. At the other end, even major
changes to the information displayed by the pages can go undetected, again lead-
ing to erroneous information. As HTML is a rendering technology, it contains lit-
tle information about the type of information (integer, string, etc.) being
displayed, forcing the application designer to make assumptions. Because of these
significant limitations, the workshop recommended that the IETF not produce
any management standards based on HTTP.
The results of the workshop and the discussion reported above emphasize the
fact that current management practices rely heavily on specially developed tools
and on SNMP, and will continue to do so for the foreseeable future. The remain-
der of this section therefore addresses SNMP as it is used in a wide variety of cur-
rent management tools. The first section deals with use of IETF standard MIBs
and the second with use of a nonstandard MIB that is nevertheless widely
employed in the storage networking industry.
Summary
The new approach to MIB development has taken some steps toward ensuring
the consistency of similar information reported by all types of managed equip-
ment, but at the cost of considerable design complexity. Many separate docu-
ments, in various stages of development, now have to be consulted by a vendor
in the course of creating a MIB for a new product. And despite the wealth of infor-
mation available, there is still relatively little information that can be retrieved
about the relationship between various parts of a system, and few features that
can be actively configured. The new approach to MIB definition has done little to
address the fundamental limitations of the modeling technique, and the new
“security” features incorporated in SMIv2 have not yet led to network managers
being willing to abandon their site-specific configuration tools, which obtain con-
siderable security by their obscurity.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 21
5
An Introduction to
Web-Based Enterprise
Management and
SMI-S
Background
This section describes the sequence of activities in DMTF and SNIA that led to the
formulation of the WBEM and SMI programs. The motivations of the pioneers in
both cases are explored, and the influences of previous work traced. Because little
documentation exists of some of the early activities in both cases, some of the
information contained here is the result of conversations between participants and
the author, who takes full responsibility for any incorrect representation.
DMTF
The technology on which WBEM is based had its genesis in the mid-1990s
at Microsoft. Dissatisfaction with both the fidelity of existing management
information definitions and the way in which that information was transported
led to a desire to define a more scalable and resilient scheme that would be capa-
ble of supporting enterprise-grade management of heterogeneous systems by
21
Cummings_i–x_001–105 3/2/04 12:55 PM Page 22
distributed means. An initial set of partners was then recruited, including Cisco,
Compaq, and Intel, and two separate specifications were placed in the public
domain in 1996. These were HyperMedia Management Schema (HMMS) and
HyperMedia Management Protocol (HMMP). In addition, the concept of a
HyperMedia Object Manager was introduced as an aggregation point for man-
agement data from multiple devices, which was capable of consistent presenta-
tion of that information to an operator or management application.
Prior to 1996, the DMTF was known as the Desktop Management Task Force,
and the organization was focused on producing standards for the management
and inventory of desktop PCs, mostly based on the Desktop Management Inter-
face (DMI) specification. However, after agreeing to work on HMMS, the orga-
nization changed both its direction and its name, becoming the Distributed
Management Task Force instead. The name of the schema also changed, becom-
ing the Common Information Model, and two major revisions of its specification
were released in 1997 and 1998.
The original intention was that HMMP would be standardized by the IETF,
but after an extended period during which the original proposal made no progress
in that organization, the work was redirected to the DMTF. At this point, the whole
initiative gained a new name, becoming Web-Based Enterprise Management
(WBEM). WBEM added a third standard, a representation and serialization of the
schema to simplify transport; the three resulting standards are described in detail
in the following sections.
Three characteristics of the developments described above have ultimately
become most important in enabling the success and widespread deployment of the
technology. First, leverage of the HyperText Transfer Protocol (HTTP) widely used
in Web applications as a transport mechanism instead of a proprietary transport
protocol allowed WBEM to take advantage of a sizable existing infrastructure. Sec-
ond, use of a multilevel architecture in which multiple Object Managers (see
below) can perform aggregation and some other processing on management infor-
mation before it is presented to an application provided considerable scalability.
Finally, and most importantly, CIM employs a much richer modeling
approach than earlier technologies, which only represented independent variables
arranged in tables. CIM is based on a schema that both employs object-oriented
techniques and makes use of several common modeling structures called “design
patterns” that were found in the mid-1990s to reoccur in many systems. A schema
has been defined as “an internal representation of the world; an organization of
concepts and actions that can be revised by new information about the world.”
CIM’s schema contains objects that represent the characteristics of the entities
being managed by the application, whether they are a physical entity such as a
switch, a logical entity such as a software package, or a file. In addition, CIM also
models the complex and multilevel relationships between these entities. This
allows the application to traverse the schema discovering types of objects and the
specific names and identifiers of the instances of those objects, just as it would if
it was accessing the equipment represented by those objects via “in-band” means.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 23
SNIA
The SNIA SMI is the ultimate result of a private meeting of a number of SNIA
member companies held in 2000. The meeting was called as a result of several
management software vendors’ frustration with the level of effort and cost they
were expending to support new devices and obtain reliable connectivity and inter-
operability. These difficulties resulted in a high cost of ownership and an extended
“time to market” for new versions as viewed by customers. The group agreed to
investigate methods by which they could pool resources to address those prob-
lems, and the project that became known as “Bluefin” was born.
The group’s initial approach was to try to define a common hardware abstrac-
tion layer that they could all use, plus a clearly defined interface between that layer
and their applications. However, as work proceeded in that direction it appeared
increasingly problematic. The common layer would need to be supported by the
group, probably in open source fashion, and a new instrumentation “agent” would
still need to be hosted on each of the devices being managed. The direction would
also require completely new definitions and interface protocols, and the combi-
nation of all of these issues caused the group to investigate existing technologies
that could be extended and leveraged. At that point CIM came to the fore.
Adopting CIM as the basis for Bluefin seemed to the group to offer several
advantages. CIM offered a rich modeling approach, with a number of existing
proven definitions that could be leveraged, and a defined method of incorporat-
ing definitions from older management information models (e.g., SNMP MIBs).
CIM even already contained some basic definitions for managing various types
of storage network equipment, although there was early agreement that they
would require substantial rework and amplification. The approach was extensible
in that vendor-unique information and controls could be added in a manner that
did not negatively impact the overall model. CIM already had definitions in place
that would allow a single piece of instrumentation to provide support for multi-
ple different management applications. The DMTF had already defined a method
of data encoding for transmission (an XML representation) and a communica-
tions protocol (using HTTP as a transport), which were regarded as strengths by
the group because of their separation from the model itself and their basis in pop-
ular, existing standards. The architecture underlying CIM was scalable enough to
handle the required enterprise-class applications and incorporated the notion of
proxy agents to simplify support for equipment instrumented for previous man-
agement schemes such as SNMP. And finally, because CIM was an existing tech-
nology, some SAN equipment was already being instrumented and some server
platforms were already enhanced to participate in CIM.
Having made the decision to adopt CIM, the work went forward, and in
spring 2002 the participant in the Bluefin project presented the work to SNIA,
under an agreement that it be completed and offered for industry standardiza-
tion. SNIA named this work the SMI, and reorganized its Technical Working
Groups around this effort. SNIA also forged an alliance with the DMTF under the
terms of which SNIA would be the center of all storage-related work, but any
changes required to the CIM schema and related definitions would be handled by
submitting Change Requests to the DMTF via an established procedure.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 24
CIM
CIM-XML CIM-HTTP
Transport Encoding Access
WBEM Fundamentals
The DMTF WBEM initiative is based on three major standards, as shown in Fig-
ure 5–1. These standards are described in the following sections, after some com-
mon terminology is established. The terms are listed in a logical or topological
order rather than alphabetically.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 25
Directory
Server Client
Directory User
Agent 0...n Agent 0...n
SLP
TCP/IP
CIMxml
CIMxml
CIM
CIM operations
operations over
over http http
TCP/IP
TCP/IP
Terminology
WBEM is based on a client/server architecture, as shown in the reference model
in Figure 5–2. In this application, the terms are defined as follows:
A WBEM Client is an entity that extracts information from managed equipment
and processes that information for submission to an operator, to serve as input
to a decision-making system, or for consumption by a special-purpose applica-
tion such as a volume manager. In terms of the underlying transport, a WBEM
Client is often called a “Requestor.”
A WBEM Server is an entity that provides a WBEM service. A WBEM service may
be provided by one or more types of Agent. In terms of the underlying transport,
an Agent is often called a “Responder,” because it provides information related to
the managed equipment in response to a request from the WBEM Client.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 26
The Triumvirate
The three major specifications that comprise WBEM are described below. The
standards define:
1. A communications protocol—CIM operations over HTTP
2. An encoding scheme—representation of CIM in XML
3. An object-oriented schema—CIM
These are used in a transport stack as shown in Figure 5–3. Note that there
is good functional separation between the first two of these standards and the
third: Another communications protocol or encoding scheme can be defined with
no impact on the schema.
Note that the CIM schema is not defined by a specification, but rather by a
set of UML class diagrams and an associated structured textual description file
called the Managed Object Format (MOF). Specification 3 above only defines the
notation for the UML diagrams and the syntax of the text file. The schema is there-
fore defined in a subsequent section after the three specifications have been intro-
duced.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 28
Repeat...
a namespace, class name, instance name, key value, and a path (with or with-
out the host component) to a namespace, object, class, instance, etc.
4. Object Definition XML Elements
This group is concerned with expressing the definition of CIM objects. This
group includes elements that define a class, an instance of a class, a qualifier, a
property or parameter (each may be a single value or an array), a method, etc.
5. Message XML Elements
This group is concerned with expressing the definition of CIM messages for
use in the mapping described in the previous section. This group includes ele-
ments that define a simple request message, a multiple request message, a sim-
ple response message, a multiple response message, an extrinsic method, an
intrinsic method, a response to each type of method, a parameter, an error, etc.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 32
CIM
The specification for the Common Information Model defines the structure of
the CIM schema, a set of metadata called the metaschema that is used to formally
define the schema, a set of data types in which properties can be defined, naming
schemes for classes and objects, sets of metaschema, standard, and optional qual-
ifiers, and methods of mapping management data from legacy schemes to CIM
properties.
The structure of the CIM schema will be defined in detail in a subsequent
section.
CIM also makes specific provision for extensibility in terms of allowing prop-
erties of classes that are defined by enumeration (that is, must be one of a set of
defined values) to reference additional unique values. This is done by defining an
additional property, usually named OtherNNN (where NNN is the name of the
enumeration property), and allowing “other” as a value in the enumeration prop-
erty to indicate its use.
The CIM specification also defines the MOF in detail. MOF is based on the
Interface Definition Language defined by the Open Group in its Remote Proce-
dure Call (RPC) specification. MOF defines a syntax that allows objects to be
defined in a textual form, and the syntax permits comments to be included. The
main components of that syntax are textual descriptions of classes, associations,
properties, references, methods, and instance declarations and their associated
qualifiers. The grammar for this syntax is described in an appendix to the speci-
fication, using the Augmented Backus-Naur form defined by the IETF. Other
appendices define the CIM metaschema in MOF format and the UML notation
subset used in CIM schema diagrams. A CIM-capable system must be able to both
import and export properly formed MOF constructs.
SMI-S Additions
SMI-S adds a number of new definitions and concepts to those defined in CIM.
These are fully compatible with the DMTF definitions, but represent further
refinement and restriction, and in some cases anticipate future DMTF develop-
ments. Two specific additions will be described in detail here: Durable Names and
a Discovery Service.
property for any objects representing managed resources that might be viewed in
this way. These names provide the client with a reliable means of relating infor-
mation from multiple sources about the same managed resource in a SAN.
Correlatable names may also have an aspect of durability, that is, they may
have specific lifetime. The exact lifetime of a name is a function of the specific
object, but no name is permanent. Such durable names provide a means of relat-
ing information obtained at different points in time, such as when a managed
resource is returned to a SAN after having been removed for some period of time.
A number of different formats are supported for these names, because not
all of the information required to support every format is available in all situa-
tions. The types of information used for these formats include SCSI Device Iden-
tifiers from the Inquiry Vital Product Data Page #83, Fibre Channel World Wide
Names, Fully Qualified Domain Names, and IP Address information.
Not all formats are valid for all classes in the schema, and the name of the
property that contains the correlatable and durable names also varies by class.
SMI-S contains detailed pseudo-code describing how equality is determined
between the correlatable and durable names of multiple objects.
CIM requires that instance identifiers be unique across all instances of a class
within a single namespace, but does not fully address cases in which different types
of identifiers are possible on different instances of an object. A method is there-
fore needed to ensure that multiple sources of information about managed
resources use the same approach for forming correlatable and durable names
whenever different types of identifiers are possible. This is done by establishing a
preferred durable name format for each class, and also a prioritized list of alter-
nate name formats.
Discovery Service
CIM does not define an explicit mechanism by which a WBEM Client can discover,
enumerate, and locate all of the WBEM services available to it that meet certain cri-
teria in a network. SMI-S does stipulate such a mechanism and leverages an existing
standard, called the Service Location Protocol (SLP), to provide this capability.
SLP is defined by the IETF and is becoming widely used for discovery in a
number of different scenarios in a TCP/IP network. An example of more general
SLP usage is in discovering printers. Note that two separate versions of SLP have
been standardized, and version 2 is required by SMI-S. Another IETF document
defines an optional C language API for use with SLP.
SLP is primarily used to locate an agent, but also provides some finer grained
visibility in terms of the profiles (see the next chapter) supported by the agent.
SLP establishes a framework for resource discovery that includes three “agents”
that operate on behalf of the network-based software. These are shown in the ref-
erence model in Figure 5–2, and are defined as follows:
• A Service Agent (SA) is the function supported by a WBEM Service to enable
its specific characteristics to be registered with the discovery service defined
by SMI-S.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 34
Service Request 1 UAs find service by type, scope, and search filter.
Service Reply 2 DA (or SA) returns Service URLs and their lifetimes.
Service Register 3 SAs register Service URLs and attributes.
Service Deregister 4 SAs deregister Service URLs and attributes.
Service Acknowledgment 5 DAs acknowledge a successful registration or deregistration.
Attribute Request 6 UAs find attributes by service type or by Service URL.
Attribute Reply 7 DA (or SA) returns attribute information.
DAAdvert 8 DA sends its Service URL, scope, and attributes.
Service Type Request 9 UAs find service types by scope.
Service Type Reply 10 DA (or SA) returns a list of service types.
SAAdvert 11 SA sends its Service URL, scope, and attributes.
2. UA to SA/DA Communication
The messages used by a UA to communicate directly with an SA or an
optional DA are identical. They consist of three pairs, namely:
a. Service Request and Reply
b. Attribute Request and Reply
c. Service Type Request and Reply
which are used as described in Table 5–5. SMI-S defines item c as optional.
3. SA to DA Communication
The messages used by an SA to communicate with a DA are:
a. Service Request and Reply
b. Service Register
c. Service Deregister
d. Service Acknowledgment
which are used as described in Table 5–5. SMI-S defines item c as optional
for an SA, and all are required to be supported by a DA.
4. Advertisements (SAAdvert or DAAdvert)
There are separate messages by which SAs and DAs can advertise their pres-
ence and capabilities. These are normally transmitted to a multicast address.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 36
Apps
e
as
er
b
Us
ta
ce
m
Da
te s vi
Sy De
Support
Core Event
Po In
icy l te
ro
Ph
p
Network
M
ys
et
ic
ric
al
s
FIGURE 5–5 Schema Organization
ManagedElement Key
Description: string
Inheritance
Caption: string
Association Association
Aggregation
represent the systems and components, and a set of associations to represent the
relationships between the classes.
The schema is subdivided on a functional basis into a number of different
“models,” as shown in Figure 5–5. The core model captures notions that are appli-
cable to all areas of management and contains a set of classes, associations, and
properties that provide a basic vocabulary for describing managed systems. Many
of the classes in the core are “abstract” in that they only serve as a base for other
class definitions, and instances of those classes cannot be separately created.
The common models capture notions that are common to particular man-
agement areas, but independent of any particular technology or implementation.
The common models are the “petals” shown in Figure 5–5, and of this set the
device, interop, physical, and system models are most referenced in SMI-S. These
models, along with the core model, are described in detail in the subsections fol-
lowing the description of UML notation.
UML Notation
The subset of UML used in CIM is illustrated in Figure 5–6. Most classes are
depicted as rectangles. The class name shown is in the upper part and properties
(also known as attributes or fields) are listed in the lower part. A third subdivi-
sion is added for methods when they are included.
An association is used to describe the relationship between two or more
classes. Many of the diagrams do not show the properties of association classes,
Cummings_i–x_001–105 3/2/04 12:55 PM Page 39
but merely represent the classes as lines. In that case there is usually a separate
page of the model that shows the association hierarchy as classes. The ends of
some associations have numbers (cardinality) indicating the valid count of object
instances. Cardinality is expressed either as a single value (such as 1) or a range
of values (0..1 or 1..4); * is shorthand for the range 0..n. Some associations and
aggregations are marked with a “W” at one end indicating that the identity of this
class depends on the class at the other end of the association.
The notation defines three types of lines connecting classes. The CIM docu-
ments generally follow the convention of using arrows for inheritance, red lines
for associations, and green lines for aggregation. The color coding makes large
diagrams much easier to read but is an extension of UML.
The SMI-S document uses two UML conventions in addition to those used
in CIM:
1. Packages
The UML package symbol is used as a shortcut representing a group of classes
that work together as an entity. After the initial explanation of these objects,
a single package symbol is used to represent the entire group of objects.
2. Instance Representations
Schema diagrams include both classes and associations. The class hierarchy
is included and each class is depicted one time in the schema diagram.
Instance diagrams also contain classes and associations, but represent a
particular configuration. Multiple instances of an object may be depicted in
an instance diagram. An instance is named with an instance name followed
by a colon and an underlined class name.
Core Model
The core model includes the most general classes in the managed environment,
along with the most widely used properties (variables). The class hierarchy begins
with the abstract Managed Element class; Managed System Element, Capabilities,
Location, Configuration, and Setting classes, among many others, are subclasses
of that class. From the classes in the core model, the model expands in many direc-
tions, as defined by the common models.
The most relevant pieces of the core model to SMI-S are:
1. Basic Abstraction (see Figure 5–7)
This piece incorporates base classes such as ManagedElement, ManagedSys-
temElement, etc., and base association classes such as Dependency, Compo-
nent, and LogicalIdentity.
The ManagedElement class is the root of the entire schema. It acts as a
reference for associations that apply to all entities in the hierarchy.
ManagedSystemElements (MSEs) represent Systems, components of Sys-
tems, any kinds of services (functionality), software, and networks.
Concrete
40
Identity
Component *
*ManagedElement * * Dependency
* Caption: string
*
ConcreteComponent * Description: string
* ConcreteDependency
* *
LogicalIdentity * ElementName: string 0..1 HostedDependency
* *
Capabilities Collection Location
Storage Network Management
ManagedSystemElement
Cummings_i–x_001–105 3/2/04 12:55 PM Page 40
InstallDate: datetime
Name: string
OperationalStatus: uint16[] {enum}
StatusDescriptions : string[]
Status: string {enum, D}
PhysicalElement LogicalElement
(See Figure 5–9)
(See Figure 5–9)
LogicalElement
EnabledLogicalElement
*
Storage Network Management
*
* *Service ServiceAccess ServiceAccessPoint LogicalDevice System *
* BySAP
*
* CreationClassName:: string {write}
* CreationClassName: string {key} (See Core Model) CreationClassName: string {key}
ServiceService Name: string {override, key} ServiceSAP Name: string {override, key} Name: string {override, key}
Cummings_i–x_001–105 3/2/04 12:55 PM Page 42
HostedService
0..1
PhysicalElement
PhysicalElement Tag: string {key}
Location CreationClassName: string {key}
Manufacturer: string
Model: string
SKU: string EnabledLogicalElement
SerialNumber: string
Version: string
* (See Figure 5–8)
PartNumber: string
Chapter 5
Device Model
The device model mostly consists of a large number of subclasses of the Logi-
calDevice class (contained in the core model) that are appropriate to many dif-
ferent device types. Currently, the model has the following pieces:
Cooling and Power
Processors
Controllers
PCI Controllers
Logical Ports
Logical Port Group
Protocol Controllers
Network Adapters
Fibre Channel
Fibre Channel Services and Zoning
InfiniBand
Cummings_i–x_001–105 3/2/04 12:55 PM Page 45
Storage Devices
Storage Extents
SCC Extent Model
Storage Services
Storage Capabilities and Settings
Storage Library
User Devices (Keyboards, Monitor, Mouse)
Memory
Modems
Printers, Print Jobs, Print Services
Sensors and Alarms
USB and Disk Group
The device model describes the functionality provided by a physical device,
along with information on its configuration and state. Each device has a Realizes
association with the objects representing the physical equipment that comprise it.
In many cases, the same physical element provides multiple separate functions,
which are modeled as separate LogicalDevice classes. Logical Devices are aggre-
gated to a System via the SystemDevice association, and many devices also have
relationships to other devices for reasons such as identifying a controller, meet-
ing a need for cooling, etc., that are modeled by a variety of other associations.
There are also generic provisions for making error data and counts available.
SMI-S makes much use of the Logical Ports and Port Group, and all of the
Storage pieces of the model. Further details are given when the profiles for spe-
cific equipment types are described.
ElementStatisticalData
(See Figure 5–7)
*
SKU: string EnabledLogicalElement
* 1..n SerialNumber: string
ElementCapacity (See Figure 5–8)
Version: string *
ParticipatesInSet
PartNumber: string
Cummings_i–x_001–105 3/2/04 12:55 PM Page 46
SystemPackaging
OtherIdentifyingInfo: string
PoweredOn: boolean
* System
ManufactureData: datetime * *
VendorEquipmentType: string (See Figure 5–8)
UserTracking: string Realizes
*CanBeFRUed: boolean
LogicalDevice
* * (See Figure 5–9)
ElementsLinked
Container
0..1
*
PhysicalLink PhysicalConnector PhysicalComponent PhysicalPackage
(See Physical Model (See Physical Model (See Physical Model (See Physical Model
[Connector, Link, & [Connector, Link, & Package]) [Physical Component]) [Connector, Link, &
Package]) Package])
The Statistics classes are included in this model; in some circumstances the
information reported relates to boundaries defined by the physical model—that
is, it is associated with a particular item such as a tape cartridge.
An ElementCapacity association relates each PhysicalElement to the Physi-
calCapacity class contained in the core model. This capacity is defined in terms
of the element’s ability to support a minimum and a maximum number of logi-
cal objects, the specific class of objects referenced being defined by subclasses of
PhysicalCapacity.
Location information may be specified for each Physical Element via the
PhysicalElement association to the Location class defined in the core model, which
includes physical position and address properties.
Multiple PhysicalElement instances may also be aggregated by the Partici-
patesInSet association into a Replacement Set, which is in itself a subclass of the
Collection class defined in the core model.
The major subclasses of PhysicalElement are:
1. PhysicalPackage
This class describes general containers and frames, and provides manage-
ment, maintenance, and repair information. The Container association
relates this class to the other PhysicalElements that it contains. Frame, Chas-
sis, Rack, Card, and StorageMediaLocation are further subclasses of Physi-
calPackage. StorageMediaLocation defines the shelf/hole/slot where
removable media (such as tape) can be stored.
2. PhysicalComponent
This class describes low-level hardware, such as chips and physical media,
which are defined by further subclasses.
3. PhysicalConnector
This class describes the connectors used to attach or link PhysicalElements
together and can be further refined by a Slot subclass where necessary.
A slot describes the connector used to attach one card to another (for exam-
ple, a backplane or motherboard). A PackageInConnector association is used to
describe a PhysicalPackage that is inserted into the PhysicalConnector.
4. PhysicalLink
This class describes the cabling used between PhysicalElements, often Physi-
calConnectors as above. An ElementsLinked association relates the elements
that are connected, and where a connector is involved a LinkHasConnector
association is also employed.
Interop Model
The interop model contains a set of object models that describe the WBEM ser-
vice itself. In terms of the reference model contained in Figure 5–2, the interop
model provides management information related to the capabilities of object
managers and providers, along with statistics related to their use.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 48
System Model
The system model defines computer system–related abstractions. The only part
of this model relevant to SMI-S is the ComputerSystem class, a subclass from the
System class in the core model. The System class describes the aggregation of parts
(or components) into a single manageable whole (the system), which places lim-
its on the information available to its parts. Systems are not modeled as a collec-
tion, because they are more than the sum of their parts. Systems have status and
they host services and access points.
The ComputerSystem class can describe both general-purpose and dedicated
systems. Much of the equipment in a storage network is modeled as a computer
system dedicated to a specific function.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 50
Cummings_i–x_001–105 3/2/04 12:55 PM Page 51
Profiles of
Storage Network
Equipment Types
The DMTF Common Information Model described in the previous chapter con-
tains a rich object-oriented representation of a managed environment. The SNIA
SMI-S shows how storage networks can be managed as systems, using constructs
taken from CIM. It does not define any extensions to CIM, or any new classes,
methods, or properties, but merely groups the existing definitions to simplify their
use for the specific purpose of managing a storage network.
This chapter introduces five additional terms:
• A profile is a named set of functions for WBEM service–based management
of a particular set of subsystems for a defined set of uses. A profile can refer
to one or more subprofiles and in some cases to other profiles.
• A subprofile is a named subset of a profile. Typically, a formal subprofile is
defined to allow a specific set of functions to be present only in some
instances of a profile. However, a subprofile itself is an atomic unit—either
all or none of its functionality is supported. A common subprofile is a set of
functions that may appear in more than one profile.
• A package is a set of constructs that are used together to define an aspect of
a model.
• A recipe is a WBEM service use case, a script for the interaction between a
WBEM Client and Server as they follow a specific path through the schema
to achieve a specific task. A recipe operates within a defined scope.
• A WBEM service advertises supported profiles and subprofiles using SLP. The
service also reports the profiles and subprofiles that are supported through
the interop model. Packages are not advertised or reported.
Much of the SMI-S document is concerned with defining profiles, subprofiles,
and packages. A registry of the profile and subprofile names is shown in
51
Cummings_i–x_001–105 3/2/04 12:55 PM Page 52
Table 6–1. Only two packages are defined: physical and software. The packages,
profiles, and subprofiles are described in detail in the sections following the con-
ventions section.
Conventions
The SMI-S document contains two new conventions:
1. A common format used to describe profiles and all subprofiles
2. A pseudo-code syntax used to describe recipes
These are described in detail in the following sections.
profile. Some properties are required, whereas others are optional. All prop-
erties that CIM defines explicitly (e.g., with a Required qualifier) or implic-
itly (e.g., identified as a Key) as required are also required by SMI-S. If a
property can not be produced, a null value is returned.
13. Optional Subprofiles and Profiles
This component lists the names of the profiles and subprofiles that are
optional for this profile.
General Syntax
The general syntax of the pseudo-code consists of only four items, as follows:
• conditiondefines a logical statement that evaluates to true (Boolean).
• !condition defines a logical statement that evaluates to false (Boolean).
• action represents an unspecified list of programming logic that is not
important to the understanding of the reader for a particular recipe.
• @{recipe} references another recipe.
The syntax uses the “{}” delimiters to define blocks, sets, and levels as per
usual.
General Variables
The following variables relate to all types of items:
• #name represents a general variable that is not an instance identifier or object
name as above. The variable type may be a string, number, or some other
special type.
• #name[] represents an array of variables as in item 1 above.
• “literal” represents a string literal.
Operations
The syntax supports a set of comparison operators that reflect common usage in
many programming languages. Tests for equivalency, nonequivalency, logical
AND and OR, etc., are included. The operators that may be less familiar are:
• // precedes a comment.
• nameof returns an object name given an instance identifier. This unitary
operator does nothing in other usages.
• ISA tests for the name of the instance.
Functions
Functions may be defined within a recipe to simplify or clarify the logic flow.
Where used, they must be defined at the beginning of the recipe using the form:
sub functionName() {
actions
}
If parameters are to be passed to a function, they are expressed as a comma-
separated list of arguments within the parentheses following the function name.
Each argument is comprised of a data type and an accompanying argument name.
The function is then invoked where needed in the form:
&functionName()
with any required parameters contained within the parentheses and separated by
commas.
A number of built-in functions are also defined by the syntax as follows:
1. boolean compare(variable, variable)
This function is used to determine if two variables of the same type are equiv-
alent. The variables must not be instances, object names, or other complex
data types or structures.
2. $instance newInstance(“Classname”)
This function creates an instance that did not previously exist in the WBEM
service, which can later be filled in with properties and passed to CreateIn-
stance. The namespace is inferred from the positioning in the recipe.
3. $instance - newInstance(“Namespacename”, “Classname”)
This function creates an instance in a defined preexisting namespace identi-
fied by the supplied name.
4. boolean contains(test value, variable array)
This function is used to test if the variable array contains a value equivalent
to the test variable. The variable array must be of variables of the same
type as the test variable. If equivalency is found with at least one value, then
the function returns true; otherwise, false is returned. If the array is not a
simple, or non-CIM, data type, then the test value must be a property, or a
variable representing or containing a property.
5. %Argument newArgument(“Argument Name”, variable)
This function creates an argument of a given name containing a value.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 58
System
Product
SystemPackaging
ProductParentChild
PhysicalPackage
(e.g., Chassis) Product
ProductPhysicalComponent
Container
(e.g., PackageInChassis) ProductParentChild
LogicalDevice
PhysicalPackage Product
(e.g., Drive, physical tape,
Realizes
device changer)
ProductPhysicalComponent
Exception Handling
The syntax allows exceptions to be tried, caught, and thrown in a manner very
similar to that used in the Java programming language.
Packages
SMI-S defines two packages: a PhysicalPackage and a Software Package. These are
described in SMI-S using a variant of the common format defined above for
described profiles and subprofiles.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 59
ComputerSystem
InstalledSoftwareIdentity
SoftwareIdentity
ConcreteIdentity
ExtraCapacitySet
ComponentCS
MemberOfCollection
ComputerSystem
InstalledSoftwareIdentity
SoftwareIdentity
1. PhysicalPackage
An instance diagram of the PhysicalPackage definition is shown in Figure 6–1.
The package is used to make available product information such as the ven-
dor name, product serial number, and version to a WBEM Client. This may
be done by enumerating the top-level System classes, and then traversing the
SystemPackaging association to locate the physical packages and their asso-
ciated products. Packages may be defined at several levels within a system,
with a Container relationship being defined between a level and its subcom-
ponents. The same information may also be accessed by traversing the Real-
izes association from the LogicalDevice class.
Many of the profiles in SMI-S reference the PhysicalPackage, and the
structures defined herein may optionally be used to make additional envi-
ronmental information available to a WBEM Client.
2. Software Package
An instance diagram of the Software Package definition is shown in Figure
6–2. The package is used to make available information about installed soft-
ware to a WBEM Client. The package includes the SoftwareIdentity class that
is linked to the system using a SoftwareInstalledOnSystem association. Soft-
Cummings_i–x_001–105 3/2/04 12:55 PM Page 60
ware information can be associated with the top level ComputerSystem (if all
components are using the same software) or a component ComputerSystem
if the software loaded can vary by processor.
Common Subprofiles
Common subprofiles are those that are used in multiple profiles, and are thus
described separately. The following common subprofiles are currently defined by
SMIS-S:
1. Access Points Subprofile
The Access Points subprofile is used to indicate remote access points for
management tools. Many SAN devices now have a Web GUI to support
device-specific configuration management. This is modeled using a Remote-
ServiceAccessPoint class linked to the managed element using a HostedAc-
cessPoint association. Where several access points are provided, multiple
instances of the class and association are instantiated and linked to the spe-
cific ComputerSystem class by SAPAvailableForElement.
2. Cluster Subprofile
The Cluster subprofile is used to represent equipment that contains multiple
processing elements that act as a cluster.
When this subprofile is used, each processing element of the cluster is
represented by its own ComputerSystem instance, but is also collected into a
ComputerSystem that represents the system image of the collection of proces-
sors. The linkages between these instances are ComponentCS associations.
There are several subtleties with regard to the association of system devices
to a cluster, depending on whether the device is only available when a par-
ticular constituent processing element is available.
3. Extra Capacity Set Subprofile
The Extra Capacity Set subprofile is used to represent the specific redundancy
offered by a collection of computer systems in a configuration. Thus, this sub-
profile goes beyond the Cluster subprofile described above to specify the rela-
tionship among the systems. Some of these configurations also typically
provide redundancy, which can be of several kinds.
a. Load Balancing This kind typically means that each path to a storage
device through the participating computer systems has equal function-
ality and priority. This type of redundancy is modeled using the Extra-
CapacitySet class with the LoadBalancedSet property set to true. Each
computer system is associated with an ExtraCapacitySet instance using
a MemberOfCollection association. If computer systems operate as
redundant pairs, then there would be multiple ExtraCapacitySet
instances, with one for each pair.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 61
b. Fail-Over This kind typically means that the paths to storage are asym-
metrical. One path will be the primary one, the other(s) are for fail-over
only and have lower performance. In this case the LoadBalancedSet
property is set to false. The priority of different access paths is shown by
the AccessPriority property on the ProtocolControllerForUnit associa-
tions between the StorageVolume and ProtocolController instances.
c. Load Balancing and Fail-Over This kind typically means that load bal-
ancing is occurring across the ExtraCapacitySet and in the event of a fail-
ure another computer system in the set can take over the work of the
failing computer system.
4. Disk Drive Subprofile
An instance diagram of the disk drive subprofile is shown in Figure 6–3. The
subprofile is used to represent a random access storage device. The device is
modeled as a MediaAccessDevice (DiskDrive) containing (MediaPresent)
some logical media (StorageExtent) that are realized (RealizesExtent) by some
physical media. The Disk Drive subprofile ties into the remainder of a stor-
age profile via a number of important associations, as follows:
a. ConcreteComponent associates an extent exported by the DiskDrive to
a StoragePool.
b. BasedOn associates an extent exported by the DiskDrive to another
(higher level) extent (or a Volume).
c. Container associates the physical package of the DiskDrive to the phys-
ical package of the system.
d. ProductParentChild associates the product of the DiskDrive to a higher
level product such as a system.
The profile definition includes a recipe showing how to locate and determine
the capacity of all of the “physical” disk drives in a system.
5. Extent Mapping Subprofile
The Extent Mapping subprofile is used to represent the mapping of specific
storage extents and physical devices. In the StoragePool mechanism, storage
allocation is focused on a logical use of storage in a device. There is little infor-
mation exposed to clients about how data is laid out on underlying extents.
Storage administrators may want to know specifically which disk (or underly-
ing extent) a LUN is on so they can avoid locating frequently used LUNs on
the same extents. The Extent Mapping subprofile allows an agent to represent
this information to the level of a single disk drive or underlying extent.
6. Location Subprofile
The Location subprofile is used to represent the location of a physical device,
using the Location class that is part of the physical elements of the core model
described in Chapter 5.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 62
ComputerSystem
SystemDevice
SoftwareIdentity
Firmware
SystemDevice
DeviceSoftwareIdentity
StorageExtent
DiskDrive
MediaPresent Logical controller
'Logical' media
device
Protocol
RealizesExtent Realizes Controller
AccessesUnit
PhysicalMedia PhysicalPackage
SCSIProtocolController
ProductPhysicalComponent
Product
7. Software Subprofile
The Software subprofile is used to represent software installed on equipment
in a storage network. It uses the software package as defined above. Infor-
mation on the installed controller software is given using the SoftwareIden-
tity class. This is linked to the controller using an InstalledSoftwareIdentity
association.
8. Copy Services Subprofile
An instance diagram of the Copy Services subprofile is shown in Figure 6–4.
The subprofile is used by an agent to represent the ability to support clones
and point-in-time snapshots of nonvolatile storage. The profile also provides
support for remote replication services (either asynchronous or synchro-
nous) for nonvolatile storage. The Copy Services subprofile currently only
Cummings_i–x_001–105 3/2/04 12:55 PM Page 63
System
(ComputerSystem)
StorageConfigurationCapabilities HostedService
SupportedAsynchronousActions[]
SupportedSynchronousActions[] StorageConfigurationService
SupportedStorageElementTypes[]
SupportedCopyTypes[] CreateReplica()
InitialReplicationState ElementCapabilities ModifySynchronization()
AttachReplica()
StorageVolume StorageVolume
(SourceElement) (Replica)
StorageSynchronized
specifies the storage volumes, and has only been validated for use in support
of volume snapshots, although the functionality defined is considerably more
general.
Copy services are addressed by the StorageSynchronized association
between two storage elements that defines their relationship. The model
addresses the use of StorageSynchronized in the context of StorageVolumes
(disk arrays and virtualization systems). The association is a subclass of the
Synchronized association and is used to represent snapshots and mirror
copies of storage elements. StorageSynchronized indicates that two storage
objects were replicated at the specified point in time.
Several different types of replication between the volumes are supported,
as follows:
a. Async In this type, replication creates and maintains an asynchronous copy
of the source. Updates to the source volume are not immediately available
on the copy. The copy is done in the background. This is often used to main-
tain a geographically remote copy of the source volume if the latency over-
head of write synchronization would be too expensive or too slow.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 64
device that supports the service. The specific Copy Service capabilities sup-
ported are specified in the StorageConfigurationCapabilities instance.
9. Job Control Subprofile
The Job Control subprofile is used where some or all of the methods
described by a profile may take some time to execute (longer than an HTTP
time-out), and allows asynchronous execution of the method as a “job.”
When the Job Control subprofile is implemented and a client executes a
method with the ConcreteJob reference as an output, a reference to an
instance of ConcreteJob is returned and the return value for the method is
set to “Method parameters checked - job started.” The ConcreteJob instance
allows the progress of the method to be checked. The associations Own-
ingJobElement and AffectedJobElement are used to indicate the service that
“owns” the job and the element being affected by the job. The element linked
by AffectedJobElement may change through the execution of the job.
10. Pool Manipulation, Capabilities, and Settings Subprofile
The Pool Manipulation, Capabilities, and Settings subprofile is used to rep-
resent the mechanisms exposed by storage systems functions for creating and
modifying storage pools and their capabilities and settings.
A StoragePool is an abstract notion of a blob of consumable storage
space. A pool has a certain set of “StorageCapabilities” that indicate the range
of Quality of Service requirements that can be applied to objects created from
the pool. In this top-level profile, StorageCapabilities are informational only.
Storage pools are defined with a scope that is relative to the Computer-
System (indicated by the HostedStoragePool association). Objects created
from a pool have the same scope. Child objects (such as StorageVolumes or
StoragePools) created from a StoragePool are linked back to the parent pool
using an AllocatedFromStoragePool association. There are two properties of
StoragePool that describe the size of the “underlying” storage. TotalMan-
agedStorage describes the total raw storage in the pool and RemainingMan-
agedStorage describes the storage currently remaining in the pool.
The Primordial Pool is a type of StoragePool. Raw storage capacity—
unformatted or unprepared capacity—is drawn from the Primordial Stor-
agePool to create concrete StoragePools. The Primordial StoragePool
aggregates storage capacity that has not been assigned to a concrete Storage-
Pool. StorageVolumes are allocated from concrete StoragePools and are con-
figured pieces of storage that are exposed from a system through an external
interface. In the class hierarchy they are a subclass of a StorageExtent. In SCSI
terms, StorageVolumes are Logical Units.
This subprofile defines the methods to be used if the storage system
exposes functions for creating and modifying storage pools. The Storage-
ConfigurationService, in conjunction with the abstract concept of a storage
pool, allows generic clients to configure pools of storage within storage arrays
Cummings_i–x_001–105 3/2/04 12:55 PM Page 66
without having to have specific knowledge about the array configuration. The
new service uses the following methods:
a. CreateOrModifyStoragePool—This method creates a pool of storage
with some set of capabilities defined by the input StorageSetting. The
source of the storage can be other pool(s) or storage extents. Alterna-
tively, an existing pool can be modified.
b. DeleteStoragePool—This method deletes a storage pool and returns the
freed-up storage to the underlying entities.
c. CreateSetting—This method creates a setting for use in pool creation
that is consistent with the StorageCapabilities and may be modified
before use in creating a StoragePool.
StorageHardwareID
* StorageHardwareI * StorageHardwareID
ConcreteDependency
D ManagementService
D
MemberOfCollection
ConcreteDependency
AuthorizedSubject
SystemSpecificCollection CIM_ProtocolController
* MaskingCapabilities
*
AuthorizedSubject
* Privilege
* Privilege
*ConcreteDependency ManagementService
Hosted
Service
LogicalPort
* * AuthorizedTarget
* Element
AuthorizedTarget Capabilities
* LogicalDevice
*
ProtocolController (e.g. StorageVolume)
ProtocolController
ForPort * * HostedService
ProtocolController *
Associated ForUnit
ProtocolController
ConcreteDependency
HostedService
CIM_StorageClient ComputerSystem
ControllerConfigurationService
SettingData
ElementSettingData
HostedCollection
Profiles
SMI-S profiles are grouped into four areas, depending on their applicability in a
storage network, as follows:
1. Fabric Area, comprising Fabric, Switch, and Router profiles
2. Host Area, comprising Fibre Channel (FC) HBA profile, and Host Discov-
ered Resources profiles
3. Storage Area, comprising Array, In-Band Virtualization, and Storage Library
Profiles
4. Server Area, comprising a Server profile
The profiles are described below. An overview instance diagram of the Fab-
ric, Host, Switch, and Array profiles is shown in Figure 6–6.
Fabric Profile
The Fabric profile represents the interconnection fabric of a storage network, and
is abstracted as a system (in network terms, a “cloud”). The approach follows that
used in the CIM network model, and is logically composed of:
• A set of services such as zoning
• A set of components such as interconnecting elements (e.g., switches) and
platforms (e.g., hosts, storage arrays, and tape libraries)
Cummings_i–x_001–105 3/2/04 12:55 PM Page 71
MemberOf System
MemberOf Collection Device
Collection ProtocolEndpoint FCPort
DeviceSAP
Implementation
Active
Connection
ProtocolEndpoint Switch FCPort
System
ComputerSystem
Device
DeviceSAP Dedicated="Switch"
Implementation
HostedAccessPoint
Array
Hosted
LogicalPortGroup ComputerSystem
Active Collection
Connection Dedicated="Storage"
MemberOf
Collection System
ProtocolEndpoint FCPort Device
DeviceSAP HostedAccess
Implementation Point
ZoneMembership
SettingData
ZoneSet
Element
ZoneCapabilities
SettingData MemberOf
System
Collection
Capabilities
Zone Hosted AdminDomain
Collection
Hosted
ZoneService Service
MemberOf
Collection
NamedAddress
Collection
The Active Zone Set, defined by an instance of ZoneSet with the Active prop-
erty set to True, is hosted on the AdminDomain representing the Fabric. The Inac-
tive Zone Sets, defined by an instance of ZoneSet with the Active property set to
False, are hosted on either the AdminDomain representing the Fabric, as shown
in Figure 6–6, or the ComputerSystem representing the switch, as shown in Fig-
ure 6–8. The ZoneService and ZoneCapabilities are also associated to the same
System (AdminDomain or ComputerSystem) as the Inactive Zone Sets using the
association HostedService or ElementCapabilities, respectively.
The zoning services model includes extrinsic methods for creating Zone Sets,
Zones, and Zone Members and adding Zones to Zone Sets and Zone Members to
Zones. Additionally, SMI-S defines intrinsic methods for removing Zone Mem-
bers from Zones and Zone Aliases, remaining Zones from Zone Sets, and delet-
ing Zone Members, Zones, and Zone Sets.
The zoning services subprofile defines the following recipes:
• Add new or existing zone member to existing zone
• Create new zone, add new/existing zone member, and add to existing zone
set
• Create new zone set and add existing zone
• Delete zone
• Delete zone set
• Create zone member
• Delete zone member
A separate subprofile defines enhanced zoning services.
Switch Profile
An instance diagram of the Switch profile is shown in Figure 6–8. The switch pro-
file represents the physical and logical aspects of a Fibre Channel fabric intercon-
nect element. The ComputerSystem class constitutes the core of the switch model,
with the Dedicated property set to “switch.”
If a switch is modular—for instance, if the switch is comprised of multiple
blades on a backplane—the LogicalModule class can optionally be used to model
each submodule, and as an aggregation point for the switch ports. FCPort
describes the logical aspects of the port link and the data layers. PhysicalConnec-
tor models the physical aspects of a port. An instance of the FCPortStatistics class
is expected for each instance of the FCPort class. FCPortStatistics expose real-time
port health and traffic information.
Router Profile
An instance diagram of the Router profile is shown in Figure 6–9. The instance
diagram shows a system with parallel SCSI and Fibre Channel buses.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 74
SoftwareIdentity
(Firmware)
Software RemoteService
HostedAccess
InstalledOn AccessPoint
Point
System
FCPort System ComputerSystem
FCPort
System
FCPort FCPort Device Dedicated="Switch"
DeviceFCPortComputerSystem ComputerSystem PhysicalPackage
FCPort
FCPort Dedicated="Switch" Package
Device FCPort
Statistics System ProductPhysical
Device Elements
Module
LogicalModule PhysicalPackage
Port Realizes
FCPortStatistic
s
Product
ControllerConfiguration
MemberOfCollection
Service
FCPort LogicalPortGroup
HostedService
ProtocolControllerForPort
Installed
SoftwareElement
SCSIProtocolController LogicalDevice
ComputerSystem 1 ProtocolControllerForUnit
SoftwareElement ConnectionRole = 'Server'
1
SCSIProtocolController
LogicalDevice
ProtocolControllerAccessesUnit
ComputerSystemPackage ConnectionRole = 'Client'
ProductPhysicalComponent
ProductPhysicalComponent Realizes
Product PhysicalPackage
Product PhysicalPackage
Product
ProductPhysical FCPortStatistic
SCSIProtocolController Concrete FCPort
Elements SCSIController FCPort Statistics s
Identity
PhysicalPackage
Realizes
SystemLogicalPortGroup Hosted
ComputerSystem MemberOf
ComputerSystem
Device Collection LogicalPortGroup
Package Collection
MemberOf HostedCollection System
Collection Device ControlledBy
ComputerSystem SystemFCPort
PortController
Device
Device
Software Device
Identity Software
Installed Device
Identity
SoftwareElement Software
Identity
SoftwareIdentity SoftwareIdentity SoftwareIdentity
(Driver) (Firmware) (ROM BIOS)
The Router profile represents devices that translate between different types
of SCSI buses. Devices on the parallel bus are served to the Fibre Channel bus
without changing the characteristics of the device.
FC HBA Profile
An instance diagram of the FC HBA profile is shown in Figure 6–10. The instance
diagram represents an HBA as a physical device that contains one or more Fibre
Channel ports. A single system may contain one or more HBAs.
An HBA is represented by FCPorts associated to a ComputerSystem through
the SystemDevice association.
The containment aspect of the HBA’s physical implementation is modeled by
the FCPorts being associated to PhysicalPackage (typically Card) through the
Realizes association. If the HBA has logical operations that apply to the HBA and
not to an individual port, then the PortController can also be instantiated. The
PortController is associated to the ComputerSystem through the SystemDevice
association and associated to the ports through the controlled by association.
FCPort
SystemDevice ProtocolControllerForPort
ComputerSystem SCSIProtocolController
ProtocolControllerForUnit
SystemDevice
StorageVolume StorageSetting
ElementSettingData
AllocatedFromStoragePool
StoragePool StorageCapabilities
AllocatedFromStoragePool
ElementCapabilities
HostedStoragePool
The Host Discovered Resources agent uses the HBA API—first standardized
by SNIA, and now taken up by INCITS T11—to create a generic model of the
logical SAN and attached storage. The agent models elements also exposed by
HBA, storage, and switch agents. A client can use durable names to equate objects
from different agents. The profile is restricted to FCP (SCSI over FibreChannel)
discovery.
Because the objects in this profile are discovered remotely through an HBA,
only their logical aspects are available. In general, the objects exposed by this agent
duplicate those exposed by canonical HBA, storage, or switch agents that provide
the physical model.
The Host SAN Resources are independently instantiated for each HBA
FCPort on a host. They include its discovered (remote) FCP ports and SCSI
Targets.
The profile includes two optional subprofiles, an Initiator subprofile and
a Target subprofile. SCSI Targets are modeled by FCPorts with a ProtocolCon-
trollerForPort to a SCSIProtocolController that, in turn, has at least one
Cummings_i–x_001–105 3/2/04 12:55 PM Page 77
Array Profile
An instance diagram of the Array profile is shown in Figure 6–11. The profile rep-
resents the manageable features of external RAID arrays and disk storage systems.
The key classes contained in the profile are:
• ComputerSystems that represent the array as a whole
• StorageVolumes that are equivalent to SCSI Logical Units visible to con-
sumers
• StoragePools that are the allocatable/available space on the array
• FCPorts through which the LUNs are made available
The basic Array profile provides a high-level read-only “view” of an array. An
additional set of (common) subprofiles extends this description and also enables
active configuration of the array. The terminology used in the description of this
profile, storage pools, primordial pools, and storage volumes, was defined in the
Pool Manipulation, Capabilities, and Settings subprofile above.
ProtocolControllerForUnit ProtocolControllerForPort
HostedStoragePool
AllocatedFromStoragePool
AllocatedFromStoragePool
ElementSettingData
StoragePool
StorageSetting
ProtocolControllerAccessesUnit ProtocolControllerForPort
ConcreteComponent
FCPort
StorageExtent SCSIProtocolContoller
Name: //VPD pg 83 ID
DefaultAccessMode
Product
ProductPhysicalElements
Chassis
LibraryPackage
StorageLibrary
SystemDevice
SystemDevice
ProtocolController
MediaAccessDevice SystemDevice
ProtocolControllerForUnit
ChangerDevice
SCSIProtocolController
TapeDrive
3. Media Changers
Media Changers are modeled using StorageMediaLocation and Magazine.
Two implementation alternatives are presented by SMI-S:
a. Instantiate multiple Magazines associated to Chassis via Container, then
instantiate StorageMediaLocations that are contained (again via Con-
tainer) within each Magazine.
b. Instantiate multiple StorageMediaLocations directly associated to Chas-
sis via Container, without the use of Magazines. Other optional classes,
such as Panel, may also be used to group StorageMediaLocations.
For each LogicalDevice that can hold media, at least one StorageMedia-
Location must be associated via Realizes.
The profile contains a Limited Access Port Elements subprofile that rep-
resents the limited access ports elements (items such as mail slots, cartridge
access port, or import/export elements) found in many libraries. This sub-
profile defines the required classes necessary to publish information about
these elements.
80
ObjectManager System
HostedService
Name (InstanceID)
ElementName
Namespace
CommMechanismForManager
InManager
Namespace
CIMXMLCommunicationMechanism
[Propagated Keys]
CreationClassName [Default CommunicationMechanism = "XML over HTTP"]
Name CIMValidated
ClassInfo
Storage Network Management
DescriptionOfClassInfo
ManagedElement
(e.g., System)
Cummings_i–x_001–105 3/2/04 12:55 PM Page 80
ReferencedProfile
ElementConformsToProfile
RegisteredProfile
InstanceID
RegisteredOrganization
OtherRegisteredOrganization
RegisteredName
RegisteredVersion
AdvertiseTypes[]
AdvertiseTypeDescriptions[]
SubProfile SubProfile
RequiresProfile RequiresProfile
RegisteredSubProfile RegisteredSubProfile
InstanceID InstanceID
RegisteredOrganization RegisteredOrganization
OtherRegisteredOrganization OtherRegisteredOrganization
RegisteredName RegisteredName
RegisteredVersion RegisteredVersion
AdvertiseTypes[] AdvertiseTypes[]
AdvertiseTypeDescriptions[] AdvertiseTypeDescriptions[]
Server Profile
An instance diagram of the Server profile is shown in Figure 6–14. The profile is
used to represent the functionality of the WBEM service itself, using the interop
model defined in Chapter 5.
The profile defines the interop Namespace and the use of the interop Name-
space for finding RegisteredProfiles and other related classes associated with the
Server profile. The interop Namespace refers to the first namespace found in the
InteropSchemaNamespace attribute of the SLP Template.
A Server is modeled as a System with a HostedService association to an
ObjectManager. The ObjectManager is a subclass of Service, and defines the capa-
bilities of an Object Manager based on the communication mechanisms that it
supports.
The namespace model of the Server profile describes the namespaces man-
aged by the ObjectManager and the type of information contained within the
namespace. All namespaces supported by the Server can be identified by the
Namespace class and associated to the ObjectManager via the NamespaceInMan-
ager association. All classes of the Server profile are in the interop Namespace,
with the exception of the ManagedElement instance that is referenced from the
RegisteredProfile.
The RegisteredProfile part of the model is used to specify the profiles sup-
ported by the ObjectManager. It also includes the specification of subprofiles that
are supported by the profile. A profile is modeled using the RegisteredProfile class.
One instance is created for each ManagedElement that is covered by a profile and
is managed by the Server. The RegisteredProfile instances can be found by enu-
merating RegisteredProfiles within the Interop Namespace. A WBEM Client
would find all profiles supported by the Server by enumerating RegisteredProfiles,
enumerating RegisteredSubprofiles, and subtracting the second list from the first
list. This will yield the list of profiles supported by the ObjectManager. For each
profile instance, the subprofiles that have been implemented (for the instance)
should be identified via the SubprofileRequiresProfile association. Subprofiles are
modeled using the RegisteredSubprofile class. The ElementConformsToProfile
association ties the RegisteredProfile to one or more ManagedElements. These
ManagedElements are typically ComputerSystems or AdminDomains, and may
have zero or more ElementConformsToProfile associations to RegisteredProfiles.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 82
Cummings_i–x_001–105 3/2/04 12:55 PM Page 83
Development Tools
The following items have been found useful by developers in the SNIA commu-
nity to date. No representation is made here as to the suitability of any of these
tools; they are merely listed for information. In addition, many of these items are
licensed under specific terms, which must be investigated before any code is used.
SNIA
SNIA has made a source package available to its members that is a Java-based
implementation of an Object Manager. The SNIA implementation provides both
client and server CIM/WBEM technologies. Use of Java as the implementation
language allows adoption of the technology without the need for porting or long-
running test and integration periods. The first version of this source became avail-
able in June 2000 and was last updated in August 2000. For more details, see
http://www.snia.org/smi/developers/cimom.
83
Cummings_i–x_001–105 3/2/04 12:55 PM Page 84
Pegasus
Pegasus has been developed as a project of The Open Group’s Enterprise Man-
agement Forum. It was conceived as an open source reference implementation of
the DMTF WBEM specifications, but has become a set of production-quality open
source code designed to be used in high-volume server implementations. Many
existing SMI-S-compatible Object Managers are based on this code.
Pegasus defines a modular, powerful instrumentation environment with the
intention of speeding up the process of making equipment manageable. It only
implements the WBEM service, and is therefore not a complete management envi-
ronment.
Pegasus was designed from the beginning for multiplatform, multi-OS, mul-
ticompiler implementation. It has so far been ported to various UNIX (AIX,
HPUX, Solaris, Tru-Unix), Linux, and Windows platforms (NT, 2000, 9x), and the
Compaq Himalaya (Tandem) platform.
For full details on Pegasus, including the code and a development manual,
see http://www.openpegasus.com/.
OpenWBEM
The OpenWBEM project is an open source implementation of Web-Based Enter-
prise Management suitable for commercial and noncommercial applications.
OpenWBEM is intended to be built using GNU compilers and a number of other
GNU tools. It supports the integration of SLP with the Object Manager using
OpenSLP. It includes a C Client API library, and an MOF Compiler with an
embeddable library.
The source code for OpenWBEM is maintained in a project at SourceForge
(see https://sourceforge.net/project/showfiles.php?group_id=16214 for access).
CIM Miner
CIM Miner is a utility that “mines” a specified CIMOM namespace for instances
and associations, and stores the discovered information in an XML format file.
This file can be viewed directly using the supplied XSLT file. It can also be trans-
formed into HTML using the “transform” batch file and a supplied XSLT file. CIM
Miner was developed by SNIA SMI participants, but has now been made avail-
able to the DMTF and is available from the latter’s tools page (see below).
DMTF Tools
The Members section of the DMTF Web page lists a number of tools related to
the WBEM definitions, including:
1. Nortel Networks MOF to HTML Converter
Nortel Networks has developed the mof2html tool to convert the CIM
schema and any extension MOF files into browsable HTML files. The tool is
released in C source code format. Instructions for building and running
Cummings_i–x_001–105 3/2/04 12:55 PM Page 85
it are contained in the README.txt file. This is an initial but usable release
of this tool, and extensions are encouraged.
2. Microsoft MOF Editor
Microsoft has developed an MOF Editor, and has granted distribution rights
to the DMTF.
3. Intel CIM Compatibility Checker
The CIM Compatibility Checker (CCX) is a platform-independent applica-
tion that tests a system’s CIM implementation for conformance with the
DMTF’s CIM v2.3 definitions. Additionally, the CCX tool conforms to the
DMTF’s “Specification for CIM Operations over HTTP v1.0” and “xmlCIM
v2.0.” Two tests are provided: class definitions testing and class instance and
associations testing. In both tests, schema definitions and class definitions
such as class properties and associations are verified for existence and correct
data type.
CCX may also function as a design and debug tool. A CIM parser reports
any syntax errors encountered while parsing the schema and requirements
files.
For more information, see http://www.dmtf.org/members/tools.
CIM Navigator
CIM Navigator is a Java client application that can be used to graphically browse
CIM objects and their associations in various CIM Object Managers. The appli-
cation can be downloaded from either http://www.cimnavigator.com or from
http://www.wbemsource.org (the pages of The Open Group’s WBEMSource
Initiative).
Development Facilities
The SMI program at SNIA is a wide-ranging effort and incorporates activities
beyond merely creating the SMI specification (see Figure 7–1). Other aspects of
the program include:
1. ICTP
ICTP is a SNIA-wide initiative called the SNIA Interoperability Conformance
Test Program. ICTP consists of master test suites that are developed, owned,
and operated by SNIA. ICTP is an integral step toward providing verification
that a storage vendor’s product implementation complies with the SMI spec-
ification. For more information, including the costs of participation in the
program, see http://www.snia.org/tech_activities/ictp/.
2. SMI-Lab
SMI-Lab is the SNIA-hosted program that is used by storage vendors to
pretest their SMI implementation before entering formal ICTP testing.
Cummings_i–x_001–105 3/2/04 12:55 PM Page 86
Management In
rage itiat
iv
to SMI-S
e
S
Open Technical
Interface Steering
Group
Storage
Management
Forum Education
SMI-Lab ICTP
Developer’s
Network
SMI
... m o r e t h a n a s p e c ifi c a ti o n
Future Developments
and Goals
One of the major advantages of the WBEM definitions underlying SMI is their
leverage of existing standards such as XML and definition of an extensible schema.
This flexibility will be exploited to the full in future versions.
Future revisions of SMI-S will be synchronized with the release of new ver-
sions of the CIM schema. The final version of future SMI-S revisions will closely
follow the final release of a specific CIM schema version.
Both SNIA and DMTF have plans to add considerable functionality to the
definitions available for storage management, and these are described separately
below. DMTF’s approach to the addition of functionality to the schema is often
to declare that new class definitions are “experimental” so as to highlight the fact
that the definitions are likely to change in the next version after implementation
experience is gained. Following this convention, SMI-S contains an annex of
experimental profiles that are expected to be developed further and included in a
future revision as mandatory items.
SNIA SMI
The following sections detail plans already in place for enhancements to SMI-S
functionality in future revisions.
Revision 1.0.1
The existing SMI-S document contains an annex that describes a number of
enhancements to the SMI definitions that have already been worked on to some
extent, and will be finalized for a future revision. The following experimental pro-
files are defined in the annex:
89
Cummings_i–x_001–105 3/2/04 12:55 PM Page 90
Revision 1.1
SMI-S revision 1.1 will be synchronized with CIM schema version 2.9. Items being
considered for SMI-S revision 1.1 include:
• Integration of HBA LUN masking and persistent binding with other
standards
• Definition of managed hubs as a storage networking component
• Support for IP storage, including IP security and authentication
• Extension of the array profile to support multipathing
• Support for non-FC fabrics such as InfiniBand and IP networks
• Support for a multilevel agent hierarchy (in which a given agent could pro-
vide a management interface to higher level devices while simultaneously
relying on the management interface provided by agents below it)
• In-depth support for network-attached storage
• Support for an additional profile addressing recursive extent mapping
Future Revisions
Two major items, locking and policy, are also being addressed for inclusion in
SMI-S at some future point. These items may well require work by both SNIA
and DMTF.
Locking
A locking model is required to assure data integrity in situations where multiple
WBEM Clients are actively managing the same storage network. Locking will
allow the execution of multiple methods across multiple objects within a protec-
tion boundary. This may require the addition of a Lock Manager to the reference
model defined in Figure 5–2.
Policy
CIM schema version 2.8 already incorporates a rich (common) policy model, and
use of this model is expected to be a key inclusion in future SMI-S revisions in
order to provide the following capabilities:
• Provide a mechanism for a persistent repository of policies expressed in a
standard interchange format that can be read and acted on by the appropri-
ate policy mechanisms in the environment
• Allow SMI-S policy clients to enter and edit storage management policy
information in the persistent repository
• Allow a policy manager to be notified when policies that it processes are
added or changed
• Enable SMI-S agents by defining events that trigger policy actions
The objectives for policies in SMI-S are to:
• Define a mechanism that allows separation of policy specification and policy
execution
• Define a mechanism that supports distributed policy management
• Define a mechanism that allows common interchange of policy specification
information
• Define a mechanism that standardizes “triggers” for policy-based manage-
ment and augments SMI-S agents as needed to reveal triggering events
• Identify methods that SMI-S agents need in order to support a standard set
of policy actions
• Provide a mechanism that can be scaled to handle enterprise environments
• Enable one or more Policy Managers to analyze, invoke, and maintain poli-
cies in the policy server
Cummings_i–x_001–105 3/2/04 12:55 PM Page 92
This will require the addition of a Policy Manager to the reference model
defined in Figure 5–2, and also the definition of Policy Client, Server, and Man-
ager.
Long-Term Approach
SNIA’s ultimate intention with regard to SMI-S is to develop higher order func-
tionality than is now defined in Revision 1.0.1, thus relieving the burden placed
on WBEM Clients to perform low-level management functions and enhancing
scalability and interoperability in a heterogeneous storage network.
DMTF
DMTF is already planning for a major new revision of CIM (3.x), and items that
have been discussed include the following:
• Transactions
• Management console standards
• Application hooks and quiescence
• LDP/single sign-on
• Fault isolation and problem detection
• Policy compliance and configuration
Cummings_i–x_001–105 3/2/04 12:55 PM Page 93
Summary
This booklet has provided a basic grounding in the history of network manage-
ment interfaces and interface definitions as a background and introduction to the
work being performed by the SNIA as part of the Storage Management Initiative.
It has contrasted the characteristics of predecessor definitions with the SNIA SMI,
and described how the richness of the information model and extensibility of the
definitions can support new functionality. It has provided an overview of tech-
nology underlying the definitions produced by SMI and the application of those
definitions to the management of types of equipment commonly found in a stor-
age network. Development tools that are available to speed the adoption of the
underlying technologies in management applications have been described, and
future developments in those technologies anticipated. In short, the booklet has
provided a primer for SNIA members to the exciting developments in manage-
ment technologies now taking place. The SMI program in SNIA is building toward
the “holy grail” of storage management—namely, the situation in which an appli-
cation can discover a previously unseen type of device in a storage network and
immediately bind to it and provide a level of management functionality. SNIA
members are requested to use the information provided in this text and the ref-
erences contained in the appendices to enhance their products and management
applications and significantly simplify the administrative burden imposed by
storage networks, thus literally helping to fulfill the “efficient” part of the SNIA
mission.
93
Cummings_i–x_001–105 3/2/04 12:55 PM Page 94
Cummings_i–x_001–105 3/2/04 12:55 PM Page 95
APPENDIX
Applicable Standards
The following is a list of industry standard activities that define, or are relevant
to, the management technologies described in the text of this document. The list
is divided into two sections, one of which deals with completed and/or published
standards and the other with known works in progress. Wherever possible, sources
of each document are identified, whether they be available online or only in print.
By definition, all of these documents have a life cycle; new standards are being
approved, new versions are constantly becoming available, and old versions get
withdrawn. Therefore, if a specific version referenced here is not available, it is
recommended that the relevant accredited standards organization be contacted to
obtain the most up-to-date information. The contact information for each accred-
ited standards body mentioned is given at the end of the list.
95
Cummings_i–x_001–105 3/2/04 12:55 PM Page 96
Many activities related to storage management are held at the following location:
SNIA Technology Center
301 Rockrimmon Blvd. South
Colorado Springs, CO 80919 USA
1.719.884.8902 (voice)
1.719.884.8912 (fax)
The IETF Secretariat is hosted by the Corporation for National Research Initia-
tives. It can be reached at:
IETF Secretariat
c/o Corporation for National Research Initiatives
1895 Preston White Drive, Suite 100
Reston, VA 20191-5434 USA
1.703.620.8990 (voice)
1.703.620.9071 (fax)
Cummings_i–x_001–105 3/2/04 12:55 PM Page 100
APPENDIX
Recommended
Bibliography
Publications
For information on CIM and WBEM see:
Bumpus, Winston, et al., Common Information Model, New York: Wiley, August
2000 (ISBN 0-471-35342-6).
For information on SLP see:
Kempf, J. and P. St. Pierre, Service Location Protocol for Enterprise Networks, New
York: Wiley, May 1999 (ISBN 0-471-31587-7).
Guttman, Erik, Service Location Protocol: Automatic Discovery of IP Network Ser-
vices, IEEE Internet Computing, July 1999.
There are many publications related to XML, each with a different approach and
focus. See:
Harold, Eliotte Rusty, XML Bible, New York: IDG Books, 1999 (ISBN 0-7645-
3236-7), for a general introduction to the technology. A CD with a number
of free tools is also included.
103
Cummings_i–x_001–105 3/2/04 12:55 PM Page 104
Web Sites
The SNIA site has a wealth of information related to storage management,
including the latest released version of SMI-S, that can be found at
http://www.snia.org/smi/home.
The DMTF Web site has a wealth of information on CIM, including an updated
tutorial and access to all of the CIM and WBEM specifications referenced above;
it can be found at http://www.dmtf.org/.
The Open Group’s support site for the Pegasus CIM Object Manager can be found
at http://www.openpegasus.org/.
Open source WBEM software is located at http://www.wbemsource.org.
Information on the Service Location Protocol (SLP) can be found at
http://www.srvloc.org/.
An HTTP tutorial can be found at http://www.jmarshall. com/easy/http/.
Information on the full definition of the Unified Modeling Language (UML) can
be found at http://www.omg.org/technology/documents/formal/uml.htm.
Information on XML can be found at http://www.w3c.org/XML/.
S T O R A G E N E T W O R K I N G I N D U S T R Y A S S O C I A T I O N