EP2984553A1 - Multi-layered storage administration for flexible placement of data - Google Patents
Multi-layered storage administration for flexible placement of dataInfo
- Publication number
- EP2984553A1 EP2984553A1 EP14725261.3A EP14725261A EP2984553A1 EP 2984553 A1 EP2984553 A1 EP 2984553A1 EP 14725261 A EP14725261 A EP 14725261A EP 2984553 A1 EP2984553 A1 EP 2984553A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- storage unit
- storage
- virtual
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013507 mapping Methods 0.000 claims abstract description 75
- 230000004044 response Effects 0.000 claims abstract description 42
- 238000013500 data storage Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims description 52
- 230000009466 transformation Effects 0.000 claims description 30
- 238000000844 transformation Methods 0.000 claims description 7
- 230000001131 transforming effect Effects 0.000 claims 12
- 238000012544 monitoring process Methods 0.000 claims 6
- 238000004891 communication Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 229910052737 gold Inorganic materials 0.000 description 4
- 239000010931 gold Substances 0.000 description 4
- BASFCYQUMIYNBI-UHFFFAOYSA-N platinum Chemical compound [Pt] BASFCYQUMIYNBI-UHFFFAOYSA-N 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 229910052697 platinum Inorganic materials 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
Definitions
- the present disclosure generally relates to techniques for managing data stored in virtual storage objects that comprise portions of different storage units.
- data storage systems may manage access to user or application data stored as blocks of data on data storage devices.
- Data storage systems maintain location metadata identifying the location of user or application data for various purposes, such as for retrieving, storing, or updating the user or application data, properly associating other non- location metadata with the user or application data, cloning the user or application data, and as a part of system snapshots that captures the state of the user or application data at particular times.
- Traditional data storage systems may identify the location of user or application data or other non-location metadata by storing pointers to the physical block address of the user or application data or other non-location metadata.
- data or metadata may frequently be re-located to new locations, such as to different storage units.
- a storage administrator that administrates the storage of user or application data in a virtual data center may need to relocate certain data or metadata stored on one storage unit to a different storage unit of the virtual data center for many possible reasons, relating to but not limited to service level management of performance, data availability, system maintenance, error recovery, failure recovery, cost optimization, load balancing, and capacity management.
- a storage controller that administrates data and metadata stored in cloud computing and virtual data center environments may be able to obtain further storage units with ease and, thus, may move data and metadata even more frequently in such environments.
- FIG. 1 illustrates an example networked computer system arrangement that may be used to implement an embodiment.
- FIG. 2 illustrates an example context of the system of FIG. 1.
- FIG. 3 illustrates an example distribution of user or application data in virtual storage objects and storage unit portions.
- FIG. 4 illustrates the components of an example storage unit administrator in an example networked computer system.
- FIG. 5 illustrates an example process for utilizing extent-object mappings and object portion directories during the retrieval of client data.
- FIG. 6 illustrates an example process for updating location information upon relocating particular data.
- FIG. 7 illustrates a computer system upon which an embodiment may be implemented.
- Multi-layered storage administration for flexible placement of data is described.
- numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention. [0016] Embodiments are described herein according to the following outline:
- Embodiments provide, in general, innovative data storage processes applicable to virtualized data storage systems that are capable of storing and managing references to stored data based upon virtual locations at which the data is stored without identifying physical locations in which the data is stored.
- an embodiment provides a method comprising receiving, using a computer, a request to store data; causing storage of the data in a data storage system of a virtualized computer system; storing a data location record that identifies one or more virtual locations at which the data is stored without identifying any physical locations in which the data is stored.
- the method includes sending, to an object administrator, an instruction to store the data; in response to sending the instruction, receiving one or more virtual location identifiers identifying virtual locations in which the data is stored without identifying any physical locations in which the data is stored.
- a method comprises receiving, at a data storage system, a request for data; identifying, a virtual location at which the data is stored; determining, based on the virtual location at which the data is stored and one or more mappings of virtual locations to object administrators, an object administrator associated with physical storage of the data; determining, at the object administrator, based on one or more mappings, one or more physical locations in a data storage system of a virtualized computer system that correspond to the virtual location; retrieving data from the one or more physical locations of the data storage system of the virtualized computer system.
- the method involves receiving, at an object administrator, a request for data identifying at least a logical extent at which the data is stored; determining, one or more objects that belong to the logical extent identified in the request; determining, for each object of the one or more objects, one or more storage unit portions that belong to the object; retrieving the data from the one or more storage unit portions that correspond to each object of the one or more objects.
- a method comprises determining, at a storage
- a condition has occurred requiring transformation of particular data or movement of particular data to one or more new physical locations in a data storage system of a virtualized computer system, wherein the particular data is stored at a particular virtual location; in response to the determination: storing data corresponding to the particular data at the one or more new physical locations; and updating a mapping corresponding to the particular virtual location to indicate that the particular virtual location corresponds to the one or more new physical locations instead of one or more prior physical locations without updating any references to the particular virtual location.
- a system controller may manage access to user or application data stored in a plurality of storage unit.
- the data storage system may be a part of another computer system (such as a local file system), a standalone storage system
- the data storage system administrator may store data location records identifying user or application data locations.
- the data location records may identify the locations by identifying the logical extents to which the corresponding data belongs, without identifying the physical block addresses at which the data is stored.
- An object administrator may separately maintain mappings of extents to virtual storage objects, and for each virtual storage object, a directory of the particular storage unit portions that collectively make up the virtual storage object. In such a system, the burden of updating data storage system records may be minimal even if user or application data is moved to a different virtual storage object or if one or more of storage units belonging to the virtual storage object containing the user or application data is replaced, removed, or added.
- the data storage system administrator may not need to update any records because the extent which contains the moved data would not change.
- the object administrator may simply update the mappings of extents to virtual storage objects if the extent is moved to a different virtual storage object. If a particular storage unit portion belonging to the virtual storage object is removed, replaced, or added, the object store may update the virtual storage object directory to indicate that the particular storage unit portion(s) have been removed, replaced, or added.
- a storage unit administrator when data is transformed, instantiates new virtual storage objects and/or storage unit portions for storing the
- transformed data For example, stored data may need to be modified in accordance with a change in an encryption or compression algorithm.
- an object administrator may write the transformed data to a new virtual object and update the mappings of extents to virtual storage objects to indicate that new virtual storage object belongs to a certain logical extent.
- the object administrator may write the transformed data to a new storage unit portion and may update the mappings of virtual storage objects to storage unit portion(s) to indicate that the new storage unit portion belongs to a certain virtual storage object.
- Transformations may be concurrently applied to different virtual storage objects of the same logical extent or different storage unit portions of the same virtual storage object.
- transformations may be concurrently applied to different virtual storage objects of the same logical extent or different storage unit portions of the same virtual storage object in a single I/O (input/output) operation.
- I/O input/output
- different types of transformations may be applied to the different virtual storage objects or the different storage unit portions. That is, data in a first storage unit may be compressed and data in a second storage unit may be encrypted in the same I/O operation. In another embodiment, the same data may be both compressed and encrypted in the same I/O operation.
- the data maintained by the data storage system which may include data storage system snapshots and associations of metadata with particular locations, need not be modified because the locations are identified using extent identifiers, which do not change even as the data is relocated to a different object store or storage unit.
- updates to user or application data location information may require relatively simple updates to the relevant mappings and may be handled by an object administrator, thereby freeing the data storage system from frequent and burdensome updates.
- the virtual location administrator and object administrator may be components of a storage unit administrator, which manages a plurality of different storage units on behalf of a client device.
- the storage unit administrator may move data for a plurality of reasons, including in response to determining that the performance of one or more storage units is inadequate or in response to receiving a request from the client for higher performance for some or all client data.
- a storage unit administrator determines that a condition requiring movement of particular data to a new location has occurred, where the particular data belongs to a particular logical extent stored at a particular virtual storage object. In response to the determination, the storage unit administrator causes the particular data to be stored at the new location. Further in response to the determination, the storage unit administrator updates one or more extent-object mapping(s), which prior to the updating indicated that the particular virtual storage object stores information belonging to the particular logical extent, to indicate that a different virtual storage object stores information belonging to the particular logical extent or object- storage unit mapping(s), which prior to the updating indicated that a particular set of storage unit portions belong to the particular virtual storage object, to instead indicate that a different set of storage unit portions belong to the particular virtual storage object.
- the storage unit administrator cause the physical location(s) of the particular data to change without modifying data location references stored at a file system administrator layer, which identify the virtual locations of the particular data.
- FIG. 1 illustrates an example networked computer system arrangement that may be used to implement an embodiment.
- FIG. 1, FIG. 2, FIG. 3, FIG. 4 show a representative number of various functional elements that may be used in an embodiment; however, other embodiments may use any number of such functional elements and therefore FIG. 1, FIG. 2, FIG. 3, FIG. 4 are intended as merely possible implementation examples.
- Client machine 100 comprises data processing unit 102, which may process data retrieved from storage units remote to the client machine, and data generating unit 104, which may generate data that is sent to storage units remote to the client machine.
- Client machine 100 may be communicatively coupled to storage unit
- Storage unit administrator 106 may be communicatively coupled to one or more storage unit managers, which may each be communicatively coupled to one or more storage units. Such a system may be utilized when client machine 100 sends storage unit utilization requests, such as request to store data at, or retrieve data from, storage units at virtual data centers.
- Storage unit administrator 106 represents one or more computers, programs, processes, or other logical elements that are configured for managing requests to utilize storage units 124, 128, 136, 140.
- Storage units 124, 128, 136, 140 may be virtualized storage units hosted by one or more cloud service providers, database storage units, computing storage units provided by a CSP (cloud service provider), or other storage units.
- Storage units 124, 128, 136, 140 may each be located at different physical host machines.
- Storage units 124, 128, 136, 140 may be any of a variety of different storage units including objects, blocks, or extents.
- Storage unit administrator 106 comprises storage unit utilization policy mappings 108, storage unit utilization policy adjustment instructions 110, storage unit performance monitor 112, storage policy manager 118, storage unit utilization request administrator 114, and storage unit utilization policy upgrader 116.
- Storage unit utilization policy mappings 108 may identify associations between storage unit utilization policies and service levels.
- Storage unit utilization policy adjustment instructions 110 may comprise instructions for modifying storage unit utilization policy mappings 108.
- Storage unit utilization request administrator 114 may direct incoming data operation requests to the appropriate storage unit managers or storage units.
- Storage unit performance monitor 112 may monitor the performance of one or more storage units.
- Storage unit utilization policy upgrader 116 may update storage unit utilization policy mappings 108 according to storage unit utilization policy adjustment instructions 110 and based on an analysis of storage unit performance.
- Storage policy manager 118 may cause the data of client machine 100 to be stored according to a new storage policy based on determined performance information.
- Storage unit administrator 106 may be communicatively coupled to one or storage unit managers, such as storage unit managers 120 and 132. Each of storage unit managers 120, 132 may be communicatively coupled to one or more storage units, such as storage units 124, 128, 136, 140. In an embodiment, storage unit administrator 106 communicates directly with storage units 124, 128, 136, 140, rather than communicating through a storage unit manager.
- storage unit managers 120 and 132 comprise storage unit accessing units.
- Storage unit accessing unit 122 may send information to, or receive information from, storage units 124, 128, which are both communicatively coupled to storage unit manager 120.
- storage unit accessing unit 134 may send information to, or receive information from, storage units 136, 140, which are both communicatively coupled to storage unit manager 132.
- Storage units 124, 128, 136, 140 may comprise data associated with client machine 100, such as client data 126, 130, 138, 142.
- Client machine 100 may read data from, or write data to, storage units 124, 128, 136, 140 by sending the read or write request to storage unit administrator 106.
- Data storage unitsl24, 128, 136, 140 may be block storage units, file storage units, object storage units, database storage units, or other storage units, according to various embodiments.
- FIG. 2 illustrates an example context of the system of FIG. 1.
- Client machine 100 may be controlled by client 210 and the logic of storage unit administrator 106 and storage unit managers 120 and 132 may be controlled by manager 220.
- Manager 220 may be different from the cloud service provider(s) that hosts storage units 124, 128, 136, 140 and different from client 210, which may utilize data stored in, or computed at, storage units 124, 128, 136, 140. Manager 220 may control and manage storage units 124, 128, 136, 140 on behalf of client 210, according to the methods described herein.
- Storage unit administrator 106 may operate within virtual machine 222, storage unit manager 120 may operate within a separate virtual machine 224, and storage unit manager 132 may operate within a separate virtual machine 226.
- virtual machine 222, 224, and 226 are hosted by the same cloud service provider that hosts one or more of storage units 124, 128, 136, 140.
- Manager 220 may control the execution of processes within virtual machines 222, 224, 226, such as the logic of storage unit
- storage unit administrator 106 accesses storage units 124, 128, 136, 140 directly, without requesting storage unit manager 120 or 132 to access storage units 124, 128, 136, 140.
- one or more cloud service providers which host storage units 124, 128, 136, 140, restrict the number of storage units that may be connected to a single virtual machine to be less than a particular number.
- some cloud service providers limit the number of virtual disks that may be accessed by a particular virtual machine.
- a system as illustrated in FIGS. 1 and 2 may allow storage unit administrator 106 to maximize the number of storage units that can be controlled by the storage unit administrator.
- Storage unit administrator 106 may manage storage units 124, 128, 136, 140 by requesting modules of a plurality of different virtual machines, such as storage unit managers 120 and 132 at virtual machines 224 and 226, to perform various storage unit utilization operations or provide necessary performance information. Such an approach may allow storage unit administrator 106 to manage a number of storage units that is greater than the maximum number of storage units permitted for utilization by a single virtual machine.
- Service level agreement 230 may be an agreement between client 210 and manager 220 that indicates a particular storage service level to be provided to client 210.
- the service level agreement may indicate a threshold value or range of values that indicate acceptable levels of performance for performing storage unit utilization requests.
- the storage unit utilization requests may include requests to access data from, or save data to, storage units 124, 128, 136, 140.
- the service level agreement may indicate that data operation requests received from client machine 110 at storage unit administrator 106 are to be completed at a median speed of 100 data operations per second and no slower than 50 milliseconds for an individual data operation.
- Service level agreement 230 may only be between client 210 and manager 220, and may not include any cloud service provider.
- FIG. 3 illustrates an example distribution of user or application data in virtual storage objects and storage unit portions in a data storage system, such as a file system.
- the data storage system may be used to store logical volumes or objects, rather than files, and may thus be identified as a logical volume manager, block storage system, object store, or any other logical data management service.
- data storage system is used to store user or application data in databases.
- Contiguous data 302 may be a set of contiguous data, such as a file, logical volume, or object and may be partitioned into logical extents, which may be contiguous portions of the data.
- contiguous data 302 may be partitioned into extent 304, 306, and 308 and contiguous data 328 may be partitioned into extent 330, 332, and 334.
- the extents each have a fixed size.
- Storage unit administrator 106 may store each extent at a different virtual storage object.
- extents 304, 306, 308 may respectively be stored at virtual storage objects 310, 312 (not pictured), 314 (not pictured).
- Extents of different contiguous data may be aggregated to form a single object.
- extent 304 of contiguous data 302 and extent 332 of contiguous data 328 may be aggregated to form virtual object 310.
- contiguous data 302 and 328 are different files.
- a virtual storage object is a collection of storage unit portions, where some or all of the storage unit portions may be portions of different storage units.
- virtual storage object 310 may collectively represent virtual object portions 316, 318 320 and each object portion may be a portion of a separate storage unit.
- Virtual object portion 316 may be a portion of storage unit 330
- virtual object portion 318 may be a portion of storage unit 332
- virtual object portion 320 may be a portion of storage unit 334.
- each virtual object portion is of a fixed-size.
- Storage unit administrator 106 may partition the user or application data across the storage units according to a particular storage policy.
- the storage policy may indicate a level of data redundancy, mirroring or replication, data storage striping policy (bit level, byte level, and block level), particular RAID level, an alternative to RAID such as a particular erasure coding scheme, or any other parameter relating to the reliability, availability, performance or capacity of a storage unit.
- the number of storage units across which the data is distributed, the amount of data stored in each storage unit, which storage units should maintain redundant data, how the redundancy data is to be distributed across various storage units, and other such parameters may depend on the storage policy selected by storage unit administrator 106.
- FIG. 4 illustrates the components of an example storage unit administrator in an example networked computer system.
- Storage unit administrator 106 may manage and facilitate access to client data stored at storage units 422, 424, 428, 430, 434, 436, 440, 442 via storage unit managers 420, 426, 432, 438.
- Storage unit administrator 106 may comprise virtual location administrator 402, which performs tasks such as maintaining user or application metadata and handling requests to retrieve or store client data at the storage units.
- Data I/O handler 406 receives requests to read data from client machine 100 and provides the requested data to client machine 100.
- Logical extent location information 408 identifies location information for each logical extent.
- the location information may identify one or more virtual locations in which the data of the logical extent is stored without identifying any physical locations in which the data is stored.
- the location information may include extent identifiers indicating the virtual locations of data.
- the particular physical locations that make up the logical extents may change over time without any updates to logical extent location information 408.
- the virtual locations in which the data is stored may be identified using logical block identifiers, logical object identifiers, and/or as a byte-offset in a virtual disk, file, or object.
- logical extent location information 408 comprises a logical extent tree for each file, logical volume, or object, where each entry in the tree corresponds to particular data and includes an extent ID identifying the corresponding extent, an offset amount indicating the distance from the beginning of the extent until the data begins, and a length amount indicating the amount of data contained in the extent starting from the offset.
- virtual location administrator 402 may identify the extent ID(s) of any data which may be requested by a client.
- the logical extent tree is has the structure of a B+ tree.
- Storage unit administrator 106 comprises object administrator 410, which may determine the physical location of the requested data within a corresponding storage unit.
- Object administrator 410 may maintain extent-object mappings 412, which may identify a corresponding virtual storage object for each extent identified in logical extent information 408.
- extent-object mappings 412 may be stored at virtual location administrator 402.
- Storage unit administrator 106 may update extent-object mappings 412 if data included in a particular extent is relocated to a different object.
- an extent ID is a reference to one or more locations in extent-object mappings 412, which contain mapping information for the corresponding extent. The mapping information may identify one or more objects that make up the extent identified by the extent ID.
- Object administrator 410 may comprise object instantiator 414, which may instantiate new virtual storage objects when necessary. For example, when data is moved to a new virtual storage object or a new storage object portion, object instantiator 414 may request the virtual data center for one or more new storage units. Object instantiator 414 may aggregate extents from different contiguous data into a larger object. For example, object instantiator may aggregate extent 304 from contiguous data 302 and extent 332 from contiguous data 328 to form virtual object 310.
- Object administrator 410 may comprise object stores that facilitate the retrieval and storage of data in associated storage units.
- block object store 418 may be capable of communicating with virtual storage objects that include portions of CSP block storage units provided by a cloud service provider (CSP), such as storage units 422, 424, 428, 430.
- CSP cloud service provider
- block object store 418 may communicate with the storage units either via storage unit managers 420 and 426 or independent of the storage unit managers.
- a single object store may be used to communicate with storage units of different device types.
- Block object store 418 may respectively maintain object portion directory 416.
- Block object store 418 may comprise one or more rotational hard disk drives (HDDs), flash- based solid-state drives (SSDs), volatile or non-volatile random access memory (RAM or NVRAM), or some other type of media.
- the object portion directory may identify the particular storage unit portions included in the virtual storage object and the location of the particular storage unit portions.
- object portion directory 416 may indicate that virtual storage object 310 includes virtual object portion 316, which begins at location X of storage unit 322, virtual object portion 318, which begins at begins at location Y of storage unit 324, and virtual object portion 320, which begins at location Z of storage unit 326.
- the object portion directory may also indicate an ordering of the storage unit portions.
- object portion directory 416 may indicate that virtual object portion 316 is followed by virtual object portion 318, which is followed by virtual object portion 320.
- Object administrator 410 may determine the storage unit addresses of the requested data based on the virtual location information received from virtual location administrator 402 in combination with mappings of virtual locations to physical location stored at object administrator 410.
- object administrator 410 may receive an extent identifier, offset amount, and length amount and the storage unit addresses of the requested data may be determined by locating the object belonging to the identified extent using extent-object mappings 412 and the storage unit portions belonging to the identified objects using object portion directory 416.
- the storage unit addresses identify the locations of the data within the corresponding storage units.
- Virtual location administrator 402 may only store data locations using virtual location identifiers.
- Virtual location identifiers may include one or more of logical extent identifiers, logical block identifiers, logical object identifiers.
- a virtual location may be identifies as a byte-offset in a virtual disk, file, or object.
- Object administrator 410 may translate virtual location identifiers to physical locations based on extent-object mappings 412 and/or object portion directory 416.
- FIG. 5 illustrates an example process for utilizing extent-object mappings and object portion directories during the retrieval of client data.
- the process of FIG. 5 may be performed at storage unit administrator 106.
- virtual location administrator 402 receives, from client machine 100, a request to access particular data.
- virtual location administrator 402 determines the extent ID of the extent to which the particular data belongs using the logical extent location information 308. In other embodiments, virtual location administrator may determine the block or object to which the particular data belongs.
- Logical extent location information 308 may be a data extent mapping tree indexed by data offset and length. Virtual location administrator 402 may determine particular extent ID, offset, and length of the data using the data offset and length provided in the client request. The client request may identify the data offset as a file offset.
- virtual location administrator 402 sends a request for the particular data to object administrator 410.
- the request may identify the extent to which the data belongs, an offset amount indicating the distance from the beginning of the extent until the data begins, and a length amount indicating the amount of data contained in the extent starting from the offset.
- object administrator 410 identifies the virtual storage object(s) that contain the requested data.
- Object administrator 410 may identify the object(s) that contain the requested data based on extent-object mappings 412.
- extent-object mappings 412 may be stored at virtual location administrator 402 and virtual location administrator 402 may determine which object contains the requested data. Different object stores may be associated with different objects.
- Virtual location administrator 402 may select a corresponding object store from among a set of object stores by determining which object contains the requested data and selecting the object store corresponding to the selected object.
- object administrator 410 requests the corresponding object store to retrieve the particular data.
- the object store may determine the storage unit address(es) of the data based on the stored object portion directory and the received extent ID and, in some embodiments, length and offset information.
- the object portion directory indicates, for each virtual storage object, the storage units whose portions make up the virtual storage object, the location within the storage unit of the storage unit portions that make up the virtual storage object, and the storage policy that corresponds to the virtual storage object.
- the object portion directory may indicate that virtual storage object 310 comprises virtual object portions 316, 318, and 320 and that virtual object portion 316 begins at location X of storage unit 322, virtual object portion 318 begins at location Y of storage unit 324, virtual object portion 320 begins at location Z of storage unit 326.
- the object portion directory may also indicate that virtual storage object 310 is distributed according to a particular storage redundancy coding, such as RAID 5. Some embodiments may use alternative storage redundancy codings, such as erasure codings or the like, to achieve different objectives, as described in App No. 13/837,456.
- Each virtual object portion may be of a fixed size or the object portion directory may also indicate the amount of data stored at each virtual object portion.
- the corresponding object store retrieves the requested data from the corresponding storage unit location(s).
- object administrator 410 provides the retrieved data to virtual location administrator 402. Along with the requested data, object administrator 410 may reiterate to virtual location administrator 402 the virtual location associated with the retrieved data.
- virtual location administrator 402 is described above as using extent identifiers to identify the virtual locations of data, which are translated to object identifiers, and finally to storage unit portion addresses by object administrator 410.
- data may be stored in other formats.
- virtual location administrator 402 may maintain references to logical block identifiers instead of logical extent identifiers, and the logical block identifiers may eventually be translated into storage unit portion addresses by object administrator 410.
- FIG. 6 illustrates an example process for updating location information upon relocating particular data.
- the process of FIG. 6 may be performed at storage unit administrator 106.
- storage unit administrator 106 determines that a condition requiring movement of particular data to a new location has occurred, where the particular data is part of a particular logical extent stored at a particular virtual storage object.
- object administrator 410 causes the particular data to be stored at the new location.
- the relocation of the particular data may comprise storage unit
- storage unit administrator 106 relocating the data to an entirely different virtual storage object or to a different storage unit portion, which is added to the same particular virtual storage object which contained the relocated data prior to relocation.
- storage unit administrator 106 performs either the step of block 606 or block 608, depending on whether the particular data is relocated to a different virtual storage object or only to a different storage unit portion.
- storage unit administrator 106 relocates the particular data to a different virtual storage object and storage unit administrator 106 updates extent-object mappings, which prior to the updating indicated that the particular virtual storage object stores information belonging to the particular logical extent, to indicate that a different virtual storage object stores information belonging to the particular logical extent.
- storage unit administrator 106 relocates the data to a different storage unit portion but not to a different virtual storage object.
- Storage unit administrator 106 updates object- storage unit mappings, which prior to the updating indicated that a particular set of storage unit portions belong to the particular virtual storage object, to instead indicate that a different set of storage unit portions belong to the particular virtual storage object.
- storage unit administrator 106 updates offset information in the object- storage unit mappings instead of changing the set of storage units that belong to an object.
- object portion directory 416 may update object portion directory 416 to indicate that virtual storage object portion begins at location X+1024 of storage unit 322 instead of at location X of storage unit 322.
- the data may be relocated to a storage unit portion that already belongs to the virtual storage object.
- storage unit administrator 106 may consolidate the set of storage units that a virtual storage object spans.
- the object- storage unit portion mappings may be modified to indicate that the virtual storage object which contains the relocated data no longer includes the storage unit portion in which the data was previously located.
- the data may also be relocated to a storage unit portion that does not belong to the virtual storage object.
- the object- storage unit portion mappings may be modified to indicate that the virtual storage object that contains the relocated data also includes the storage unit portion to which the data was relocated. If no data remains in the storage unit portion that previously contained the relocated data, the mappings may also be updated to indicate that the storage unit portion which previously contained the relocated data is removed from the virtual storage object [0071]
- storage unit administrator 106 may cause use of a particular storage unit to be disabled in response to determining that the performance of the particular storage unit is inadequate.
- Storage unit administrator 106 may also disable the use of a first or second storage unit for at least a particular purpose in response to detecting a pattern of the two storage units performing similarly. The detection of such a pattern may indicate that two storage units are hosted by the same physical device. In response to determining to disable the use of a particular storage unit, storage unit administrator 106 may move all data stored at the particular storage unit to a different storage unit.
- each virtual storage object including a portion of the storage unit selected for disabling is modified to instead include a portion of a different storage unit.
- Modifying the virtual storage object to include the different storage unit portion may include updating the object portion directory of the corresponding object store to indicate that the virtual storage objects includes the new storage unit portions instead of the replaced storage unit portions. For example, an object portion directory entry indicating that that virtual storage object 100 includes locations X of storage unit 102 may be modified to indicate that virtual storage object 100 includes locations Y of storage unit 104.
- storage unit administrator 106 may cause data stored according to one storage policy to be stored according to a different storage policy.
- Changing the storage policy applicable to particular data may comprise changing the amount of storage unit portions used for purposes of data mirroring or redundancy, how many storage unit portions the data is striped across, the size of each storage unit portion, the particular erasure or redundancy coding used, or other parameters relating to the reliability, availability, performance and capacity of a storage unit.
- storage unit administrator 106 may determine, based on an analysis of a performance of a set of storage units, that a prior storage policy associated with a certain service level is no longer compatible with a performance expectation associated with the certain service level. Such a determination is an example condition whose occurrence requires movement of data from one physical location to another. In response to the determination, storage unit administrator 106 may change the storage policy associated with a particular service level. For example, the storage policy corresponding to a "gold" service level may require that a particular amount of data be striped over four storage unit portions of four different storage units.
- storage unit administrator 106 may determine that the storage policy requires adjusting in order to meet a particular service level objective associated with the "gold" service level. Thus, storage unit administrator 106 may modify the storage policy corresponding to the "gold" service level to require that the data be striped over five storage unit portions of five different devices instead of four different devices.
- virtual storage objects containing data stored according to the "gold" service level each may be modified to include a storage unit portion of a storage unit not already included in the virtual storage unit.
- Storage unit administrator 106 may move some data from the other storage unit portions belonging to the virtual storage object to the newly- added storage unit portions.
- changing the set of storage unit portions belonging to a particular virtual storage object may include adding, removing, or replacing storage unit portions.
- Storage unit administrator 106 may also cause data stored according to one storage policy to be stored according to a different storage policy when storage unit administrator 106 associates particular data with a different service level. Storage unit administrator 106 may do so in response to receiving a request from client machine 100 to associate the particular data with a different service level. For example, the client may indicate a certain subset of data as being especially important. In response to receiving the indication from the client, storage unit administrator 106 may associate the data with a "platinum security" service level. The storage policy associated with the "platinum security" service level may require two storage unit portions to serve as two separate parity drives instead of other storage policies which may only include a single storage unit portion that serves as a single parity drive.
- storage unit administrator 106 may move the data to an entirely new virtual storage object instead of adding or removing the storage unit portions that belong to the virtual storage object in which the data is stored.
- storage unit administrator 106 may update extent-object mappings 412. For example, storage unit administrator 106 may modify a particular mapping indicating that data extent 102 is stored in virtual storage object 6 instead of virtual storage object 4.
- the storage policy associated with a service level when the storage policy associated with a service level is modified, the set of storage unit portions belonging to a virtual storage object are changed and when the service level associated with particular data is changed, the data is moved to an entirely new virtual storage object.
- Determining that a condition requiring movement of particular data to a new location has occurred may comprise determining that performance of a particular storage unit is inadequate, detecting the occurrence of a pattern indicating that two storage units are hosted by the same physical device, determining that a prior storage policy is no longer compatible with a performance expectation associated with a certain service level, or receiving a request from a client to associate the particular data with a different service level.
- Such conditions are only examples; storage unit administrator 106 may also perform the process of FIG. 6 in response to determining the occurrence of other conditions requiring movement of particular data to a new location, such as determining a need for general load balancing across different storage units.
- the process of FIG. 6 may also be performed in cases where data or metadata needs to be rewritten, such as when data or metadata is transformed for encryption or compression purposes.
- rewriting particular data may include rewriting the particular data to new storage unit portions and updating the object- storage unit mappings to indicate that the particular data is stored at the new storage unit portions instead of the previously specified storage unit portions, performing all data or metadata transformations within a single operation or composite transaction.
- Such an approach may be more efficient than a traditional approach where the particular data is first removed from a particular location before being rewritten in the same particular location, performed in a more costly manner as multiple individual operations per required transformation.
- object administrator 410 is described above as updating mappings of objects to storage unit portions when data belonging to the object is moved from a first storage unit portion to another storage unit portion.
- data may be stored in other formats.
- object administrator 410 may comprise mappings of logical blocks to storage unit portions and, in response to moving data from a first storage unit portion to a second storage unit portion, object administrator 410 may update a mapping of blocks to storage unit portions to indicate that a particular block includes the second storage unit portion instead of the first.
- FIG. 7 is a block diagram that illustrates a computer system 700 upon which an embodiment of the invention may be implemented.
- Computer system 700 includes a bus 702 or other communication mechanism for communicating information, and a processor 704 coupled with bus 702 for processing information.
- Computer system 700 also includes a main memory 706, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 702 for storing information and instructions to be executed by processor 704.
- Main memory 706 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 704.
- Computer system 700 further includes a read only memory (ROM) 708 or other static storage device coupled to bus 702 for storing static information and instructions for processor 704.
- ROM read only memory
- a storage device 710 such as a magnetic disk or optical disk, is provided and coupled to bus 702 for storing information and instructions.
- Computer system 700 may be coupled via bus 702 to a display 712, such as a cathode ray tube (CRT), for displaying information to a computer user.
- a display 712 such as a cathode ray tube (CRT)
- An input device 714 is coupled to bus 702 for communicating information and command selections to processor 704.
- cursor control 716 is Another type of user input device
- cursor control 716 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 704 and for controlling cursor movement on display 712.
- This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
- the invention is related to the use of computer system 700 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 700 in response to processor 704 executing one or more sequences of one or more instructions contained in main memory 706. Such instructions may be read into main memory 706 from another machine-readable medium, such as storage device 710. Execution of the sequences of instructions contained in main memory 706 causes processor 704 to perform the process steps described herein. In alternative embodiments, hard- wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
- machine-readable medium refers to any medium that participates in providing data that causes a machine to operation in a specific fashion.
- various machine-readable media are involved, for example, in providing instructions to processor 704 for execution.
- Such a medium may take many forms, including but not limited to storage media and transmission media.
- Storage media includes both non-volatile media and volatile media.
- Non-volatile media includes, for example, optical or magnetic disks, such as storage device 710.
- Volatile media includes dynamic memory, such as main memory 706.
- Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 702.
- Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine.
- Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
- Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 704 for execution.
- the instructions may initially be carried on a magnetic disk of a remote computer.
- the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
- a modem local to computer system 700 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
- An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 702.
- Bus 702 carries the data to main memory 706, from which processor 704 retrieves and executes the instructions.
- the instructions received by main memory 706 may optionally be stored on storage device 710 either before or after execution by processor 704.
- Computer system 700 also includes a communication interface 718 coupled to bus 702.
- Communication interface 718 provides a two-way data communication coupling to a network link 720 that is connected to a local network 722.
- communication interface 718 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line.
- ISDN integrated services digital network
- communication interface 718 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
- LAN local area network
- Wireless links may also be implemented.
- communication interface 718 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
- Network link 720 typically provides data communication through one or more networks to other data devices.
- network link 720 may provide a connection through local network 722 to a host computer 724 or to data equipment operated by an Internet Service Provider (ISP) 726.
- ISP 726 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 728.
- Internet 728 uses electrical, electromagnetic or optical signals that carry digital data streams.
- the signals through the various networks and the signals on network link 720 and through communication interface 718, which carry the digital data to and from computer system 700, are exemplary forms of carrier waves transporting the information.
- Computer system 700 can send messages and receive data, including program code, through the network(s), network link 720 and communication interface 718.
- a server 530 might transmit a requested code for an application program through Internet 728, ISP 726, local network 722 and communication interface 718.
- the received code may be executed by processor 704 as it is received, and/or stored in storage device 710, or other no n- volatile storage for later execution. In this manner, computer system 700 may obtain application code in the form of a carrier wave.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361799550P | 2013-03-15 | 2013-03-15 | |
PCT/US2014/025046 WO2014151126A1 (en) | 2013-03-15 | 2014-03-12 | Multi-layered storage administration for flexible placement of data |
Publications (2)
Publication Number | Publication Date |
---|---|
EP2984553A1 true EP2984553A1 (en) | 2016-02-17 |
EP2984553B1 EP2984553B1 (en) | 2020-04-22 |
Family
ID=51533961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP14725261.3A Active EP2984553B1 (en) | 2013-03-15 | 2014-03-12 | Multi-layered storage administration for flexible placement of data |
Country Status (9)
Country | Link |
---|---|
US (1) | US9733867B2 (en) |
EP (1) | EP2984553B1 (en) |
JP (1) | JP2016512906A (en) |
KR (1) | KR20150131359A (en) |
AU (1) | AU2014235300B2 (en) |
BR (1) | BR112015023565A2 (en) |
CA (1) | CA2906534A1 (en) |
TW (1) | TW201502776A (en) |
WO (1) | WO2014151126A1 (en) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9444889B1 (en) * | 2013-02-08 | 2016-09-13 | Quantcast Corporation | Managing distributed system performance using accelerated data retrieval operations |
US9335932B2 (en) | 2013-03-15 | 2016-05-10 | Bracket Computing, Inc. | Storage unit selection for virtualized storage units |
US9306978B2 (en) | 2013-03-15 | 2016-04-05 | Bracket Computing, Inc. | Automatic tuning of virtual data center resource utilization policies |
EP2984553B1 (en) | 2013-03-15 | 2020-04-22 | VMware, Inc. | Multi-layered storage administration for flexible placement of data |
US20150286701A1 (en) * | 2014-04-04 | 2015-10-08 | Quantum Corporation | Data Classification Aware Object Storage |
WO2016181521A1 (en) * | 2015-05-13 | 2016-11-17 | 株式会社日立製作所 | Computer and optimization method |
US9632709B1 (en) | 2015-11-16 | 2017-04-25 | International Business Machines Corporation | Collocation of object storage data with removable media |
JP6542148B2 (en) * | 2016-03-18 | 2019-07-10 | 株式会社東芝 | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND PROGRAM |
JP6253752B1 (en) * | 2016-11-29 | 2017-12-27 | 株式会社東芝 | Tiered storage system |
US10191762B2 (en) | 2017-01-31 | 2019-01-29 | Vmware, Inc. | Transparent deployment of intermediary manager into guest operating system network traffic |
CN108733311B (en) * | 2017-04-17 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | Method and apparatus for managing storage system |
US10356128B1 (en) | 2017-07-27 | 2019-07-16 | Vmware, Inc. | Tag-based policy architecture |
US11157299B2 (en) * | 2017-08-15 | 2021-10-26 | Citrix Systems, Inc. | Thin provisioning virtual desktop infrastructure virtual machines in cloud environments without thin clone support |
US10652281B1 (en) | 2017-08-31 | 2020-05-12 | Vmware, Inc. | Network policy implementation in a tag-based policy architecture |
US10509914B1 (en) | 2017-10-27 | 2019-12-17 | Vmware, Inc. | Data policy implementation in a tag-based policy architecture |
CN110737400B (en) * | 2018-07-20 | 2023-10-10 | 伊姆西Ip控股有限责任公司 | Method, electronic device and computer program product for dual processor memory system |
CN111966304B (en) * | 2020-09-15 | 2023-09-05 | 山东钢铁集团日照有限公司 | EGD mode-based data reading method |
US12086464B2 (en) | 2022-06-27 | 2024-09-10 | Microsoft Technology Licensing, Llc | Storage policy change usage estimation |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980081499A (en) | 1997-04-17 | 1998-11-25 | 모리시다요이치 | In-memory data processing device and processing system |
US20030023958A1 (en) | 2001-07-17 | 2003-01-30 | Patel Mukesh K. | Intermediate language accelerator chip |
US7603440B1 (en) | 2001-11-09 | 2009-10-13 | Persystent Technology Corporation | System and method for management of end user computing devices |
US20040243699A1 (en) | 2003-05-29 | 2004-12-02 | Mike Koclanes | Policy based management of storage resources |
US7373363B2 (en) | 2003-07-03 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Method of managing modification of configuration states of resources in a dynamic data center |
EP1678617A4 (en) | 2003-10-08 | 2008-03-26 | Unisys Corp | Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system |
TWI273397B (en) | 2004-07-01 | 2007-02-11 | Winity Technology Inc | Virtual memory device including a bridge circuit |
US7739239B1 (en) * | 2005-12-29 | 2010-06-15 | Amazon Technologies, Inc. | Distributed storage system with support for distinct storage classes |
US20090228669A1 (en) | 2008-03-10 | 2009-09-10 | Microsoft Corporation | Storage Device Optimization Using File Characteristics |
US8443370B2 (en) | 2008-08-26 | 2013-05-14 | Microsoft Corporation | Method of assigning resources to fulfill a service request by a programming model abstraction layer at a data center based at least in part on a reference of the requested resource class indicative of an abstract amount of resources |
US20100332401A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US20110126197A1 (en) | 2009-11-25 | 2011-05-26 | Novell, Inc. | System and method for controlling cloud and virtualized data centers in an intelligent workload management system |
US8443153B1 (en) | 2010-01-06 | 2013-05-14 | Netapp, Inc. | Dynamic balancing of performance with block sharing in a storage system |
US8732310B2 (en) | 2010-04-22 | 2014-05-20 | International Business Machines Corporation | Policy-driven capacity management in resource provisioning environments |
WO2011159842A2 (en) | 2010-06-15 | 2011-12-22 | Nimbula, Inc. | Virtual computing infrastructure |
US8255634B2 (en) | 2010-08-11 | 2012-08-28 | Lsi Corporation | Apparatus and methods for look-ahead virtual volume meta-data processing in a storage controller |
US8327373B2 (en) | 2010-08-24 | 2012-12-04 | Novell, Inc. | System and method for structuring self-provisioning workloads deployed in virtualized data centers |
US8775773B2 (en) * | 2011-08-26 | 2014-07-08 | Vmware, Inc. | Object storage system |
US8447851B1 (en) | 2011-11-10 | 2013-05-21 | CopperEgg Corporation | System for monitoring elastic cloud-based computing systems as a service |
US20140068703A1 (en) | 2012-08-28 | 2014-03-06 | Florin S. Balus | System and method providing policy based data center network automation |
KR101692751B1 (en) | 2012-09-25 | 2017-01-04 | 에이10 네트워크스, 인코포레이티드 | Load distribution in data networks |
US10554505B2 (en) | 2012-09-28 | 2020-02-04 | Intel Corporation | Managing data center resources to achieve a quality of service |
WO2014068617A1 (en) | 2012-10-31 | 2014-05-08 | Hitachi, Ltd. | Storage apparatus and method for controlling storage apparatus |
EP2984553B1 (en) | 2013-03-15 | 2020-04-22 | VMware, Inc. | Multi-layered storage administration for flexible placement of data |
US9306978B2 (en) | 2013-03-15 | 2016-04-05 | Bracket Computing, Inc. | Automatic tuning of virtual data center resource utilization policies |
US9335932B2 (en) | 2013-03-15 | 2016-05-10 | Bracket Computing, Inc. | Storage unit selection for virtualized storage units |
-
2014
- 2014-03-12 EP EP14725261.3A patent/EP2984553B1/en active Active
- 2014-03-12 KR KR1020157029884A patent/KR20150131359A/en not_active Application Discontinuation
- 2014-03-12 US US14/206,123 patent/US9733867B2/en active Active
- 2014-03-12 AU AU2014235300A patent/AU2014235300B2/en active Active
- 2014-03-12 BR BR112015023565A patent/BR112015023565A2/en not_active Application Discontinuation
- 2014-03-12 JP JP2016501732A patent/JP2016512906A/en active Pending
- 2014-03-12 CA CA2906534A patent/CA2906534A1/en not_active Abandoned
- 2014-03-12 WO PCT/US2014/025046 patent/WO2014151126A1/en active Application Filing
- 2014-03-14 TW TW103109709A patent/TW201502776A/en unknown
Non-Patent Citations (1)
Title |
---|
See references of WO2014151126A1 * |
Also Published As
Publication number | Publication date |
---|---|
WO2014151126A1 (en) | 2014-09-25 |
US9733867B2 (en) | 2017-08-15 |
AU2014235300B2 (en) | 2018-04-12 |
BR112015023565A2 (en) | 2017-07-18 |
AU2014235300A1 (en) | 2015-11-05 |
JP2016512906A (en) | 2016-05-09 |
TW201502776A (en) | 2015-01-16 |
CA2906534A1 (en) | 2014-09-25 |
US20140281350A1 (en) | 2014-09-18 |
EP2984553B1 (en) | 2020-04-22 |
KR20150131359A (en) | 2015-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9733867B2 (en) | Multi-layered storage administration for flexible placement of data | |
US11797498B2 (en) | Systems and methods of database tenant migration | |
US10275177B2 (en) | Data layout schemas for seamless data migration | |
JP2016512906A5 (en) | ||
US11755590B2 (en) | Data connector component for implementing integrity checking, anomaly detection, and file system metadata analysis | |
US9348842B2 (en) | Virtualized data storage system optimizations | |
CN111356996B (en) | System and computer-implemented method for version verification | |
US20100199065A1 (en) | Methods and apparatus for performing efficient data deduplication by metadata grouping | |
US20220138169A1 (en) | On-demand parallel processing of objects using data connector components | |
US20190317918A1 (en) | Stale data detection | |
US20220138151A1 (en) | Sibling object generation for storing results of operations performed upon base objects | |
US20220138152A1 (en) | Full and incremental scanning of objects | |
US20220138153A1 (en) | Containerization and serverless thread implementation for processing objects | |
US10754569B2 (en) | Methods to reduce storage capacity | |
US12050553B2 (en) | Supporting a lookup structure for a file system implementing hierarchical reference counting | |
US10936540B2 (en) | Methods for accelerating storage media access and devices thereof | |
EP3998533B1 (en) | On-demand parallel processing of objects using data connector components |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20151009 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20180314 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: VMWARE, INC. |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
INTG | Intention to grant announced |
Effective date: 20191024 |
|
GRAJ | Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted |
Free format text: ORIGINAL CODE: EPIDOSDIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
GRAR | Information related to intention to grant a patent recorded |
Free format text: ORIGINAL CODE: EPIDOSNIGR71 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
INTC | Intention to grant announced (deleted) | ||
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
INTG | Intention to grant announced |
Effective date: 20200317 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602014064098 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 1260998 Country of ref document: AT Kind code of ref document: T Effective date: 20200515 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20200422 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200824 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200722 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200723 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200822 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 1260998 Country of ref document: AT Kind code of ref document: T Effective date: 20200422 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200722 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602014064098 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20210125 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20210331 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210312 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210331 Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210312 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210331 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210331 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20140312 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R081 Ref document number: 602014064098 Country of ref document: DE Owner name: VMWARE LLC, PALO ALTO, US Free format text: FORMER OWNER: VMWARE, INC., PALO ALTO, CALIF., US |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200422 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20231229 Year of fee payment: 11 Ref country code: GB Payment date: 20240108 Year of fee payment: 11 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20240103 Year of fee payment: 11 |