87
Deconstructing Storage Arrays Timothy E. Denehy, John Bent, Florentina I. Popovici, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci- Dusseau University of Wisconsin, Madison

Deconstructing Storage Arrays

  • Upload
    fedora

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

Timothy E. Denehy, John Bent, Florentina I. Popovici, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau University of Wisconsin, Madison. Deconstructing Storage Arrays. Gray-box Research. Computer systems becoming more complex Transistors Lines of code - PowerPoint PPT Presentation

Citation preview

Page 1: Deconstructing Storage Arrays

Deconstructing Storage Arrays

Timothy E. Denehy, John Bent, Florentina I. Popovici,

Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau

University of Wisconsin, Madison

Page 2: Deconstructing Storage Arrays

Gray-box Research• Computer systems becoming more complex

• Transistors• Lines of code

• Each component is becoming more complex• Interactions between subsystems can affect

• Performance• Reliability• Power• Security

Page 3: Deconstructing Storage Arrays

Gray-box Research• Interfaces remain the same

• Changes can be difficult and impractical• Support multiple platforms or legacy systems• Commercial acceptance for wide-spread

adoption• Hardware and software phenomenon

• IA-32 instruction set, POSIX OS, SCSI storage

• Problem: lack of information

Page 4: Deconstructing Storage Arrays

Gray-box Solution• Treat target system as a gray-box

• General characteristics are known• Extract information from an existing

interface• e.g. determine cache contents

• Exploit information to control system behavior• e.g. access cached data first

Page 5: Deconstructing Storage Arrays

Gray-box Information Techniques

• Make assumptions about target system• Observe system inputs and outputs• Statistical methods

• Draw inferences about internal structure• Microbenchmarks and probes

• Parameterize system components• Observe system under controlled input

Page 6: Deconstructing Storage Arrays

Gray-box Applications• Gray-box techniques have been used to identify

• Memory hierarchy parameters [Saavedra and Smith]• Processor cycle time [Staelin and McVoy]• Low-level disk characteristics [Worthington et al.]• Buffer cache replacement algorithms [Burnett et al.]• File system data structures [Sivathanu et al.]

• storage array characteristics: Shear

Page 7: Deconstructing Storage Arrays

Shear• Software tool that automatically determines

the important properties of a storage array

• Enables file system performance tuning with knowledge of storage array characteristics

• Acts as a management tool to help configure, monitor, and maintain storage arrays

Page 8: Deconstructing Storage Arrays

Outline• Introduction• Shear

• Background• Algorithm

• Case Studies• Performance: Stripe-aligned Writes• Management: Detecting Misconfiguration,

Failure• Conclusion

Page 9: Deconstructing Storage Arrays

Shear Goals• Determine storage array characteristics

0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031 SCSISCSI

Page 10: Deconstructing Storage Arrays

Shear Goals• Determine storage array characteristics

• Number of disks

0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031 SCSISCSI

Page 11: Deconstructing Storage Arrays

Shear Goals• Determine storage array characteristics

• Number of disks• Chunk size

0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031 SCSISCSI

Page 12: Deconstructing Storage Arrays

Shear Goals• Determine storage array characteristics

• Number of disks• Chunk size• Layout and redundancy scheme

0 1 2 316171819

4 5 6 7 8 9 1011 1213141520212223 24252627 28293031

0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031

RAID-0

SCSISCSI

Page 13: Deconstructing Storage Arrays

Shear Goals• Determine storage array characteristics

• Number of disks• Chunk size• Layout and redundancy scheme

0 1 2 31617181924252627

4 5 6 720212223

4 5 6 720212223RAID-1

SCSISCSI

28293031 28293031

0 1 2 31617181924252627

0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031

Page 14: Deconstructing Storage Arrays

Shear Goals• Determine storage array characteristics

• Number of disks• Chunk size• Layout and redundancy scheme

0 1 2 320212223

P P P P

4 5 6 7 8 9 101112131415

