Method for loosely coupling metadata and data in a storage array
First Claim
Patent Images
1. A method for configuring a storage system including a storage controller and a storage disk array with multiple drives, comprising:
- (a) storing user data in a plurality of segments in a storage disk array with multiple drives, said plurality of segments including a first user data segment and a second user data segment;
(b) storing metadata in a plurality of segments in said storage disk array with multiple drives, said metadata being error and detection code information for said user data, said plurality of segments including a first metadata segment and a second metadata segment; and
(c) associating said plurality of segments of metadata with said plurality of segments of user data, wherein said first metadata segment is metadata only for said first user data segment, said second metadata segment is metadata only for said second user data segment, said first metadata segment being located in a first drive, said first user data segment being located in a drive adjacent to said first drive, said second metadata segment being located in a second drive, said second user data segment being located in a drive adjacent to said second drive.
7 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a method and system for associating metadata with user data in a storage array in a manner that provides independence between metadata management and a storage controller'"'"'s cache block size. Metadata may be associated with user data according to multiple fashions in order to provide a desired performance benefit. In one example, the metadata may be associated according to a segment basis to maximize random I/O performance and may be associated according to a stripe basis to maximize sequential I/O performance.
-
Citations
15 Claims
-
1. A method for configuring a storage system including a storage controller and a storage disk array with multiple drives, comprising:
-
(a) storing user data in a plurality of segments in a storage disk array with multiple drives, said plurality of segments including a first user data segment and a second user data segment; (b) storing metadata in a plurality of segments in said storage disk array with multiple drives, said metadata being error and detection code information for said user data, said plurality of segments including a first metadata segment and a second metadata segment; and (c) associating said plurality of segments of metadata with said plurality of segments of user data, wherein said first metadata segment is metadata only for said first user data segment, said second metadata segment is metadata only for said second user data segment, said first metadata segment being located in a first drive, said first user data segment being located in a drive adjacent to said first drive, said second metadata segment being located in a second drive, said second user data segment being located in a drive adjacent to said second drive. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for configuring a storage system including a storage controller and a storage disk array with multiple drives, comprising:
-
(a) storing user data in a plurality of blocks in a storage disk array with multiple drives, said plurality of blocks including a first user data block and a second user data block; (b) storing metadata in a plurality of sectors, said metadata being error and detection code information for said user data, said plurality of sectors including a first metadata sector and a second metadata sector, said first metadata sector being within a first stripe of said storage disk array, said second metadata sector being within a second stripe of said storage disk array; and (c) associating each sector of metadata with a related user data block whereby said first metadata sector is metadata only for said first user data block, said second metadata sector is metadata only for said second user data block, said first user data block being located in a stripe adjacent to said first stripe, said second user data block being located in a stripe adjacent to said second stripe and whereby sequential input/output performance of said storage system is maximized. - View Dependent Claims (8, 9)
-
-
10. A system for configuring a storage system including a storage controller and a storage disk array with multiple drives, comprising:
-
(a) means for storing user data in a plurality of blocks in a storage disk array with multiple drives, said plurality of blocks including a first user data block and a second user data block; (b) means for storing metadata in a plurality of sectors, said metadata being error and detection code information for said user data, said plurality of sectors including a first metadata sector and a second metadata sector; and (c) means for associating each sector of metadata with a related user data block according to a desired scheme to produce a memory data layout structure on said storage disk array;
whereby said first metadata sector is metadata only for said first user data block, said second metadata sector is metadata only for said second user data block, said first metadata sector being located in a first drive, said first user data block being located in a drive adjacent to said first drive, said second metadata sector being located in a second drive, said second user data block being located in a drive adjacent to said second drive and said each sector of metadata and said related data block is suitable for retrieval in parallel from separate drives. - View Dependent Claims (11, 12, 13, 14, 15)
-
Specification