Follow

Introduction

The INFINIDAT Hardware Provider for Microsoft Windows Volume Shadow Copy Service (VSS), (INFINIDAT VSS Provider) is a plugin to Microsoft VSS framework, implemented as a Windows service, enabling VSS requestors such as backup solutions, to create application-consistent snapshots for volumes stored on the INFINIDAT InfiniBox storage array.
The module uses the Windows Server VSS framework for its management interface, and InfiniBox as the storage system on which snapshots are stored and maintained.
Host PowerToolsTM and Host PowerTools VSS ProviderTM are trademarks of INFINIDAT.

Revision

Last updated on: September 1,2019

Guide supported versions

This guide applies to INFINIDAT VSS Hardware Provider 3.0 and later.

Terminology

InfiniBox

The INFINIDAT storage system that the host connects to.

Volume

A set of disk blocks presented to an operating environment as a range of consecutively numbered logical blocks with disk-like storage and I/O semantics.

LUN

Logical Unit Number. An identifier of the volume.

Shadow copy

A technology that allows taking a snapshot of a file or a volume while they are in use.

VSS Requestor

The backup application that requests the actual creation of shadow copies (as well as importing, breaking and deleting them).
For example: Windows Backup, Symantec BackupExec, etc.

VSS Writer

The component that guaranties that the shadow copy is applicationconsistent. Microsoft Windows, as well as other application vendors provide VSS Writers for a variety of purposes (file system, active directory, registry, performance counters, etc.).

VSS Provider

The component that manages the shadow copy.

Supported Platforms

For INFINIDAT VSS Hardware Provider supported platform see the INFINIDAT software compatibility page.

Prerequisites

IP connectivity between the host and the InfiniBox Management.

Installation requirements

Host requirements:

  • Disk space - 100MB
  • RAM - 100MB

Download 

The VSS Provider installation package is available at: http://repo.infinidat.com

Installing the VSS Provider

Step 1

Download the latest VSS Provider installation package. See Download site for the installation package.

Step 2

Follow the MSI Installation wizard.

Configuring the VSS Provider

INFINIDAT VSS Provider needs to have access to InfiniBox. By default, INFINIDAT VSS Provider uses the default admin user and its default password.

Creating a configuration file

To override the user and password, you need to create a configuration file and write to it. 1. Create a new directory: C:\Program Files\Infinidat\Infinidat VSS\config

  1. Create a file within this directory: infinivss.conf.
  2. Write to this file using the commands that are described below.
The VSS Provider executables are located on: C:\Program Files\Infinidat\Infinidat VSS\bin

Configuring the user name and password

The following commands set user and password to all of the InfiniBox systems.

Get the default user name

This command prints the default user name.

infivsscfg \[options\] get default username 

Set the default user name

This command sets the default user name.

infivsscfg \[options\] set default username <USERNAME>

Set default password

This command sets the default password.

If not passed with the command, infivsscfg will prompt for it. infivsscfg \[options\] set default password \[PASSWORD\]

Set default credentials

This command sets the default user name and password in one command.

If the password is not passed with the command, infivsscfg will prompt for it. infivsscfg \[options\] set default credentials <USERNAME> \[PASSWORD\]

Configuring system-specific user and password

Get the user name of a system

This command prints the username of a specific InfiniBox system (that is identified by its serial number).

If no system-specific user name is defined, the command prints the default user name.

infivsscfg \[options\] get system username <SERIAL>

Set the user name for a system

This command sets the user name of a specific system.

infivsscfg \[options\] set system username <SERIAL> <USERNAME>

Set the password for a system

This command sets the default password. If not passed with the command, infivsscfg will prompt for it.

infivsscfg \[options\] set default password <SERIAL> \[PASSWORD\]

Set the credentials for a system

This command sets the user name and password for a system in one command.

If the password is not passed with the command, infivsscfg will prompt for it.

