Claims
- 1. A method comprising:
determining an integrity metadata for a stripe, the stripe having a plurality of data stripe units and at least one parity stripe unit, each of the at least one parity stripe units containing parity data for the stripe; determining a number of physical sectors required to store the integrity metadata; allocating the determined number of physical sectors adjacent to one of the at least one parity stripe unit; and storing the integrity metadata to the allocated physical sectors adjacent to the one parity stripe unit.
- 2. The method of claim 1, wherein the integrity metadata is selected from the group consisting of checksum data, generation number data, stripe unit address data, or combinations thereof.
- 3. The method of claim 2, wherein the integrity metadata includes a generation number used to detect stale metadata in the event of a dropped write in a metadata chunk.
- 4. The method of claim 3, wherein the physical sectors are 512 bytes in length.
- 5. The method of claim 3, wherein the stripe has one parity stripe unit.
- 6. The method of claim 3, wherein the stripe has two parity stripe units.
- 7. The method of claim 6, further comprising:
allocating the number of physical sectors adjacent to both of the parity stripe units; and storing the integrity metadata to the allocated physical sectors adjacent to both of the parity stripe units.
- 8. A machine-readable medium containing instructions which, when executed by a processing system, cause the processing system to perform a method, the method comprising:
determining an integrity metadata for a stripe, the stripe having a plurality of data stripe units and at least one parity stripe unit, each of the at least one parity stripe units containing parity data for the stripe; determining a number of physical sectors required to store the integrity metadata; allocating the determined number of physical sectors adjacent to one of the at least one parity stripe units; and storing the integrity metadata to the allocated physical sectors adjacent to the one parity stripe unit.
- 9. The machine-readable medium of claim 8, wherein the integrity metadata is selected from the group consisting of checksum data, generation number data, stripe unit address data, or combinations thereof.
- 10. The machine-readable medium of claim 9, wherein the integrity metadata includes a generation number used to detect stale metadata in the event of a dropped write in a metadata chunk.
- 11. The machine-readable medium of claim 10, wherein the physical sectors are 512 bytes in length.
- 12. The machine-readable medium of claim 10, wherein the stripe has one parity stripe unit.
- 13. The machine-readable medium of claim 10, wherein the stripe has two parity stripe units.
- 14. The machine-readable medium of claim 13, wherein the method further comprises:
allocating the number of physical sectors adjacent to both of the parity stripe units; and storing the integrity metadata to the allocated physical sectors adjacent to both of the parity stripe units.
- 15. An apparatus comprising:
means for determining an integrity metadata for a stripe, the stripe having a plurality of data stripe units and at least one parity stripe unit, each of the at least one parity stripe units containing parity data for the stripe; means for determining a number of physical sectors required to store the integrity metadata; means for allocating the determined number of physical sectors adjacent to one of the at least one parity stripe unit; and means for storing the integrity metadata to the allocated physical sectors adjacent to the one parity stripe unit.
- 16. The apparatus of claim 15, wherein the integrity metadata is selected from the group consisting of checksum data, generation number data, stripe unit address data, or combinations thereof.
- 17. The apparatus of claim 16, wherein the integrity metadata includes a generation number used to detect stale metadata in the event of a dropped write in a metadata chunk.
- 18. The apparatus of claim 17, wherein the stripe has one parity stripe unit.
- 19. The apparatus of claim 17, wherein the stripe has two parity stripe units.
- 20. The apparatus of claim 19, further comprising:
means for allocating the number of physical sectors adjacent to both of the parity stripe units; and means for storing the integrity metadata to the allocated physical sectors adjacent to both of the parity stripe units.
- 21. A striped parity disk array architecture comprising:
a plurality of data storage devices, each of data storage devices divided into a plurality of stripe units, corresponding stripe units on each data storage device constituting a stripe, the stripe having a plurality of data stripe units and at least one parity stripe unit, the parity stripe unit containing parity data for the stripe; and at least one integrity metadata chunk stored in at least one physical sector, the at least one physical sector adjacent to one of the at least one parity stripe units, the integrity metadata chunk containing an integrity metadata for each stripe unit of the stripe.
- 22. The striped parity disk array architecture of claim 21, wherein the integrity metadata is selected from the group consisting of checksum data, generation number data, stripe unit address data, or combinations thereof.
- 23. The striped parity disk array architecture of claim 22 wherein the integrity metadata includes a generation number used to detect stale metadata in the event of a dropped write in a metadata chunk.
- 24. A data storage system comprising:
a server; and a storage unit coupled to the server, the data storage system including a processing system and a memory coupled thereto, characterized in that the memory has stored therein instructions which when executed by the processing system, cause the processing system to perform the operations of a) determining an integrity metadata for a stripe, the stripe having a plurality of data stripe units and at least one parity stripe unit, each of the at least one parity stripe units containing parity data for the stripe, b) determining a number of physical sectors required to store the integrity metadata, c) allocating the determined number of physical sectors adjacent to one of the at least one parity stripe unit, and d) storing the integrity metadata to the allocated physical sectors adjacent to the one parity stripe unit.
- 25. The data storage system of claim 24, wherein the integrity metadata is selected from the group consisting of checksum data, generation number data, stripe unit address data, or combinations thereof.
- 26. The data storage system of claim 25 wherein the integrity metadata includes a generation number used to detect stale metadata in the event of a dropped write in a metadata chunk.
- 27. The data storage system of claim 26, wherein the stripe has two parity stripe units.
- 28. The data storage system of claim 27, wherein the memory has stored therein instructions which when executed by the processing system, further cause the processing system to perform the operations of e) allocating the number of physical sectors adjacent to both of the parity stripe units, and f) storing the integrity metadata to the allocated physical sectors adjacent to both of the parity stripe units.
RELATED APPLICATIONS
[0001] This application is related to the following co-pending applications of the same inventors, which are assigned to the Assignee of the present application: Ser. No. 10/212,861, filed Aug. 5, 2002, entitled “Method and System for Striping Data to Accommodate Integrity Metadata” and Ser. No. 10/222,074, filed Aug. 15, 2002, entitled “Efficient Mechanisms for Detecting Phantom Write Errors”.