Patentable/Patents/US-9740409
US-9740409

Virtualized storage systems

PublishedAugust 22, 2017
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Described herein is a virtualized storage system (VSS), for sharing a storage cluster comprising a plurality of storage devices, among multiple hosts. The virtualized storage system comprises a plurality of virtual host bus adapters (vHBA), wherein each vHBA is connected to a host, though a standard based host bus interface. The VSS further comprises a storage fabric switch for connecting the plurality of the vHBAs with the storage cluster through a cluster of storage controllers to facilitate transfer of data and commands between the hosts and the storage devices, wherein the storage fabric switch provide storage services for each host, the storage services comprising at least one of backup, replication and thin-provisioning. The storage fabric switch further comprises a command processing engine (CPE) to map commands received from the plurality of vHBAs, in a virtual addressing domain, to a physical address of a mapped storage controller for execution.

Patent Claims
19 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A virtualized storage system, for sharing a storage cluster, comprising a plurality of storage devices, in a computing device having a plurality of hosts, the virtualized storage system comprising: a plurality of virtual host bus adapters (vHBA), wherein each vHBA is connected to a host, from amongst the plurality of hosts, through a standard based host bus interface; and a storage fabric switch for connecting the plurality of the vHBAs with a storage controller cluster to transfer data and commands between the plurality of hosts and the plurality of storage devices, wherein the storage fabric switch further comprises: a command processing engine (CPE) to map virtual addresses present in commands received from the plurality of vHBAs to corresponding physical addresses of at least one of the plurality of storage devices and an Inline Buffer Engine (IBE) to: receive an allocation request from at least one of the plurality of hosts for writing data to at least one of the plurality of storage devices; transmit address of a memory block, along with one of an in-built bit and an overflow bit, to the at least one of the plurality of hosts; receive data from the at least one of the plurality of hosts on the allocated memory block; and send Data ReQuest (DRQ) information to the storage device to notify about availability of data on the allocated memory block.

Plain English Translation

A virtualized storage system shares a storage cluster among multiple hosts. It includes virtual host bus adapters (vHBAs) connected to each host using a standard interface, and a storage fabric switch. The switch connects the vHBAs to storage controllers to transfer data between hosts and storage devices. The switch has a command processing engine (CPE) that maps virtual addresses from host commands to physical addresses of storage devices. An Inline Buffer Engine (IBE) handles data transfers by receiving write requests from hosts, allocating memory blocks, providing the address to the host, receiving data, and then notifying the storage device about the data's availability using Data ReQuest (DRQ) information.

Claim 2

Original Legal Text

2. The virtualized storage system as claimed in claim 1 , wherein the CPE maps the virtual addresses to the corresponding physical addresses based on a table stored in a content addressable memory (CAM) of the storage fabric switch, wherein the CAM allows high speed search operations to locate a physical address corresponding to a virtual address.

Plain English Translation

In the virtualized storage system described previously, the command processing engine (CPE) maps virtual addresses to physical addresses using a lookup table stored in a content addressable memory (CAM) within the storage fabric switch. The CAM enables fast searching of the table to find the physical address corresponding to a given virtual address. This accelerates the process of translating host commands to the actual location of data on the storage devices.

Claim 3

Original Legal Text

3. The virtualized storage system as claimed in claim 1 , wherein the IBE is to store, buffer and forward data from the at least one storage device in the storage cluster for the at least one of the plurality of hosts.

Plain English Translation

In the virtualized storage system described previously, the Inline Buffer Engine (IBE) also stores, buffers, and forwards data originating from the storage device back to the requesting host. This means the IBE handles both upstream (host to storage) and downstream (storage to host) data flow, providing a central point for managing data transfer within the virtualized storage system.

Claim 4

Original Legal Text

