StarWind Virtual SAN® for vSphere 2-Node Hyperconverged Scenario – deduplication and compression configuration

Introduction to StarWind Virtual SAN for vSphere

StarWind Virtual SAN for vSphere comes as a prepackaged Linux virtual machine to be installed as a VM on vSphere. It creates a VM-centric and high performing storage pool for a VMware сluster.
This guide describes the deployment and configuration process of the StarWind Virtual SAN with VMware vSphere.

StarWind Virtual SAN for vSphere VM requirements

Prior to installing StarWind Virtual SAN Virtual Machines, please make sure that the system meets the requirements, which are available via the following link: https://www.starwindsoftware.com/system-requirements

Recommended RAID settings for HDD and SSD disks:
https://knowledgebase.starwindsoftware.com/guidance/recommended-raid-settings-for-hdd-and-ssd-disks/

Please read StarWind Virtual SAN Best Practices document for additional information: https://www.starwindsoftware.com/resource-library/starwind-virtual-san-best-practices

NOTE: Enabling deduplication may impact the resultant storage performance. Please make sure that storage performance meets the requirements for the intended use.

Additional StarWind Virtual SAN VM requirements for deduplication:

Each VDO volume has the following additional memory requirements:

  • 370 MB plus an additional 268 MB per each 1 TB of physical storage
  • 250 MB per each 1 TB of physical storage, if deduplication is enabled (UDS index)

Example: 370MB + 4 * 268MB +4 * 250MB = 2442 MB RAM for 4 TB underlaying usable physical storage. We recommend assigning StarWind Virtual SAN VM at least 8 GB of RAM (4GB for VM + 4 GB for VDO).

A single VDO volume can be configured to use up to 256 TB of physical storage. All-flash arrays or NVMe drives are strictly recommended as underlying storage when using a combination of StarWind VSAN for vSphere with VDO.

As a general rule, certain storage layers should be placed under VDO and others on top of VDO:

  • Under VDO: Hardware and software RAID (LVM or mdraid).
  • On top of VDO: StarWind Virtual SAN Thick-Provisioned devices (stand-alone and HA).

VDO volume is a thinly provisioned block device, which can run out of space on underlying storage device. It is recommended to use physical storage, which can be extended in future (MD RAID, LVM).

Pre-Configuring the Servers

The diagram below illustrates the network and storage configuration of the solution:

StarWind VSAN

1. ESXi hypervisor should be installed on each host.

2. StarWind Virtual SAN for vSphere VM should be deployed on each  ESXi  host from an OVF template, downloaded on this page: https://www.starwindsoftware.com/release-notes-build-vsan-for-vmware-vsphere

3. The network interfaces on each node for Synchronization and iSCSI/StarWind heartbeat interfaces should be in different subnets and connected directly according to the network diagram above. Here, the 172.16.10.x subnet is used for the iSCSI/StarWind heartbeat traffic, while the 172.16.20.x subnet is used for the Synchronization traffic.

NOTE: Do not use ISCSI/Heartbeat and Synchronization channels over the same physical link. Synchronization and iSCSI/Heartbeat links and can be connected either via redundant switches or directly between the nodes.

vCenter Server can be deployed separately on another host or as VCSA on StarWind VSAN highly-available storage, created in this guide.
StarWind HyperConverged Appliance is a turnkey hyper-converged hardware platform fitted into a small two-node footprint. You don’t need anything else to build a budget-friendly new IT infrastructure or upgrade an existing one. All your systems will be “babysitted” by StarWind 24/7/365, troubleshooting any concerns without your involvement. Everything’s operated through a neat web UI. We’ll also migrate your workloads at no extra cost.
Dramatically decrease your CapEx, OpEx, and IT management costs, while visibly increasing return on investment (ROI) with hyperconvergence for ROBO, SMB & Edge from StarWind. Hyperconverged Appliance from StarWind HCA Datasheet

Installing StarWind Virtual SAN for vSphere

