摘要:
Data integrity errors in a redundant storage array are handled by storing a plurality of data blocks having a horizontal redundant relationship and storing a plurality of checksums, each checksum having a vertical redundant relationship with a corresponding one of the plurality of data blocks. In response to detection of a data integrity error in at least one of the plurality of data blocks, the vertical redundant relationships between each of the checksums in the plurality of checksums and the corresponding data blocks are reviewed and the horizontal redundant relationship between the data block having the data integrity error and the remaining data blocks in the plurality of data blocks is also reviewed. The results of these reviews of the redundant relationships can be used to diagnose and repair the data integrity error.
摘要:
Various embodiments of systems and methods for implementing shared memory regions in a distributed shared memory system may involve implementing several different shared memory regions in each distributed shared memory node. Each node may reflect write access requests targeting those shared memory regions to one or more other nodes, depending on which shared region is targeted (e.g., requests targeting one region may be reflected to a single other node while requests targeting other regions may be reflected to more than one other node). A node's completion of the requested write access locally may be dependent on the completion of the write access in the other nodes, depending on which shared memory region is targeted.
摘要:
Resources may be shared between multiple controllers configured to access those resources by associating a portion of a semaphore shared memory region with each different shared resource. Whenever a local write request to the portion of the semaphore shared memory region is detected by a memory controller, the memory controller may broadcast the write request to other remote memory controllers. The memory controller may delay performing a memory access to a local copy of that portion of the semaphore shared memory region until the other memory controllers have performed the write access to their copy of the semaphore shared memory region. The values stored in the semaphore shared memory region indicate which controller currently has access to the shared resource.
摘要:
In a method for partitioning SAS storage within a blade server chassis, where the blade server chassis may include one of a plurality (N) of server blades, the same plurality (N) of SAS storage blades or any combination thereof up to a total of N blades, in order for the plurality of SAS storage blades to be securely shared by the plurality of server blades, a pair-based zoning scheme may be implemented whereby if a server blade and a disk blade occupy neighboring slots in the blade server chassis, a pair of the server blade and the disk blade may be set to belong in the same zone. Partitioning of SAS expansion ports within the blade server chassis may be accomplished by providing exclusive access of a single SAS expansion port to a server blade located in an even slot.
摘要:
A method may involve: receiving a request to perform a block write to a target device and data associated with the block write; buffering the data associated with the block write prior to completing the block write to the target device; storing an indication identifying a block address range of the block write; receiving a request to perform a read to the target device; and determining whether an address of the read is within the block address range of the block write identified by the indication. In some embodiments, such a method may allow the read to complete ahead of the block write dependent on whether the address of the read is within the block address range of the block write identified by the indication.
摘要:
A method may involve: receiving an even number of odd-sized packets for transmission over a double data rate link; re-packetizing the even number of odd-sized packets into several even-sized packets; transmitting the even-sized packets over the double data rate link; and de-packetizing the even-sized packets to reform the even number of odd-sized packets. Re-packetizing may involve dividing each of the even number of odd-sized packets into an even-sized portion and a remaining portion. Each even-sized portion may be transferred as one of the even-sized packets. The remaining portions of each of the even number of odd-sized packets may be combined to form another one of even-sized packets. De-packetizing may involve associating each of several portions of one of the even-sized packets with a respective other one of the even-sized packets.
摘要:
Systems and methods for routing messages in an interconnection fabric are provided. The fabric includes a plurality of nodes, each node having, for example, four ports coupled to adjacent nodes in the fabric. A source node initiating a message in the fabric can transmit the message out of one of its four ports. Between a source node and a destination node, there are at least four independent paths which may be taken, depending on the output port from the source node. However, the precise path is not expressly delineated in the message. Instead, the message contains the address of the destination node, the address of the originating node, and a target region for the message. Each intermediate node is configured to receive a message via one of its four ports, and then select an appropriate output port based on the location of the port which received the message combined with the address and target information contained in the message. By providing a system by which four independent paths can be taken by a message, at least three intermediate nodes can fail in the fabric before the message is prevented from reaching the destination node.
摘要:
Various embodiments of systems and methods for performing write cache mirroring may involve accessing different mapped regions within a memory. The memory controller may automatically mirror write requests to another memory. Write requests targeting one mapped region may be verified such that local completion of the write indicates that the mirrored write has also completed. Write requests targeting another mapped region may be unverified. Unverified writes may be verified by performance of a verified write.
摘要:
Each node's memory controller may be configured to send and receive messages on a dedicated memory-to-memory interconnect according to the communication protocol and to responsively perform memory accesses in a local memory. The type of message sent on the interconnect may depend on which memory region is targeted by a memory access request local to the sending node. If certain regions are targeted locally, a memory controller may delay performance of a local memory access until the memory access has been performed remotely. Remote nodes may confirm performance of the remote memory accesses via the memory-to-memory interconnect.
摘要:
A substrate for packaging a storage or server system may include one or more sections of the substrate configured to hold a two-dimensional array of disk drives. Another section of this substrate may be configured to hold circuitry for accessing the array of disk drives. This circuitry may include one or more processors. The substrate also includes a first plurality of ribs positioned in the first access of the substrate. The first plurality of ribs separate the sections from one another. The section configured to hold the control circuitry may also be configured to hold one or more power supplies for supplying power to the array of disk drives and control circuitry. This section, as well as other sections, may be divided in two by one or more additional ribs in a transverse direction. The substrate may be configured to be mounted in a cage or rack and may include an edge connector at one edge of the substrate to provide electrical connectivity to a back plane in the cage or rack. A lateral protrusion may extend along each parallel edge of the substrate for mounting the substrate in the cage or rack by sliding the substrate into the cage or rack.