CA2702756A1 - System and method for managing virtual hard drives in a virtual machine environment - Google Patents
System and method for managing virtual hard drives in a virtual machine environment Download PDFInfo
- Publication number
- CA2702756A1 CA2702756A1 CA2702756A CA2702756A CA2702756A1 CA 2702756 A1 CA2702756 A1 CA 2702756A1 CA 2702756 A CA2702756 A CA 2702756A CA 2702756 A CA2702756 A CA 2702756A CA 2702756 A1 CA2702756 A1 CA 2702756A1
- Authority
- CA
- Canada
- Prior art keywords
- drive image
- virtual machine
- machine environment
- file
- hard disk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Platform software is installed onto a native hardware platform (NHWP) containing a hard disk drive. That hard disk drive is formatted and structured as the NHWP would expect to use it to boot and run. However, the structure of that hard disk is converted to a drive image file (compressed or uncompressed) that can be loaded into a Virtual Machine Environment (VME). By mounting the drive image (or a partition of a drive image), the VME can use the partition as if it were a device rather than a file.
Description
System and Method for Managing Virtual Hard Drives in a Virtual Machine Environment CROSS REFERENCE TO CO-PENDING APPLICATION
[0001] The present application is related to and claims priority to U.S.
Provisional Application Serial No. 60/996,232, filed November 7, 2007. The contents of that application are incorporated herein by reference in their entirety.
FIELD OF INVENTION
[0001] The present application is related to and claims priority to U.S.
Provisional Application Serial No. 60/996,232, filed November 7, 2007. The contents of that application are incorporated herein by reference in their entirety.
FIELD OF INVENTION
[0002] The present invention is directed to a system and method for managing and/or using virtual disk drives in a Virtual Machine Environment (VME), and, in one embodiment, to a system and method for creating at least one disk drive volume in a Non-Virtual Machine Environment (NVME) and transferring an image of the at least one disk drive volume from the NYME to the VME such that the at least one drive volume can be used within the VME as a portion of a file system of the VME.
DISCUSSION OF THE BACKGROUND
DISCUSSION OF THE BACKGROUND
[0003] A number of Virtual Machine architectures exist, including, but not limited to, MICROSOFT VIRTUAL PC, PARALLELS WORKSTATION, VMWARE WORKSTATION, VIRTUAL IRON, and VIRTUALBOX. Using many of these systems, a user can create a Virtual Machine that runs on top of another operating system (e.g., WINDOWS
(VISTA), LINUX and MAC OS) and assign resources to the Virtual Machine.
BRIEF DESCRIPTION OF THE DRAWINGS
(VISTA), LINUX and MAC OS) and assign resources to the Virtual Machine.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] The following description, given with respect to the attached drawings, may be better understood with reference to the non-limiting examples of the drawings, wherein:
[0005] Figure 1 is block diagram of partitions of a hard disk as they are created by an operating system for a NVME;
[0006] Figure 2 is a screen dump showing a listing of a set of partitions corresponding to the partitions of Figure 1;
[0007] Figure 3 is a block diagram of a hard disk in a VME using a file that includes the partitions of the hard disk drive of the NVME of Figure 1;
[0008] Figure 4 is a screen dump showing a process of converting the set of partitions corresponding to the partitions of Figure 1 into a drive image file that is then compressed into a compressed drive image file for transfer to a VME;
[0009] Figure 5 is a screen dump showing a process of uncompressing the compressed drive image file of Figure 4 back into a drive image file for use with the VME; and [0010] Figure 6 is a screen dump showing a process of linking a drive image file to a filesystem of the VME at a mount point.
DISCUSSION OF THE PREFERRED EMBODIMENTS
DISCUSSION OF THE PREFERRED EMBODIMENTS
[0011] A programmer or a systems engineer designs/creates platform software (e.g., an operating system, drivers, and application software) for a native HW platform (NHWP) (e.g., an x86-based version of the AVOCENT 5200 MERGE POINT SERVER MANAGEMENT
SYSTEM or another server management unit) that is expected to be installed on a physical hard disk drive (present in the NHWP). That platform software is packaged into an installation format (e.g., an install CDROM (disk/ISO image), a DVD or bootable external drive (e.g., a USB-based hard disk drive or flash drive), or an installer executable file) that can be provided to the NHWP
for installation.
SYSTEM or another server management unit) that is expected to be installed on a physical hard disk drive (present in the NHWP). That platform software is packaged into an installation format (e.g., an install CDROM (disk/ISO image), a DVD or bootable external drive (e.g., a USB-based hard disk drive or flash drive), or an installer executable file) that can be provided to the NHWP
for installation.
[0012] The installation format is then provided to a Native Hardware Platform (NHWP) that includes a hard disk drive onto which the platform software is to be installed. After installation of the platform software, the hard disk drive (HDD) of the NHWP
will be formatted and contain at least one HDD partition (i.e., a division or slice of the HDD), as shown in Figure 1. These HDD partitions (HDP) are accessed by operating system and application software running on the NHWP (e.g., through device nodes (e.g., /dev/sdbl, /dev/sdb2, ... /dev/sdbl0)).
For example, a file system could be on one partition or device node (e.g.
/dev/sdb2) which is accessed via a filesystem command to "mount" it (e.g., "mount -t cramfs /dev/sdb2 /mnt/sdbl ").
Other partitions (e.g., /dev/sdbl may contain boot, operating, and initial RAM-based (e.g.
ramdisk) filesystem object/images, and/or filesystem data. Depending on the operating system that created the HDD partitions, it is possible, without departing from the teachings of the present invention, that other device types or device names (e.g., "hdb"
instead of "sdb") may be used.
will be formatted and contain at least one HDD partition (i.e., a division or slice of the HDD), as shown in Figure 1. These HDD partitions (HDP) are accessed by operating system and application software running on the NHWP (e.g., through device nodes (e.g., /dev/sdbl, /dev/sdb2, ... /dev/sdbl0)).
For example, a file system could be on one partition or device node (e.g.
/dev/sdb2) which is accessed via a filesystem command to "mount" it (e.g., "mount -t cramfs /dev/sdb2 /mnt/sdbl ").
Other partitions (e.g., /dev/sdbl may contain boot, operating, and initial RAM-based (e.g.
ramdisk) filesystem object/images, and/or filesystem data. Depending on the operating system that created the HDD partitions, it is possible, without departing from the teachings of the present invention, that other device types or device names (e.g., "hdb"
instead of "sdb") may be used.
[0013] Further, other partitions (e.g. /dev/sdb4) may contain NHWP application code and/or application binary and non-binary data. As shown in Figure 1, partitions sdb5-sdbl0 are, for illustrative purposes only, shown as a single block because of their relatively small sizes.
However, each such partition should be considered to be separate from the each other in their own partition, as shown in Figure 2. As a result of the installation process, the NHWP (e.g., the x86-based MERGE POINT PLATFORM 5200) would be able to access the hard disk drive to boot the installed operating system (e.g. LINUX), mount its associates filesystem(s) and access the data on the partitions. In an exemplary embodiment with an 8 gigabyte hard drive, Figure 2 is a screen dump showing a listing of a set of partitions resulting from an installation as one might see using the "fdisk" utility program.
However, each such partition should be considered to be separate from the each other in their own partition, as shown in Figure 2. As a result of the installation process, the NHWP (e.g., the x86-based MERGE POINT PLATFORM 5200) would be able to access the hard disk drive to boot the installed operating system (e.g. LINUX), mount its associates filesystem(s) and access the data on the partitions. In an exemplary embodiment with an 8 gigabyte hard drive, Figure 2 is a screen dump showing a listing of a set of partitions resulting from an installation as one might see using the "fdisk" utility program.
[0014] The HDD from the NHWP can then be removed from the NHWP and connected (e.g., installed internally or connected as an external drive) to an intermediate manufacturing platform workstation (e.g. an x86-based PC running LINUX). Once connected, the entire contents of the HDD are copied to a file system of or accessible to the VME
(running a compatible HW or emulated CPU as in the NHWP) as a file (e.g., v_sdb and/or v_sdb) as shown in Figure 3. For example, the VME could emulate the x86-based MERGE POINT
PLATFORM
5200 for which the platform software was written. The file when stored in the file system accessible to the VME need not be stored contiguously but instead may be fragmented as any other file in the VME, as long as the order when read from the file (using file system calls) is the same as the order of the actual hard disk.
(running a compatible HW or emulated CPU as in the NHWP) as a file (e.g., v_sdb and/or v_sdb) as shown in Figure 3. For example, the VME could emulate the x86-based MERGE POINT
PLATFORM
5200 for which the platform software was written. The file when stored in the file system accessible to the VME need not be stored contiguously but instead may be fragmented as any other file in the VME, as long as the order when read from the file (using file system calls) is the same as the order of the actual hard disk.
[0015] In one embodiment, the contents of the file (e.g., v_sdb or v_hdb) are copied directly to the VME or to a location accessible by the VME. In another embodiment, the contents are moved in compressed form to the VME (or to a location accessible by the VME) and uncompressed. Either the VME can uncompress the compressed file or another process can uncompress the compressed file and store it in a location accessible by the VME. In an exemplary compression-based method shown in Figure 4, the entire contents (i.e., 8 gigabytes) of the HDD (shown in Figure 1) are copied (e.g. using `dd' or another equivalent device to file conversion utility) into a drive image file (e.g., named v_sdb or v_hdb) of the HDD. (The flags "if' and "of' refer to "input file" and "output file," respectively.) The drive image file can then be compressed (e.g., using the "gzip" compression utility) into an identically reproducible compressed drive image file (e.g., named "v_sdb.gz" or "v_hdb.gz", where ".gz"
is the common file extension for files compressed by "gzip"). The resulting compressed drive image file is shown in Fig. 4 as a 50 megabyte file named "v_sdb.gz". Using the VME or a location (e.g., a shared folder) which the VME can access, the compressed drive image file is made available to the VME (e.g., running the compatible HW or emulated CPU as in the NHWP). As shown in Figure 5, the compressed drive image file is then uncompressed within the VME
file system, thereby reproducing file the original drive image file (e.g., "v_sdb" or "v fidb").
is the common file extension for files compressed by "gzip"). The resulting compressed drive image file is shown in Fig. 4 as a 50 megabyte file named "v_sdb.gz". Using the VME or a location (e.g., a shared folder) which the VME can access, the compressed drive image file is made available to the VME (e.g., running the compatible HW or emulated CPU as in the NHWP). As shown in Figure 5, the compressed drive image file is then uncompressed within the VME
file system, thereby reproducing file the original drive image file (e.g., "v_sdb" or "v fidb").
[0016] The VME would then create emulated device nodes (and corresponding file system hard and soft links) for each partition found in the virtualized disk(s) (e.g., v_sdb and v_hdb). These partitions will be seen from programs such as fdisk as: v_sdbl, v_sdb2,...v_sdbN, and/or as v hdbl. There will be a corresponding loopback (artificial/emulated) device node and file system hard link node for each of the partitions from the original HDD.
[0017] A loopback device node can be created and used using the `losetup' utility program. To link an associated loopback device with several other equivalent devices, one can use the 'In' utility program. For example, to create access to "v_sdb3" which corresponds to "/dev/sdb3", one would calculate a location of "v_sdb3" within the file v_sdb.
As was shown in Figure 3, "v_sdb3" starts at sector 8988078 and ends at sector 11717441 and is 1364682 blocks long. To find the actual offset using 512 bytes per sector/block, one would calculate: 8988078 *
512 = 4601895936. Thus, as shown in Figure 6, one could use the "losetup"
command to create the /dev/loopO loopback device. One would then be able to access the/dev/loopO
loopback device as is shown by requesting a listing of the characteristics of that device in Figure 6. One would further be able to make other hard links (e.g., /dev/sdb3 and /dev/vsdb3) and soft links (e.g., /dev/v_sdb3) to the same partition. This thereby associates former physical HDD partition /dev/sdb3 to several equivalent loopback (emulated/artifical/virtual) devices.
Note that the /dev/loop3 device inode number (651) is identical to /dev/sdb3 and /dev/vsdb3.
As was shown in Figure 3, "v_sdb3" starts at sector 8988078 and ends at sector 11717441 and is 1364682 blocks long. To find the actual offset using 512 bytes per sector/block, one would calculate: 8988078 *
512 = 4601895936. Thus, as shown in Figure 6, one could use the "losetup"
command to create the /dev/loopO loopback device. One would then be able to access the/dev/loopO
loopback device as is shown by requesting a listing of the characteristics of that device in Figure 6. One would further be able to make other hard links (e.g., /dev/sdb3 and /dev/vsdb3) and soft links (e.g., /dev/v_sdb3) to the same partition. This thereby associates former physical HDD partition /dev/sdb3 to several equivalent loopback (emulated/artifical/virtual) devices.
Note that the /dev/loop3 device inode number (651) is identical to /dev/sdb3 and /dev/vsdb3.
[0018] The appropriate file system (types) can then be mounted against each of the corresponding (emulated/artificial) devices (e.g., mount -t ext3 /dev/loopl l /mnt/hdbl). After mounting, any remaining fixups (e.g., to v_sdb or v hdb) that are needed to complete the emulated HDP environment within the VME can be applied, and the NHWP HDD will be transformed and running within the VME. For example, one can mount into the file system (at the mount point "/mnt/sdb3") the loopback device using either "mount /dev/loopO /mnt/sdb3" or "mount /dev/sdb3 /mnt/sdb3". Both of these mounts are equivalent, and designed to make the underlying application code believe it is communicating with a real HDD.
[0019] The above invention can be used with any Management Protocol and/or device including IPMI, ILO and DRAC devices.
[0020] While certain configurations of structures have been illustrated for the purposes of presenting the basic structures of the present invention, one of ordinary skill in the art will appreciate that other variations are possible which would still fall within the scope of the appended claims.
Claims (6)
1. A method of creating a virtual hard disk for use in a Virtual Machine Environment, the method comprising:
installing software onto a hard disk of a Native Hardware Environment including the hard disk;
converting a structure of the hard disk into a drive image file;
transferring the drive image to a location accessible by a Virtual Machine Environment;
and mounting at least one partition from the drive image into the Virtual Machine Environment such that at least one process of the Virtual Machine Environment can access the at least one partition at a mount point.
installing software onto a hard disk of a Native Hardware Environment including the hard disk;
converting a structure of the hard disk into a drive image file;
transferring the drive image to a location accessible by a Virtual Machine Environment;
and mounting at least one partition from the drive image into the Virtual Machine Environment such that at least one process of the Virtual Machine Environment can access the at least one partition at a mount point.
2. The method as claimed in claim 1, wherein transferring the drive image comprises transferring the drive image in uncompressed form to the location accessible by a Virtual Machine Environment.
3. The method as claimed in claim 1, wherein transferring the drive image comprises:
compressing the drive image into a compressed drive image;
transferring the compressed drive image to the location accessible by the Virtual Machine Environment; and uncompressing the compressed drive image within the Virtual Machine Environment.
compressing the drive image into a compressed drive image;
transferring the compressed drive image to the location accessible by the Virtual Machine Environment; and uncompressing the compressed drive image within the Virtual Machine Environment.
4. The method as claimed in claim 1, wherein transferring the drive image comprises:
compressing the drive image into a compressed drive image;
transferring the compressed drive image to the location accessible by the Virtual Machine Environment; and uncompressing, outside of the Virtual Machine Environment, the compressed drive image to the location accessible by the Virtual Machine Environment.
compressing the drive image into a compressed drive image;
transferring the compressed drive image to the location accessible by the Virtual Machine Environment; and uncompressing, outside of the Virtual Machine Environment, the compressed drive image to the location accessible by the Virtual Machine Environment.
5. The method as claimed in claim 1, wherein mounting the at least one partition from the drive image comprises:
creating a loopback device at an offset corresponding to the at least one partition; and mounting the loopback device at the mount point.
creating a loopback device at an offset corresponding to the at least one partition; and mounting the loopback device at the mount point.
6. The method as claimed in claim 1, wherein converting the structure of the hard disk into the drive image file comprises writing an entire contents of a device to a file.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US99623207P | 2007-11-07 | 2007-11-07 | |
US60/996,232 | 2007-11-07 | ||
PCT/US2008/012600 WO2009061486A1 (en) | 2007-11-07 | 2008-11-07 | System and method for managing virtual hard drives in a virtual machine environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2702756A1 true CA2702756A1 (en) | 2009-05-14 |
Family
ID=40626088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2702756A Abandoned CA2702756A1 (en) | 2007-11-07 | 2008-11-07 | System and method for managing virtual hard drives in a virtual machine environment |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090235248A1 (en) |
EP (1) | EP2220559A4 (en) |
CA (1) | CA2702756A1 (en) |
IL (1) | IL205223A0 (en) |
WO (1) | WO2009061486A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9037620B2 (en) * | 2009-12-16 | 2015-05-19 | Microsoft Technology Licensing, Llc | File system active symbolic link |
US9336032B2 (en) | 2010-10-28 | 2016-05-10 | Hewlett Packard Enterprise Development Lp | Zoning data to a virtual machine |
US10572451B2 (en) | 2014-01-31 | 2020-02-25 | Hewlett Packard Enterprise Development Lp | File system storage |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7334098B1 (en) * | 2000-06-06 | 2008-02-19 | Quantum Corporation | Producing a mass storage backup using a log of write commands and time information |
EP1490771A4 (en) * | 2002-04-03 | 2007-11-21 | Powerquest Corp | Using disassociated images for computer and storage resource management |
US20060070067A1 (en) * | 2004-06-03 | 2006-03-30 | Dell Products L.P. | Method of using scavenger grids in a network of virtualized computers |
US8370819B2 (en) * | 2005-03-25 | 2013-02-05 | Microsoft Corporation | Mechanism to store information describing a virtual machine in a virtual disk image |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
-
2008
- 2008-11-07 EP EP08847360.8A patent/EP2220559A4/en not_active Withdrawn
- 2008-11-07 CA CA2702756A patent/CA2702756A1/en not_active Abandoned
- 2008-11-07 WO PCT/US2008/012600 patent/WO2009061486A1/en active Application Filing
- 2008-11-07 US US12/266,639 patent/US20090235248A1/en not_active Abandoned
-
2010
- 2010-04-21 IL IL205223A patent/IL205223A0/en unknown
Also Published As
Publication number | Publication date |
---|---|
IL205223A0 (en) | 2010-12-30 |
WO2009061486A1 (en) | 2009-05-14 |
US20090235248A1 (en) | 2009-09-17 |
EP2220559A1 (en) | 2010-08-25 |
EP2220559A4 (en) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2007248886B2 (en) | Converting machines to virtual machines | |
US9928091B2 (en) | Techniques for streaming virtual machines from a server to a host | |
JP5932973B2 (en) | Virtual storage disk technology | |
US9304804B2 (en) | Replicating virtual machines across different virtualization platforms | |
US9286098B1 (en) | Using master file template area to increase density of virtual machines in a computer system | |
US8838542B1 (en) | Optimized image archiving | |
US9292215B2 (en) | Managing virtual hard disk snapshots | |
JP6050262B2 (en) | Virtual disk storage technology | |
US8370835B2 (en) | Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device | |
US8621461B1 (en) | Virtual machine based operating system simulation using host ram-based emulation of persistent mass storage device | |
US20120151202A1 (en) | Management of multiple software images with shared memory blocks | |
CN101809559A (en) | De-duplication in virtualized server and virtualized storage environments | |
US9971783B2 (en) | Data de-duplication for disk image files | |
EP3518116A1 (en) | Method and apparatus for layered access of file in virtualization instance | |
US9542108B2 (en) | Efficient migration of virtual storage devices to a remote node using snapshots | |
US9104339B1 (en) | Support track aligned partitions inside virtual machines | |
US9152552B2 (en) | Securing sensitive information in a network cloud | |
CN111679889A (en) | Virtual machine conversion migration method and system | |
US20090235248A1 (en) | System and Method for Managing Virtual Hard Drives in a Virtual Machine Environment | |
US9104436B1 (en) | Compile directives for memory management | |
US20110125996A1 (en) | System And Method For Supporting Multiple Hardware Platforms With A Single Disk Image | |
US11836356B2 (en) | Snapshots with smart network interface controller | |
US9092530B1 (en) | Systems and methods for rapidly provisioning virtual storage objects | |
US11989569B2 (en) | Unikernel provisioning | |
US20230134506A1 (en) | System and method for managing vm images for high-performance virtual desktop services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |
Effective date: 20141107 |
|
FZDE | Discontinued |
Effective date: 20141107 |
|
FZDE | Discontinued |
Effective date: 20141107 |