130 likes | 250 Views
91.520. Agenda. Background Definitions What is it? Why would anyone want it? Design Issues Configuration and User Interface Expansion Memory Usage Virtual Driver Implementation. Definitions (according to RAB).
E N D
Agenda • Background • Definitions • What is it? • Why would anyone want it? • Design Issues • Configuration and User Interface • Expansion • Memory Usage • Virtual Driver Implementation
Definitions (according to RAB) • Logical Disk - a set of consecutively addressed member disk blocks that is part of a single virtual disk-to-member 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.
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)
Background (What) Host Address Raid 0 Level Raid 5 Level Block 0 Block 1 Block 2 Block 3 Block 4 …. Block 3061 Block 0-1023 0-255 256-511 Block 1024-2047 512-767 768-1023 Parity Block 2048-3061
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
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.
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
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?
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.
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 pre-reads.
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 Lun Driver Raid Driver Raid Driver
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