Apr 21 2014

VDI Calculator v5.7 Release

Today I am announcing the General Availability of the new VDI Calculator v5.7. This is a small update that introduces support for the Nutanix NX-7000 series and Italian language. There is also introduction of a high memory utilization warning that is automatically triggered when RAM consumption goes beyond the maximum Nutanix appliance limit.

When Nutanix calculation is enabled all non-applicable fields in the calculator are automatically disabled, making it simpler to configure the workload.


Important Notes

  • Java  will request authorization to execute. This will be fixed for a future release.
  • There is a known issue when loading a saved calculation with more than 1 desktop type. In this case you must first open the amount of Desktop Tabs you want to load from the saved file. You do that clicking on (+) and (-).
  • Nutanix calculation is only supported for Horizon View deployments. For the future release I will add XenDesktop and Hyper-V support.


To access the new VDI calculator click here.


This article was first published by Andre Leibovici (@andreleibovici) at myvirtualcloud.net.

Permanent link to this article: http://myvirtualcloud.net/?p=6266

Apr 21 2014

Nutanix 4.0 PowerShell has Full Feature Coverage

One of the big new things for workflows and automation in Nutanix NOS 4.0 are the PowerShell cmdlets to interact with the Nutanix API’s. The POSH library covers the entire extent and functionality of the Nutanix GUI. Basically, anything that can be done via GUI can also be done via REST and can also be done via POSH; including Alerts, Authentication, Backup and Disaster Recovery, Clusters, Containers, Disks, VM and Host, Remote Sites, Multi-Cluster, Storage Pools, SNMP etc.

Nutanix requires Powershell 2.0+ and .NET 4.0 installed on the computer running the commands. The command may be manually executed or via Powershell scripts and pipelining is also supported.

This article is just an introduction to Nutanix Powershell. In future articles I will select and explain specific cmdlets. In the meantime, to get help descriptions just use: Get-Help


The example below demonstrates how to establish a connection to a Nutanix cluster.

Screen Shot 2014-04-13 at 6.00.05 PM


The example below will list all Nutanix containers.

Screen Shot 2014-04-13 at 6.00.43 PM


Below you will find the full list with all cmdlets supported with Nutanix. To generate this list just use the following command: get-module | ForEach-Object {Get-Command -Module $_} | ForEach-Object {$_.Name}

Important: Please note these cmdlts are from the Beta version and they may change for the GA release. Some of these changes will include namespace changes to include {NTNX} in every cmdlet.


