`US007269612B2
`
`c12) United States Patent
`Devarakonda et al.
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 7,269,612 B2
`Sep.11,2007
`
`(54) METHOD, SYSTEM, AND PROGRAM FOR A
`POLICY BASED STORAGE MANAGER
`
`(75)
`
`Inventors: Murthy V. Devarakonda, Yorktown
`Heights, NY (US); Jack P. Gelb, San
`Jose, CA (US); Avijit Saha, Somers,
`NY (US); Jimmy Paul Strickland,
`Saratoga, CA (US)
`
`(73) Assignee: International Business Machines
`Corporation, Armonk, NY (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 434 days.
`
`(21) Appl. No.: 10/159,494
`
`(22) Filed:
`
`May 31, 2002
`
`(65)
`
`Prior Publication Data
`
`US 2003/0225801 Al
`
`Dec. 4, 2003
`
`(51)
`
`Int. Cl.
`G06F 17130
`(2006.01)
`(52) U.S. Cl. ....................................... 707/205; 707/200
`(58) Field of Classification Search ................ 707/205,
`7071200, 204
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,018,060 A
`5,136,523 A
`5,239,647 A
`5,287,500 A
`5,317,728 A *
`5,367,671 A
`5,606,689 A
`5,630,127 A
`5,872,928 A
`5,978,815 A
`6,032,161 A
`6,154,817 A
`
`5/1991 Gelb et al.
`8/1992 Landers
`8/1993 Anglin et al.
`2/1994 Stoppani, Jr.
`5/1994 Tevis et al. ................. 707 /204
`11/1994 Feigenbaum et al.
`2/1997 Nakagawa
`5/1997 Moore et al.
`2/1999 Lewis et al.
`11/1999 Cabrera et al.
`2/2000 Fuller
`11/2000 Mohan et al.
`
`7/2001 Cabrera et al.
`6,269,382 Bl
`8/2001 Arlitt et al.
`6,272,598 Bl
`10/2001 Lopresti
`6,298,173 Bl
`6,330,621 Bl * 12/2001 Bakke et al. .................. 710/5
`10/2001 Oshinsky et al.
`2001/0034812 Al
`
`(Continued)
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`0950965 A
`
`10/1999
`
`OTHER PUBLICATIONS
`
`J.P.Gelb, System-managed Storage, 1989, IBM Systems Journal
`vol. 28, No. 1, pp. 77-103.*
`
`(Continued)
`
`Primary Examiner-Paul Rodriguez
`Assistant Examiner-Luke Osborne
`(74) Attorney, Agent, or Firm-David W. Victor; Konrad
`Raynes & Victor LLP
`
`(57)
`
`ABSTRACT
`
`Provided are data structures for use in storing data. A
`plurality of data structures are defined in a computer read(cid:173)
`able medium, wherein each data structure indicates a plu(cid:173)
`rality of attributes and at least one function of a storage
`resource to store data. Policies are defined in the computer
`readable medium that associate data characteristics to data
`structures based on a correspondence of data characteristics
`and the attributes defined in the data structures, wherein each
`defined data structure is adapted to provide requirements to
`determine a storage resource to store associated data, and
`wherein the defined data structure is adapted to provide the
`storage resource with requirements for storing the data.
`
`47 Claims, 9 Drawing Sheets
`
`Appllcatlonlevel_,.--250
`
`264
`
`25 n
`
`Containers
`
`plication
`ttributes
`
`Functions
`
`-------------
`
`,,,,,.~,
`IJ
`I
`~~,1
`;:;i;;: ~
`A~~= l
`
`2
`
`Containers
`
`Microsoft Ex. 1008, p. 1
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`US 7,269,612 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`2002/0188592 Al
`
`12/2002 Leonhardt et al.
`
`OTHER PUBLICATIONS
`
`U.S. Appl. No. 09/544,625, filed Apr. 6, 2000, entitled "An Efficient
`Method for Rule-based Distribution and Management of Content in
`a Distributed Hierarchy of Storage Devices" by R. Chernock, P.
`Dettori, F.A. Schaffa, and D. Seidman.
`Chang, A., R.K. Rader, B.L. Ritter and M.D. Rogers. "Dynamic,
`Multi-Level Storage Policy for Managing External Page Table
`Space in the AIX Operating System", IBM Corp., Technical Dis(cid:173)
`closure Bulletin, vol. 32, No. 5A, Oct. 1989, pp. 270-273.
`Lortz, V. and L. Rafalow (eds.). "IPsec Policy Model", Version 0.82,
`Copyright Distributed Management Task Force, Inc. (DMTF) Nov.
`29, 2000, pp. 1-16.
`
`Ellesson, E. (ed.). "CIM Core Policy Model", Copyright Distributed
`Management Task Force, Inc. (DMTF) May 12, 2000, pp. 1-21.
`Chudnow, C. "Policy-Based Storage Management", [online], Copy(cid:173)
`right Westworld Productions, Inc. 2002, [retrieved on May 31,
`2002]. Retrieved from the Internet at <URL: http://www.wwpi.com/
`archive/ctr_l2_01/6910.cfm>.
`Leins, R. "Tivoli Storage Manager, A Technical Introduction",
`Copyright IBM Corp. 2000, May 2001. pp. 1-30.
`PCT Search Report dated Dec. 6, 2004 for Application No. PCT/GB
`03/02062, filed Dec. 5, 2003.
`PCT Preliminary Examination Report dated Oct. 28, 2005 for
`Application No. PCT/GB 03/02062, filed Dec. 5, 2003.
`
`* cited by examiner
`
`Microsoft Ex. 1008, p. 2
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`U.S. Patent
`
`Sep.11,2007
`
`Sheet 1 of 9
`
`US 7,269,612 B2
`
`FIG. 1
`
`14
`
`16
`
`~lication
`! - - - - - - - - - - - - - - - ~ Policies
`10c
`
`~
`
`Application Attributes ------ Appl. Level
`
`(Dynamic, Intrinsic)
`
`Mgmt Functions
`
`Business
`Enterprise
`Policies
`
`1 b
`
`Data
`Policies
`
`12b
`
`Data Attributes
`(Dynamic, Intrinsic)
`
`Data Level
`Mgmt Functions
`
`20
`
`Storage
`Policies
`
`Storage Attributes
`(Dynamic, Intrinsic)
`
`------
`
`Storage Level
`Mgmt Functions
`
`Microsoft Ex. 1008, p. 3
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`U.S. Patent
`
`Sep.11,2007
`
`Sheet 2 of 9
`
`US 7,269,612 B2
`
`FIG. 2
`
`Business Processes
`
`Applications
`
`_;_
`
`;
`
`Middleware
`,.
`
`Container/
`Connector
`Framework
`
`56
`
`commands,
`monitoring,
`control
`
`~ .....
`
`0
`
`_J
`
`2
`l.,_.,-)5
`
`v
`
`Storage
`Policy
`Manager
`
`Storage
`Resource
`Manager
`
`----,
`
`-
`,,.
`
`-,
`
`File System
`
`Volume Mgr.
`
`,
`
`~
`
`,
`'
`
`Container/
`Connector
`Framework
`
`~ ....
`
`~
`
`I;
`
`Storage
`System
`
`,~
`
`~
`
`Container/
`~ Connector
`Framework
`
`~ ....
`
`Microsoft Ex. 1008, p. 4
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`--..J
`0
`0
`N
`
`.... ~
`'? ....
`
`('D
`rJJ
`
`J4b
`
`I
`
`I
`
`r
`~
`
`.._
`
`-
`
`~
`
`~
`
`~ = ~
`
`~
`~
`~
`•
`00
`
`e •
`
`,.
`
`~
`
`('D
`('D
`
`0 ....
`.....
`rJJ =(cid:173)
`
`1,0
`
`Manager
`Resource
`Storage
`
`.
`
`-,
`
`Manager
`
`~ Policy
`~ Storage
`
`-
`
`' -..
`
`l
`
`I
`
`J ~
`
`T -logical mgmt funclns
`,_ loglcal attributes
`
`1 Data Container
`
`•t
`
`~ -logical mgmt functns
`
`-. -lcglcal attributes
`-Appl. Container
`
`r
`
`-
`
`'
`
`Connector
`Applfcation
`
`-
`
`,~
`
`-
`
`-physical rngmt functns
`-physical attributes
`
`...
`-Appl Elements
`
`F
`
`I
`
`FIG. 3
`
`"'""' N = N
`
`O'I
`\0
`0--,
`'N
`-....l
`
`d r.,;_
`
`I
`
`--
`
`~ -
`
`~
`
`: ..
`
`,
`I
`
`I
`
`'
`
`)4c
`
`..
`
`r -logical mg mt functns
`
`-_ -!agical attributes
`-Storage Container
`
`I
`
`r
`
`j'
`
`-
`
`Connector
`Storage
`
`1.32c
`
`I
`
`I
`
`-
`
`'
`,
`
`Connector
`
`Data
`
`02b
`
`I
`
`I
`
`'
`
`I
`
`~
`
`-
`-
`
`~
`
`• physical mgmt functns "'
`-physical attributes
`
`-Data Elements
`
`-
`
`I
`
`-
`-
`
`1?0c
`
`I
`
`I
`
`,
`
`•
`
`~
`
`JOb
`
`--physical altrib utes
`
`-Data Elements
`,,
`
`-physical mgmtfunctns ..
`
`I
`
`f
`
`J
`
`Microsoft Ex. 1008, p. 5
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`U.S. Patent
`
`Sep.11,2007
`
`Sheet 4 of 9
`
`US 7,269,612 B2
`
`FIG. 4
`
`204a
`
`Storage
`Resource
`
`204b
`
`Storage
`Resource
`
`04c
`
`Storage
`Resource
`
`202a
`
`02n
`
`Application
`Server
`
`r-----...J
`
`Network
`
`Application .
`1 - - - - - - - - '
`Server
`•
`
`I
`
`2~
`, ' - - - -~ - - - -
`Storage Server
`
`Policy Based
`Storage Manager,
`
`Storage Server
`
`Policy Based
`Storage Manager
`
`08n
`
`210n
`
`Storage
`Resource
`
`Microsoft Ex. 1008, p. 6
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`U.S. Patent
`
`Sep.11,2007
`
`Sheet 5 of 9
`
`US 7,269,612 B2
`
`FIG. 5 264
`Application Level,,--250
`/
`52
`~ - - - - -~ -
`Application
`Policy Mngr.
`
`Application
`Attributes
`
`256
`
`Application
`Policies
`
`25 n
`, - - - - - - - - - - ,
`
`258b
`
`Application Containers
`5oa Application
`Attributes
`
`Management
`Functions
`
`Management
`Functions
`
`Data Levev270
`72
`
`Data
`Attributes
`
`274
`
`Management
`Functions
`
`284
`
`278b278
`
`1·
`Data Po icy
`Mngr.
`
`Data Policies
`
`Data
`Attributes
`
`Management
`Functions
`
`Storage Level-;io~--~~-0-4~
`Storage
`Storage Policy
`296
`Attributes
`Mngr.
`
`Management
`Functions
`
`Storage
`Policies
`
`298~
`298b
`
`Storage Containers
`
`Storage
`Attributes
`
`Management
`Functions
`
`204b
`
`204n
`
`Storage
`Resources
`
`Storage
`Resources
`
`Storage Vendor
`Attributes
`
`Storage Vendor
`Attributes
`
`Storage Vendor
`Attributes
`
`Microsoft Ex. 1008, p. 7
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`U.S. Patent
`
`Sep.11,2007
`
`Sheet 6 of 9
`
`US 7,269,612 B2
`
`FIG. 6a
`
`Data Policy
`Manager
`
`410
`)
`
`I
`I
`I
`
`1
`
`1
`~-___,
`
`1e
`
`From data policies,
`determine data attributes
`--------.,~ that correspond to data
`characteristics.
`1
`I
`I
`I
`I
`I
`I
`I
`
`,,
`Select data container that is
`associated with selected
`application container and any
`additionally considered data
`attributes.
`
`Go to block
`414 in FIG. 6b
`
`Application Policy
`Manager
`
`Receive data file creation
`or access request from
`client system.
`
`4 2
`
`Does
`data file have
`metadata defining
`application, data, and
`storage containers for
`the data
`file?
`
`No
`
`400
`
`.
`Goto
`block 420.
`in FIG.
`6b.
`
`Yes
`
`Determine data characteristics.
`
`04
`
`4 6
`
`From application policies, determine
`application attributes that correspond
`to data characteristics.
`
`408
`
`Select one application container
`that has application attributes
`capable of satisfying determined
`application attributes for data file.
`
`Microsoft Ex. 1008, p. 8
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`U.S. Patent
`
`Sep.11,2007
`
`Sheet 7 of 9
`
`US 7,269,612 B2
`
`FIG. 6b
`
`Storage System Policy Manager
`
`From storage policies, determine
`storage attributes that correspond
`to data characteristics.
`
`414
`
`41
`
`418
`
`Select storage container that is
`associated with selected data
`container and any additionally
`considered storage attributes.
`
`Store the selected
`application, data, and
`storage containers with
`data file metadata.
`
`Determine the storage resource that
`is associated with the selected
`storage container indicated in the
`data file metadata.
`
`42
`
`4 4
`
`Route the data file to the
`determined storage resource.
`
`Determined storage resource implements
`the management functions defined in the
`application, data, and storage container
`indicated in the data file metadata.
`
`Microsoft Ex. 1008, p. 9
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`"'""' N = N
`
`O'I
`\0
`0--,
`'N
`-....l
`d r.,;_
`
`1,0
`
`0 ....
`.....
`rJJ =(cid:173)
`
`QO
`
`('D
`('D
`
`-....J
`0
`0
`N
`
`.... ~
`'? ....
`
`('D
`rJJ
`
`~ = ~
`
`~
`~
`~
`•
`00
`
`e •
`
`Container
`Storage
`
`630
`
`~
`
`~
`
`Data Container
`
`620
`
`~
`
`~
`
`Container
`Application
`
`610
`
`Storage
`
`624a
`
`Function
`Management
`
`Data
`
`614a
`
`Function
`Management
`
`612a
`Attribute
`Application
`
`634n
`Function
`Management
`
`632n
`Attribute
`Storage
`
`624n
`Function
`Management
`
`622n
`Attlibute
`Data
`
`614n
`Function
`Management
`
`612n
`Attribute
`Application
`
`600~
`
`Container
`
`FIG. 7
`
`Microsoft Ex. 1008, p. 10
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`U.S. Patent
`
`Sep.11,2007
`
`Sheet 9 of 9
`
`US 7,269,612 B2
`
`FIG. 8
`
`700
`
`\..------'--------------------,
`
`Computer Architecture
`
`Processor
`
`Memory
`
`Storage
`
`706
`
`710
`
`Network
`Card
`
`704
`
`708
`
`712
`
`Input Device
`
`Output
`Device
`
`Microsoft Ex. 1008, p. 11
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`US 7,269,612 B2
`
`2
`defined in the data structures, wherein each defined data
`structure is adapted to provide requirements to determine a
`storage resource to store associated data, and wherein the
`defined data structure is adapted to provide the storage
`resource with requirements for storing the data.
`Provided are a method and article of manufacture for
`processing data to be stored. An application attribute is
`associated with data based on an application policy. A
`determination is made of an application attribute value in a
`predetermined data structure, wherein the data structure is
`adapted to be received by a data level element and by a
`storage resource and to provide the storage resource with
`requirements for storing the data.
`Provided are a method, system, and article of manufacture
`for storing data. A determination is made of characteristics
`of the data. A plurality of data structures are processed. Each
`data structure may indicate a plurality of attributes and at
`least one function, to determine one data structure having
`attributes corresponding to the determined characteristics of
`the data. A storage resource is associated with the deter(cid:173)
`mined data structure and the storage resource associated
`with the determined data structure implements the attributes
`and functions indicated in the data structure.
`The described implementations provide techniques for
`implementing a policy based management framework for
`associating data with storage resources.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`1
`METHOD, SYSTEM, AND PROGRAM FOR A
`POLICY BASED STORAGE MANAGER
`
`BACKGROUND OF THE INVENTION
`
`5
`
`30
`
`1. Field of the Invention
`The present invention relates to a method, system, and
`program for a policy based storage manager.
`2. Description of the Related Art
`A policy based storage management framework specifies 10
`how data having certain characteristics is associated with
`different pools of storage space that will store such data, as
`well as how the data will be managed throughout its life(cid:173)
`cycle. One prior art policy based storage management
`framework, described in the commonly assigned U.S. Pat. 15
`No. 5,018,060, which patent is incorporated herein by
`reference in its entirety, describes a policy based storage
`management framework that provides constructs including
`data classes, storage classes, and management classes that
`are used to select storage devices for a data file or data set 20
`based on the characteristics of the data file. A data class
`specifies data file logical attributes, such as data file type,
`record length, logical data storage space requirements, expi(cid:173)
`ration and retention dates for the data, etc. A storage class
`defines a set of storage services, such as random access 25
`specifications, sequential access specifications, guaranteed
`space, etc. A management class specifies availability and
`retention management requirements for data, such as hier(cid:173)
`archical storage management (HSM), expiration, backup
`frequency, retention of backup copies, etc.
`An automatic class selection (ACS) routine receives a
`request to create or access a data file and then selects and
`assigns data, storage, and management classes that apply to
`the data file based on characteristics of the data file, e.g.,
`application that generated data file, file name, date, owner of 35
`file and/or application, etc. The final selection is of a storage
`group based on the data, storage, and management classes
`assigned to the data. The storage group provides the allo(cid:173)
`cation of physical storage space for the data file. With the
`described prior art policy based storage management frame- 40
`work, data files can be members of one data class, but be
`assigned to different storage and/or management classes,
`which determine to which storage group the data file is
`assigned.
`The above described policy based storage management 45
`framework was primarily intended for systems in which a
`storage subsystem, such as a Direct Access Storage Device
`(DASD) is directly attached to a storage controller, that
`assigns hosts data to particular storage groups in the manner
`described above.
`Notwithstanding, there is a need in the art for additional
`policy based storage management frameworks that may be
`used with both directly attached storage and indirectly
`attached storage, such as in a storage networking environ(cid:173)
`ment.
`
`Referring now to the drawings in which like reference
`numbers represent corresponding parts throughout:
`FIG. 1 a view of policy based storage management
`architecture in accordance with certain implementations of
`the invention;
`FIG. 2 illustrates a further view of a policy based storage
`management architecture in accordance with certain imple(cid:173)
`mentations of the invention;
`FIG. 3 illustrates a still further view of a policy based
`storage management architecture in accordance with certain
`implementations of the invention;
`FIG. 4 illustrates a network computing environment in
`which aspects of the invention are implemented in accor(cid:173)
`dance with certain implementations of the invention;
`FIG. 5 illustrates a policy based storage manager frame(cid:173)
`work in accordance with certain implementations of the
`invention;
`FIGS. 6a and 6b illustrates logic to select a storage
`50 resource for a data file using the policy based storage
`manager framework in accordance with certain implemen(cid:173)
`tations of the invention;
`FIG. 7 illustrates a container data structure in accordance
`with certain implementations of the invention; and
`FIG. 8 illustrates a computing architecture that may be
`utilized with certain implementations of the invention.
`
`55
`
`SUMMARY OF THE PREFERRED
`EMBODIMENTS
`
`Provided are a method and data structures for generating 60
`data structures for use in storing data. A plurality of data
`structures are defined in a computer readable medium,
`wherein each data structure indicates a plurality of attributes
`and at least one function of a storage resource to store data.
`Policies are defined in the computer readable medium that 65
`associate data characteristics to data structures based on a
`correspondence of data characteristics and the attributes
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`In the following description, reference is made to the
`accompanying drawings which form a part hereof and which
`illustrate several embodiments of the present invention. It is
`understood that other embodiments may be utilized and
`structural and operational changes may be made without
`departing from the scope of the present invention.
`
`Microsoft Ex. 1008, p. 12
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`US 7,269,612 B2
`
`3
`Policy Based Management Framework
`
`Described implementations concern a comprehensive
`management platform for an environment that includes a
`variety of mission critical applications, large numbers of
`servers running different operating systems, storage systems
`with differing capabilities, and many network elements that
`interconnect servers with storage systems. Storage manage(cid:173)
`ment deals with many levels or layers of the system: i.e. disk
`(storage) level, data level, and application level. Storage
`management is also multi-faceted: e.g. performance, recov(cid:173)
`erability, capacity planning, security, and installation aspects
`and handles transient as well as persistent aspects: e.g. I/O
`requests (transient) and data (persistent). The described
`implementations may present and utilize the following con(cid:173)
`cepts: multi-level, inter-related policies, based on the layers
`of the storage environment, and mechanisms to establish
`these relationships; a container concept that allows defining
`an arbitrary set of storage, management, and/or service
`classes as per the needs of a management solution and/or
`installation; a tighter integration between resource manager
`and policy manager, allowing for a dynamic behavior; a
`connector concept to provide a standard characterization of
`managed elements and to provide a semantic mapping from
`the standard characterization to the actual. The described
`implementations allow the integration of business objec(cid:173)
`tives, specifying resource usage, availability, recoverability
`priorities; system model, specifying what changes should be
`noticed and how; metrics specifying what and how to
`measure the system, and when to raise "alarms"; and service
`contract, specifying the monitorable interactions with other
`components (e.g. application) of the information infrastruc(cid:173)
`ture.
`A policy is a "condition-action tuple." The condition part
`specifies an event or state that acts as trigger( s) for the action
`part to be executed. The condition can reflect a timer-based
`value ( e.g. midnight, Thursday, "first day of a new quarter"),
`an internal or external situation (e.g. error code raised/
`exception thrown, job successfully terminates), or an
`attribute value ( e.g. service level, size, application name).
`The action(s) associated with the occurrence of one or more
`conditions may involve the execution of specific procedures
`or functions, the raising of other conditions, and/or the
`setting of other attributes to particular values. In this last
`case, an action may thus establish triggers for other actions.
`FIG. 1 illustrates a conceptual view of how policy based
`management can be applied to the storage area. In FIG. 1,
`the system has three layers-storage 2, data 4, and the
`application 6. The storage level 2 relates to physical aspects
`of a storage system that deals with "storing and retrieving"
`of raw bits, the data level 4 relates to logical aspects of a
`storage system, such as providing data access methods, and
`the application level 6 relates to users of the storage system,
`such as middleware, applications, and business processes,
`and their requirements on data and storage supported at an
`aggregate level.
`Each policy level 2, 4, and 6 allows policies to be defined
`for that level. Policies at any given level are defined in terms
`of attributes lOa, lOb, 10c and management functions 12a,
`12b, 12c. Attributes lOa, lOb, 10c represent properties and
`characteristics of the managed environment ( e.g. capacity of
`a disk, throughput rates needed for an application, most
`recent modification time on a file). They are further distin(cid:173)
`guished as intrinsic (static) and dynamic (time-varying).
`Intrinsic attributes do not change with time and hence they
`can be referenced but not reset. Dynamic attributes can be
`referenced and can be reset. Management functions 12a,
`
`4
`12b, 12c are the basic mechanisms that perform the admin(cid:173)
`istration of the environment ( e.g. creating a logical disk,
`mounting a file system, quiescing an application). Manage(cid:173)
`ment functions 12a, 12b, 12c may be invoked as the action
`5 part of a policy execution. Both policies 10a, 10b, 10c and
`management functions 12a, 12b, 12c may use intrinsic
`attributes and may reset dynamic attributes. In certain imple(cid:173)
`mentations, each higher-level policy can influence the next
`lower level policies through the attributes and management
`10 functions. Attributes at a higher level can be used in the next
`lower level policies, and management functions at a higher
`level may activate policies at the next lower level.
`FIG. 1 further shows how business/enterprise policies 14,
`such as Service Level Agreements (SLAs) and service level
`15 objectives (SLOs), as well as government regulations affect
`the levels 2, 4, 6 and are translated either automatically or
`manually into policies at the three levels described here.
`Application policies 16 may be used to control the manner
`in which a particular task accesses or consumes computa-
`20 tional resources, or to prioritize that task relative to others.
`Application policies 16 concern an application's require(cid:173)
`ments on the data that it generates or uses-and, indirectly,
`the storage on which that data resides. For instance, an
`application may have specific requirements for the speed
`25 and format of data access, or for recoverability of the data
`in the event of an outage. The speed of access may be a
`consequence of needing to achieve a certain transaction rate,
`and may potentially vary during application execution.
`Hence, different applications may require different access
`30 rates when accessing the same file, or may require different
`types of I/O (e.g. read vs. write, sequential vs. random).
`Additionally, synchronizing the backup of modified files
`may vary across applications; this is particularly significant
`if different applications have diverse synchronization
`35 requirements and have a file in common.
`To implement the application policies 16, application
`attributes 10c are associated with the file when an applica(cid:173)
`tion is accessing that file. The application attributes 10c may
`include initial access delay, sustained access rate, I/O rate,
`40 I/O bandwidth, read/write ratio, sequential/direct access,
`aggregate backup/recovery criteria ( e.g. outage time, cur(cid:173)
`rency). Application attributes 10c may be collected into
`named sets of service classes. The association of such a set
`with an application's use of a file is one instance of an
`45 application policy 16. For instance, the service criteria may
`be used to determine whether data can be moved up and
`down the storage hierarchy.
`Data policies 18 are concerned with the data itself rather
`than any particular application's use of the data. These
`50 include criteria for the management of the data's life cycle,
`recoverability, and security. As with application policies,
`data policies may be based on data attributes 10b. Data
`attributes 1 Ob include life cycle attributes and recoverability
`attributes. Life cycle attributes specify the length of time the
`55 data needs to be kept and the number of versions of the data
`that must be maintained. Life cycle policies prescribe what
`actions should (or must) be taken when the time period has
`elapsed or the number of versions is exceeded. Recoverabil(cid:173)
`ity attributes indicate the number (and potentially the geo-
`60 graphic location) ofbackup copies of the data, and the cyclic
`nature of the backups. Recoverability attributes are used to
`trigger a backup action, delete older backup copies, or
`restore data from a backup copy. Data attributes 10b also
`include security attributes that define logical and physical
`65 security policies. Logical security is concerned with access
`lists (i.e. 'who' can access the data) and authorization levels
`(i.e. and do 'what' with it). Security attributes allow or deny
`
`Microsoft Ex. 1008, p. 13
`Microsoft v. Daedalus Blue
`IPR2021-00831
`
`
`
`US 7,269,612 B2
`
`5
`
`5
`access based on the requester's authorizations. Physical
`security relates to the placement of data on physically secure
`devices (e.g. in a locked room).
`Storage policies 20 govern the partitioning and use of
`storage space, the topology of storage within an enterprise,
`and the management of the storage components themselves.
`Storage attributes 10a may provide requirements on the
`storage device, or the storage systems (i.e. a number of
`storage devices packaged as a system). Storage policies 20
`may concern the management of the individual storage
`devices are primarily vendor-dependent. Examples of these
`are the use of dynamic RAID reconfiguration capability,
`specific 'snapshot' implementations, dynamic defragmenta(cid:173)
`tion/garbage collection, on-board cache management, per(cid:173)
`formance-based capacity control, etc. Storage attributes 10a
`that are device related include capacity, bandwidth, I/O
`rates, sequential/direct, reliability/error rates, concurrent
`copy capability, physical location, security, lease duration,
`cost, etc. The actions or management functions 12a associ(cid:173)
`ated with the storage policies 20 include enabling/disabling
`usage, draining, dumping, initiating transfers ( e.g. for copy
`purposes), hierarchy management, etc.
`The above described policies 16, 18, and 20 are designed
`for the management of storage (and data residing on the
`storage) and are intended to satisfy business objectives. 25
`These policies 16, 18, 20 may be explicitly stated, or implied
`by/derived from other policies that reflect business practices
`and guidelines (i.e. business policies). Thus, the application
`16, data 18, and storage policies 20 may be derived from the
`business policies. Examples of business policies include: 30
`financial transaction data must be kept for a certain period of
`time, employees must be paid at a certain day and time each
`month, up-to-the-minute copies of all financial records are to
`be stored in an off-site vault, etc.
`The first business policy implies a data policy that any 35
`data file containing financial transactions must have a mini(cid:173)
`mum retention characteristic of a number of years from the
`last update. The second business policy implies an applica(cid:173)
`tion policy determining when the payroll application must
`be run. The third business policy implies a data policy for the 40
`remote copying of specific data.
`Storage management may involve the following areas:
`performance, which involves service delivery rates, hot
`spots, latency, resources utilization, etc.; availability, which
`includes data protection as well as fault tolerance aspects; 45
`security, which involves access control, authentication, audit
`trails, physical security, etc.; space and capacity, which
`involves the amount of storage space, I/O bandwidth, size
`limits, etc.; and installation and physical entities, which
`include leases, housing issues, etc.
`FIG. 2 illustrates an embodiment of the policy based
`storage management architecture which includes three ele(cid:173)
`ments, a storage policy manager 50, storage resource man(cid:173)
`ager 52, and a connector framework 54. As FIG. 2 shows,
`the storage policy manager 50 and storage resource manager 55
`52 work with the environment using the connector frame(cid:173)
`work 54. The commands, controls, measurement, events,
`and feedback 56 flow through the connector framework 54
`between the environment and the management infrastruc(cid:173)
`ture. In the scenarios where the environment consists of a 60
`policy-based tool or a component, the connector framework
`54 may provide the mechanisms to influence policies of that
`tool/component.
`FIG. 3 is a detailed view of the policy based storage
`management framework. FIG. 3 containers are abstract 65
`constructs and, in certain implementations, may be imple(cid:173)
`mented as object oriented classes having certain associated
`
`6
`properties and functions. Elements added to a container may
`inherit functions and properties provided by the container.
`Thus, making an element a member of a container makes the
`functions and properties included in that container available
`to that element. A container is a collection of logical
`attributes and associated functions. For example, a storage
`container may comprise a collection of logical storage
`attributes and management functions. Several physical stor(cid:173)
`age elements may be used to support a storage container
`10 abstraction and hence the logical attributes of the container
`represent the physical attributes of the elements in an
`individualized as well as in an aggregate form. The attributes
`may refer to such aspects as reliability, performance, avail(cid:173)
`ability, and installability aspects of the elements. A specific
`15 container definition consists of a subset of the logical
`attributes. All elements supporting the container definition
`offer homogeneous attribute values. In embodiments where
`containers are implemented as an object oriented class, a
`container can be defined using a class definition in object
`20 oriented programming. The number of distinct container
`classes depends on the number oflogical attributes at a given
`level.
`The container maps a specific combination of logical
`attributes to a set of specific data and storage elements that
`can be used to support service implied by the attributes. An
`element may comprise any hardware or software product or
`component that provides some form of data or storage
`placement, access, or management function depending on
`the context. A container defines requirements for a number
`of data/storage software and hardware elements or parts/
`products that actually house and manage the application in
`a manner that meets the service requirements. Also, the same
`level of service defined by attributes and management
`functions included in a container may be implemented by
`different sets of elements or parts/products. For example,
`storage controllers provided by different vendors may satisfy
`the same level of service specified in a container. This allows
`data and storage used by a single business application to be
`placed, based on container policy, in more than one vendor's
`controllers (multiple containers) while managing all of the
`application's data/storage through a single instance of an
`application policy.
`Management functions define data/storage hardware or
`software functions implemented by a container. The man(cid:173)
`agement functions defined by a container may map to
`element functions provided by a vendor that supplies the
`underlying elements or third party software that sits between
`t