Demultiplexing storage volume boundaries within virtual storage block device
An architecture for demultiplexing volumes in a storage device includes a virtual machine. A guest operating system is in the virtual machine. The architecture further includes a storage pool of virtual storage blocks and a hypervisor. The hypervisor is configured to organize the storge pool of virtual storage blocks into a plurality of virtual storage partition tables. Device addresses are assigned to the plurality of virtual storage partition tables. The plurality of virtual storage partition tables and the devices addresses are organized into a virtual storage device. The device addresses are presented to the guest operating system in the virtual machine.
1 . An architecture for demultiplexing volumes in a storage device in a cloud computing environment, the architecture comprising:
a virtual machine comprising multiple quest operating systems, wherein a guest operating system of the multiple guest operating systems requires a plurality of emulated hard disk devices to boot;
a storage pool of virtual storage blocks; and
a hypervisor configured to:
organize the storage pool of the virtual storage blocks into a plurality of virtual storage partition tables;
assign device addresses to the plurality of virtual storage partition tables;
organize the plurality of virtual storage partition tables and the device addresses into a virtual storage device, wherein the virtual storage device includes boot data for the quest operating system, and the boot data comprises data blocks;
map the device addresses to the virtual storage device, wherein
the virtual storage device includes regions, and
individual ones of the device addresses represent a region of the regions on the virtual storage device;
present the device addresses to the guest operating system in the virtual machine, wherein
based on the device addresses, the regions of the virtual storage device are presented, to the guest operating system, as the plurality of emulated hard disk devices,
the guest operating system sees each region of the regions of the virtual storage device as an entire emulated hard disk device of the plurality of emulated hard disk devices, and
each emulated hard disk device of the plurality of emulated hard disk devices corresponds to a respective data block of the data blocks of the boot data within the virtual storage device; and
assign, to each guest operating system of the multiple quest operating systems, specific boundaries of the plurality of virtual storage partition tables to prevent intersection between the multiple quest operating systems, wherein
each of the specific boundaries correspond to a respective device address of the device addresses assigned to the plurality of virtual storage partition tables.
2 . The architecture of claim 1 , wherein the virtual storage device further includes a plurality of virtual disk images.
3 . The architecture of claim 2 , wherein:
the individual ones of the device addresses reside on one of the plurality of virtual disk images.
4 . The architecture of claim 1 , wherein the hypervisor is further configured to collect metadata from the virtual storage blocks.
5 . The architecture of claim 4 , wherein the hypervisor is further configured to use the metadata to assign the device addresses and to present the device addresses to the guest operating system in the virtual machine.
6 . A computer-implemented method for demultiplexing volumes in a storage device in a cloud computing environment, the computer-implemented method comprising:
organizing, by a hypervisor, a storge pool of virtual storage blocks into a plurality of virtual storage partition tables;
assigning, by the hypervisor, device addresses to the plurality of virtual storage partition tables;
organizing the plurality of virtual storage partition tables and the devices addresses into a virtual storage device;
mapping the device addresses to the virtual storage device, wherein
the virtual storage device includes regions, and
individual ones of the device addresses represent a region of the regions on the virtual storage device;
presenting the device addresses to a guest operating system of multiple guest operating systems in a virtual machine, wherein
the virtual storage device includes boot data for the guest operating system, and the boot data comprises data blocks,
the guest operating system requires a plurality of emulated hard disk devices to boot,
based on the device addresses, the regions of the virtual storage device are presented, to the guest operating system, as the plurality of emulated hard disk devices,
the guest operating system sees each region of the regions of the virtual storage device as an entire emulated hard disk device of the plurality of emulated hard disk devices, and
each emulated hard disk device of the plurality of emulated hard disk devices corresponds to a respective data block of the data blocks of the boot data within the virtual storage device; and
assigning, to each quest operating system of the multiple quest operating systems specific boundaries of the plurality of virtual storage partition tables to prevent intersection between the multiple quest operating systems, wherein
each of the specific boundaries correspond to a respective device address of the device addresses assigned to the plurality of virtual storage partition tables.
7 . The computer-implemented method of claim 6 , further comprising storing a plurality of virtual disk images in the virtual storage device.
8 . The computer-implemented method of claim 7 , wherein:
the individual ones of the device addresses reside on one of the plurality of virtual disk images.
9 . The computer-implemented method of claim 6 , further comprising collecting, by the hypervisor, metadata from the virtual storage blocks.
10 . The computer-implemented method of claim 9 , further comprising using, by the hypervisor, the metadata to assign the device addresses and to present the device addresses to the guest operating system in the virtual machine.
11 . A computing device for demultiplexing volumes in a storage device in a cloud computing environment, the computing device comprising:
a processor configured to operate:
a virtual machine comprising multiple guest operating systems, wherein a guest operating system of the multiple guest operating systems requires a plurality of emulated hard disk devices to boot;
a storage pool of virtual storage blocks; and
a hypervisor; and
a memory coupled to the processor, the memory storing instructions to cause the hypervisor to perform operations comprising:
organizing the storage pool of the virtual storage blocks into a plurality of virtual storage partition tables;
assigning device addresses to the plurality of virtual storage partition tables;
organizing the plurality of virtual storage partition tables and the devices addresses into a virtual storage device, wherein the virtual storage device includes boot data for the quest operating system, and the boot data comprises data blocks;
mapping the device addresses to the virtual storage device, wherein
the virtual storage device includes regions, and
individual ones of the device addresses represent a region of the regions on the virtual storage device;
presenting the device addresses to the guest operating system in the virtual machine, wherein
based on the device addresses, the regions of the virtual storage device are presented, to the guest operating system, as the plurality of emulated hard disk devices,
the guest operating system sees each region of the regions of the virtual storage device as an entire emulated hard disk device of the plurality of emulated hard disk devices, and
each emulated hard disk device of the plurality of emulated hard disk devices corresponds to a respective data block of the data blocks of the boot data within the virtual storage device; and
assigning, to each guest operating system of the multiple guest operating systems, specific boundaries of the plurality of virtual storage partition tables to prevent intersection between the multiple guest operating systems, wherein
each of the specific boundaries correspond to a respective device address of the device addresses assigned to the plurality of virtual storage partition tables.
12 . The computing device of claim 11 , wherein the instructions further cause the hypervisor to perform the operations comprising storing a plurality of virtual disk images in the virtual storage device.
13 . The computing device of claim 12 , wherein:
the individual ones of the device addresses reside on one of the plurality of virtual disk images.
14 . The computing device of claim 11 , wherein the instructions further cause the hypervisor to perform the operations comprising:
collecting, by the hypervisor, metadata from the virtual storage blocks; and
using, by the hypervisor, the metadata to assign the device addresses and to present the device addresses to the guest operating system in the virtual machine.