1. Download zip archive that contains StarWind Virtual SAN for vSphere.
https://www.starwindsoftware.com/starwind-virtual-san#download
2. Extract virtual machine files.
3. Deploy a virtual machine to the vSphere. Right-click on the host and select “Deploy OVF template” from a drop-down menu.
StarWind VSAN for vSphere
4. In the first step of the wizard, point to the location of the OVF template. Select VM files and click Next.
Installing StarWind Virtual SAN for vSphere
5. Specify the name and location for the StarWind Virtual SAN VM.
Installing StarWind Virtual SAN for vSphere
6. Select a resource for the StarWind Virtual SAN VM.
Installing StarWind Virtual SAN for vSphere
7. Review the information about the VM.
8. Select the storage for the VM.
Installing StarWind Virtual SAN for vSphere
9. Select networks for the VM.
Installing StarWind Virtual SAN for vSphere
10. Click Finish to start the deployment process.

11. Add additional network interfaces for iSCSI and SYNC (can be configured for redundancy or 3-way replica, if required)

StarWind VSAN for vSphere

12. Repeat all the steps from this section on the other ESXi hosts

NOTE: When using StarWind with the synchronous replication feature inside of a Virtual Machine, it is recommended not to make backups and/or snapshots of the Virtual Machine with the StarWind VSAN service installed, as this could pause the StarWind Virtual Machine. Pausing the Virtual Machines while the StarWind VSAN service in under load may lead to split-brain issues in synchronous replication devices, thus to data corruption.

Preparing Environment for StarWind VSAN Deployment

Configuring Networks

Configure network interfaces on each node to make sure that Synchronization and iSCSI/StarWind heartbeat interfaces are in different subnets and connected physically according to the network diagram above. All actions below should be applied to each ESXi server.

NOTE: Virtual Machine Port Group should be created for both iSCSI/ StarWind Heartbeat and the Synchronization vSwitches. VMKernel port should be created only for iSCSI traffic. Static IP addresses should be assigned to VMKernel ports.

NOTE: It is recommended to set MTU to 9000 on vSwitches and VMKernel ports for iSCSI and Synchronization traffic. Additionally, vMotion can be enabled on VMKernel ports.

1. Using VMware ESXi web console, create two standard  vSwitches: one for the iSCSI/ StarWind Heartbeat channel (vSwitch1) and the other one for the Synchronization channel (vSwitch2).

Create vSwitch

2. Create a VMKernel port for the iSCSI/ StarWind Heartbeat channel.

Add VMKernel

3. Add a Virtual Machine Port Groups on the vSwitch for iSCSI traffic (vSwtich1) and on the vSwitch for Synchronization traffic (vSwitch2).

Add port group
4. Repeat steps 1-3 for any other links intended for Synchronization and iSCSI/Heartbeat traffic on ESXi hosts.

Configuring StarWind Virtual SAN VM settings

By default, the StarWind Virtual SAN virtual machine receives an IP address automatically via DHCP. It is recommended to create a DHCP reservation and set a static IP address for this VM. In order to access StarWind Virtual SAN VM from the local network, the virtual machine must have access to the network. In case there is no DHCP server, the connection to the VM can be established using the VMware console and static IP address can be configured manually.

1. Open a web browser and enter the IP address of the VM, which it had received via DHCP (or had it assigned manually), and log in to StarWind Virtual SAN for vSphere using the following default credentials:

Username: user
Password: rds123RDS
NOTE:  Make sure to tick Reuse my password for privileged tasks check box.Login_screen2. After the successful login, on the left sidebar, click Accounts.
3. Select a user and click Set Password.
Set_password
4.
 On the left sidebar, click Networking.
Networking

Here, the Management IP address of the StarWind Virtual SAN Virtual Machine, as well as IP addresses for iSCSI and Synchronization networks can be configured.
In case the Network interface is inactive, click on the interface, turn it on, and set it to “Connect automatically“.Networking_auto

5. Click on Automatic (DHCP) to set the IP address (DNS and gateway – for Management).
Networking_IPv4_Settings

6. The result should look like on the picture below:Networking_result
NOTE: It is recommended to set MTU to 9000 on interfaces, dedicated for iSCSI and Synchronization traffic. Change Automatic to 9000, if required.Networking_MTU

