VMware Storage Policy SDK 6.5 Release Notes

Released 15 Nov 2016

Build 4571253 is the 6.5 release of the VMware Storage Policy SDK.

Check frequently for additions and updates to these release notes.

This document contains the following information:

Overview

vSphere 6.5 includes a Storage Policy Server which provides support for virtual machine storage profiles in the vSphere environment. The VMware Storage Policy SDK provides an API that your client application can use to create and manipulate storage policies that define storage requirements for virtual machine files.

For information about how to use the VMware Storage Policy API, see the VMware Storage Policy API Reference and the VMware Storage Policy API Programming Guide.

Distribution Kit

The VMware Storage Policy SDK is distributed as part of the vSphere Management SDK. The vSphere Management SDK is a collection of vSphere SDKs. When you extract the contents of the distribution kit, the VMware Storage Policy SDK is contained in the SDK/spbm sub-directory:

VMware-vSphere-SDK-n.n.n-build_number
    SDK
        eam
        sms-sdk
        spbm
        ssoclient
        vsphere-ws

What's New in This Release

VMware Storage Policy SDK 6.5 introduces the following new features:

  • New "Lines of Services" definition for SPBM policies

    vSphere 6.5 introduces the "Lines of Services" concept as the new way to define SPBM policies. In this scheme, VASA providers are required to explicitly advertise the different types of services they are capable of providing, such as Persistence (Storage), Inspection, Replication, Encryption, Cacheing, and so on. This enables you to create sophisticated policies that combine different service types to meet your applications' requirements.

  • Support for Replication line-of-service policy for provisioning and monitoring

    vSphere 6.5 supports provisioning of virtual machine storage based on replication line-of-service policy as supported by Virtual Volume-enabled storage arrays.

Documentation

For information about the VMware Storage Policy API, see the VMware Storage Policy SDK documentation.

Known Issues

VMware Storage Policy SDK 6.5 is known to have the following issues:

  • Compatibility issues with I/O scripts running against vCenter Server 6.5

    If you run programs or scripts that create or modify storage policies containing I/O filter rules that use the IOFILTERS namespace against vCenter Server 6.5, those programs or scripts fail. I/O filter capabilities are now exposed under the I/O filter's name. Scripts that directly call Storage Policy-Based Management APIs should be updated to identify the I/O filter capabilities correctly.

    Workaround: Modify the scripts to invoke the PbmFetchCapabilitySchema API under PbmProfileManager in order to get the schemas (PbmCapabilityObjectSchema). In the returned schemas, if PbmCapabilityObjectSchema.lineOfService is an instance of PbmVaioDataServiceInfo, then that schema represents the I/O filter capabilities exposed by an I/O filter. There will be one schema exposed per I/O filter. The namespace of this schema will be the same as the I/O filter name.
    Note: While authoring the storage policy, the I/O filter capabilities in the policy should be as per the I/O filter schema exposed by Storage Policy-Based Management.

  • PbmFetchCapabilityMetadata does not validate resourceType

    PbmFetchCapabilityMetadata does not validate the resourceType parameter and returns the result for STORAGE - resourceType instead.

  • Internal server error if tagging description field is empty

    The Tag Category validation currently ignored during PBM queryOvf. Therefore, if the OVF descriptor has an invalid or non existing Tag Category, no errors are added to OvfParamsResult during queryOvf when TagBasedPlacementGroupSection has an invalid TagCategory.

    When a Storage Policy API user uses OVF tryInstantiate API to validate the OVF, no error will be thrown when the Tag Category specified in the OVF is invalid as long as the tag specified in the OVF is valid and is available to the VDC clusters. However when the user actually tries the import such an OVF the actual import will fail with NotFound error.

    Note: When you actually exports to an OVF, both the tag and tag category ID are exported. In most cases, when tryInstantiate is called, either both the values will be valid or both invalid and so an error should be thrown if invalid.

    This is related to an issue with the vSphere Automation SDK that happens because the Tag Category Description field is optional in the vSphere Web Services API, but it is mandatory in the vSphere Automation SDK (this is the new SDK for vCenter services). Because the field is mandatory for vCenter services, if the description field is empty, the vSphere Automation SDK can also return an internal server error that states, "the ‘description’ field of the Category model is empty".

    Workaround: When creating tags, do not leave the description field empty. If you do not have any description, you may add a whitespace character (i.e. space).

  • PbmFetchVendorInfo method parameter resourceType is required

    The VMware Storage Policy API Reference shows the resourceType parameter as optional. Although it is an optional parameter, currently you must specify this parameter.

  • PbmCapabilityProfile property lastUpdatedBy is required

    There is currently a mismatch between the VASA API and Storage Policy API, where the lastUpdateBy field is optional in the VASA API and required in the Storage Policy API. Therefore, it should be treated as mandatory in both APIs.

  • Virtual machine is created despite an invalid storage policy

    Using the vSphere API, you can create a virtual machine with a storage policy that is not in compliance with the associated storage capability. This occurs even if the subprofile constraint property forceProvision is set to false. If you use the vSphere Web Client to create the virtual machine, the operation will fail because the policy is not compliant.

  • Do not use the VirtualMachine.Relocate method to change the storage profile of a virtual machine

    The VirtualMachine.Relocate method allows you to specify a new storage profile for a disk or virtual machine without specifying either a new host or datastore. Virtual Center does not recognize this input as valid and does not change the storage profile. Use the VirtualMachine.Reconfigure function to assign a new storage profile to the virtual disk and or virtual machine.

  • Storage Policy Server does not validate a storage profile correctly

    You can use the Storage Policy API to create a profile with invalid constraints. The Storage Policy Server does not perform a complete validation. As a result, you may be able to create a virtual machine or virtual disk despite an invalid constraint, or the create operation may fail. You can use the vSphere Web Client to create the storage profile. The vSphere Web Client will perform validation correctly.

  • When cloning a virtual machine, use a VirtualMachineRelocateSpec to specify a storage profile

    The VirtualMachineCloneSpec object provides two ways to specify a storage profile.

    1. The location property is a VirtualMachineRelocateSpec object. Use the relocate spec property profile to specify a storage profile.
    2. The config property is a VirtualMachineConfigSpec object. You can use the config spec property vmProfile to specify a storage profile, but this works only if the source virtual machine is not associated with a storage profile.