Name ModuleName
Acknowledge-Alert AlertsAdministration
Get-AlertMetadata AlertsAdministration
Get-AlertMetadataById AlertsAdministration
Get-Alerts AlertsAdministration
Get-HardwareAlerts AlertsAdministration
Get-StorageAlerts AlertsAdministration
Resolve-Alert AlertsAdministration
Update-AlertMetadata AlertsAdministration
Add-AuthTypes AuthConfigAdministration
Add-DirectoryConfig AuthConfigAdministration
Enable-ClientAuth AuthConfigAdministration
Get-AllDirectoryConfigs AuthConfigAdministration
Get-AuthConfig AuthConfigAdministration
Get-AuthTypes AuthConfigAdministration
Get-ClientAuth AuthConfigAdministration
Get-DirectoryConfig AuthConfigAdministration
Remove-AuthConfig AuthConfigAdministration
Remove-AuthTypes AuthConfigAdministration
Remove-DirectoryConfig AuthConfigAdministration
Set-AuthTypes AuthConfigAdministration
Update-AuthConfig AuthConfigAdministration
Update-DirectoryConfig AuthConfigAdministration
Abort-Replication BackupAndDrAdministration
Add-CronSchedule BackupAndDrAdministration
Add-OutOfBandSchedule BackupAndDrAdministration
Add-ProtectionDomain BackupAndDrAdministration
Add-VmsByNamesToProtectionDoman BackupAndDrAdministration
Clear-CronSchedules BackupAndDrAdministration
Clear-RetentionPolicy BackupAndDrAdministration
Get-AlertsForProtectionDomain BackupAndDrAdministration
Get-AllSnapshots BackupAndDrAdministration
Get-ConsistencyGroups BackupAndDrAdministration
Get-ConsistencyGroupsInPd BackupAndDrAdministration
Get-CronSchedules BackupAndDrAdministration
Get-EventsForProtectionDomain BackupAndDrAdministration
Get-OutOfBandSchedules BackupAndDrAdministration
Get-OutOfBandSchedulesForPd BackupAndDrAdministration
Get-PendingActions BackupAndDrAdministration
Get-PendingActionsForPd BackupAndDrAdministration
Get-PendingReplications BackupAndDrAdministration
Get-PendingReplicationsInPd BackupAndDrAdministration
Get-ProtectionDomainAlerts BackupAndDrAdministration
Get-ProtectionDomainByName BackupAndDrAdministration
Get-ProtectionDomainEvents BackupAndDrAdministration
Get-ProtectionDomains BackupAndDrAdministration
Get-ProtectionDomainStats BackupAndDrAdministration
Get-Replications BackupAndDrAdministration
Get-ReplicationsForPd BackupAndDrAdministration
Get-SnapshotsForPd BackupAndDrAdministration
Get-UnprotectedVms BackupAndDrAdministration
Mark-ProtectionDomainActive BackupAndDrAdministration
Mark-ProtectionDomainForRemoval BackupAndDrAdministration
Mark-ProtectionDomainInactive BackupAndDrAdministration
Migrate-ProtectionDomain BackupAndDrAdministration
Modify-Snapshot BackupAndDrAdministration
Remove-CronSchedule BackupAndDrAdministration
Remove-OutOfBandSchedule BackupAndDrAdministration
Remove-Snapshot BackupAndDrAdministration
Remove-VmsFromProtectionDoman BackupAndDrAdministration
Replace-CronSchedule BackupAndDrAdministration
Restore-Entities BackupAndDrAdministration
Rollback-ProtectionDomain BackupAndDrAdministration
Set-RetentionPolicy BackupAndDrAdministration
Update-Replication BackupAndDrAdministration
Add-EmailAlertContact ClusterAdministration
Add-NameServer ClusterAdministration
Add-NfsSubnetWhitelist ClusterAdministration
Add-NtpServer ClusterAdministration
Add-PublicKey ClusterAdministration
Do-SpotlightSearch ClusterAdministration
Get-ClusterInfo ClusterAdministration
Get-ClusterStats ClusterAdministration
Get-EmailAlertContacts ClusterAdministration
Get-EmailAlertsStatus ClusterAdministration
Get-NameServers ClusterAdministration
Get-NfsSubnetWhitelist ClusterAdministration
Get-NtpServers ClusterAdministration
Get-PublicKey ClusterAdministration
Get-PublicKeys ClusterAdministration
Get-RackableUnit ClusterAdministration
Get-RackableUnits ClusterAdministration
Get-RemoteSupportStatus ClusterAdministration
Get-SmtpServer ClusterAdministration
Get-SmtpServerSecurityModeType ClusterAdministration
Remove-EmailAlertContact ClusterAdministration
Remove-NameServer ClusterAdministration
Remove-NfsSubnetWhitelist ClusterAdministration
Remove-NtpServer ClusterAdministration
Remove-PublicKey ClusterAdministration
Remove-RackableUnit ClusterAdministration
Remove-SmtpServer ClusterAdministration
Send-EmailSmtpServer ClusterAdministration
Update-ClusterParams ClusterAdministration
Update-EmailAlerts ClusterAdministration
Update-RemoteSupport ClusterAdministration
Update-SmtpServer ClusterAdministration
Get-AlertsForCluster ClustersDataQuery
Get-Cluster ClustersDataQuery
Get-ClusterAlerts ClustersDataQuery
Get-ClusterEvents ClustersDataQuery
Get-Clusters ClustersDataQuery
Get-ClusterStats ClustersDataQuery
Get-EventsForClusters ClustersDataQuery
Connect-NutanixCluster Common
Disconnect-NutanixCluster Common
Get-NutanixCluster Common
Get-NutanixCmdletsInfo Common
Add-Container ContainerAdministration
Add-NfsDatastores ContainerAdministration
Get-AlertsForContainer ContainerAdministration
Get-Container ContainerAdministration
Get-ContainerAlerts ContainerAdministration
Get-ContainerEvents ContainerAdministration
Get-Containers ContainerAdministration
Get-ContainerStats ContainerAdministration
Get-EventsForContainer ContainerAdministration
Get-NfsDatastores ContainerAdministration
Get-VDisksInContainer ContainerAdministration
Remove-Container ContainerAdministration
Remove-NfsDatastores ContainerAdministration
Update-Container ContainerAdministration
Begin-RemoveDisk DiskAdministration
Get-AlertsForDisk DiskAdministration
Get-Disk DiskAdministration
Get-DiskAlerts DiskAdministration
Get-DiskEvents DiskAdministration
Get-Disks DiskAdministration
Get-DiskStats DiskAdministration
Get-EventsForDisks DiskAdministration
Get-HealthCheckSummaryForDisks DiskAdministration
Acknowledge-Event EventsAdministration
Get-Events EventsAdministration
Get-HardwareEvents EventsAdministration
Get-StorageEvents EventsAdministration
Get-HealthCheck HealthCheckAdministration
Get-HealthChecks HealthCheckAdministration
Update-HealthCheck HealthCheckAdministration
Get-AlertsForHost HostAdministration
Get-EventsForHost HostAdministration
Get-HealthCheckSummaryForHosts HostAdministration
Get-Host HostAdministration
Get-HostAlerts HostAdministration
Get-HostEvents HostAdministration
Get-Hosts HostAdministration
Get-HostStats HostAdministration
Add-HttpProxy HttpProxyAdministration
Get-HttpProxies HttpProxyAdministration
Get-HttpProxy HttpProxyAdministration
Remove-HttpProxy HttpProxyAdministration
Update-HttpProxy HttpProxyAdministration
Get-AllowanceForFeature LicenseAdministration
Get-Allowances LicenseAdministration
Get-ClusterInfo LicenseAdministration
Get-CurrentLicense LicenseAdministration
Add-ToMulticluster MulticlusterAdministration
Get-AllClusterExternalState MulticlusterAdministration
Get-ClusterDataState MulticlusterAdministration
Get-ClusterExternalDetails MulticlusterAdministration
Get-ClusterExternalState MulticlusterAdministration
Remove-FromMulticluster MulticlusterAdministration
Add-RemoteSite RemoteSiteAdministration
Get-AlertsForRemoteSite RemoteSiteAdministration
Get-AllRemoteSites RemoteSiteAdministration
Get-AllRemoteSiteSnapshots RemoteSiteAdministration
Get-AllSnapshots RemoteSiteAdministration
Get-EventsForRemoteSite RemoteSiteAdministration
Get-PendingReplications RemoteSiteAdministration
Get-PendingReplicationsInRemote RemoteSiteAdministration
Get-RemoteSite RemoteSiteAdministration
Get-RemoteSiteAlerts RemoteSiteAdministration
Get-RemoteSiteEvents RemoteSiteAdministration
Get-RemoteSiteStats RemoteSiteAdministration
Mark-RemoteSiteForRemoval RemoteSiteAdministration
Update-RemoteSite RemoteSiteAdministration
Add-ServiceCenter ServiceCenterAdministration
Get-ServiceCenter ServiceCenterAdministration
Get-ServiceCenters ServiceCenterAdministration
Remove-ServiceCenter ServiceCenterAdministration
Update-ServiceCenter ServiceCenterAdministration
Clear-KerberosSeurityConfig SmbServerAdministration
Get-KerberosSeurityConfig SmbServerAdministration
Update-KerberosSeurityConfig SmbServerAdministration
Add-SnmpTransports SnmpAdministration
Add-SnmpTrap SnmpAdministration
Add-SnmpUser SnmpAdministration
Get-SnmpInfo SnmpAdministration
Get-SnmpStatus SnmpAdministration
Get-SnmpTransports SnmpAdministration
Get-SnmpTrap SnmpAdministration
Get-SnmpTraps SnmpAdministration
Get-SnmpUser SnmpAdministration
Get-SnmpUsers SnmpAdministration
Remove-SnmpTransports SnmpAdministration
Remove-SnmpTrap SnmpAdministration
Remove-SnmpUser SnmpAdministration
Set-SnmpStatus SnmpAdministration
Update-SnmpTrap SnmpAdministration
Update-SnmpUser SnmpAdministration
Add-StoragePool StoragePoolAdministration
Get-AlertsForStoragePool StoragePoolAdministration
Get-EventsForStoragePool StoragePoolAdministration
Get-StoragePool StoragePoolAdministration
Get-StoragePoolAlerts StoragePoolAdministration
Get-StoragePoolEvents StoragePoolAdministration
Get-StoragePools StoragePoolAdministration
Get-StoragePoolStats StoragePoolAdministration
Remove-StoragePool StoragePoolAdministration
Update-StoragePool StoragePoolAdministration
Add-Snapshot VDiskAdministration
Add-VDisk VDiskAdministration
Get-AlertsForVDisk VDiskAdministration
Get-AllSnapshots VDiskAdministration
Get-AllVDisks VDiskAdministration
Get-EventsForVDisk VDiskAdministration
Get-SnapshotByName VDiskAdministration
Get-VDisk VDiskAdministration
Get-VDiskAlerts VDiskAdministration
Get-VDiskEvents VDiskAdministration
Get-VDiskSnapshots VDiskAdministration
Get-VDiskStats VDiskAdministration
Remove-VDisk VDiskAdministration
Update-VDisk VDiskAdministration
Get-VirtualDisk VirtualDiskAdministration
Get-VirtualDisks VirtualDiskAdministration
Get-VirtualDiskStats VirtualDiskAdministration
Get-AlertsForVM VMManagementService
Get-EventsForVM VMManagementService
Get-HealthCheckSummaryForVMs VMManagementService
Get-VDisksInVm VMManagementService
Get-VirtualDisksInVm VMManagementService
Get-VM VMManagementService
Get-VMAlerts VMManagementService
Get-VMEvents VMManagementService
Get-VMs VMManagementService
Get-VMStats VMManagementService
Get-VStoreById VStoreAdministration
Get-VStores VStoreAdministration
Protect-VStore VStoreAdministration
Un-ProtectVStore VStoreAdministration


