About the DataSets Service
The DataSets facility can enable a variety of applications in which vSphere and a
guest OS share data.
The DataSets facility is a way for vCenter
Server to store and update persistent information in a virtual machine, where the guest
operating system can access it. As part of vSphere Automation APIs, the service
provides operations to manipulate key-value entries in a VM, which can then be used by
applications and agents inside the guest OS. The guest OS can modify some but not all of
this information.
DataSets functionality is available
in vSphere 8.0 and later, and requires the VM to be running virtual hardware version
20.
Whether or not the guest OS is running, the
vSphere management layer can modify DataSets. Persistent information in DataSets may be
any key-value data. Typical uses might be such things as guest deployment status, guest
agent configuration, guest related metadata, or other items. The service is intended for
information that is not expected to change frequently, and never grows beyond a small
number of megabytes (MB).
You can list all the DataSets in a VM.
Specifying a DataSet name and other information, you can create, read, update, or delete
a DataSet.
You can create key-value pairs within a
DataSet, and thereafter list the keys, update their values, or delete key-value pairs.
Keys must be no larger than 4KB, and values no larger than 1MB.
Interoperation with VM actions is supported,
including migration, cloning, and snapshots.
DataSets should be modified only by the
application that creates them. Each application using the service should store its data
in at least one unique DataSet, to avoid conflict with other applications. DataSets are
visible to other applications, both on the management network and within the guest OS.
Therefore sensitive data such as passwords and private keys should not be stored as
plain-text.
All input and output data are represented in
JSON. When you write DataSet programs in Python, Java, or another such language, a
library layer takes care of JSON data communication.