Jim Dibb - UML Computer Science

Multi-level Raid
91.560
1
Multi-level Raid
Agenda
• Background
- Definitions
- What is it?
- Why would anyone want it?
• Design Issues
-
Configuration and User Interface
Expansion
Memory Usage
Virtual Driver Implementation
2
Multi-level Raid
Definitions (according to RAB)
• Logical Disk - a set of consecutively addressed member
•
•
•
•
disk blocks that is part of a single virtual disk-tomember disk mapping.
Logical Volume - A virtual disk made up of logical disks.
Also called a virtual disk, volume set, partition.
Member Disk - A disk that is in use as a member of a
disk array.
Virtual Disk - synonym for volume set.
Volume set - A collection of user data extents
presented to an operating environment as a range of
consecutive logical block addresses. A volume set is
the disk array object most closely resembling a disk
when viewed by the operating environment.
3
Multi-level Raid
Background
• What is ‘Multi-level Raid’?
- Multi-level Raid is the combining of two (or more) levels of
Raid algorithms into a single addressable logical unit.
- Ex. Raid10, Raid50, Raid30, Raid00, Raid 11, Raid 100
Raid 50
Volume Set
Raid 0 layer
(Virtual Disk)
Raid 5 layer
(Logical Disk)
(Logical Disk)
(Logical Disk)
4
Multi-level Raid
Background (What)
Host Address
Block 0
Block 1
Block 2
Block 3
Block 4
….
Raid 0 Level
Raid 5 Level
0-255
Block 0-1023
256-511
512-767
Block 1024-2047
768-1023
Parity
Block 3061
Block 2048-3061
5
Multi-level Raid
Background (Why)
• Why use Multi-level Raid?
• For Performance
- For the 3x5 Raid 50 shown, performance is 3x a single Raid 5
• For Capacity Without Sacrificing Reliability
- A 3x5 Raid 50 can survive 3 failures, while a 12+1 Raid 5 with
the same capacity can only survive 1
• For Capacity Without Host Involvement
- Striping units at the host level is difficult or impossible in some
clustered environments
6
Multi-level Raid
Design Issues - Configuration
• What makes up a raid group?
- In our current model a raid group is a set of physical disks
on which one or more logical disks is created by
partitioning.
• What makes up a logical disk?
- Currently, a logical disk is a slice of a raid group.
- Currently, a logical disk is equivalent to a volume set.
- A partition is a logical disk.
• What is a volume set?
-
A volume set could be a single logical disk
A volume set could be a collection of logical disks
A Raid 50 is a type of volume set, and a type of logical disk
A Raid 5 logical disk, that is part of a Raid 50 is not a
volume set.
7
Multi-level Raid
Design Issues -Configuration
• There are at least 2 approaches for creating Raid 50
volume sets.
- Stripe across logical disks (including partitions)
>
>
>
>
The underlying Raid 5 units can be partitions. In effect you could (not
that you’d want to) create a 3x5 Raid 50 on 5 drives.
The resulting volume sets can not be further partitioned
Advantages : more flexibility, physical disk units can be part of a Raid 50
and Raid 5 simultaneously, may support a layered architecture better.
Disadvantages : must keep the Raid 5 logical disks from being visible to
the host
- Build multi-level Raid Groups
>
>
>
Multiple raid groups are combined into a ‘super raid group’. Raid 50
logical disks are then created by taking slices (partitions) of the super raid
group.
Advantages : The Raid 5 groups are never visible to the host
Disadvantages : All space on the physical drives can only be used for
Raid 50
8
Multi-level Raid
Design Issues - Configuration
• Striping across arbitrary partitions seems like the best
•
approach.
How should this be presented to a user?
- How do we keep the component Raid 5 logical disks from
being accessed independently?
- The resulting Raid 50 will span multiple Raid groups. How
does the GUI hierarchically display that?
- How does the user specify the combinations?
9
Multi-level Raid
Design Issues - Expansion
• How do we handle expansion of Raid groups that hold
the component Raid 5 logical disks?
- In some ways, there is no issue.
>
The expansion of a Raid group does not affect the capacity of the Raid 5
logical disks.
- The issue is geometry
>
>
If the Raid 5 geometry changes, the Raid 0 stripe element size will be
more or less efficient.
If the Raid 5 logical disks have different geometry, the way to be efficient
is to use a least common multiple approach.
• Is it possible to expand the Raid 50 volume set?
- Its possible, but since it cannot be further partitioned, there
may not be reason to allow it.
10
Multi-level Raid
Design Issues - Memory
• A multi-level Raid design requires data to be
reorganized at each level.
- Raid 0 layer splits data into 1 or more chunks per logical Raid
5 disk
- Raid 5 layer must split each chunk into data for each physical
disk
• This reorganization is an extra computational step
• A bigger problem is allocating ‘extra’ data buffers.
- The upper layer can only allocate what it needs for the host
data.
- The lower layers must get additional buffers for parity and prereads.
11
Multi-level Raid
Design Issues - Virtual Drivers
• Multi-level Raid is an excellent opportunity to take
•
advantage of the Virtual Driver architecture.
The current model is:
Cache Driver
Lun Driver
Lun Driver
Raid Driver
Lun Driver
Raid Driver
12
Multi-level Raid
Design Issues - Virtual Drivers
• A multi-level Raid driver stack could look like this:
Cache Driver
Lun Driver
Lun Driver
Lun Driver
Raid Driver /
Stripe Driver
Raid Driver
Raid Driver
13