This article was first published by Andre Leibovici (@andreleibovici) at myvirtualcloud.net

Permanent link to this article: http://myvirtualcloud.net/?p=6201

Apr 16 2014

Nutanix 4.0 Hybrid On-Disk De-Duplication Explained

Nutanix is a distributed scale-out 3-tier platform, utilizing RAM, Flash and HDD. This combination provides access to constantly accessed data in terms of microseconds; instead of milliseconds when exclusively flash devices are used. This is an awesome feature that influence and enhance the end-user experience for any type of workload.

De-duplication allows the sharing of guest VM data on premium storage tiers (RAM and Flash). Performance of guest VMs suffers when active data can no longer fit in the premium tiers. If guest VMs are substantially similar, for example if the Nutanix cluster is used to host numerous Windows desktops, enabling de-duplication substantially improves performance. When used in the appropriate situation, de-duplication makes the effective size of the premium tiers larger so that the active data can fit.

The Nutanix de-duplication engine was designed for scale-out, providing near instantaneous application response times. Nutanix de-duplication is 100% software defined, with no controllers or hardware crutch; and because Nutanix is platform agnostic, this feature is available in whatever hypervizor or VDI solution you chose to work with (today vSphere, Hyper-V and KVM are supported).

Nutanix added inline de-duplication for the performance tier (RAM and Flash) in NOS 3.5. The new NOS 4.0 release is introducing de-duplication for the capacity tier, the extent store, allowing organizations to have greater VM density, more virtual machines per node.