4. The virtualized storage system as claimed in claim 1 , wherein each of the plurality of vHBAs further: receives a plurality of commands from the plurality of hosts; identifies, for each of the plurality of commands, a host, from amongst the plurality of hosts, which issued each of the plurality of commands; assigns a tag, from a pool of tags, to each of the plurality of commands, wherein the tag is indicative of the identified host; and forwards the plurality of commands for execution, by the storage devices, based on the assigned tag.

Plain English Translation

In the virtualized storage system described previously, each virtual host bus adapter (vHBA) receives commands from multiple hosts, identifies the originating host for each command, assigns a unique tag (from a pool of available tags) to each command indicating its source host, and then forwards the commands for execution by the storage devices, using the assigned tag to track the command's origin. This enables tracking and management of commands from different hosts.

Claim 5

Original Legal Text

5. The virtualized storage system as claimed in claim 1 , wherein the each vHBA implements at least one of a Serial Advanced Technology Attachment (SATA) controller, Serial Attached Small Computer System Interface (SCSI) (SAS) controller, Fiber Channel controller and Non-Volatile Memory (NVM) express (NVMe) Flash protocol.

Plain English Translation

In the virtualized storage system described previously, each virtual host bus adapter (vHBA) can implement different storage protocols. It can act as a Serial Advanced Technology Attachment (SATA) controller, a Serial Attached SCSI (SAS) controller, a Fiber Channel controller, or support the Non-Volatile Memory (NVM) express (NVMe) Flash protocol. This allows the virtualized storage system to connect to hosts using a variety of standard storage interfaces.

Claim 6

Original Legal Text

6. The virtualized storage system as claimed in claim 1 , wherein the CPE generates a lookup table to map the virtual addresses to the corresponding physical addresses, the lookup table comprising meta-data information for mapping virtual addresses of a current set of commands, to the corresponding physical addresses of the storage devices associated with the current set of commands.

Plain English Translation

In the virtualized storage system described previously, the command processing engine (CPE) generates a lookup table that maps virtual addresses to physical addresses. This table includes metadata information specifically designed for translating virtual addresses found in the current set of commands to the corresponding physical addresses of the storage devices being accessed by those commands. This optimization improves the performance of the address mapping process.

Claim 7

Original Legal Text

7. The virtualized storage system as claimed in claim 6 , wherein the CPE updates the lookup table based on at least one of access patterns of plurality of hosts and a partition pattern of the storage devices, wherein the partition pattern is indicative of arrangement of the partitions within the storage devices.

Plain English Translation

In the virtualized storage system described previously, the command processing engine (CPE) dynamically updates the lookup table based on two factors: the access patterns of the hosts (which hosts are accessing which data frequently) and the partition pattern of the storage devices (how the storage devices are divided into logical partitions). By monitoring these factors, the CPE can keep the lookup table optimized for current workloads and storage configurations.

Claim 8

Original Legal Text

8. The virtualized storage system as claimed in claim 6 , wherein the CPE populates the lookup table based on Least Recently Used (LRU) replacement mechanism.

Plain English Translation

In the virtualized storage system described previously, the command processing engine (CPE) uses a Least Recently Used (LRU) replacement mechanism to manage the lookup table. When the lookup table is full and a new mapping needs to be added, the least recently used entry is evicted to make space. This ensures that the table contains the most frequently accessed mappings, improving performance.

Claim 9

Original Legal Text

9. The virtualized storage system as claimed in claim 1 , wherein the virtualized storage system further comprises a cluster of storage controllers to couple the storage fabric switch to the plurality of storage devices of the storage cluster, wherein the cluster of storage controllers comprise a plurality of storage controllers, and wherein one of the plurality of storage controllers is communicatively coupled to one of the plurality of storage devices.

Plain English Translation

In the virtualized storage system described previously, a cluster of storage controllers connects the storage fabric switch to the storage devices. This cluster consists of multiple storage controllers, where each storage controller is connected to one or more storage devices. This provides a scalable and manageable way to interface the storage fabric switch with the physical storage.

Claim 10

Original Legal Text