infivsscfg \[options\] set default credentials <SERIAL> <USERNAME> \[PASSWORD\]

Configuring the way snapshots are deleted

INFINIDAT VSS Provider can either delete or keep snapshots that have no clones associated with them. The default behavior is to keep them (not delete empty snapshots).
Just like with user names and passwords, you can set a default behavior or a system-specific behavior.

Get the default behavior

Prints *True* for a default behavior that deletes empty snapshots.

Prints *False* for a default behavior that keeps the snapshots.

infivsscfg \[options\] get default delete_empty_snapshots

Set the default behavior

Set the default behavior according to the argument passed.

infivsscfg \[options\] set default delete_empty_snapshots (true|false)

Get the default behavior for a specific system

Prints *True* for a default behavior that deletes empty snapshots.

Prints *False* for a default behavior that keeps the snapshots.

infivsscfg \[options\] get default delete_empty_snapshots <SERIAL>

Set the default behavior for a specific system

Set the default behavior according to the argument passed.

infivsscfg \[options\] set default delete_empty_snapshots <SERIAL> (true|false)

Configuring the path to the log file

The log file records all of the VSS Provider operations on InfiniBox. It is used by INFINIDAT support to debug problems encountered by the customer.

Get the log path

Get the path to the InfiniBox log file.

infivsscfg \[options\] get log path

Set the log path

Set the location for the log file.

infivsscfg \[options\] set log path <PATH>

Other commands and options

Get the location of the configuration file

infivsscfg \[options\] get config path

Get help on the configuration command

infivsscfg –h

Or 

infivsscfg –-help

Snapshoting volumes under Active-Active replication

INFINIDAT VSS provider version 5.0 or later supports volumes that are undergoing Active-Active replication and can take a snapshot on one or both of the volume's Active-Active peers.

  • Creating a snapshot on both Active-Active peers is only possible when both peers are mapped to the host.

Configuring snapshot creation for a specific peer

Set the "preferred" system on which the snapshot will be created. 

  • It is possible to configure only one preferred system at a time. 
infivsscfg set preferred-aa-system <SERIAL>

In order to clear the previous configuration:

infivsscfg clear preferred-aa-system

Configuring snapshot for both peers

If a preferred system is not configured or the configured system is not one of the systems on which the Active-Active peers reside, a snapshot will be created on both peers.

Limitations

  • The VSS resync (snapshot restore) is not supported if the parent volume is undergoing replication. 
    • This VSS command use the InfiniBox 'snapshot refresh' operation.
  • A snapshot will not be taken while the replica is in a "LAGGING" state.
    • If a snapshot is required for both peers, and one of the peers is in a "LAGGING" state, the command will fail for both peers.

VSS snapshot creation

The VSS Requestor sends a request to the VSS Writer to make sure that the snapshots are consistent with the application database.

  • Snapshots taken by VSS Hardware Providers are not shown in the Previous version tab.
  • INFINIDAT VSS Provider offloads the snapshot to the storage layer (InfiniBox).

Example

Provision a volume using infinihost

$ infinihost volume provision 1gb --yes  
Creating the new 1 GB volume "volume1" ... OK  
Waiting for volume discovery, this might take a while ... OK  
Creating filesystem ... OK Mounting filesystem ... OK  
========================================================
All done. 

The volume volume1 is represented by PHYSICALDRIVE1, and it is mounted to E:\.

Creating a snapshot for the previously provisioned volume 

Using DiskShadow:

  • To see the Provider ID assigned to the INFINIDAT Hardware Provider run 'list providers'.
  • Set context persistent – required for the snapshot to be persistent across restarts and for offloading the snapshots to InfiniBox.
  • Set option – the "transportable" option refrains the snapshot from being immediately available to the host, so it is portable and can be moved to another host.
    This setting is optional.
  • Set metadata – specifies a cab file with a name for the snapshots, other than the auto-generated name.
    This setting is optional.
  • Add volume – the command would fail if the INFINIDAT Hardware Provider s not registered or the volume is not an INFINIDAT volume.
    • Alias (optional) – this option sets a name for the snapshot.