6. Alternatively, log in to the VM via the VMware console and assign a static IP address by editing the configuration file of the interface located by the following path: /etc/sysconfig/network-scripts
Networking_manual

7. Open the file, corresponding to the Management interface  using text editor, for example:
sudo nano /etc/sysconfig/network-scripts/ifcfg-ens192
8. Edit the file:
Change the line BOOTPROTO=dhcp to: BOOTPROTO=static

Add the IP settings needed to the file:
IPADDR=192.168.12.10
NETMASK=255.255.255.0
GATEWAY=192.168.12.1
DNS1=192.168.1.1
By default, the Management link should have an ens192 interface name. The configuration file should look as follows:
Networking_edit
9.
Restart interface using the following cmdlet: sudo ifdown ens192 sudo ifup ens192 or restart the VM.
10. Change the Host Name from the System tab by clicking on it:
Host_Name
11. Change System time and NTP settings if required:
System_Time
12.  Repeat the steps above on each StarWind VSAN VM.

Configuring StarWind Management Console

1. Install StarWind Management Console on a workstation with Windows OS (Windows 7 or higher, Windows Server 2008 R2 and higher) using the installator available here.
NOTE: StarWind Management Console and PowerShell Management Library components are required.
2. Select the appropriate option to apply the StarWind License key.
Once the appropriate license key has been received, it should be applied to StarWind Virtual SAN service via Management Console or PowerShell.
3. Open StarWind Management Console and click Add Server.
Add Server4. Type the IP address of the StarWind Virtual SAN in the pop-up window and click OK.
Add new StarWind server5. Select the server and click Connect.
6. Click Apply Key… on the pop-up window.

Apply key7. Select Load license from file and click the Load button.
8. Select the appropriate license key.
As an alternative, PowerShell can be used. Open StarWind InstallLicense.ps1 script with PowerShell ISE as administrator. It can be found here:
C:\Program Files\StarWind Software\StarWind\StarWindX\Samples\powershell\InstallLicense.ps1
Type the IP address of StarWind Virtual SAN VM and credentials of StarWind Virtual SAN service (defaults login: root, password: starwind).
Add the path to the license key.
Configuring StarWind Management Console9. After the license key is applied, StarWind devices can be created.
NOTE: In order to manage StarWind Virtual SAN service (e.g. create ImageFile devices, VTL devices, etc.), StarWind Management Console can be used.

Configuring StarWind VMs Startup/Shutdown

1. Setup the VMs startup policy on both ESXi hosts from Manage -> System tab in the ESXi web console. In the appeared window, check Yes to enable the option and choose the stop action as Shut down. Click Save to proceed.VM_Auto_Start

2. To configure a VM autostart, right-click on the VM, navigate to Autostart and click Enable.

VM_Auto_Start_Enable3. Complete the actions above on StarWind VM located on all ESXi hosts.
4. Start the virtual machines on all ESXi hosts.

Configuring Storage

StarWind Virtual SAN for vSphere can work on top of Hardware RAID or Linux Software RAID (MDADM) inside of the Virtual Machine.
Please select the required option:

Configuring StarWind Storage on Top of Hardware RAID

1. Add a new virtual disk to the StarWind Virtual SAN VM. Make sure it is Thick Provisioned Eager Zeroed. Virtual Disk should be located on the datastore provided by hardware RAID.Add a new virtual disk to the StarWind Virtual SAN VM

NOTE: Alternatively, the disk can be added to StarWind VSAN VM as RDM. The link to VMware documentation is below:
https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-4236E44E-E11F-4EDD-8CC0-12BA664BB811.html

NOTE: If a separate RAID controller is available, it can be used as dedicated storage for StarWind VM, and RAID controller can be added to StarWind VM as a PCI device. In this case RAID volume will be available as a virtual disk in the Drives section in the Web console. Follow the instructions in the section below on how to add RAID controller as PCI device to StarWind VM.

2. Login to StarWind VSAN VM web console and find in the Storage section under Drives the Virtual Disk that was recently added and choose it.