10. The virtualized storage system as claimed in claim 9 , wherein the storage fabric switch implements protocol conversion on determining at least one of the plurality of hosts and the one of the storage devices have different storage protocols.

Plain English Translation

In the virtualized storage system described previously, the storage fabric switch performs protocol conversion when it detects that a host and a storage device are using different storage protocols. This allows hosts with different interface types to communicate seamlessly with different types of storage devices, increasing compatibility.

Claim 11

Original Legal Text

11. The virtualized storage system as claimed in claim 9 , wherein the virtualized storage system further comprises an application layer, communicatively coupled to one of the storage devices and the storage controller associated with the one of the storage devices, to segregate multi host Frame Information Structure (FIS) response from the storage device to the host.

Plain English Translation

In the virtualized storage system described previously, an application layer sits between the storage device and its associated storage controller. This application layer segregates multi-host Frame Information Structure (FIS) responses coming from the storage device before forwarding them to the appropriate host. This is important in multi-host environments to ensure that each host only receives the responses intended for it.

Claim 12

Original Legal Text

12. The virtualized storage system as claimed in claim 1 , wherein the IBE further includes an in-built memory and an overflow memory for buffering data to be transferred from the at least one of the plurality of hosts to the storage device, wherein each of the in-built memory and the overflow memory is divided into a first partition allocated for upstream data transfer from the at least one of the plurality of hosts to the storage device and a second partition for downstream data transfer from the storage device to the at least one of the plurality of hosts.

Plain English Translation

In the virtualized storage system described previously, the Inline Buffer Engine (IBE) includes both an in-built memory and an overflow memory for buffering data during transfer between hosts and storage devices. Each memory is divided into two partitions: one for upstream data transfer (host to storage device) and one for downstream data transfer (storage device to host).

Claim 13

Original Legal Text

13. The virtualized storage system as claimed in claim 1 , wherein the IBE further: allocates a portion of the in-built memory as the memory block for receiving the data to be transferred to the storage device from the at least one of the plurality of hosts; and allocates a portion of the overflow as the memory block for receiving the data to be transferred to the storage device from the at least one of the plurality of hosts, on the in-built memory being unavailable for receiving the data.

Plain English Translation

In the virtualized storage system described previously, the Inline Buffer Engine (IBE) allocates a portion of its in-built memory as the memory block for receiving data from the host. If the in-built memory is full or unavailable, the IBE allocates a portion of the overflow memory instead for receiving the data. This provides a fallback mechanism to handle situations where the primary memory buffer is not available.

Claim 14

Original Legal Text

14. The virtualized storage system as claimed in claim 9 , wherein the virtualized storage system further comprises a storage manager, wherein the storage manager: tracks, configures and maintains health status of the storage controllers and the storage devices; stores system events, security logs, and failed IO operation logs to facilitate error tracking and error resolutions; and provides storage services to the plurality of hosts, wherein the storage services comprises at least one of backup, thin provisioning, and replication.

Plain English Translation

In the virtualized storage system described previously, a storage manager component tracks, configures, and maintains the health status of both the storage controllers and the storage devices. It stores system events, security logs, and logs of failed I/O operations to help with error tracking and resolution. It also provides storage services like backup, thin provisioning, and replication to the hosts.

Claim 15

Original Legal Text

