`Case 6:20-cv-01152—ADA Document 1-5 Filed 12/16/20 Page 1 of 19
`
`EXHIBIT 5
`EXHIBIT 5
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 2 of 19
`
`I 1111111111111111 1111111111111111111 IIII IIIII 11111 111111111111111111 IIII
`
`US008671132B2
`
`(12) United States Patent
`Carlson et al.
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 8,671,132 B2
`Mar. 11, 2014
`
`(54) SYSTEM, METHOD, AND APPARATUS FOR
`POLICY-BASED DATA MANAGEMENT
`
`(75)
`
`Inventors: James Vernon Carlson, San Jose, CA
`(US); Linda Marie Duyanovich,
`Saratoga, CA (US); Toby Lyn Marek,
`Santa Clara, CA (US); David Ronald
`Nowlen, Morgan Hill, CA (US); David
`Allan Pease, Redwood Estates, CA
`(US); Michael Leo Walker, San Jose,
`CA (US); Paul Harold Hilton, Bragg
`Creek(CA)
`
`(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 2908 days.
`
`(21) Appl. No.: 10/389,408
`
`(22) Filed:
`
`Mar. 14, 2003
`
`(65)
`
`US 2004/0199566 Al
`
`Prior Publication Data
`Oct. 7, 2004
`
`(51)
`
`(2006.01)
`
`Int. Cl.
`G06F 15116
`(52) U.S. Cl.
`USPC ............................ 709/201; 709/203; 709/208
`(58) Field of Classification Search
`USPC . ... ... .. . . . ... ... . .. ... ... .. ...... ... . 707 /l; 709/208, 207
`Sec application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,755,928 A
`5,519,865 A '"
`6,154,776 A
`6,167,445 A
`6,212,562 Bl
`6,594,689 Bl '"
`
`7/1988
`5/1996
`J J/2000
`12/2000
`4/2001
`7/2003
`
`Johnson et al. . .............. 364/200
`Kondo et al.
`..................... 707/1
`Martin ................. , ...... .. 709/226
`Gai et al ....................... 709/223
`Huang ....... ... ... ... ..... ..... 709/227
`Nowatzki et al. ... .. ........ 709/208
`
`• cited by examiner
`
`Primary Examiner -Ad.nan Mi=
`(74) Altorney, Agent, or Firm -Kunzler Law Group
`
`(57)
`
`ABSTRACT
`
`A policy-based data management system, method, and appa(cid:173)
`ratus are disclosed. The system, method, and apparatus are
`configured to operate over a distributed storage system such
`as a storage area network (SAN). Files to be stored on the
`network are each assigned a service class and a storage pool
`based on the application of policies to file attributes such as
`file name, type, user, etc. The service class and storage pool
`designations are stored as metadata. Files may be retrieved
`using the metadata to identify the storage pool where the file
`is stored, and the service class listed within the metadata may
`be used to control the manner in which the file is handled. A
`metadata server may be utilized to provide the appropriate
`service class of files in response to requests from remote
`clients that may be of different computing platforms.
`
`27 Claims, 8 Drawing Sheets
`
`110
`
`,oo
`/
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 3 of 19
`
`U.S. Patent
`
`Mar. 11, 2014
`
`Sheet 1 of 8
`
`US 8,671,132 B2
`
`110
`
`100
`
`/
`
`150
`
`104
`
`106
`
`108
`
`120
`
`156
`
`Fig. 1
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 4 of 19
`
`U.S. Patent
`
`Mar.11,2014
`
`Sheet 2 of8
`
`US 8,671,132 B2
`
`200
`
`~
`
`220
`
`Policy Set
`
`230
`
`Service Class Policy
`
`285
`
`285
`
`Fig. 2
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 5 of 19
`
`U.S. Patent
`
`Mar. 11, 2014
`
`Sheet 3 of 8
`
`US 8,671,132 B2
`
`File Transmission
`Module
`
`File
`
`310
`
`300
`
`File Attributes
`
`Policy Set
`
`210
`
`102
`
`To 150,
`152,154
`
`125
`
`350
`
`File Evaluation
`Module
`
`Service Class
`Selection Module
`
`Storage Pool
`Selection Module
`
`352
`
`354
`
`360
`
`44
`
`340
`
`File Attributes
`
`Metadata Storage
`Module
`
`346
`
`To 140
`
`Fig. 3
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 6 of 19
`
`U.S. Patent
`
`Mar. 11, 2014
`
`Sheet 4 of 8
`
`US 8,671,132 B2
`
`470
`
`72
`
`File Usage Module
`
`RAM Allocation
`Module
`
`Cache Allocation
`Module
`
`1/0 Allocation
`Module
`
`50
`
`102
`
`125
`
`To, From
`150, 152,
`154
`
`File
`
`File Request
`
`File Request
`Transmission Module
`
`File Request or
`Metadata Request
`
`Translation Module
`
`Translated Metadata
`Request
`
`400
`
`420
`
`330
`
`440
`
`349
`
`Fig. 4
`
`From 140
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 7 of 19
`
`U.S. Patent
`
`Mar.11,2014
`
`Sheet 5 of8
`
`US 8,671,132 B2
`
`140
`
`510
`
`540
`
`Filename 1
`
`Metadata for Filename 1
`
`Filename2
`
`Metadata for Filename 2
`
`. .
`
`Filename n
`
`Metadata for Filename n
`
`Fig. 5
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 8 of 19
`
`U.S. Patent
`
`Mar. 11, 2014
`
`Sheet 6 of8
`
`US 8,671,132 B2
`
`610
`
`Start
`
`600
`
`~
`
`Provide Policy Set
`
`Receive File Attributes
`from Client Server
`
`Select Service Class
`for File
`
`Select Storage Pool for
`File
`
`Add Service Class and
`Storage Pool
`Designations to File
`Attributes to Create
`File Metadata
`
`Store Metadata in
`Metadata Disk pool
`
`Store File in Selected
`Storage Pool
`
`620
`
`630
`
`650
`
`660
`
`670
`
`680
`
`690
`
`695
`
`Fig. 6
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 9 of 19
`
`U.S. Patent
`
`Mar. 11, 2014
`
`Sheet 7 of 8
`
`US 8,671,132 B2
`
`710
`
`Start
`
`650
`
`~
`
`730
`
`750
`
`770
`
`Assign the
`Service
`Class
`Dictated by
`Rule 1 to
`the FIie
`
`Assign the
`Service
`Class
`Dictated by
`Rule2 to
`the File
`
`Assign the
`Service
`Class
`Dictated by
`Rule n to
`the FIie
`
`810
`
`Start
`
`660
`
`~
`
`830
`
`850
`
`870
`
`Assign the
`Storage
`Pool
`Dictated by
`Rule 1 to
`the File
`
`Assign the
`Storage
`Pool
`Dictated by
`Rule2 to
`the File
`
`Assign the
`Storage
`Pool
`Dictated by
`Rule n to
`the File
`
`Assign the Default
`Service Class to
`the File
`
`790
`
`End
`
`Fig. 7
`
`Assign the Default
`Storage Pool to the
`File
`
`890
`
`Fig. 8
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 10 of 19
`
`U.S. Patent
`
`Mar.11,2014
`
`Sheet 8 of8
`
`US 8,671,132 B2
`
`900
`
`~
`
`910
`
`Start
`
`Receive Metadata
`Request
`
`Translate Metadata
`Request
`
`Retrieve Metadata for
`Requested File
`
`Retrieve Requested
`File
`
`Use Metadata to
`Control Handling of File
`
`920
`
`930
`
`940
`
`950
`
`960
`
`970
`
`Fig. 9
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 11 of 19
`
`US 8,671,132 B2
`
`1
`SYSTEM, METHOD, AND APPARATUS FOR
`POLICY-BASED DATA MANAGEMENT
`
`BACKGROUND OP THE INVENTION
`
`1. The Field of the Invention
`The invention relates to networking and data storage. More
`particularly, the invention relates to a system and method for
`policy-based data management on a distributed storage sys(cid:173)
`tem.
`2. The Relevant Art
`Networks have become instrumental in situations in which
`data is transferred from one computer to another, or from
`clients such as an independent workstation to a centralized
`storage facility. It is common for storage applications to have
`very speciali2.ed needs. In response to these needs, distributed
`storage systems have been developed. One type of distributed
`storage system is a storage area network (SAN).A distributed
`storage system typically has a plurality of clients connected to
`a plurality of storage pools. The clients of the distributed 20
`storage system may, in some cases, be servers that transmit
`data between the distributed storage system and individual
`computers.
`Unfortunately, a number of storage related issues have not
`yet been successfully addressed by known distributed storage 25
`system configurations. A distributed storage system is often
`called upon to carry out several different operations simulta(cid:173)
`neously. Consequently, the resources of the distributed stor(cid:173)
`age system, or of a server connected to the distributed storage
`system, can easily become saturated, particularly when many 30
`users wish to simultaneously store, retrieve, or move data on
`the distnlmted storage system.
`Additionally, many known distributed storage systems
`have no method of prioritizing operations. Consequently, a
`low-importance, high resource operation, such as a bulk tile 35
`tnmsfer, may preempt memory, caching space, input/output
`(I/0) bandwidth, processor capacity, or other resources that
`are needed for more important operations. Thus, performance
`of the more important operations is unnecessarily delayed.
`Also, current distributed storage systems are not capable of 40
`storing data using prioritized operations within multiple plat(cid:173)
`forms. Typically, all of the computers on a distributed storage
`system must have the same type of operating system. If data
`from multiple platforms are to be stored, the data must be
`routed through multiple distributed storage systems and 45
`stored in different locations.
`Furthermore, known distributed storage systems generally
`do not permit a user to automatically select between multiple
`storage options when generating files . Nor do these systems
`account for the different requirements placed on these files. 50
`Specifically, different files may have different requirements
`for accessibility, disaster recoverability, retrieval speed,
`retrieval consistency, and storage format. Some files may
`need to be accessed by many people simultaneously, while
`others are only used rarely, by a single user. Some files are 55
`"mission critical," and therefore must not be lost if hardware
`damage occurs; others are more expendable. Similarly, some
`files must be accessed rapidly and/or transferred at a consis(cid:173)
`tent, rapid data transfer rate, while others do not require rapid
`access. Certain file types, such as database files, are advanta- 60
`gcously stored in a "sparse" format that permits subsequent
`expansion, while other files can be densely packed together.
`By the same token, great variation exists in the equipment
`available to store data. In general, greater capacity, greater
`access speed, higher throughput, and higher disaster recover- 65
`ability equate to higher cost. Without a variety of options for
`data storage, some files are stored in a manner that provides
`
`2
`insufficient perlormance, and others take up comparatively
`expensive storage capacity that provides an unnecessarily
`expensive level of performance.
`Consequently, what is needed is a comparatively simple
`5 and versatile system, method, and apparatus for managing
`data in a network according to predetermined policies. What
`is particularly needed is a data management system, method,
`and apparatus that prioritize files within the network, with
`clients that operate based on a plurality of different operating
`10 platforms. Further, what is particularly needed is a data man(cid:173)
`agement system, method, and apparatus that intelligently
`stores files in storage pools with a variety of performance
`levels based policies and the nature of the storage pools. Such
`a system, apparatus, and method would be particularly desir-
`15 able if implemented for distributed storage systems that ser(cid:173)
`vice clients operating under heterogeneous platforms.
`
`BRIEF SUMMARY OF THE INVENTION
`
`The system, method, and apparatus of the present invention
`have been developed in response to the present state of the art,
`and in particular, in response to the problems and needs in the
`art that have not yet been fully solved by currently available
`storage area network systems. Accordingly, the present
`invention has been developed to provide a policy-based data
`management system that overcomes many or all of the above(cid:173)
`discussed shortcomings in the art.
`In one embodiment, the data management system may be
`implemented in a network having a plurality of clients. The
`clients may be individual workstations or servers connected
`to workstations. Due to the nature of the invention, the clients
`need not all operate on the same platform. The clients may be
`connected to a local area network (LAN) and to a distributed
`storage system, which may take the form of a storage area
`network (SAN). One or more servers are also connected to the
`LAN and the SAN. The servers have, as one oflheir functions,
`the duty of assigning and distributingmetadata for files on the
`system and will hereafter be referred to as "metadata servers."
`Additionally, a metadata disk or pool of disks may be con(cid:173)
`nected to the metadata servers through a LAN or the SAN.
`One or more storage devices or pools of storage devices are
`preferably connected to the distributed storage system.
`The data management system is, in one embodiment,
`policy-based. More precisely, the data management system
`preferably incorporates a policy set, which includes a service
`class policy and a storage pool policy. Each of the policies
`preferably includes a number of rules designed to select a
`service class and/or storage pool for a file based on attributes
`of the file. Service classes may be hierarchical, for example,
`platinum, gold, silver, or bronze, reflecting the relative impor(cid:173)
`tance of the data. Of course, the service classes may be
`assigned any combination of rules, and need not be hierarchi(cid:173)
`cal.
`In one embodiment, each of the clients is provided with a
`file traru;mission module that is configured lo lnmsmit
`attributes of a file to the metadata server. A file evaluation
`module is preferably configured to apply the rules of the
`service class policy and the storage pool policy to the file
`attributes and the storage pool characteristics to automati(cid:173)
`cally select a service class and a storage pool for the file.
`These may be added to the file attributes to create mctadata
`for the file. The metadata is in one embodiment stored in the
`metadata disk pool, and the file is then stored in the selected
`storage pool.
`Each of the clients is provided in one embodiment with a
`file request transmission module that is configured to transmit
`file request to the metadata server. A metadata retrieval mod-
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 12 of 19
`
`US 8,671,132 B2
`
`4
`missions are not permitted to tie up undue resources. Further(cid:173)
`more, the files may be automatically assigned to storage
`locations that suit their need for rapid access, disaster recov(cid:173)
`erability, and the like.
`These and other features and advantages of the present
`invention will become more fully apparent from the following
`description and appended claims, or may be learned by the
`practice of the invention as set forth hereinafter.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`In order that the manner in which the advantages and
`objects of the invention are obtained will be readily under(cid:173)
`stood, a more particular description of the invention briefly
`described above will be rendered by reference to specific
`embodiments thereof which are illustrated in the appended
`drawings. Understanding that these drawings depict only
`typical embodiments of the invention and are not therefore to
`be considered to be limiting of its scope, the invention will be
`20 described and explained with additional specificity and detail
`through the use of the accompanying drawings in which:
`FIG. 1 is a schematic block diagram illustrating one
`embodiment of a network incorporating a policy based data
`management system within the scope of the present inven(cid:173)
`tion;
`PIG. 2 is a schematic block diagram illustrating one
`embodiment of a policy set used to select a service class and
`storage pool for the network of FIG. 1;
`FIG. 3 is a schematic block diagram illustrating one
`embodiment of executable modules and data structures
`withintheclientamlmeladata serverofthenetworkofFIG. l;
`FIG. 4 is a schematic block diagram illustrating additional
`embodiments of executable modules and data structures
`within the client and metadata serverof thenetwork of FIG. 1;
`FIG. 5 is a schematic block diagram illustrating one
`embodiment of data structures within the metadata disk pool
`ofFIG.1;
`FIG. 6 is a schematic flow chart diagram illustrating one
`embodiment of a method of storing a file in the network of
`FIG. 1 and assigning a service class and storage pool to the
`file;
`FIG. 7 is a schematic flow chart diagram illustrating one
`embodiment of a method of selecting the service class within
`the method of FIG. 6;
`FIG. 8 is a schematic flow chart diagram illustrating one
`embodiment of a method of selecting the storage pool within
`the method ofFJG. 6; and
`FIG. 9 is a schematic flow chart diagram illustrating one
`embodiment of a method for retrieving and using a file stored
`in the network of FIG. 1.
`
`3
`ule in one embodiment receives the translated metadata
`request and retrieves the metadata that corresponds to the file
`from the metadata disk pool. The file request transmission
`module receives the storage pool designation from the meta(cid:173)
`data for the file, and then transmits a file request to retrieve the 5
`file from the corresponding storage pool.
`The file and the service class designation for the file are, in
`one embodiment, received by a file usage module in the
`client. The file usage module preferably uses the service class
`to determine the proper allocation of client assets, such as 10
`RAM allocation, performance priority, cache allocation
`scheme, and input/output (l/0) allocation.
`The metadata may be stored in the form of a looJ...,ip table in
`the metadata disk pool. For example, file names or object
`identities related to unique files may be stored in the mctadata 15
`disk pool, and each file name or object identity may he hound
`lo the corresponding file metadata. Thus, the meladata server
`may retrieve the metadata for a file by locating the file name
`or object identity in the metadata disk pool, and reading the
`corresponding metadata.
`According to one embodiment of a file storage and classi(cid:173)
`fication method operable in conjunction with the system
`described above, a policy set is provided and configured. A
`system administrator may configure the appropriate policy.
`Attributes of the file to be stored and classified are received by 25
`the metadata server, and the file attributes are translated from
`the native platform of the file to obtain translated attributes.
`Based on the attributes, a service class and a storage pool
`are automatically selected for the file. Designations of the
`service class and storage pool may be added to the attributes 30
`of the file to provide the file metadata. The file metadata may
`be stored in the metadata disk pool, in the format described
`previously. The file may be stored in the selected storage pool.
`The service class and the storage pool may be selected
`based on an application of the policy set. More precisely, the 35
`rules of the service class policy may be applied lo determine
`the appropriate service class for the file. The rules may be
`analyzed in order until an appropriate classification is found.
`For example, the first rule of the service class policy may first
`be analyzed. If the file satisfies the conditions for the first rule, 40
`the file receives the service class that corresponds with the
`first rule. Ifthc file docs not satisfy the conditions for the first
`rule, the second rule is analyzed, and so on. If the file satisfies
`none of the rules, it receives a default service class.
`If desired, the storage pool may be determined partially or 45
`solely by the service class. '!bus, the rules of the storage pool
`policy may simply be based on the selected service class.
`Alternatively, the storage pool policy may involve criteria
`independent of the service class. The rules of the storage pool
`policy may be applied sequentially, in a manner similar to the 50
`rules of the service class policy. Because the storage pools
`typically vary in terms of speed, capacity, storage format,
`disaster recovery, and other factors, these characteristics are
`taken into account in selecting a storage pool. If the file
`satisfies none of the rules of the slomge pool policy, Lht! file is 55
`stored in a default storage pool.
`According to one embodiment of a file retrieval and usage
`method, a file request is first received by the metadata server.
`Metadata for the requested file is then retrieved from the
`metadata disk pool. The metadata is preferably used to deter- 60
`mine the appropriate storage pool. The requested file is then
`retrieved from the storage pool. In so doing, the metadata for
`the file is used lo control the manner in which the file is
`handled, including its priority level with respect to other files.
`ln this manner, files are automatically assigned relative 65
`priority levels and locations. Higher priority file transactions
`are performed more expeditiously, and lower priority trans-
`
`DETAILED DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`Many of the functional units described in this specification
`have been labeled as modules, in order to more particularly
`emphasize their implementation independence. For example,
`a module may be in1plemented as a hardware circuit compris(cid:173)
`ing custom VLSI circuits or gate arrays, off-the-shelf semi(cid:173)
`conductors such as logic chips, transistors, or other discrete
`components.A module may also be implemented in program(cid:173)
`mable hardware devices such as field programmable gate
`arrnys, programmable array logic, programmable logic
`devices or the like.
`Modules may also be implemented in software for execu(cid:173)
`tion by various types of processors. An identified module of
`executable code may, for instance, comprise one or more
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 13 of 19
`
`US 8,671,132 B2
`
`6
`5
`pool 140 may include multiple physical storage units, which
`physical or logical blocks of computer instrnctions which
`may, for instance, be organized as an object, procedure, or
`may be housed in separate locations. Depiction of the meta(cid:173)
`data disk pool 140 as a single unit in FIG. 1 is by way of
`function. Nevertheless, the executables of an identified mod(cid:173)
`example, only. Similarly, the storage pools 150, 152, 154 are
`ule need not be physically located together, but may comprise
`depicted as discrete physical units only by way of example. If
`disparate instructions stored in different locations which,
`desired, one physical unit may contain multiple storage pools,
`when joined logically together, comprise the module and
`and a single storage pool may be spread over multiple physi(cid:173)
`achieve the stated purpose for the module.
`cal units. Vutual logical unit numbers (LUN s) may be used as
`Indeed, a module of executable code could be a single
`instruction, or many instructions, and may even be distributed
`part of a particular storage pool.
`The storage pools 150, 152, 154 may comprise a plurality
`over several different code segments, among different pro- 10
`of storage types. For example, a first storage pool 150 in one
`grams, and across several memory devices. Similarly, opera(cid:173)
`tional data may be identified and illustrated herein within
`embodiment comprises a high capacity hard drive. The first
`storage pool 150 may be comparatively slow, and may have a
`modules, and may be embodied in any suitable form and
`organized within any suitable type of data structure. The
`relatively lower probability of successful data recovery in the
`operational data may be collected as a single data set, or may 15 event of hardware damage, due to the lack of redundant
`storage hardware. Consequently, the first storage pool 150
`he distributed over different locations including overdifforent
`may be most suitable for files that do not need to be accessed
`storage devices, and may exist, al least partially, merely as
`and transferred rapidly, and that are not critical to users of the
`electronic signals on a system or network.
`network 100.
`Referring to FIG. 1, a schematic block diagram is shown
`A second storage pool 152, by way of example, may com-
`illustrating a representative network 100 suitable for use with 20
`the present invention. The network 100, as shown, includes a
`prise a RAID system of hard drives, with a comparatively fast,
`number of clients 102, 104, 106, 108. The clients 102, 104,
`cached input/output system. Thus, the second storage pool
`152 provides higher speed and greater disaster recoverability
`106, 108 may be workstations or servers communicating with
`than the first storage pool 150. The second storage pool 152
`workstations and in certain embodiments operate on a single
`25 may store data in a non-mirrored format. Toe first and second
`platform or a plurality of different operating system plat(cid:173)
`forms. For example, the client 102 may be Windows™ based,
`storage pools 150, 152 may be stored in a common facility,
`which may be designated "Building A."
`while the client 104 may be SolarisTM based, the client 106
`may run based onAIX®, and the client 108 may be Linux(cid:173)
`A third storage pool 154, by way of example, may com(cid:173)
`based. The network 100 is preferably configured to bear large
`prise a RAID system of hard drives, with a fast input/output
`amounts of traffic, particularly data packets and messaging
`30 system and a mirrored data storage format. The third storage
`pool 154 may thus provide the greatest disaster recoverability
`packets related to data storage, retrieval, and maintenance.
`As shown, the clients 102,104,106, and 108areconnected
`in addition to rapid file access and data transfer. The third
`storage pool 154 may be somewhat slower than the second
`to a local area network, or LAN 110.Aplurality ofmetadata
`storage pool 152 due to the time required for data mirroring.
`servers 120, 125 arc also connected to the LAN 110 and to a
`15 In the alternative, the third storage pool 154 may include
`distributed storage system, which may take the fom1 of a
`stor.1ge area network, or SAN 130. TI1e metadata servers 120,
`additional hardware, such as caching or an integrated proces(cid:173)
`sor, to enable the third storage pool 154 to access and transfer
`125 may each have components such as a processor, random
`data more rapidly than the second storage pool 152.
`access memory (RAM), an internal hard disk drive, a network
`Some storage pools, such as the third storage pool 154 may
`interface card (NI C ), and various 1/0 controllers. If desired,
`the metadata servers 120, 12S may cooperate to provide a
`40 be stored at a facility separate from that of the first and second
`server cluster. Alternatively, only a single metadata server 120
`storage pools 150, 152; for example, the third storage pool
`154 may be located in "Building B." Building B is separated
`or 125 may be used. An administrator workstation (not
`shown) may also be connected to the LAN 110, and may have
`from Building A by a distance sufficient to ensure that a single
`disaster will not destroy both the second storage pool 152 and
`specialized software and/or access to control policy imple(cid:173)
`45 the third storage pool 1S4. One of the pools 156 may also
`mentation over the network 100.
`A metadata disk pool 140 may be connected to the meta(cid:173)
`comprise a tape bach.'Up. While four storage pools are
`data servers 120, 125 througll a LAN or, as shown, througll
`depicted, it should be noted that any number of storage pools
`may be employed under the present invention.
`the SAN 130. A plurality of storage pools, including a first
`storage pool 150, a second storage pool 152, a third storage
`The determination of which of the storage pools 150, 152,
`so or 154 is to be used to store a particular file is preferably made
`pool 154, and a fourth storage pool 156 are also shown con(cid:173)
`nected to the SAN 130. The storage pools each contain one or
`selectively, so that more important files are more rapidly
`accessible and more likely to be fully recovered in the event of
`more storage devices and may vary in storage type, configu(cid:173)
`ration, location, accessibility, etc. The metadata disk pool 140
`a hardware failure. Furthermore, the network 100 is prefer(cid:173)
`ably able to intelligently allocate the resources of the network
`stores data related to the operation of the data management
`55 100, so that more important operations receive priority over
`system, in a manner that will be shown and described in
`greater detail below. The storage pools 150, 152, 154 provide
`less important ones. Such determinations may be made
`file storage to the clients 102-105.
`througll the use of policy based data management, as will be
`In one embodiment, the SAN 130 is a local area network in
`shown and described in greater detail in connection with FIG.
`which the metadata servers 120, 125, the metadata disk pool
`2.
`140, and the storage pools 150, 152, 154 are housed within the 60
`same facility or campus. In another embodiment, the SAN
`130 is a wide area network with at least some of the clients
`102, 104, 106, 108, the metadata server 125, the meladata
`disk pool 140, and the storage pools 150, 152, 154 housed in
`geographically disparate locations.
`The metadata disk pool 140 may be a single hard drive, a
`RAID system, or the like. Alternatively, the metadata disk
`
`The network 100 of FIG. 1 is only one embodiment ofa
`network in which the principles of the present invention may
`be utilized and is given by way of example only. It should be
`readily recognized that policy based data management may
`be applied to a variety of different system types, including
`65 LANs, WANs, and SANs, and combinations thereof. Com(cid:173)
`ponents of such a system maybe connected by a plurality of
`intermediate components known in the art, such as switches,
`
`
`
`Case 6:20-cv-01152-ADA Document 1-5 Filed 12/16/20 Page 14 of 19
`
`US 8,671,132 B2
`
`7
`routers, hubs, and bridges. File servers may or may not be
`utilized in the data paths of such networks. Policy based data
`management may also be used with components connected
`via the Internet.
`Referring to FIG. 2, a schematic block diagram is shown 5
`illustrating one concept of a policy implementation 200 suit(cid:173)
`able for a network such as the network 100. Policy based
`management is carried out through the use of a policy set 210.
`The policy set 210 may include several different types of
`policies. In the policy implementation 200 of FIG. 2, the 10
`policy set 210 is applied with respect to files. Hence,
`attributes of each file are used to classify the file according to
`the policy set 210. Such attributes may include the file name,
`the file extension (which often indicates the file type), the 15
`container administrative name, the file owner, the group name
`of the file owner, the system ID of the workstation or server
`sending the file, and the dates and times of file creation,
`access, and modification, etc. Other file attributes may also be
`used to aid policy-based data management.
`The policy set 210 may include multiple policies of each
`type to acco=odate the changing priorities caused by busi(cid:173)
`ness rules or cycles. Thus, when priorities on the network 100
`change, a different policy may be implemented accordingly.
`For example, it may be desirable to shift file priorities for 25
`end-of-year processing carried out by one or more of the
`clients 102, 104, 106, 108. lhus, the network administrator
`may activate a different policy or set of policies to give higher
`priority to the files to be processed. Only one policy is active
`for each policy type at any given time, however.
`In the depicted embodiment, the policy set 210 includes a
`service class policy 220 and a storage pool policy 230. The
`service class policy 220 includes at least one service class rule
`that dictates what service class is applied to a file with a given
`attribute. For example, the service class policy 220 includes a 3.5
`first rule 240, a second rule 242, andotherrules through an nth
`rule 244. Any number of rules may exist between the second
`rule 242 and the nth rule 244. Each of the rules 240,242, 244
`in one embodiment comprises a statement such as "If a given
`file attribute is X, the file receives service class Y."
`The storage policy 230 similarly has at least one storage
`pool rule that dictates which of the storage pools 150, 152,
`154 should receive a file with a given attribute. For example,
`the storage policy 230 may have a first rule 250, a second rule
`252, an nth rule 254, and any number of rules between the 45
`second rule 252 and the nth rule 254.
`The service class policy 220 is used to select from among
`a plurality of service classes, such as the service classes 280,
`282, 284, 286, and the storage policy 230 is used to select
`from among a plurality of storage pools, such as the storage 50
`pools 150, 152, 154 depicted in F