P P P P

P P P P16171819 P P P P32333435 24252627 28293031

36373839 40414243 44454647

0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031

RAID-5

SCSISCSI

Page 15: Deconstructing Storage Arrays

Shear Motivation• Performance

• Tune file systems to array characteristics

• Management• Verify configuration• Detect failure

Page 16: Deconstructing Storage Arrays

Shear Techniques• Microbenchmarks and probes

• Controlled, random access read and write patterns

• Measure response time of access patterns• Measure steady-state performance

• Statistical clustering• Automatically classify fast and slow regimes• Identify patterns that utilize only a single disk

Page 17: Deconstructing Storage Arrays

Shear Assumptions• Storage array

• Layout follows a repeatable pattern• Composed of homogeneous disks

• System• Able to bypass the file system and buffer

cache• Little traffic from other processes

Page 18: Deconstructing Storage Arrays

Outline• Introduction• Shear

• Background• Algorithm

• Case Studies• Performance: Stripe-aligned Writes• Management: Detecting Misconfiguration,

Failure• Conclusion

Page 19: Deconstructing Storage Arrays

Shear Algorithm• Pattern size• Chunk size• Layout of chunks to disks• Level of redundancy

Page 20: Deconstructing Storage Arrays

Determining the Pattern Size• Find the size of the layout's repeating pattern

• Not always the stripe size

• Choose a hypothetical pattern size• Perform random reads at multiples of that distance

• Repeat for a range of pattern sizes

• Cluster results and identify actual pattern size

Page 21: Deconstructing Storage Arrays

Pattern Size Example

RAID-04 Disks

8 KBChunks

Page 22: Deconstructing Storage Arrays

Pattern Size Example

Testing2 KB

RAID-04 Disks

8 KBChunks

Page 23: Deconstructing Storage Arrays

Pattern Size Example

Testing4 KB

RAID-04 Disks

8 KBChunks

Page 24: Deconstructing Storage Arrays

Pattern Size Example

Testing6 KB

RAID-04 Disks

8 KBChunks

Page 25: Deconstructing Storage Arrays

Pattern Size Example

Testing8 KB

RAID-04 Disks

8 KBChunks

Page 26: Deconstructing Storage Arrays

Pattern Size Example

Testing10 KB

RAID-04 Disks

8 KBChunks

Page 27: Deconstructing Storage Arrays

Pattern Size Example

Testing12 KB

RAID-04 Disks

8 KBChunks

Page 28: Deconstructing Storage Arrays

Pattern Size Example

Testing14 KB

RAID-04 Disks

8 KBChunks

Page 29: Deconstructing Storage Arrays

Pattern Size Example

Testing16 KB

RAID-04 Disks

8 KBChunks

Page 30: Deconstructing Storage Arrays

Pattern Size Example

Testing18 KB

RAID-04 Disks

8 KBChunks

Page 31: Deconstructing Storage Arrays

Pattern Size Example

Testing20 KB

RAID-04 Disks

8 KBChunks

Page 32: Deconstructing Storage Arrays

Pattern Size Example

Testing22 KB

RAID-04 Disks

8 KBChunks

Page 33: Deconstructing Storage Arrays

Pattern Size Example

Testing24 KB

RAID-04 Disks

8 KBChunks

Page 34: Deconstructing Storage Arrays

Pattern Size Example

Testing26 KB

RAID-04 Disks

8 KBChunks

Page 35: Deconstructing Storage Arrays

Pattern Size Example

Testing28 KB

RAID-04 Disks

8 KBChunks

Page 36: Deconstructing Storage Arrays

Pattern Size Example

Testing30 KB

RAID-04 Disks

8 KBChunks

Page 37: Deconstructing Storage Arrays

Pattern Size Example

Testing32 KB

RAID-04 Disks

8 KBChunks

Page 38: Deconstructing Storage Arrays

Pattern Size Example

RAID-04 Disks

8 KBChunks

Page 39: Deconstructing Storage Arrays