The capacity tier de-duplication is a post-process de-duplication, meaning the common blocks are aggregated according to a curated background process; by default every 6 hours, while de-duplication in the performance tier is inline, meaning it happens as data blocks transverse RAM or Flash. This hybrid de-duplication approach allows Nutanix CVM to be less intrusive and utilize less CPU cycles to detect common data blocks.

The ON-DISK capacity de-duplication must be enabled per Container in NOS 4.0 GUI (picture below), and is mostly recommended for VDI persistent desktops and server workloads. However, it is possible to enable and disable de-duplication per VMDK (vDisk) using NCLI. A next version on PRISM will provide the ability to manage de-duplication per VM or VMDK.

Screen Shot 2014-04-07 at 9.04.24 PM

Every write I/O larger than 64Kb is fingerprinted with US Secure Hash Algorithm 1 (SHA1) using native SHA1 optimizations available on Intel processors, and only a single analogous data block is stored in the Nutanix cluster. In the VDI context this means that persistent desktops can be deployed without the capacity or performance penalties existent with most storage solutions.

The picture below demonstrate the new NOS 4.0 Storage View with On-Disk De-duplication Saving. (Click on the picture to see full size)

Screen Shot 2014-04-13 at 9.33.42 PM

If the VMs or desktops are using Linked-Clones Nutanix VAAI snaps, the de-duplication happens at a different level, where the linked clone track the parent/child hierarchy, and this case no fine grain de-duplication is required.

How it works

The de-duplication happens via curator full-scans. As I mentioned, full scans happen every 6 hours, and the process look for common fingerprinted data to be de-duplicated. The de-duplication process happens at the Stargate component, and during the post-process de-duplication process CVM may present CPU overhead of 10 to 15% range.


During the curated background process Curator scans the metadata as part of its scans for duplicate fingerprints. If a new duplicated SHA1 is found, Stargate will re-write the data in a new location, removing duplicated data. Behind the scenes NDFS will increment refcounts against what has already been de-duplicated, against shared extents.

In NOS 4.0 the default de-duplication uses 16Kb granularity to process SHA1. For this reason NOS 4.0 introduces the concept of two extent group types, 16Kb and 4Kb. De-duplication is done at 16Kb block size, while caching in the performance tier is done at 4Kb extent granularity for better utilization of the caching resources.

In the second part of this de-duplication article I will demonstrate how to track and optimize de-duplication for different types of workloads.

This article was first published by Andre Leibovici (@andreleibovici) at myvirtualcloud.net

Permanent link to this article: http://myvirtualcloud.net/?p=6208

Older posts «