610 likes | 796 Views
DADA – Dynamic Allocation of Disk Area. Jayaram Bobba Vivek Shrivastava. Outline. Introduction Existing Framework Implementation Issues Results Conclusions. Problem. Disk Volumes Allocate physical space on creation Multiple Disk Volumes on a physical disk Unused space
E N D
DADA – Dynamic Allocation of Disk Area Jayaram Bobba Vivek Shrivastava Department of Computer Sciences, University of Wisconsin Madison
Outline • Introduction • Existing Framework • Implementation • Issues • Results • Conclusions Department of Computer Sciences, University of Wisconsin Madison
Problem • Disk Volumes • Allocate physical space on creation • Multiple Disk Volumes on a physical disk • Unused space • Disk space not a premium • What If? Department of Computer Sciences, University of Wisconsin Madison
Motivation • Virtual Machine Environment • Add Some points • Storage Area Networks • Storage area is the bo • Dynamic Physical Allocation (LFS style) Department of Computer Sciences, University of Wisconsin Madison
Related Work • HP AutoRAID • Dynamically change redundancy levels • Hot Data – Mirrored • Cold Data – RAID 5 • Dynamic migration of data Department of Computer Sciences, University of Wisconsin Madison
Outline • Introduction • Existing Framework • Implementation • Issues • Results • Conclusions Department of Computer Sciences, University of Wisconsin Madison
Existing Framework • Logical Volume Manager (LVM) • User space tool that enables creation of logical volumes of a logical partition. • Supports resizing of volumes. • Device Mapper (DM) • Kernel driver that provides a level of indirection in address translation Department of Computer Sciences, University of Wisconsin Madison
LVM design • Volume Group (VG) • Physical Volume (PV) • Logical Volume (LV) • Physical Extent (PE) • Logical Extent (LE) Department of Computer Sciences, University of Wisconsin Madison
LVM design Physical Device Department of Computer Sciences, University of Wisconsin Madison
LVM design PV PE Department of Computer Sciences, University of Wisconsin Madison
LVM design PV PE Department of Computer Sciences, University of Wisconsin Madison
LVM design LV 1 PV PE Department of Computer Sciences, University of Wisconsin Madison
LVM design LE LV 1 LV2 PV PE Department of Computer Sciences, University of Wisconsin Madison
LVM design LE LV 1 LV2 PV PE Department of Computer Sciences, University of Wisconsin Madison
LVM design LE VG LV 1 LV2 PV PE Department of Computer Sciences, University of Wisconsin Madison
DM design Userspace Applications filesystem interface ioctl interface control interface block interface core device-mapper mapping/target interface linear striped snapshot multipath log kcopyd path selectors hardware handlers round-robin emc Department of Computer Sciences, University of Wisconsin Madison
LVM – DM interaction Device Mapper Kernel Userspace libdevmapper LVM2 Department of Computer Sciences, University of Wisconsin Madison
Outline • Introduction • Existing Framework • Implementation • Issues • Results • Conclusions Department of Computer Sciences, University of Wisconsin Madison
Modifications • A trap mechanism from kernel driver to user-level LVM code. • Support for multiple segments in LV • Support for virtual mappings in driver Department of Computer Sciences, University of Wisconsin Madison
Initial State LVM daemon LVM User space Kernel space Device Mapper Unallocated Disk Space Department of Computer Sciences, University of Wisconsin Madison
Volume Group Creation LVM daemon LVM User space Kernel space Device Mapper PE (4MB) 25 Extents Unallocated Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon Create LV 32MB User A LVM User space Kernel space Device Mapper Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM Map 0-7 extents for user A User space Kernel space Device Mapper Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM Map 0-7 extents for user A User space Kernel space Device Mapper Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM Create LV User B 16 MB User space Kernel space Device Mapper Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM Create LV User B 16 MB map 8-11 extents for B User space Kernel space Device Mapper Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM User B map 8-11 extents for B User space Kernel space Device Mapper Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM User B Read/write User space Read/write Kernel space Device Mapper Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Volume Group Creation LVM daemon LVM User space Kernel space Device Mapper PE (4MB) 25 Extents Unallocated Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon Create LV1 32MB User A LVM User space Kernel space Device Mapper Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM Virtually map 0-7 extents for user A User space Kernel space Device Mapper {0-7 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM Create LV User B 16 MB User space Kernel space Device Mapper {0-7 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM Create LV2 User B 16 MB Virtually map 8-11 extents for B User space Kernel space Device Mapper {0-7 error} {8-11 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM Write 6MB User B User space Kernel space Device Mapper {0-7 error} {8-11 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM User B write trap User space Kernel space Device Mapper {0-7 error} {8-11 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation On Demand allocation of disk area LVM daemon User A LVM User B write trap User space Kernel space Device Mapper {0-7 error} {8-11 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation On Demand allocation of disk area LVM daemon User A LVM Write 6MB User B Allocate 2 extents (8MB) trap User space Kernel space Device Mapper {0-7 error} {8-11 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation On Demand allocation of disk area LVM daemon User A LVM Write 6MB User B Allocate 2 extents (8MB) trap User space Kernel space Device Mapper {0-1 linear}{2-7 error} {8-11 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM User B Write 10MB User space Kernel space Device Mapper {0-1 linear}{2-7 error} {8-11 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation LVM daemon User A LVM User B Write 10 MB trap User space Kernel space Device Mapper (0-1 linear}{0-7 error} {8-11 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation On Demand allocation of disk area LVM daemon User A LVM User B write trap User space Kernel space Device Mapper {0-7 error} {8-11 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Current Implementation On Demand allocation of disk area LVM daemon User A LVM User B Allocate 3 extents (12 MB) Write 10 MB trap User space Kernel space Device Mapper {0-1 linear}{2-7 error} {11 error} {8-10 linear} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Outline • Introduction • Existing Framework • Implementation • Issues • Results • Conclusions Department of Computer Sciences, University of Wisconsin Madison
Issues • Not the most efficient implementation • On a trap, • How much to allocate? • On demand • Pre-allocate • Where to allocate? • Temporal locality • Spatial locality • Free unused space Department of Computer Sciences, University of Wisconsin Madison
How much? • On-demand • Allocate only as many blocks as needed • Pre-allocate • Pre-allocate physical space for blocks likely to be accessed in the future. • How much? • Where? Department of Computer Sciences, University of Wisconsin Madison
How much? • Tradeoff – Performance vs. Disk Space • Depends on the workload • I/O on critical path • Asynchronous I/O • Multithreaded Applications Department of Computer Sciences, University of Wisconsin Madison
Pre-Allocation Think: Filesystem Block Allocation • Dumb Allocation • Stride Allocation • Multi-Strided Allocation Department of Computer Sciences, University of Wisconsin Madison
Dumb Allocation On Demand allocation of disk area LVM daemon User A LVM Write 6MB Allocate 2 extents (8MB) trap User space Kernel space Device Mapper {0-1 linear}{2-7 error} Free Disk Space Department of Computer Sciences, University of Wisconsin Madison
Stride Allocation On Demand allocation of disk area LVM daemon User A LVM Write 6MB Allocate 4 extents (16MB) trap User space Kernel space Device Mapper {0-1 linear}{2-7 error} Free Disk Space PreAllocated Extent Department of Computer Sciences, University of Wisconsin Madison
Ext2 access pattern Department of Computer Sciences, University of Wisconsin Madison