# Azure Stack HCI

## General

Azure Stack HCI requires agent installation on each cluster node. 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.

**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.

## Agent installation

**Agent installation is required on each Azure Stack HCI node**

* From our repository <http://repo.storware.eu/storware/addons/hyperv/> download:
  * **HyperV-Agent-Installer**
* Put installation files to Azure Stack HCI node.
* Run installation from **setup.exe** file.
* Click **Next** to proceed with the installation.

![](https://3557270342-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2FOE03dnjP5f5aF1buzl%2Fuploads%2FiOYXSoKQe3BqITAJd5e2%2Fprotecting_ve-virtual_machines-hyperv_2.png?alt=media\&token=46e8236a-2712-4d98-81ac-c700587e10fe)

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

![](https://3557270342-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2FOE03dnjP5f5aF1buzl%2Fuploads%2FEqcD3GGrY4jlXpkoBfDL%2Fprotecting_ve-virtual_machines-hyperv_3.png?alt=media\&token=c06b3a60-6686-4c9a-ad74-8be6aab693ab)

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

![](https://3557270342-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2FOE03dnjP5f5aF1buzl%2Fuploads%2FAzliUMZFpbrfYC1NSKOi%2Fprotecting_ve-virtual_machines-hyperv_5.png?alt=media\&token=e9a26ad7-cf22-420e-8aab-c0d2ae93e7a3)

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

## Adding a hypervisor manager

* Go to Storware Backup & Recovery WebUI **Virtual Environments** -> **Infrastructure** -> **Hypervisor Managers** and click on button **Create**.
* In the "Add New Hypervisor" window fill the following fields:

  * Choose type: **Microsoft Hyper-V / Azure Stack HCI**
  * Infrastructure - select **Failover Cluster**
  * Host address in URL form eg. **<https://10.40.0.61>**
  * 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.

  ![](https://3557270342-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2FOE03dnjP5f5aF1buzl%2Fuploads%2Fgit-blob-c64a98478a7ef0eaa5beb22552be53b44d82c48a%2Fprotecting-virtual-environments_virtual-machines_hyper-v_1.png?alt=media)

## 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**

![](https://3557270342-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2FOE03dnjP5f5aF1buzl%2Fuploads%2Fgit-blob-c27c00c1a29c5d758d7186e01aca2fb127539c73%2Fprotecting-virtual-environments_virtual-machines_hyper-v_instant-restore.1.png?alt=media)

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

![](https://3557270342-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2FOE03dnjP5f5aF1buzl%2Fuploads%2Fgit-blob-8c4330e7dce1a96a15ad80b194d99d6a8cb7bfe0%2Fprotecting-virtual-environments_virtual-machines_hyper-v_instant-restore.2.png?alt=media)

## 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 %}
