# Microsoft Hyper-V

## General

Microsoft Hyper-V is the only hypervisor that requires the installation of an agent. The process is very simple, the rest of the configuration is similar to other suppliers. With RCT (also known as CBT in other virtualization platforms) both full and incremental backups are supported for this hypervisor.

For Microsoft Windows Server 2016 or later versions, the resilient change tracking (RCT) feature is used by default to back up virtual machines (VMs).\
RCT makes it possible to detect changes that happened at specific points in time as opposed to scanning the entire disk for any possible changes. Using RCT, it is possible to accelerate incremental backups by as much as 50% (compared to technologies available in Windows Server 2012).\
The changes are tracked at the data block level. Only blocks that have changed since the last backup operation are candidates for the next incremental backup.

RCT reduces the risk of loss of information by storing bitmaps using a more resilient strategy. RCT implemented in Hyper-V accomplishes this by generating three different bitmaps – one in the memory, and the other two on the disk. Disk backups are available when a power outage or migration occurs. The usual memory backup is granular and accessible when VM is running. To be specific, the RCT file is utilized when the server is running normally. However, when VM is moved to a different host or a power failure occurs, the bitmap stored in memory is no longer available. In such cases, the Modified Region Table (MRT) file is utilized. The MRT file is more granular and contains all information on changes that were committed to the disk. The files are attached to VHD (X) and may be moved along with the machine. In effect, RCT not just reduces backup time but also offers greater resilience through enhanced block tracking mechanisms when compared to most other backup solutions designed for virtual environments.

![](/files/AmKCLvvB6SDXaZzBzNDW)

![](/files/hqWOn9FEUSoHfPa9VAKj)

![](/files/Aaw09VcljvbvR0JZLKQt)

**Note:**

* Agent installation requires .NET Framework 4.7.2 or higher.
* Agent requires Visual C++ Redistributable 2013 and 2015 when using Dell EMC Data Domain as backup destination
* Storware Backup & Recovery supports backup for Hyper-V 2016 and newer versions (also non-GUI).
* VM backup operations with RCT require the Hyper-V VM to be Version 6.2 or later.
* Hyper-V 2016 does not support the disk exclusion feature during export operation (because of WMI Framework version 14393). Therefore, the disk of the virtual machine will be cloned to the export directory and deleted later in the execution.
* Instead of using accounts for authentication, in the case of Hyper-V, we only use the password provided during the agent installation. So for the username in the Storware Backup & Recovery dashboard, you can use even a non-existent name.
* This platform requires a Storware Backup & Recovery license issued after September 2021.
* Quiesced snapshot requires a virtual machine to support production checkpoints mechanism. The type of checkpoints can be defined in the virtual machine settings.

![](/files/zm6hiyDGT3ba5HTZTIzT)

## Example

How to start a backup for the Hyper-V platform:

* From our repository <https://repo.storware.eu/storware/addons/hyperv/> download:
  * **HyperV-Agent-Installer.zip**
* Put installation files to Hyper-v host.
* Run installation from **setup.exe** file.
* Click **Next** to proceed with the installation.

![](/files/sDqAWBucuiwpDXYZDRBD)

* Type path to install Hyper-V Agent. And accept it by clicking **Next**.

![](/files/r7D3bijgvGY95UmVZHWX)

* Provide a password for secure communication (you will need it to add Hyper-V to Storware Backup & Recovery). And accept it by clicking **Next**.

![](/files/Ze75ote2b0YzqMoZj5SN)

* Click **Next** to start the installation.
* If Windows UAC prompts you about installation, accept it by choosing **Yes**.
* Click **Finish** to end installation.

### Backup of single hypervisors

* Go to Storware Backup & Recovery WebUI Virtual Environments Infrastructure Hypervisors click on button **Create**.
* In the "Add New Hypervisor" window fill the following fields:
  * Host address in URL form eg. "<https://10.40.1.150>"
  * Password - use the same as what you set during the installation agent process.
  * A number of disk export threads - parameters that can help with data transfer speed. We recommend starting backups with the default value of 2 and making any changes based on the observation of the environment.

![](/files/9WgeUMl2zUNZ2oSIizaA)

* Click **Save** to finish adding your Hyper-v host. Repeat all steps for all Hyper-v hosts.

### Back up multiple hypervisors using SCVMM or Failover Cluster

If you are using System Center Virtual Machine Manager (SCVMM), go to the **Hypervisor Managers** tab and click on button **Create**.

In the "Add New Hypervisor" window fill the following fields:

* Choose type: Microsoft Hyper-V
* Select infrastructure type
* SCVMM Host address in URL form eg. "<https://10.40.1.150>"
* Password (use the same as what you set during the installation Agent process).

To use SCVMM, the agent has to be installed on a machine on which SCVMM is installed. The agent service needs to be run as a user who has access to the SCVMM console in order to be able to utilize SCVMM by Storware Backup & Recovery.

![](/files/Tl1xsz0zdLJaOFIPIzfo)

After synchronization, all hosts in the **Hypervisors** tab will be added automatically. If the Hypervisors Agents passwords are different from SCVMM, you can change them in the Hypervisors tab for each agent.

## Instant Restore

To use an instant restore feature, backup destination from which VM will be restored, has to be of a synthetic type.

### Environment with Active Directory

In order to be able to use instant restore the Storware Backup & Recovery nodes have to be added to a domain.

### Prerequisites

* Fully qualified domain name (e.g. stor.lab)
* NetBios domain name ( e.g. STORLAB)
* Domain Administrator Account
* Installed packages:
  * samba-winbind
  * samba

### Configuration

