Abstract:
An improved scalable object storage system includes methods and systems allowing multiple clusters to work together. In one embodiment, there is a multi-cluster synchronization system between two or more clusters. The multi-cluster synchronization system uses variable compression to optimize the transfer of information between the clusters. Compression is used not only to minimize the total number of bytes sent between the two clusters, but to dynamically vary the size of the objects sent across the wire to optimize for higher throughput after considering packet loss, TCP windows, and block sizes. This includes both the packaging of multiple small files together into one larger compressed file, saving on TCP and header overhead, but also the chunking of large files into multiple smaller files that are less likely to have difficulties due to intermittent network congestion or errors.
Abstract:
An improved scalable object storage system allows multiple clusters to work together. Users working with a first cluster, or with a multi-cluster gateway, can ask for services and have the request or data transparently proxied to a second cluster. This gives transparent cross-cluster replication, as well as multi-cluster compute or storage farms based upon spot availability or various provisioning policies. Vendors providing a cloud storage “frontend” can provide multiple backends simultaneously. In one embodiment, a multi-cluster gateway can have a two, three, or higher-level ring that transparently matches an incoming request with the correct cluster. In the ring, a request is first mapped to an abstract “partition” based on a consistent hash function, and then one or more constrained mappings map the partition number to an actual resource. In another embodiment, the multi-cluster gateway is a dumb gateway, and the rings are located only at the cluster level.
Abstract:
Method and apparatus for providing failover operation for a connection between a first PCIE bridge and a first input/output (IO) device are provided. A first set of bussed bits is exchanged between the first PCIE bridge and the first IO device over a first link using a first set of lanes of the first PCIE bridge. In response to detecting the failure in the first link, the first set of bussed bits is exchanged between the first PCIE bridge and the first IO device using an unused portion of a second link connecting a second PCIE bridge and a second IO device.
Abstract:
Some embodiments of the invention provide techniques whereby a user may perform a system reset (e.g., to address system performance and/or reliability degradation, such as which may be caused by unused applications that unnecessarily consume system resources, an attempted un-install of an application that left remnants of the application behind, and/or other causes). In some embodiments, performing a system reset replaces a first instance of an operating system on the system with a new instance of the operating system, and removes any applications installed on the system, without disturbing the user's data.
Abstract:
Several different embodiments of a massively scalable object storage system are described. The object storage system is particularly useful for storage in a cloud computing installation whereby shared servers provide resources, software, and data to computers and other devices on demand. In several embodiments, the object storage system includes a ring implementation used to associate object storage commands with particular physical servers such that certain guarantees of consistency, availability, and performance can be met. In other embodiments, the object storage system includes a synchronization protocol used to order operations across a distributed system. In a third set of embodiments, the object storage system includes a metadata management system. In a fourth set of embodiments, the object storage system uses a structured information synchronization system. Features from each set of embodiments can be used to improve the performance and scalability of a cloud computing object storage system.
Abstract:
A first device port and a second device port are connected using a first cable and a second cable. The first device port and the second device port use a divisible number of lanes, X for communication. The first cable uses X′ lanes, where X′ is less than X. The second cable uses X-X′ lanes, where X-X′ is also less than X. If the first cable is disconnected or fails, then the second cable is used after a failover operation.
Abstract:
A storage apparatus connected to a storage device includes a storage module, a memory for storing data to be copied to the storage device, buffers for temporarily saving the data, redundantly, the saved data stored in one of the buffers being recoverable by the data stored in the rest of the buffers, and a control module for executing, storing the data of write request to the storage module and the memory, copying the data to the storage device, saving the data to the buffer when an using rate of the memory is greater than a predetermined rate, writing the saved data stored in the buffer to the memory when an using rate of the memory is not greater than the predetermined rate, detecting a failure of the buffers, and rebuilding the saved data stored in the one of the buffers based on an using state of the buffers.
Abstract:
In one aspect, a method includes forming a virtualized grid consistency group to replicate a logical unit, running a first grid copy on a first data protection appliance (DPA) replicating a first portion of the logical unit, running a second grid copy on a second DPA replicating a second portion of the logical unit, sending IOs to the first DPA if the IOs are to a first set of offsets and sending IOs to the second DPA if the IOs are to a second set of offsets.
Abstract:
A redundant storage virtualization computer system is provided. The redundant storage virtualization computer system comprises a host entity for issuing an IO request, a redundant storage virtualization controller set coupled to the host entity for performing an IO operation in response to the IO request issued by the host entity, and a plurality of physical storage devices for providing storage space to the computer system. Each of the physical storage devices is coupled to the redundant storage virtualization controller set. The redundant storage virtualization controller set comprises a first and a second storage virtualization controller both coupled to the host entity, the storage virtualization controllers communicate therebetween via a PCI-Express interconnect. In the redundant storage virtualization controller set, a storage virtualization controller will take over the functionality originally performed by the alternate storage virtualization controller when the alternate storage virtualization controller is not on line.
Abstract:
Techniques for achieving high availability (HA) in a cloud environment are presented. Cloud storage provided to multiple tenants is accessed via a plurality of controllers via a switch. The controllers are organized in a ring and each controller is responsible for detecting failures in adjoining controllers within the ring. Storage services for the tenants are serviced without disruptions even when multiple nodes completely fail at the same time.