15. A method of executing commands, in a computing device having a plurality of hosts, issued by the plurality of hosts for at least one of a plurality of storage devices, wherein the storage devices form a storage cluster and wherein the storage cluster is shared amongst plurality of hosts, the method comprising: receiving requests for executing a command issued by the plurality of hosts from a plurality of virtual host bus adapters (vHBA), wherein each vHBA is connected to a host, from amongst the plurality of hosts, through a standard based host bus interface; arbitrating the received requests to determine the vHBA whose command is to be executed; analyzing the command of the determined vHBA to determine a virtual address present in the command; mapping the virtual address present in the command to a corresponding physical address of the at least one of a plurality of storage devices; appending ID of a storage controller, associated with the at least one of a plurality of storage devices, to the command based on the mapped physical address; forwarding the appended command to the storage controller for execution; transferring data from at least one of the plurality of hosts to at least one of a plurality of storage devices, the transferring comprising: receiving an allocation request from the at least one of the plurality of hosts for writing data to the storage device; transmitting, in response to the allocation request, one of an address and an offset of a memory block of a storage fabric switch, to the at least one of the plurality of hosts; receiving data, which is to be transferred, from the at least one of the plurality of hosts on the allocated memory block; and sending Data ReQuest (DRQ) information to the storage device to notify the storage device about availability of data on the allocated memory block.

Plain English Translation

A method for executing commands in a computing device with multiple hosts sharing a storage cluster. The method involves receiving command requests from virtual host bus adapters (vHBAs), arbitrating the requests to choose a vHBA, analyzing the command to find a virtual address, mapping this virtual address to a physical address of a storage device, and appending the ID of the associated storage controller to the command. The command is then forwarded for execution. Data transfer involves receiving a write allocation request from a host, providing an address or offset of a memory block in the storage fabric switch, receiving the data from the host, and then sending a Data ReQuest (DRQ) to notify the storage device.

Claim 16

Original Legal Text

16. The method as claimed in claim 15 , wherein the mapping further comprises: ascertaining whether virtual addresses present in the command is present in a lookup table, wherein the lookup table comprises a portion of meta-data information which is in use for mapping the virtual addresses, present in a current set of commands, to the corresponding physical addresses of the storage device; and determining the physical address mapping onto the virtual address based on the lookup table on ascertaining the virtual addresses to be present in the lookup table.

Plain English Translation

In the method of executing commands described previously, the virtual address mapping involves first checking if the virtual address is present in a lookup table. The lookup table contains frequently used metadata for mapping virtual addresses to physical addresses for the current set of commands. If the virtual address is found in the lookup table, the corresponding physical address is retrieved directly from the table.

Claim 17

Original Legal Text

17. The method as claimed in claim 16 , wherein the mapping further comprises accessing a memory of a storage manager, to determine the physical address mapping onto the virtual address, based on records present in the storage manager, on ascertaining the virtual addresses not to be present in the lookup table.

Plain English Translation

In the method of executing commands described previously, if the virtual address is NOT found in the lookup table (mentioned in the previous description), the method accesses the memory of a storage manager. The storage manager contains a comprehensive record of virtual-to-physical address mappings. The physical address corresponding to the virtual address is retrieved from these records in the storage manager.

Claim 18

Original Legal Text

18. The method as claimed in claim 15 , wherein the transmitting further comprises sending one of an in-built bit and an overflow bit to the at least one of the plurality of hosts, wherein the in-built bit indicates that the allocated memory block is in an in-built memory of the storage fabric switch and the overflow bit indicates that the allocated memory block is in an overflow memory of the storage fabric switch.

Plain English Translation

In the method of executing commands described previously, when providing the address of a memory block to a host for writing data, either an "in-built bit" or an "overflow bit" is also sent. The "in-built bit" indicates that the allocated memory block is located within the main, in-built memory of the storage fabric switch. The "overflow bit" indicates that the memory block is located in the overflow memory of the storage fabric switch.

Claim 19

Original Legal Text

19. The method as claimed in claim 15 , wherein the method further comprises: receiving a de-allocation request from the storage device; and freeing the memory block based on the de-allocation request.

Plain English Translation

In the method of executing commands described previously, the method further includes receiving a de-allocation request from the storage device after the data has been processed. Upon receiving this request, the memory block that was previously allocated for the data transfer is freed up for reuse, reclaiming the memory resource.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

May 22, 2014

Publication Date

August 22, 2017

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Virtualized storage systems” (US-9740409). https://patentable.app/patents/US-9740409

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/US-9740409. See llms.txt for full attribution policy.