1. Check if DNS records point to an Active Directory DNS server and check if the search domain is set correctly

   ```
   [root@vpro-node ~]# cat /etc/resolv.conf
   #Generated by NetworkManager
   search aw.lab
   nameserver 10.30.2.120
   nameserver 10.30.2.121
   ```

If it is not configured, you need to either manually set it in a resolv.conf file or change it using your network management software e.g. for NetworkManager use **nmtui**.

1. Configure kerberos in /etc/krb5.conf. Example configuration is below.

   ```
   [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log

   [libdefaults]
       default_realm = stor.lab
       dns_lookup_realm = false
       dns_lookup_kdc = true
   ```
2. Make sure Your time is set correctly if not configure it either manually using **timedatectl** or use [ntpd](https://wiki.samba.org/index.php/Time_Synchronisation#Configuring_Time_Synchronisation_on_a_Unix_Domain_Member)
3. Make sure correct hostname is set (not localhost)

   ```
   [root@vpro-node ~]# cat /etc/hostname
   vpro-node
   ```
4. Check if hostname has correct ip address assigned to it.

   ```
   [root@vpro-node ~]# cat /etc/hosts
   127.0.0.1 localhost.localdomain localhost
   10.30.2.112     vpro-node.stor.lab       vpro-node
   ```
5. Configure samba. Make sure to enter correct domain name in the **realm** field and correct NetBios name in the **workgroup** field and **idmap** fields. Set also the correct network interface on which samba will be exposed in the **interfaces** parameter.

   ```
   [global]
     bind interfaces only = Yes
     dedicated keytab file = /etc/krb5.keytab
     disable spoolss = Yes
     interfaces = lo eth0
     kerberos method = secrets and keytab
     load printers = No
     min domain uid = 0
     printcap name = /dev/null
     realm = stor.lab
     security = ADS
     server max protocol = SMB2_02
     template homedir = /home/%U
     template shell = /bin/bash
     username map = /usr/local/samba/etc/user.map
     winbind enum groups = Yes
     winbind enum users = Yes
     winbind nss info = rfc2307
     winbind refresh tickets = Yes
     winbind use default domain = Yes
     workgroup = STORLAB
     idmap config * : range = 2000-9999
     idmap config storlab:backend = ad
     idmap config storlab:schema_mode = rfc2307
     idmap config storlab:range = 10000-999999
     idmap config storlab:unix_nss_info = yes
     idmap config * : backend = tdb
     guest ok = Yes
     map acl inherit = Yes
     printing = bsd
     vfs objects = acl_xattr
   ```
6. Create a user.map file in the path configured in the **username map** parameter of smb.conf file with the following content

   ```
   !root = STROLAB\Administrator
   !vprotect = *
   ```
7. Join the domain using the following command, You will be prompted for the password so type in the domain administrator's password:

   ```
   [root@vpro-node ~]# net ads join -U administrator
   Password for [STORLAB\administrator]:
   Using short domain name -- STORLAB
   Joined 'VPRO-NODE' to dns domain 'stor.lab'
   ```
8. Append the winbind entry to the following databases in the /etc/nsswitch.conf file

   ```
   passwd: files winbind
   group:  files winbind
   ```
9. Enable and start winbind service

   ```
   systemctl enable winbind --now
   ```

### Environment without Active Directory

Create samba configuration in /etc/samba/smb.conf file with the following entries

```
[global]
    guest account = vprotect
    security = USER
    server max protocol = SMB2_02
    idmap config * : backend = tdb
```

## Using instant restore from web UI

Go to the Instances page and select the **restore** button next to the virtual machine which you want to restore. From the context menu, select **Instant Restore**

![](/files/2IfBS6nVDBAOTU8STOjX)

In the window that appears you can change the default options and then perform **Restore**.

![](/files/yxpXdlgV9xGPDpt1keFA)

## Live storage migration from web UI

You can enable the live storage migration option during instant restore. It will automatically start the disks migration to the chosen destination directory (or directories if the option "Customize disk layout" is active) after the VM is restored and powered on. You can also run the Live Storage Migration on a previously mounted share after the Instant Restore.

![](/files/K1Buw6QhVMqUiL1VOu7Z)

## Moving the VM after instant restore from the Hyper-V Manager

Optionally, you can use a Hyper-v feature to move the storage of a virtual machine while it is up and running. To do this right click on a virtual machine and select move

![](/files/z7RrzzSdsnghwlVKBaaN)

Next choose the **Move the virtual machine's storage** option and click **Next**.

![](/files/h25Jsm58Kb3m3V5GRsYl)

In the next screen choose the option **Move all of the virtual machine's data to a single location** and click **Next**

![](/files/TB3YmRkqugJzo1qkCNRw)

Now choose the location to which virtual machine's files will be moved by clicking browse. After You select a correct location click next.

![](/files/OOK9WiJ3wRejkcmjK5pF)

In the summary screen check if all parameters are correct.

![](/files/Hq7naUzLJkTR2Q6m38aw)

After checking, click finish. The progress bar will appear indicating the move process progress. While a virtual machine is being moved You can safely use without any interruptions.

## Quiet Agent installation

You can use Hyper-V Agent installer parameters to install it without user interaction

* Agent password parameter: `PASS=YourPassword`
* Transport Method (choose one of three options) `TRANSPORT=[HTTP|HTTPS|BOTH]`

Complete installation command

```
Hyper-V-Agent-Installer.msi /qn PASS=YourPassword TRANSPORT=HTTPS
```

{% hint style="info" %}
**Note:** **/qn** are standard msi parameters and stand for: **q** - quiet installation **n** - no user interface
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.storware.eu/70/protecting-virtual-machines/virtual-machines/microsoft-hyper-v.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