Add a new virtual disk to the StarWind Virtual SAN VM_2
3. The added disk does not have any partitions and filesystem. Press on Format button to create the partition and format it. Virtual Disk

4. Create the XFS partition. Specify the name and erase option. The mount point should be as following: /mnt/%yourdiskname% . Click Format.

StarWind VSAN

5. On the storage page of the disk, navigate to the Filesystem tab. Click Mount.

Filesystem tab

6. Connect to StarWind Virtual SAN from the StarWind Management Console. Click Yes.

StarWind Management Console 7. Select the disk which was recently mounted.

select the mounted disk

Configuring StarWind Storage on top of Software RAID

Make sure that the prerequisites for deploying Software RAID with StarWind Virtual SAN are met:

  • The ESXi hosts have all the drives connected through HBA or RAID controller in HBA mode.
  • StarWind Virtual SAN for vSphere is installed on the ESXi server.
  • StarWind Virtual SAN must be installed on a separate storage device available to the ESXi host (e.g. SSD, HDD etc.).
  • HBA or RAID controller will be added via a DirectPath I/O passthrough device to a StarWind VM.
  • vCenter is installed in the environment to manage ESXi hosts.

PCI Device Configuration
1. Login to the vCenter via vSphere Client. Select the host where StarWind Virtual SAN VM is installed.
vCenter via vSphere Client

Select the host2. Go to the Configure tab. In the Hardware section, select PCI Devices. Click Edit.
select PCI Devices3. Locate the HBA/RAID Controller of the ESXi host. Check the box on the appropriate PCI device. Click OK.
PCI device4. The device will appear in the Direct I/O PCI Devices Available to VMs table in the Available (pending) status.
Direct I/O PCI Devices Available to VMs table5. Reboot ESXi host. After the reboot, the status changes to Available.
ESXi host6. Right-click on the StarWind Virtual SAN VM. Select Edit Settings.
Edit Settings7. Click ADD NEW DEVICE. Select PCI Device.
ADD NEW DEVICE8. Add HBA/RAID Controller to the VM. Reserve memory for the StarWind Virtual Machine. Click OK.
9. Boot StarWind Virtual SAN VM.
10. Repeat steps 1-8 for all hosts where StarWind Virtual SAN for vSphere is deployed.
11. Login to StarWind Virtual SAN VM via IP. The default credentials:
Login: user
Password: rds123RDS
NOTE: 
Please make sure that the default password is changed.

StarWind Virtual SAN VM12. Go to the Storage page. The Drives section shows the drives connected to HBA/RAID Controller (if available).
Drives section13. Click “+” in the RAID Devices section to create Software RAID. (In the current example, RAID 10 will be created with 4 HDD drives). StarWind recommendations of RAID configurations depending on the number of disks, chunk size, and array level are shown in the table below:

RAID Level Chunk size for HDD Arrays Chunk size for SSD Arrays

0

Disk quantity * 4Kb

Disk quantity * 8Kb

5

(Disk quantity – 1) * 4Kb

(Disk quantity – 1) * 8Kb

6

(Disk quantity – 2) * 4Kb

(Disk quantity – 2) * 8Kb

10 (Disk quantity * 4Kb)/2 (Disk quantity * 8Kb)/2

StarWind Software RAID recommended settings can be found here:
https://knowledgebase.starwindsoftware.com/guidance/recommended-raid-settings-for-hdd-and-ssd-disks/

14.
 Select the drives to add to the array.
Select the drives to add to the array15. After the synchronization is finished, find the RAID array created.
NOTE: The disk created will not have any partitions and file system.  Click Format.
RAID array created16. Create the XFS partition. Mount point should be as follows: /mnt/%yourdiskname% . Select the Custom mounting option and type noatime. Click Format.
Mount point17. On the storage page of the disk, navigate to the Filesystem tab. Click Mount.
Filesystem tab18. Connect to StarWind Virtual SAN from StarWind Management Console or from Web Console. Click Yes.
StarWind Management Console 19. Select the disk recently mounted.
mounted disk