Pattern Size Example

RAID-04 Disks

8 KBChunks

Actual32 KB

cluster

clustercluster

Page 40: Deconstructing Storage Arrays

Shear Algorithm• Pattern size• Chunk size• Layout of chunks to disks• Level of redundancy

Page 41: Deconstructing Storage Arrays

Determining the Chunk Size• Chunk size

• amount of data contiguously allocated to one disk• Find the boundaries between disks

• Choose a hypothetical boundary offset• Perform random reads on both sides of that offset

• Repeat for all offsets in the pattern size• Cluster results and identify actual chunk size

Page 42: Deconstructing Storage Arrays

Chunk Size Example

RAID-04 Disks

8 KBChunks

Page 43: Deconstructing Storage Arrays

Chunk Size Example

Testing0 KB

RAID-04 Disks

8 KBChunks

Page 44: Deconstructing Storage Arrays

Chunk Size Example

Testing2 KB

RAID-04 Disks

8 KBChunks

Page 45: Deconstructing Storage Arrays

Chunk Size Example

Testing4 KB

RAID-04 Disks

8 KBChunks

Page 46: Deconstructing Storage Arrays

Chunk Size Example

Testing6 KB

RAID-04 Disks

8 KBChunks

Page 47: Deconstructing Storage Arrays

Chunk Size Example

Testing8 KB

RAID-04 Disks

8 KBChunks

Page 48: Deconstructing Storage Arrays

Chunk Size Example

Testing10 KB

RAID-04 Disks

8 KBChunks

Page 49: Deconstructing Storage Arrays

Chunk Size Example

Testing12 KB

RAID-04 Disks

8 KBChunks

Page 50: Deconstructing Storage Arrays

Chunk Size Example

Testing14 KB

RAID-04 Disks

8 KBChunks

Page 51: Deconstructing Storage Arrays

Chunk Size Example

Testing16 KB

RAID-04 Disks

8 KBChunks

Page 52: Deconstructing Storage Arrays

Chunk Size Example

RAID-04 Disks

8 KBChunks

Page 53: Deconstructing Storage Arrays

Chunk Size Example

RAID-04 Disks

8 KBChunks

Actual8 KB

cluster

cluster

Page 54: Deconstructing Storage Arrays

Shear Algorithm• Pattern size• Chunk size• Layout of chunks to disks• Level of redundancy

Page 55: Deconstructing Storage Arrays

Determining the Read Layout• Find mapping of chunks to disks

• Choose a pair of chunks in the pattern• Perform random reads to both chunks

• Repeat for all pairs of chunks

• Cluster results and identify chunks on same disk

Page 56: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks16

25

34

Page 57: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks16

25

34

Testing { 0, 0 }

Page 58: Deconstructing Storage Arrays

Read Layout ExampleRAID-0 ZIG-ZAG 4 Disks

16

25

34

Testing { 0, 1 }

07

Page 59: Deconstructing Storage Arrays

Read Layout ExampleRAID-0 ZIG-ZAG 4 Disks

16

25

34

Testing { 0, 2 }

07

Page 60: Deconstructing Storage Arrays

Read Layout ExampleRAID-0 ZIG-ZAG 4 Disks

16

25

34

Testing { 0, 3 }

07

Page 61: Deconstructing Storage Arrays

Read Layout ExampleRAID-0 ZIG-ZAG 4 Disks

16

25

34

Testing { 0, 4 }

07

Page 62: Deconstructing Storage Arrays

Read Layout ExampleRAID-0 ZIG-ZAG 4 Disks

16

25

34

Testing { 0, 5 }

07

Page 63: Deconstructing Storage Arrays

Read Layout ExampleRAID-0 ZIG-ZAG 4 Disks

16

25

34

Testing { 0, 6 }

07

Page 64: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks16

25

34

Testing { 0, 7 }

Page 65: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks16

25

34

Testing { 1, 1 }

Page 66: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks25