DISKSHADOW>
begin backup
set context persistent 
set option transportable
set metadata c:\mysnap.cab 
add volume e: provider {C6D19A0F-8288-4620-A956-F6193413CBAD} 
create

Alias VSS_SHADOW_1 for shadow ID {42e1ffb5-b0c4-46d3-a333-262fc3c1a968} set as environment variable. 
Alias VSS_SHADOW_SET for shadow set ID {3abb5ff7-b751-4ac7a7ae-78c0fc50e357} set as environment variable.


end backup

Viewing the snapshot in InfiniBox

admin@box-ci12> vol.snap.query –detailed 
NAME snap-vss-539-{3ABB5FF7-B751-4AC7-A7AE-78C0F 
THIN yes 
SIZE 1.00 GB 
USED 30.34 MB 
ALLOCATED 524.28 KB 
POOL pool_6deaf4757a3911e 
MAPPED no 
CREATED AT 2014-12-02 10:00:00  

Restoring the volume from the snapshot

load metadata mysnap.cab 
add shadow %VSS_SHADOW_1% e: 
resync 

These commands can be entered in any DiskShadow instance, whether on the same host in a new session or on different hosts.
The VSS_SHADOW parameter of the add shadow command is the snapshot ID.
In this example, we use an alias which is always generated when creating a snapshot. This alias is loaded from the cab file as well. The alias name is autogenerated but it can be specified when creating the snapshot by adding alias <name> to the add volume command (see step 2 above):

add volume e: provider {C6D19A0F-8288-4620-A956F6193413CBAD} alias my_alias

Alternatively, this parameter can be the GUID of the shadow copy. The second parameter (% d:) must be a mount point of the same volume for which the snapshot was created.
This command restores the volume and does not map the snapshot volume to the host. In case of a volumes mismatch, the command fails, saying the target volume is not a parent of the snapshot volume.

DISKSHADOW> load metadata mysnap.cab 

Alias VSS_SHADOW_1 for value {42e1ffb5-b0c4-46d3-a333-262fc3c1a968} set as an environment variable. 
Alias VSS_SHADOW_SET for value {3abb5ff7-b751-4ac7-a7ae-78c0fc50e357} set as an environment variable. 

DISKSHADOW> add shadow %VSS_SHADOW_1% e: 
-> %VSS_SHADOW_1% = {42e1ffb5-b0c4-46d3-a333-262fc3c1a968} 

DISKSHADOW> resync 
The resynchronization operation failed. Error: VSS_E_PROVIDER_VETO

Exposing the snapshot

In the following example, the snapshot will be mounted as read-only.

load metadata mysnap.cab
import
expose %VSS_SHADOW_1% z:

To unmount the snapshot

unexpose z:

Troubleshooting

Overcoming an issue during resync 

Whenever there is a problem during volume Resync (restoring a snapshot), the volume will be taken offline by the host, and its mount point (D:\) will no longer be available.

To bring the volume back online:

  1. Open Disk Management (diskmgmt.msc) 
  2. Right-click on the volume, and bring it online.

Failures during snapshot creation 

Try to take the snapshot again while adding the 'nowriters' param to the 'set context' command. 

  • When using 'nowriters' param the snapshot is not guaranteed to be consistent. 
  • Example for taking a snapshot on drive "e:\"
DISKSHADOW>
set context persistent nowriters
set option transportable
set metadata c:\mysnap.cab 
add volume e: provider {C6D19A0F-8288-4620-A956-F6193413CBAD} alias Example_snap_e
set verbose on
create

Fetching logs

When an error occurs in the Provider, the exception is written in the Windows event log.

  • Fetch the log from "Windows Logs->Application".
Was this article helpful?
0 out of 0 found this helpful

0 out of 0 found this helpful

Comments