US2017315883A1PendingUtilityA1

Data storage with virtual appliances

Assignee: MPSTOR LTDPriority: Jun 29, 2012Filed: Jul 17, 2017Published: Nov 2, 2017
Est. expiryJun 29, 2032(~5.9 yrs left)· nominal 20-yr term from priority
G06F 3/0635G06F 2201/84G06F 3/067G06F 11/2046G06F 2201/815G06F 11/203G06F 11/1484G06F 11/1469G06F 11/2058G06F 3/0664G06F 11/2069G06F 11/2087G06F 11/2035G06F 3/0617
34
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A data storage system has at least two universal nodes each having CPU resources, memory resources, network interface resources, and a storage virtualizer. A system controller communicates with all of the nodes. Each storage virtualizer in each universal node is allocated by the system controller a number of storage provider resources that it manages. The system controller maintains a map for dependency of virtual appliances to storage providers, and the storage virtualizer provides storage to its dependent virtual appliances either locally or through a network protocol (N_IOC, S_IOC) to another universal node. The storage virtualizer manages storage providers and is tolerant to fault conditions. The storage virtualizer can migrate from any one universal node to any other universal node.

Claims

exact text as granted — not AI-modified
1 . A data storage system comprising:
 at least two universal nodes each comprising:
 CPU resources, 
 memory resources, 
 network interface resources, and 
 a storage virtualizer; 
   storage providers; and   a system controller,   wherein:   the storage virtualizer is attached to said storage providers through a storage bus organized so that a plurality of universal nodes have the same access to a fabric and storage providers attached to the fabric,   each storage virtualizer in each universal node is allocated by the system controller a number of storage provider resources that it manages, the system controller being configured to maintain a map for dependency of storage consumers to storage provider resources, and storing context and state of each storage virtualizer such that each storage virtualizer is a slave device,   each storage virtualizer is configured to provide storage to dependent storage consumers, said storage being through a network protocol to said storage providers,   each storage virtualizer is configured to manage storage providers and is tolerant to fault conditions and the fault tolerance is achieved by an ability of the storage virtualizer to migrate to any other universal node, in which if any universal node fails any other universal node can be reconfigured by the system controller to take over the storage providers by recovering storage virtualizer context and state held by the system controller; and   the storage consumers include virtual appliances which are configured to run locally on a universal node where the storage virtualizer has migrated to or can be run on another universal node.   
     
     
         2 . The storage system as claimed in  claim 1 , wherein said CPU, memory, network interface and storage virtualizer resources are connected between buses within each universal node, wherein at least one of said buses links said resources with virtual appliance instances, and wherein each universal node comprises a Hypervisor application for the virtual appliance instances. 
     
     
         3 . The storage system as claimed in  claim 1 , wherein a plurality of storage devices are configured to be discovered by a plurality of universal nodes, and wherein each storage virtualizer is configured to behave as if it were a locally attached storage array with coupling between the storage devices and the universal node. 
     
     
         4 . The storage system as claimed in  claim 1 , wherein the system controller is configured to partition and fit the virtual appliances within each universal node. 
     
     
         5 . The storage system as claimed in  claim 1 , wherein the universal nodes are configured so that in the case of a system failure each universal node will failover resources and workloads to a paired universal node. 
     
     
         6 . The storage system as claimed in  claim 1 , wherein a Hypervisor application manages requesting and allocation of resources within each universal node. 
     
     
         7 . The storage system as claimed in  claim 1 , wherein said CPU, memory, network interface and storage virtualizer resources are connected between buses within each universal node, wherein at least one of said buses links said resources with virtual appliance instances, and wherein each universal node comprises a Hypervisor application for the virtual appliance instances; and wherein the system further comprises a provisioning engine, and the Hypervisor application is configured to use an API to request storage from the provisioning engine, which is in turn configured to request a storage array as a virtualization of a storage provider resource to create a storage volume and export it to the Hypervisor application through the storage virtualizer. 
     
     
         8 . The storage system as claimed in  claim 1 , wherein said CPU, memory, network interface and storage virtualizer resources are connected between buses within each universal node, wherein at least one of said buses links said resources with virtual appliance instances, and wherein each universal node comprises a Hypervisor application for the virtual appliance instances; and wherein the system further comprises a provisioning engine, and the Hypervisor application is configured to use an API to request storage from the provisioning engine, which is in turn configured to request a storage array to create a storage volume and export it to the Hypervisor application through the storage virtualizer; and wherein, to satisfy storage requirements of virtual appliances in a universal node, each local storage array is configured to respond to requests from a storage provisioning requester running on the universal node. 
     
     
         9 . The storage system as claimed in  claim 1 , wherein the universal nodes are identical. 
     
     
         10 . The storage system as claimed in  claim 1 , wherein the system controller is configured to dispatch workloads including virtual appliances to the universal nodes interfacing directly with the system controller or with a Hypervisor application. 
     
     
         11 . The storage system as claimed in  claim 1 , wherein said CPU, memory, network interface and storage virtualizer resources are connected between buses within each universal node, wherein at least one of said buses links said resources with virtual appliance instances, and wherein each universal node comprises a Hypervisor application for the virtual appliance instances; and wherein the system controller is configured to dispatch workloads including storage provider virtual blocks to the universal nodes interfacing directly with a Hypervisor application of the universal node. 
     
     
         12 . The storage system as claimed in  claim 1 , wherein said CPU, memory, network interface and storage virtualizer resources are connected between buses within each universal node, wherein at least one of said buses links said resources with virtual appliance instances, and wherein each universal node comprises a Hypervisor application for the virtual appliance instances; and wherein the Hypervisor application has an API which allows creation and execution of virtual appliances, and the Hypervisor application requests CPU, memory, and storage resources from the CPU, memory and storage managers, and a storage representation is implemented as if the storage were local, in which the storage virtualization virtual block is a virtualization of a storage provider resource. 
     
     
         13 . The storage system as claimed in  claim 1 , wherein the system controller is configured to hold information about the system to allow each universal node to make decisions regarding optimal distribution of workloads. 
     
     
         14 . The storage system as claimed in  claim 1 , wherein the system controller is configured to be responsible for partitioning and fitting of storage provider resources to each universal node, and is configured to, in the case of a failure, detect the failure and migrate failed storage virtualizer virtual blocks to available universal nodes, and the system controller is configured to maintain a map and dependency list of storage virtualizer resources to every storage provider storage array. 
     
     
         15 . The storage system as claimed in  claim 1 , wherein each universal node is configured to execute a leadership role which follows a state machine, in which there are voter and leader states, and to return to a voter state if a leader fails. 
     
     
         16 . The storage system as claimed in  claim 1 , wherein the storage virtualizer comprises functions for targets, managers, and provider management and said functions are adapted to communicate with the system controller. 
     
     
         17 . The storage system as claimed in  claim 1 , wherein the storage virtualizer is configured to consume storage from the storage provider and to provide virtual block devices to the storage consumers. 
     
     
         18 . The storage system as claimed in  claim 1 , wherein the storage virtualizer is configured to perform added value functions including one or more of:
 data protection by mapping and replicating virtual blocks to multiple storage array volumes,   data scaling by striping a virtual block across multiple storage array volumes, and   redundant multipathing by mapping a virtual block to different instances of a storage array volume on alternate paths.   
     
     
         19 . The storage system as claimed in  claim 1 , wherein the storage virtualizer is configured to perform added value function including one or more of:
 node-side caching between a virtual black and a storage array volume,   virtual block rate limiting,   system fairness by managing resource allocation to an input/output sub-system used for storage,   virtual block virtualization for storage array volumes, and   virtual block tiering by building a virtual block across multiple storage array volume tiers of varying quantity of service criteria.   
     
     
         20 . The storage system as claimed in  claim 1 , wherein each universal node is configured to increase a rack value for any virtual appliance by increasing a coupling constant Kc and maximizing amount of space available for storage and compute nodes, said rack value being a number of virtual appliances which run within a rack. 
     
     
         21 . The storage system as claimed in  claim 20 , wherein the rack value is defined as
 RV (RackValue)=(V*(C*Uc)*S*(D*Ud)*Kc/(k*1); Uc+Ud=42, 42 is the height of an Industrial Rack in U units, and   V is the number of virtual appliances per core (C) in the rack,   C is the number of cores per unit (U) of rack space,   Uc is the number of U spaces allocated to cores,   D is the number of disks per U of rack space,   S is the average size of the disks,   Ud is the number of U space allocated to disks,   Kc is the coupling constant between virtual appliances and storage, in which a larger Kc implies faster coupling between storage media virtual appliance,   k is a function k=f(C/D), and   l is a function l=f(C/BladeMemoryGigs).

Join the waitlist — get patent alerts

Track US2017315883A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.