34

Testing { 1, 2 }

16

Page 67: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks25

34

Testing { 1, 3 }

16

Page 68: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks25

34

Testing { 1, 4 }

16

Page 69: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks25

34

Testing { 1, 5 }

16

Page 70: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks25

34

Testing { 1, 6 }

16

Page 71: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks25

34

Testing { 1, 7 }

16

Page 72: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks25

34

16

Page 73: Deconstructing Storage Arrays

Read Layout Example

07

RAID-0 ZIG-ZAG 4 Disks25

34

Actual{ 0, 7 } { 1, 6 } { 2, 5 } { 3, 4}

16

cluster cluster

Page 74: Deconstructing Storage Arrays

Shear Algorithm• Pattern size• Chunk size• Layout of chunks to disks• Level of redundancy

Page 75: Deconstructing Storage Arrays

Determining Level of Redundancy

• Ratio of read to write bandwidth reveals the type of redundancy in the array

• Expected R/W ratios:• RAID-0: 1 (no redundancy)• RAID-1: 2 (mirroring)• RAID-4: varies (examine write layout)• RAID-5: 4 (parity)

Page 76: Deconstructing Storage Arrays

Shear Experience• Shear has been applied to

• Linux software RAID• Poor RAID-5 parity updates

• Adaptec hardware RAID controller• Implements RAID-5 left-asymmetric layout

– RAID-0– RAID-1– Chained

Declustering

– RAID-4– RAID-5– P+Q

Page 77: Deconstructing Storage Arrays

Outline• Introduction• Shear

• Background• Algorithm

• Case Studies• Performance: Stripe-aligned Writes• Management: Detecting Misconfiguration,

Failure• Conclusion

Page 78: Deconstructing Storage Arrays

RAID-5 Performance• Small writes on RAID-5 are problematic

• Require two reads, parity calculation, two writes

• Writing in full stripes is more efficient

0 1 2 320212223

P P P P

4 5 6 7 8 9 101112131415

P P P P

P P P P16171819 P P P P32333435 24252627 28293031

36373839 40414243 44454647RAID-5

Page 79: Deconstructing Storage Arrays

Stripe-aligned Writes• Overcome RAID-5 small write problem• Modified Linux disk scheduler

• Groups writes into full stripes• Aligns writes along stripe boundaries• Approximately 20 lines of code

• Experiment• Hardware RAID-5, 4 disks, 16 KB chunks• Create 100 files of varying sizes

Page 80: Deconstructing Storage Arrays

Stripe-aligned Writes Experiment

• Simple modification has a large impact

Page 81: Deconstructing Storage Arrays

Detecting MisconfigurationsCo

rrect

RAID 5-LS RAID 5-LA RAID 5-RS RAID 5-RA

• Software RAID, 4 Disks, 8 KB Chunks• What if one disk is accidentally used

twice?

Page 82: Deconstructing Storage Arrays

Detecting MisconfigurationsCo

rrect

Misc

onfig

RAID 5-LS RAID 5-LA RAID 5-RS RAID 5-RA

Page 83: Deconstructing Storage Arrays

Detecting Failures• Software RAID• RAID-5 LS• 10 disks• 8 KB chunks

Page 84: Deconstructing Storage Arrays

Detecting Failures• Software RAID• RAID-5 LS• 10 disks• 8 KB chunks

• Disk 5 fails

Page 85: Deconstructing Storage Arrays

Outline• Introduction• Shear

• Background• Algorithm

• Case Studies• Performance: Stripe-aligned Writes• Management: Detecting Misconfiguration,

Failure• Conclusion

Page 86: Deconstructing Storage Arrays

Conclusion• Gray-box research

• Extract / exploit information from existing interfaces

• Shear• Extracts information

• Automatically determines storage array properties• Exploits information

• File system performance tuning• Storage management

Page 87: Deconstructing Storage Arrays

Questions?

http://www.cs.wisc.edu/adsl/