Abstract:
A system and method securely establishes a shared secret among nodes of a security appliance. The shared secret is established by distributing private keys among the nodes in accordance with a node ring protocol that uses a predetermined encryption algorithm to generate messages containing the keys. Briefly, each node is initially notified as to the number of nodes participating in the shared secret establishment. Each node generates a public-private key-pair, as well as a first message that includes the generated public key and an indication of the source of the generated public key (hereinafter “source generated public key”). The node then sends the first message to an adjacent node of the appliance. Upon receiving the first message, each node extracts the source generated public key from the message and stores the extracted information into a data structure of “partner” public keys. The protocol then continues with each node generating additional messages equal to the number of participating nodes minus one. At that point, each node combines its private key with its partner public keys stored in the data structure to generate a value that is common among all of the participating nodes. This common value is then used to derive the shared secret.
Abstract:
Embodiments herein provide a computer system having an operating system that implements a multi-threaded iSCSI socket software layer. The multi-threaded iSCSI socket software layer may operate in conjunction with a single-threaded iSCSI protocol software layer to process network data according to the iSCSI protocol standard. Provided are protections against operational incompatibilities between the multi-threaded iSCSI socket layer and the single-threaded iSCSI protocol layer. A unique identifier may be assigned to each iSCSI socket thread to ensure proper delivery of thread messages to the appropriate iSCSI socket thread. A separate freed list may be allocated for each iSCSI socket thread, wherein the iSCSI protocol thread adds data structures to the freed list and a single iSCSI socket thread removes and uses data structures from the freed list. The multi-threaded iSCSI socket software layer reduces processor idle time, thus increasing data processing efficiency and overall network data throughput.
Abstract:
In an embodiment of the invention, an apparatus uses a LUN (logical unit number) data type for storage allocation. The apparatus includes a storage appliance that specifies a LUN data type for a LUN. The storage appliance then allocates data blocks in the LUN based on the LUN data type. The storage appliance allocates data blocks in the LUN as contiguous data blocks or as non-contiguous data blocks, based on the LUN data type. The LUN data type may be, for example, database data type, user data type, or binary data type.
Abstract:
A technique for achieving consistent read latency from an array of non-volatile solid-state memories involves an external entity determining the “busy” or “not busy” status of non-volatile solid-state memory elements in a RAID group. An external data layout engine then uses parity based RAID data reconstruction to avoid having to read from any memory element that is busy in a RAID group, along with careful scheduling of writes and erasures.
Abstract:
An apparatus and method for connecting a plurality of computing devices, e.g. web servers, database servers, etc., to a plurality of storage devices, such as disks, disk arrays, tapes, etc., by using a stream-oriented (circuit oriented) switch that has high throughput, but that requires non-negligible time for reconfiguration is disclosed. An example of such stream-oriented switch is an optical switch. The system decodes the requests from the computing devices and uses this information to create circuits, e.g. optical paths in embodiments where the stream-oriented switch is an optical switch, through the stream-oriented switch. The system uses these circuits to route traffic between the computing devices and the storage devices. Buffering of data and control in the device memory is used to improve overall throughput and reduce the time spent on reconfigurations.
Abstract:
An archive method and system receives a backup request for a target dataset used by an application on a primary storage system to be backed up on a secondary storage system. Different applications may each have a corresponding proprietary application format for storing their datasets. An application translator module is loaded into an extensible backup manager that converts between a proprietary application format associated with the target dataset and a predetermined storage format used by the extensible backup manager. The application translator module converts from the proprietary application format into the predetermined storage format when the baseline backup of the target dataset has not yet been performed. An incremental backup uses the application translator module to convert from the proprietary application format associated with the application into the predetermined storage format of the extensible backup manager. Once completed, a data mover component causes the incremental backup and the baseline backup of the entire target dataset, if scheduled, to be moved from the primary storage to the secondary storage and stored in the predetermined storage format rather than the proprietary application format associated with the application.
Abstract:
A method for storing data on a plurality of storage devices of a storage system is disclosed. The data is received as data blocks from a plurality of write requests. The data blocks are saved as buffered data for writing to the storage devices in a single write request. An indication is received indicating the available storage blocks on the plurality of storage devices which are available for writing. The buffered data is associated with selected storage blocks of the storage blocks which are available for writing. The buffered data is written to the selected storage blocks in a single write request.
Abstract:
A technique enables application data stored on storage devices of a storage system to be accessible by a client as either a file or logical unit number (lun). The storage system is illustratively embodied as a multi-protocol storage appliance having a storage operating system that implements a file system. The file system logically organizes the application data as a virtual disk (vdisk) comprising a plurality of inodes including a prefix stream inode, a lun inode (storing the application data) and a suffix stream inode. The prefix and suffix stream inodes allow the vdisk to be shared over a block-based protocol or a file-based protocol by enabling apportionment of client operating system dependent storage device contents from application data contents of the vdisk.
Abstract:
A system and method for managing data deduplication of a storage system utilizing persistent consistency point images (PCPIs). Once a target PCPI of a data transfer is generated, a backup management module of the storage system alerts a data deduplication module to begin deduplication of the data contained within the target PCPI. Once the deduplication procedure has been completed, the active file system of the storage system has been deduplicated, however, the target PCPI remains un-deduplicated. In response, the backup management module generates and exports a revised target PCPI. The previous target PCPI may then be deleted, thereby transitioning the exported PCPI's image of the state of the file system to a deduplicated state.
Abstract:
Method and system is provided where PHY state change (PHY CHANGE) notifications from one or more PHYs in a storage infrastructure are monitored as a potential error condition. The rate of PHY CHANGE notifications is monitored to determine if the rate of PHY CHANGE notifications may cause a loss of service or degrade I/O performance. An excessive rate of PHY CHANGE notification that may cause a loss of service is detected by comparing a current PHY CHANGE count with burst threshold value. The current PHY CHANGE count is also compared to an operational threshold value to detect if the rate of PHY CHANGE notification may result in degradation of overall I/O performance. If the PHY CHANGE count for a PHY equals or exceeds the burst threshold value or the operational threshold value, then the PHY is disabled.