Configuring deduplication

To configure VDO please choose a disk, where to place vdo device, logical size (recommended up to x3 of physical storage) and index memory size.

NOTE: It is recommended to use a sparse UDS index for all production use cases. This is an extremely efficient indexing data structure, requiring approximately one-tenth of a byte of DRAM per block in its deduplication window. On disk, it requires approximately 72 bytes of disk space per block. The minimum configuration of this index uses 256 MB of DRAM and approximately 25 GB of space on disk. To use this configuration, specify the —-sparseIndex=enabled —-indexMem=0.25 options to the vdo create command. This configuration results in a deduplication window of 2.5 TB (meaning it will remember a history of 2.5 TB). For most use cases, a deduplication window of 2.5 TB is appropriate for deduplicating storage pools that are up to 10 TB in size.

1. Open Terminal and paste the following command with your parameters:

2. Click Create.

Wait until creation is finished. And find new VDO devices in the corresponding section.

Hint: Created VDO device will not have any partitions and filesystem.

StarWindVDO

3. Click Format

StarWond VDO

4. Create XFS partition. Mount point should be as following: /mnt/%yourdiskname%

Add following custom mounting options to keep mount persistent across reboots: defaults,discard,x-systemd.requires=vdo.service  and click Format

5. On the storage page of the disk, navigate to the Filesystem tab. Click Mount

StarWind VDO

 

Provisioning Storage with StarWind VSAN

Creating StarWind HA devices

1. Open StarWind Management Console and click on the Add Device (advanced) button.

2. Select Hard disk device as the type of device to be created. Click Next to continue.

3. Select Virtual disk. Click Next to continue.

4. Specify virtual disk Name, Location, and Size.
StarWind VSAN

NOTE: Image file device and HA device can be extended later according to the steps in KB article:

How to extend Image File or High Availability device

5. Specify virtual disk options.

NOTE: Sector size should be 512 bytes in case of using ESXi.

6. Define the RAM caching policy and specify the cache size (in the corresponding units) and click Next to continue.

NOTE: The recommended RAM cache size is 1 GB per 1 TB of storage.

7. Define the Flash caching policy and the cache size. Click Next to continue.

StarWind VSAN

NOTE: The recommended Flash cache size is 10% of the Device size.

8. Specify Target Parameters and select the Allow multiple concurrent iSCSI connections checkbox to enable several clients to connect simultaneously to the target.

9. Click Create to add a new device and attach it to the target.
10. Click Create to add a new device and attach it to the target.

11. Click Finish to close the wizard.

12. Right-click on the recently created device and select Replication Manager from the shortcut menu.

13. Click Add replica.

14. Select Synchronous “Two-Way” Replication as a replication mode.

15. Specify Partner Hostname or IP Address and Port Number. Click Next.

16. Choose Create new Partner Device and click Next.

17. Choose the device Location and specify the target name if required. Otherwise, the name is generated automatically in accordance with the specified target alias.
StarWind VSAN
18. Click Change Network Settings.

19. Specify the interfaces for Synchronization and Heartbeat channels. Click OK. Then click Next.

20. Choose Synchronize from existing Device


21. Click Create Replica.

Click Finish to close the wizard.
22. The successfully added devices appear in the StarWind Management Console.

23. Follow the similar procedure to create other virtual disks that will be used as datastores.

Preparing Datastores

Adding Discover Portals

1. To connect the previously created devices to the ESXi host, click on the Storage -> Adapters -> Configure iSCSI and choose the Enabled option to enable Software iSCSI storage adapter.

Discover Portal

2. In the Configure iSCSI window, under Dynamic Targets, click on the Add dynamic target button to specify iSCSI interfaces.

Add port

3. Enter the iSCSI IP addresses of all StarWind nodes for the iSCSI traffic.

Add dynamic target ESXI

Add dynamic target ESXI

Confirm the actions by pressing Save configuration.

4. The result should look like in the image below.

Configure iSCSI

5. Click on the Rescan button to rescan storage.

Rescan

6. Now, the previously created StarWind devices are visible to the system.

