Claims
- 1. A method of executing an Array Management Controller algorithm in a distributed environment, which may be unreliable, the method comprising:
(A) receiving a client request to read or write data, according to a first protocol; (B) determining a storage location associated with said client request, said storage location identifying at least one disk controller system and a corresponding memory location; (C) translating said client request into at least one disk controller system request responsive to a determination made at step (B); (D) sending each disk controller system request translated at step (C), according to a second protocol; (E) receiving at least one disk controller system response to each controller system request sent at step (D), according to said second protocol; (F) translating said response at step (E) into a client request response; and (G) sending to said client system said client request response translated at step (F), according to said first protocol.
- 2. The method of claim 1, further including:
determining a parity storage location corresponding to said storage location, said parity storage location identifies at least one disk controller system and a corresponding memory location; and calculating said parity.
- 3. The method of claim 2, wherein said calculating said parity further includes storing said parity.
- 4. The method of claim 2, wherein calculating said parity is performed on at least one disk controller system.
- 5. The method of claim 4, further including initializing said memory location of said parity storage location and then calculating and storing said parity.
- 6. The method of claim 1, wherein:
step (A) comprises receiving a client request to write data, according to a first protocol; step (B) further includes determining at least one data stripe associated with said client request, said data stripe including a plurality of strips, each strip associated with a corresponding storage location, said plurality of strips including at least one data strip and at least one parity strip; step (C) translating each data stripe of step (B) into at least one disk controller system request:
responsive to each data strip determined at step (B), and identifying each parity strip; and further including
(H) calculating and storing said parity using at least one disk controller system.
- 7. The method of claim 6, wherein:
step (C) further includes translating each data stripe of step (B) into a least one disk controller system request to initialize parity of at least one parity strip determined at step (B).
- 8. The method of claim 7, wherein initialize parity is at step (C) is performed before sending at step (D).
- 9. A method of executing an Array Management Controller algorithm in a distributed environment, which may be unreliable, the method comprising:
(A) receiving a request, from an Array Management Controller system or from a disk controller system, selected from a set including (a) read, (b) write, (c) initialize parity, (d) parity calculation, and (e) update parity, according to a second protocol; (B) determining a storage location associated with said request, said storage location identifying at least a corresponding memory location; (C) translating said request into at least one memory system request responsive to a determination made at step (B); (D) sending each memory system request translated at step (C), according to a third protocol; (E) receiving at least one memory system response to each memory system request sent at step (D); (F) translating said response at step (E) into a request response, responsive to said request at step (A); and (G) sending said request response translated at step (F), according to said second protocol.
- 10. The method of claim 9, wherein:
step (A) comprises receiving a write request; step (B) further includes determining at least one parity storage location:
associated with said parity strip, identifying at least one disk controller system; and a corresponding memory location; step (C) further includes translating said request into at least one requests responsive to a determination of parity storage location made at step (B), including:
determining a second parity value as a function of said write request; and translating said disk controller system request into at least one parity calculation request responsive to said determining at step (B); and step (D) further includes sending each disk controller system request translated at step (C), according to said second protocol.
- 11. The method of claim 9, wherein:
step (D) further includes sending an acknowledgment to said Array Management Controller system identifying at least one disk controller system request at step (D), according to said first protocol.
- 12. The method of claim 9, wherein
step (A) comprises a parity calculation request; step (C) (D) and (E) are performed in determining a current parity value of the memory location determined at step (B); steps (B) further includes determining a second parity value; further including
calculating new parity as a function of said current parity value and said second parity value; and steps (C) (D) and (E) are performed in storing said new parity value to the memory location determined at step (B).
- 13. The method of claim 12, wherein
step (B) further includes identifying an Array Management Controller system; and storing new parity value is acknowledged to said Array Management Controller system.
- 14. The method of claim 12, wherein said calculating parity is an XOR function.
- 15. A method of executing an Array Management Controller algorithm in a distributed environment, which may be unreliable, the method comprising:
(A) receiving a client request to read or write data, according to a first protocol; (B) determining a storage location associated with said client request, said storage location identifying at least one disk controller system and a corresponding memory location; and determining at least one data stripe associated with said client request, said data stripe including a plurality of strips, each strip associated with a corresponding storage location, said plurality of strips including at least one data strip and at least one parity strip; (C) translating said client request into at least one disk controller system request responsive to a determination made at step (B); and translating each data stripe of step (B) into at least one disk controller system request:
responsive to each data strip determined at step (B), and identifying each parity strip; and further includes translating each data stripe of step (B) into a least one disk controller system request to initialize parity of at least one parity strip determined at step (B); wherein initializing parity at step (C) is performed before sending at step (D); (D) sending each disk controller system request translated at step (C), according to a second protocol;
(1) receiving from a request, from an Array Management Controller system or from a disk controller system, selected from a set including (a) read, (b) write, (c) initialize parity, (d) parity calculation, and (e) update parity, according to a second protocol; (2) determining a storage location associated with said request, said storage location identifying at least a corresponding memory location; (3) translating said request into at least one memory system request responsive to a determination made at step (2); (4) sending each memory system request translated at step (3), according to a third protocol; (5) receiving at least one memory system response to each memory system request sent at step (4); (6) translating said response at step (5) into a request response, responsive to said request at step (1); (7) sending said request response translated at step (6), according to said second protocol; (E) receiving at least one disk controller system response to each disk controller system request sent at step (D), according to said second protocol; (F) translating said response at step (E) into a client request response; and (G) sending to said client system said client request response translated at step (F), according to said first protocol; (H) calculating and storing said parity using at least one disk controller system.
- 16. The method of claim 15, wherein:
step (1) comprises receiving a write request; step (2) further includes determining at least one parity storage location:
associated with said parity strip, identifying at least one disk controller system; and a corresponding memory location; step (3) further includes translating said request into at least one requests responsive to a determination of parity storage location made at step (2), including:
determining a second parity value as a function of said write request; and translating said disk controller system request into at least one parity calculation request responsive to said determining at step (2B); and step (4) further includes sending each disk controller system request translated at step (3), according to said second protocol.
- 17. A system for executing an Array Management Controller algorithm in a distributed environment, which may be unreliable, wherein a client request to read or write data, according to a first protocol, the system comprising:
a means for determining a storage location associated with said client request, said storage location identifying at least one disk controller system and a corresponding memory location; a first means for translating said client request into at least one disk controller system request responsive to a determination made by said means for determining; a first means for sending each disk controller system request translated by said first means for translating, according to a second protocol; a means for receiving at least one disk controller system response to each disk controller system request sent by said first means for sending, according to said second protocol; a second means for translating said response in said means for receiving into a client request response; and a second means for sending to said client system said client request response translated by said second means for translating, according to said first protocol.
- 18. The system of claim 17, further including:
means for determining a parity storage location identifying at least one disk controller system and a corresponding memory location; means for calculating parity on at least one disk controller system; and means for storing said parity.
- 19. The system of claim 17, comprises receiving a client request to write data associated with a memory in said RAID, wherein:
said means for determining further includes determining at least one data stripe associated with said client request, said data stripe including a plurality of strips, each strip associated with a corresponding storage location, said plurality of strips including at least one data strip and at least one parity strip; said first means for sending further includes translating each data stripe of said first means for translation into at least one disk controller system request:
responsive to each data strip determined by said means for determining, and identifying each parity strip; and further including
means for calculating parity; and means for storing parity using at least one disk controller system.
- 20. The system of claim 19, wherein:
said first means for translating further includes translating each data stripe identified by said first means for determining into at least one disk controller system request to initialize parity of at least one parity strip determined by said means for determining.
- 21. The system of claim 20, wherein said means for calculating parity is performed before said means for calculating parity.
- 22. A system for executing an Array Management Controller algorithm in a distributed environment, which may be unreliable wherein a request, from an Array Management Controller system or from a disk controller system, selected from a set including (a) read, (b) write, (c) initialize parity, (d) parity calculation, and (e) update parity, according to a second protocol, the system comprising:
a means for determining a storage location associated with said request, said storage location identifying at least a corresponding memory location; a first means for translating said request into at least one memory system request responsive to a determination by said means for determining; a first means for sending each memory system request translated according to said first means for translating, according to a third protocol; a means for receiving at least one memory system response to each memory system request sent according to said first means for sending; a second means for translating said response of said means for receiving into a request response, responsive to said request; and a second means for sending said request response translated by second means for translating, according to said second protocol.
- 23. The system of claim 22, wherein said request is a write request, the system further comprising:
said means for determining further includes determining at least one parity storage location,
associated with said parity strip, identifying at least one disk controller system; and a corresponding memory location; said first means for translating further includes translating said request into at least one requests responsive to a determination of parity storage location made by said means for determining including:
second means for determining a second parity value as a function of said write request; and third means for translating said disk controller system request into at least one parity calculation request responsive to said determining of said means for determining; and first means for sending further includes sending each disk controller system request translated by first means for translating, according to said second protocol.
- 24. The system of claim 9, wherein:
first means for sending further includes sending an acknowledgment to said Array Management Controller system identifying at least one disk controller system request sent according to said first means for sending, according to said first protocol.
- 25. The system of claim 9, said request is a parity calculation request, wherein
a means for determining current parity value of the memory location determined by said means for determining including:
said first means for translating; said first means for sending; and said means for receiving; said means for determining further includes determining a second parity value; further including;
means for calculating new parity as a function of said current parity value and said second parity value; and means for storing said new parity value to the memory location determined by said means for determining including:
said first means for translating; said first means for sending; and said means for receiving.
- 26. The system of claim 25, wherein
said means for determining further includes identifying an Array Management Controller system; and means for acknowledging storing new parity value to said Array Management Controller system.
- 27. The system of claim 25, wherein said means for calculating new parity includes an XOR function.
RELATION To CO-PENDING APPLICATION
[0001] This application claims priority to co-pending U.S. Provisional Patent Application No. 60/280,588, entitled, “Virtual Storage Network,” filed Mar. 30, 2001, David C. Lee et al. inventors, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60280588 |
Mar 2001 |
US |