windows 8 - Confused about Hyper-V checkpoints

05
2014-04
  • adrianm

    I use Hyper-V on windows 8.1 to set up test environments.

    My checkpoint tree looks like this

    Base
      +Test1
        >Now
      +Test2
      +Test3
    

    Since these are test environments I normally don't want to keep changes when moving from one environment to another. i.e. I just Apply the checkpoint I want to move to.

    The confusion appears when I want to keep changes in one environment. Lets say my tree looks like this:

    Base
      +Test1
        >Now
      +Test2
        +Changes
      +Test3
    

    My questions are:

    • How do I merge the Changes checkpoint into Test2? Do I just Delete it?
    • Lets say I don't need the Test3 environment anymore. How do I remove it? Will Delete merge it with Base

    Currently I merge the changes like this but it seems too complicated:

    1. Apply the Changes checkpoint

      Base
        +Test1
        +Test2
          +Changes
            >Now
        +Test3
      
    2. Delete Checkpoint Subtree on Test2

      Base
        >Now
        +Test1
        +Test3
      
    3. Create a new checkpoint and rename it Test2

      Base
        +Test2
          >Now
        +Test1
        +Test3
      

    I always create and Apply checkpoints when the VM is shut down. Delete and Apply refers to the context menu choices.

  • Answers
  • adrianm

    I found this article and now I understand it.

    The important point for my understanding is that checkpoints are always merged downstream (parent is merged into child).

    If there are no checkpoints downstream (Now is considered a checkpoint in this context), the checkpoint is just deleted without merge.

    What confused me was that differential disks, and undo-disks in Virtual PC, merge upstream (child is merged into parent).

    So the answer to my questions above are:

    • How do I merge the Changes checkpoint into Test2?

    Not possible since you can't merge upstream!
    What is possible is to merge Test2 into Changes by Deleting Test2!.

    Base
      +Test1
        >Now
      +Changes
      +Test3
    
    • Lets say I don't need the Test3 environment anymore. How do I remove it?

    Test3 don't have any downstream checkpoints so it can just be Deleted If it has downstream checkpoints which should also be removed, use Delete Chekpoint subtree.


  • Related Question

    Migrating Windows Server 2008 R2 Hyper-V machines to Windows 8 Hyper-V
  • Nathan DeWitt

    I was using Windows Server 2008 R2 as my developer machine, hosting my Hyper-V virtual machines. I am now switching over to Windows 8 to run Hyper-V in a client OS, which is my use case anyway.

    Are there any gotchas I should be aware of before I attempt to port my existing VMs into Windows 8 Hyper-V? I have a few virtual machines on a virtual network, and I need them to continue working (DC, SQL, SharePoint, etc). Are there any special steps I should take (for instance, exporting my virtual network instead of recreating a new one) to minimize headaches?


  • Related Answers
  • KronoS

    Hyper-V for Windows 8 is a newer version of Hyper-V (V3) than Hyper-V for Server 2008. It is not recommended to import VM's created from Windows 8 to Server 2008. However going from Server 2008 to Windows 8 has no problems. If you MUST migrate from Windows 8 to Server 2008 Hyper-V make sure to NOT use the .vhdx files.

    Converting .VHD & .VHDX:

    1. Open Hyper-V
    2. Right click on the VM that you wish to convert, and select Settings:

      Settings

    3. Select the Hard Drive IDE (usually IDE 0) and then select "Edit":

      Settings: Edit

    4. Select Convert, and then Next

    5. Select the type of VHD you wish to convert to and then Next
    6. Select the type of disk: (Fixed Size, Dynamically Expanding) and then Next
    7. Select the location (NOTE: This does NOT default to last saved location) and then Next
    8. Select Finish

    The use of exporting and importing is the preferred way of migrating VM's between Machines (Server 2008 to Windows 8 in your case).

    To do this follow these steps:

    Exporting:

    1. Open Hyper-V Terminal
    2. Right click on the VM that you want to export and select "Export" (make sure the machine is turned off):

      Export

    3. Browse to the folder that you wish to save the VM:

      Browsing

    4. Then Select Export.

    Hyper-V will then in the background export the VM. This may take a few minutes or even quite a bit of time, depending on the type and size of the VM.

    Importing:

    1. Open Hyper-V Terminal
    2. On the right side, under the "Action" panel select "Import Virtual Machine...":

      Actions Panel

    3. Select Next

    4. Browse to the folder where you saved the VM
    5. Select the Exported VM:

      Selection

    6. Select whether you want to Register, Restore, or Copy the VM

      • Register: If you have a virtual machine were you have already put all of the virtual machine files exactly where you want them, and you just need Hyper-V to start using the virtual machine where it is – this is the option you want to choose.
      • Restore: If your virtual machine files are stored on a file share / removable drive / etc… and you want Hyper-V to move the files to the appropriate location for you, and then register the virtual machine – this is the option for you.
      • Copy: If you have a set of virtual machine files that you want to import multiple times (e.g. you are using them as a template for new virtual machines) this is what you want to choose. This will copy the files to an appropriate location, give the virtual machine a new unique ID, and then register the virtual machine.
    7. Select Finish

    This will import the VM into Hyper-V. Again, this may take some time depending on the type/size of the VM and the options selected above.