7. Repeat all the steps from this section on the other ESXi host, specifying corresponding IP addresses for the iSCSI subnet.

Creating Datastores

1. Open the Storage tab on one of your hosts and click on New Datastore.
Select creation type

2. Specify the Datastore name, select the previously discovered StarWind device, and click Next.
Select device

3. Enter datastore size and click Next.
Enter datastore size

4. Verify the settings and click Finish.
5. Add another Datastore (DS2) in the same way but select the second device for the second datastore.
6. Verify that your storages (DS1, DS2) are connected to both hosts. Otherwise, rescan the storage adapter.
storages


NOTE: 
Path Selection Policy changing for Datastores from Most Recently Used (VMware) to Round Robin (VMware) is added into the Rescan Script, and this action is performed automatically. For checking and changing this parameter manually, the hosts should be connected to vCenter.
Multipathing configuration can be checked only from vCenter. To check it, click the Configure button, choose the Storage Devices tab, select the device, and click the Edit Multipathing button.

StarWind edit multipathStarWind Edit multipath

Configuring an Automatic Storage Rescan

1. Open the Terminal page.
2. Edit file /opt/StarWind/StarWindVSA/drive_c/StarWind/hba_rescan.ps1 with the following command:
sudo nano /opt/StarWind/StarWindVSA/drive_c/StarWind/hba_rescan.ps1
Modify_Rescan_Script
3. In the appropriate lines, specify the IP address and login credentials of the ESXi host (see NOTE below) on which the current StarWind VM is stored and running:
$ESXiHost = “IP address”
$ESXiUser = “Login”
$ESXiPassword = “Password”

NOTE:  In some cases the rescan script can be changed and storage rescan added for another ESXi host. Appropriate lines should be duplicated and changed with properly edited variables if required.

NOTE: In some cases, it makes sense to create a separate ESXi user for storage rescans. To create the user, please follow the steps below:

Log in to ESXi with the VMware Host Client. Click Manage, and under Security & users tab, in the Users section click Add user button. In the appeared window, enter a user name, and a password.
ESXi_Add_User
Create a new Role, under Roles section, and click New Role button.
Type a name for the new role. Select privileges for the role and click OK.
The following privileges might be assigned: Host – Inventory, Config, Local Cim, and Global – Settings.
ESXi_Add_Role

Assign permission to the storage rescan user for an ESXi host  – right-click Host in the VMware Host Client inventory and click Permissions. In the appeared window click Add user.
Click the arrow next to the Select a user text box and select the user that you want to assign a role to. Click the arrow next to the Select a role text box and select a role from the list.
(Optional) Select Propagate to all children or Add as group. Click Add user and click Close.

ESXi_Manage_Permissions_Add_User_for_Host

Make sure that rescan script is working and execute it from the VM: sudo /opt/StarWind/StarWindVSA/drive_c/StarWind/hba_rescan.ps1

4. Repeat all steps from this section on the other ESXi hosts.

Performance Tweaks

1. Click on the Configuration tab on all of the ESXi hosts and choose Advanced Settings.

Advanced Settings
2. Select Disk and change the Disk.DiskMaxIOSize parameter to 512.
Disk.DiskMaxIOSize

3. To optimize  performance change I/O scheduler options according to the article below:
https://knowledgebase.starwindsoftware.com/guidance/starwind-vsan-for-vsphere-changing-linux-i-o-scheduler-to-optimize-storage-performance/ 

NOTE: Changing Disk.DiskMaxIOSize to 512 might cause startup issues with Windows-based VMs, located on the datastore where specific ESX builds are installed. If the issue with VMs start appears, leave this parameter as default or update the ESXi host to the next available build.

NOTE: To provide high availability for clustered VMs, deploy vCenter and add ESXi hosts to the cluster.
Click on Cluster -> Configure -> Edit and check the turn on vSphere HA option if it’s licensed.
vSphere HA option

Save your time finding all the answers to your questions in one place!
Have a question? Doubt something? Or just want to know an independent opinion?
StarWind Forum exists for you to “trust and verify” any issue already discussed and solved