Patents Assigned to Fusion-io
-
Patent number: 8503468Abstract: Embodiments provide load balancing in a virtual computing environment comprising a plurality of PCI-Express switches (the PCIe switching cloud) coupled to a plurality of network interface devices (NICs). An NIC cluster is added between the PCIe switching cloud and the NICs. The NIC cluster is configured to hide NICs from system images and allow the system images to access functions across multiple NICs. The NIC cluster of an embodiment dynamically load balances network resources by performing a hashing function on a header field of received packets. The NIC cluster of an embodiment performs load balancing and state management in association with driver software, which is embedded in the system image. The driver software adds a tag for flow identification to downstream data packets. The NIC cluster distributes data packets based on information in the tag.Type: GrantFiled: November 5, 2008Date of Patent: August 6, 2013Assignee: Fusion-io, Inc.Inventors: Bora Akyol, Daniel Talayco, Ali Ekici
-
Publication number: 20130198459Abstract: A de-duplication is configured to cache data for access by a plurality of different storage clients, such as virtual machines. A virtual machine may comprise a virtual machine de-duplication module configured to identify data for admission into the de-duplication cache. Data admitted into the de-duplication cache may be accessible by two or more storage clients. Metadata pertaining to the contents of the de-duplication cache may be persisted and/or transferred with respective storage clients such that the storage clients may access the contents of the de-duplication cache after rebooting, being power cycled, and/or being transferred between hosts.Type: ApplicationFiled: January 25, 2013Publication date: August 1, 2013Applicant: Fusion-io, Inc.Inventor: Fusion-io, Inc.
-
Publication number: 20130198451Abstract: An apparatus includes an input/output (I/O) interface configured to couple a controller to an I/O buffer of a memory device. The controller includes an erase module coupled to the I/O interface. The erase module is configured to issue an instruction to the memory device to erase data from the memory device. The controller includes an erase suspend module coupled to the I/O interface. The erase suspend module is configured to determine that an erase operation executing within the electronic memory device satisfies a suspend policy in response to receiving a memory access request to perform an operation on the memory device on which the erase operation is executing. The erase suspend module is further configured to issue a suspend command to the memory device to suspend the erase operation.Type: ApplicationFiled: March 13, 2013Publication date: August 1, 2013Applicant: FUSION-IOInventor: Fusion-io
-
Publication number: 20130191601Abstract: An apparatus, system, and method are disclosed for managing a cache. A cache interface module provides access to a plurality of virtual storage units of a solid-state storage device over a cache interface. At least one of the virtual storage units comprises a cache unit. A cache command module exchanges cache management information for the at least one cache unit with one or more cache clients over the cache interface. A cache management module manages the at least one cache unit based on the cache management information exchanged with the one or more cache clients.Type: ApplicationFiled: January 24, 2012Publication date: July 25, 2013Applicant: FUSION-IO, INC.Inventors: Jim Peterson, Nisha Talagala, Robert Wipfel, David Atkisson, Jonathan Ludwig, Ann Martin
-
Patent number: 8495292Abstract: An apparatus and system are disclosed for an in-server storage area network (“SAN”). A first storage controller is included within a first server. The first storage controller controls at least one storage device. The first server includes a network interface shared by the first server and the first storage controller. A storage communication module is included that facilitates communication between the first storage controller and at least one device external to the first server, where the communication between the first storage controller and the external device is independent from the first server. An in-server SAN module is included that services a storage request using at least one of a network protocol and a bus protocol. The in-server SAN module services the storage request independent from the first server, the service request received from a client.Type: GrantFiled: December 6, 2007Date of Patent: July 23, 2013Assignee: Fusion-io, Inc.Inventors: David Flynn, David Atkisson, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
-
Patent number: 8495460Abstract: An apparatus, system, and method are disclosed for reconfiguring an array of solid-state storage elements. The method includes determining that one or more storage elements are unavailable to store data. The storage elements are configured in an array of N storage elements that each store a portion of a first ECC chunk and P storage elements that store first parity data corresponding to the first ECC chunk. The method includes generating a second ECC chunk comprising at least a portion of the data of the first ECC chunk. The method includes storing the second ECC chunk and associated second parity data across (N+P)?Z storage elements where 1?Z?P.Type: GrantFiled: October 4, 2012Date of Patent: July 23, 2013Assignee: Fusion-IO, Inc.Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
-
Publication number: 20130185475Abstract: A cache module leverages a logical address space and storage metadata of a storage module (e.g., virtual storage module) to cache data of a backing store. The cache module maintains access metadata to track access characteristics of logical identifiers in the logical address space, including accesses pertaining to data that is not currently in the cache. The access metadata may be separate from the storage metadata maintained by the storage module. The cache module may calculate a performance metric of the cache based on profiling metadata, which may include portions of the access metadata. The cache module may determine predictive performance metrics of different cache configurations. An optimal cache configuration may be identified based on the predictive performance metrics.Type: ApplicationFiled: February 22, 2013Publication date: July 18, 2013Applicant: Fusion-io, Inc.Inventors: Nisha Talagala, Swaminathan Sundararaman
-
Publication number: 20130185508Abstract: A cache layer leverages a logical address space and storage metadata of a storage layer (e.g., virtual storage layer) to cache data of a backing store. The cache layer maintains access metadata to track data characteristics of logical identifiers in the logical address space, including accesses pertaining to data that is not in the cache. The access metadata may be separate and distinct from the storage metadata maintained by the storage layer. The cache layer determines whether to admit data into the cache using the access metadata. Data may be admitted into the cache when the data satisfies cache admission criteria, which may include an access threshold and/or a sequentiality metric. Time-ordered history of the access metadata is used to identify important/useful blocks in the logical address space of the backing store that would be beneficial to cache.Type: ApplicationFiled: January 12, 2012Publication date: July 18, 2013Applicant: FUSION-IO, INC.Inventors: Nisha Talagala, Swaminathan Sundararaman
-
Publication number: 20130185488Abstract: A cache module leverages storage metadata to cache data of a backing store on a non-volatile storage device. The cache module maintains access metadata pertaining to access characteristics of logical identifiers in the logical address space, including access characteristics of un-cached logical identifiers (e.g., logical identifiers associated with data that is not stored on the non-volatile storage device). The access metadata may be separate and/or distinct from the storage metadata. The cache module determines whether to admit data into the cache and/or evict data from the cache using the access metadata. A storage module may provide eviction candidates to the cache module. The cache module may select candidates for eviction. The storage module may leverage the eviction candidates to improve the performance of storage recovery and/or grooming operations.Type: ApplicationFiled: February 22, 2013Publication date: July 18, 2013Applicant: Fusion-io, Inc.Inventors: Nisha Talagala, Swaminathan Sundararaman
-
Publication number: 20130185532Abstract: A storage controller is configured to append data to a sequential log. The data may be appended sequentially within erase regions of the non-volatile storage medium. An order of the sequential log may be defined by, inter alia, the order in which the erase regions are filled and/or the sequential order of physical storage locations and/or addresses within the erase regions. The erase regions may comprise sequence information which may be applied in response to recovering the erase regions, appending data to the erase regions, or the like. Data appended to the sequential log may be associated with source parameters, which may include a virtual identifier of the data. The physical storage location of the data on the non-volatile storage medium may be independent of the source parameters. The sequential log may, therefore, comprise a set of mappings between virtual identifiers and physical storage locations.Type: ApplicationFiled: December 4, 2012Publication date: July 18, 2013Applicant: Fusion-io, Inc.Inventor: Fusion-io, Inc.
-
Patent number: 8489817Abstract: An apparatus, system, and method are disclosed for caching data. A storage request module detects an input/output (“I/O”) request for a storage device cached by solid-state storage media of a cache. A direct mapping module references a single mapping structure to determine that the cache comprises data of the I/O request. The single mapping structure maps each logical block address of the storage device directly to a logical block address of the cache. The single mapping structure maintains a fully associative relationship between logical block addresses of the storage device and physical storage addresses on the solid-state storage media. A cache fulfillment module satisfies the I/O request using the cache in response to the direct mapping module determining that the cache comprises at least one data block of the I/O request.Type: GrantFiled: August 12, 2011Date of Patent: July 16, 2013Assignee: Fusion-io, Inc.Inventors: David Flynn, David Atkisson, Joshua Aune
-
Publication number: 20130179753Abstract: A storage module is configured to store data segments, such as error-correcting code (ECC) codewords, within an array comprising two or more solid-state storage elements. The data segments may be arranged in a horizontal arrangement, a vertical arrangement, a hybrid channel arrangement, and/or vertical stripe arrangement within the array. The data arrangement may determine input/output performance characteristics. An optimal adaptive data storage configuration may be based on read and/or write patterns of storage clients, read time, stream time, and so on. Data of failed storage elements may be reconstructed by use of parity data and/or other ECC codewords stored within the array.Type: ApplicationFiled: March 4, 2013Publication date: July 11, 2013Applicant: FUSION-IO, INC.Inventor: Fusion-io, Inc.
-
Patent number: 8484522Abstract: An apparatus, system, and method are disclosed for bad block remapping. A bad block identifier module identifies one or more data blocks on a solid-state storage element as bad blocks. A log update module writes at least a location of each bad block identified by the bad block identifier module into each of two or more redundant bad block logs. A bad block mapping module accesses at least one bad block log during a start-up operation to create in memory a bad block map. The bad block map includes a mapping between the bad block locations in the bad block log and a corresponding location of a replacement block for each bad block location. Data is stored in each replacement block instead of the corresponding bad block. The bad block mapping module creates the bad block map using one of a replacement block location and a bad block mapping algorithm.Type: GrantFiled: August 2, 2012Date of Patent: July 9, 2013Assignee: Fusion-io, Inc.Inventors: David Flynn, John Strasser, Jonathan Thatcher, David Atkisson, Michael Zappe, Joshua Aune, Kevin Vigor
-
Patent number: 8482993Abstract: An apparatus, system, and method are disclosed for improving performance in a non-volatile solid-state storage device. Non-volatile solid-state storage media includes a plurality of storage cells. An input module receives source data for storage in the plurality of storage cells of the non-volatile solid-state storage media. Some or all of the bits of the source data are transformed to take into account a voltage level of an empty state of the plurality of storage cells. A write module writes the transformed source data to the plurality of storage cells of the non-volatile solid-state storage media.Type: GrantFiled: May 1, 2012Date of Patent: July 9, 2013Assignee: Fusion-io, Inc.Inventors: John Strasser, Jonathan Thatcher, Jeremy Fillingim, David Flynn, Lance Smith, Robert Wood, James Peterson
-
Publication number: 20130166855Abstract: Data of a vector storage request pertaining to one or more disjoint, non-adjacent, and/or non-contiguous logical identifier ranges are stored contiguously within a log on a non-volatile storage medium. A request consolidation module modifies one or more sub-requests of the vector storage request in response to other, cached storage requests. Data of an atomic vector storage request may comprise persistent indicators, such as persistent metadata flags, to identify data pertaining to incomplete atomic storage requests. A restart recovery module identifies and excludes data of incomplete atomic operations.Type: ApplicationFiled: December 21, 2012Publication date: June 27, 2013Applicant: Fusion-io, Inc.Inventors: Ashish Batwara, James G. Peterson, Nisha Talagala, Nick Piggin, Michael Zappe
-
Publication number: 20130166820Abstract: A method and apparatus for storing data packets in two different logical erase blocks pursuant to an atomic storage request is disclosed. Each data packet stored in response to the atomic storage request comprises persistent metadata indicating that the data packet pertains to an atomic storage request. In addition, a method and apparatus for restart recovery is disclosed. A data packet preceding an append point is identified as satisfying a failed atomic write criteria, indicating that the data packet pertains to a failed atomic storage request. One or more data packets associated with the failed atomic storage request are identified and excluded from an index of a non-volatile storage media.Type: ApplicationFiled: December 22, 2011Publication date: June 27, 2013Applicant: Fusion-io, Inc.Inventors: Ashish Batwara, James G. Peterson, Nisha Talagala, Michael Zappe
-
Publication number: 20130166831Abstract: Apparatuses, systems, and methods are disclosed for storing metadata. A mapping module is configured to maintain a mapping structure for logical addresses of a non-volatile device. A metadata module is configured to store membership metadata for the logical addresses with logical-to-physical mappings for the logical addresses in the mapping structure.Type: ApplicationFiled: February 25, 2013Publication date: June 27, 2013Applicant: Fusion-io, Inc.Inventor: Fusion-io, Inc.
-
Publication number: 20130166816Abstract: Apparatuses, systems, and methods are disclosed for managing contents of a cache. A method includes receiving a read request for data stored in a non-volatile cache. A method includes determining whether a read request satisfies a frequent read threshold for a cache. A method includes writing data of a read request forward on a sequential log-based writing structure of a cache in response to determining that the read request satisfies a frequent read threshold.Type: ApplicationFiled: February 25, 2013Publication date: June 27, 2013Applicant: FUSION-IO, INC.Inventor: Fusion-io, Inc.
-
Publication number: 20130159603Abstract: Methods, storage controllers, and systems for backing data of a non-volatile storage device using a backing store are described. One method includes satisfying storage operations using a non-volatile storage device, determining an age for data stored on the non-volatile storage device, and copying data of the non-volatile storage device having an age that satisfies a data retention time threshold to a dedicated backing store. One storage controller includes an operations module that satisfies storage operations using a non-volatile storage device, an age module that determines an age for data stored on the non-volatile storage device, and a backup module that copies data of the non-volatile storage device having an age that satisfies a data retention time threshold to a dedicated backing store.Type: ApplicationFiled: December 20, 2011Publication date: June 20, 2013Applicant: FUSION-IO, INC.Inventor: Nathan M. Whitney
-
Publication number: 20130132652Abstract: An apparatus, system, and method are disclosed to manage non-volatile media. A media characteristic module is configured to determine media characteristics for non-volatile media. A configuration parameter module is configured to determine different configuration parameters for different storage cell abodes and/or for different groups of pages of the non-volatile media based on the determined media characteristics. A cell configuration module is configured to use the different configuration parameters for the different storage cell abodes and/or the different groups of pages of the non-volatile media.Type: ApplicationFiled: December 18, 2012Publication date: May 23, 2013Applicant: FUSION-IO, INC.Inventor: FUSION-IO, INC.