Abstract:
Described are computer-based methods and apparatuses, including computer program products, for garbage collection. A garbage collection data structure is provided for deleting unused data objects. One or more object identifiers are stored in a first data structure in the garbage collection data structure. Each object identifier represents a data object about to be created but not yet assigned any references from other data objects. The first data structure prevents the data object from being deleted during creation of the data object but before one or more references are created to the data object. Data indicative of one or more objects is stored in a second data structure in the garbage collection data structure. The data includes one or more object identifiers, each object identifier representing a created data object. The data also includes one or more references to created data objects.
Abstract:
Systems consistent with the present invention perform quiescence of a network storage system in a storage virtualization environment including a virtualization layer that interfaces between a host and at least one storage device, wherein the virtualization layer defines at least one virtual volume comprising objects defining a mapping to data in the at least one storage device and storing information about a state of the at least one storage device in a virtualization database that is distributed across more than one processor in the virtualization layer. A quiescence instruction may be implemented to maintain reliability and scalability of the storage virtualization environment.
Abstract:
A storage virtualization environment is provided that includes a system for providing one or more virtual volumes. The system may include a host system and a set of storage devices, each of which includes physical block addresses that stores data. Further, the system includes a network switch system connecting the host system and the set of storage devices and is configured to define and manage a virtual volume associated with data distributed across the physical block addresses. The network switch system includes a first virtualization layer that maintains first tier objects including information reflecting a relationship between the physical block addresses and one or more logical partitions of virtual volume data. Moreover, the network switch system includes a second virtualization layer that maintains second tier objects including information reflecting a logical configuration of the virtual volume. The network switch system manages the virtual volume for the host system using the first and second tier objects.
Abstract:
Described are computer-based methods and apparatuses, including computer program products, for garbage collection. A garbage collection data structure is provided for deleting unused data objects. One or more object identifiers are stored in a first data structure in the garbage collection data structure. Each object identifier represents a data object about to be created but not yet assigned any references from other data objects. The first data structure prevents the data object from being deleted during creation of the data object but before one or more references are created to the data object. Data indicative of one or more objects is stored in a second data structure in the garbage collection data structure. The data includes one or more object identifiers, each object identifier representing a created data object. The data also includes one or more references to created data objects.
Abstract:
A storage virtualization environment is provided that includes a system for dynamically updating a virtual volume in associated with a host system. The system may include a set of storage devices, each of which includes physical block addresses that store data associated with the virtual volume and a network switch system connecting the host system and the set of storage devices. In one embodiment, the network switch system includes a set of storage processors each maintaining virtual volume objects including at least one of (i) first tier objects reflecting a relationship between the physical block addresses and one or more logical partitions of virtual volume data, and (ii) second tier objects reflecting a logical configuration of the virtual volume. Further, the network switch system uses the virtual volume objects to dynamically update the virtual volume during runtime of the network switch system.
Abstract:
Methods and systems consistent with the present invention provide distributed storage systems that are scalable, secure, available, and manageable. These storage systems may utilize a single storage switch and allow resource sharing while securely separating customer data. A snapshot capability may be provided to capture a point-in-time image of the stored data and to track changes made to the stored data relative to a point-in-time image.
Abstract:
A storage virtualization environment is provided that includes a network switch system for initializing a virtual volume in a system including a host system, and storage devices. The network switch system includes storage processors including first and second tier storage processors and a Virtualization Coherency Manager (VCM) for receiving storage connectivity identifying which storage processors are connected to selected ones of the storage devices. Further, the network switch system includes a master storage processor for creating a logical tree based on the storage connectivity information, the logical tree reflecting a virtual volume of data distributed across the storage devices and includes (i) first tier objects representing partitions of the virtual volume data and (ii) second tier objects representing a logical configuration of the virtual volume. In one embodiment, the VCM assigns the first tier objects to selective ones of the first tier storage processors and assigns the second tier objects to selective ones of the second tier storage processors based on the logical tree. Further, each of the selective first and second tier storage processors initialize a local portion of the virtual volume to allow the host system to access the virtual volume through the network switch system.