DATASTORE: Datastore
A shared storage volume presented to a hypervisor cluster, holding VM disk files, templates, and ISO images.
DATASTORE definition shipped with DemandFlow. Administrators can add, remove, rename, or re-type fields, change which ones are required, and alter the layout from the Definitions screen in Settings. Your tenant's current schema may differ from what is shown here. To read the current definition at any time, GET the DEFINITION object whose id matches DATASTORE.Entity properties
| Property | Value |
|---|---|
| Entity code | DATASTORE |
| Display name | Datastore |
| Plural | Datastores |
| Level | 320 |
Use cases
DATASTORE represents the shared storage layer in a virtualisation environment. VMFS volumes, NFS exports, iSCSI LUNs, Ceph RBD pools, or vSAN datastores. It is a child of HYPCLUSTER via comboKey (SUB|HYPC). The capacity section distinguishes between raw capacity and provisioned capacity (which can exceed raw when thin provisioning is in use). The storageArray field links back to a COMPINV record for the physical SAN/NAS device, connecting virtual storage to physical infrastructure. Performance metrics track IOPS and latency for capacity planning. The Connected VMs panel shows which VMs have disks on this datastore via the vmDatastore field on COMPINV.
Fields
Datastore Information
| Field | Type | Required | Notes |
|---|---|---|---|
name | text | Yes | Datastore Name. |
description | text (multi-line) | Description. | |
cluster | reference → HYPCLUSTER | Cluster. | |
datastoreType | enum | Yes | Valid ids: 1 (VMFS), 2 (NFS), 3 (iSCSI), 4 (Fibre Channel), 5 (vSAN), 6 (Ceph RBD), 7 (GlusterFS), 8 (Local), 9 (SMB/CIFS), 10 (Other). |
status | enum | Yes | Valid ids: 1 (Active), 2 (Maintenance), 3 (Degraded), 4 (Offline), 5 (Decommissioned). |
vmfsVersion | text | e.g. VMFS 6, NFSv4.1 |
Capacity
| Field | Type | Required | Notes |
|---|---|---|---|
capacityGB | number | Total Capacity (GB). | |
usedGB | number | Used (GB). Read only. | |
freeGB | number | Free (GB). Read only. | |
provisionedGB | number | Total provisioned. may exceed capacity with thin provisioning Read only. | |
overcommitRatio | number | Provisioned / Capacity Read only. | |
vmCount | number | VM Count. Read only. | |
thinProvisioningEnabled | boolean | Thin Provisioning. |
Performance
| Field | Type | Required | Notes |
|---|---|---|---|
iopsRead | number | Read IOPS. Read only. | |
iopsWrite | number | Write IOPS. Read only. | |
latencyReadMs | number | Read Latency (ms). Read only. | |
latencyWriteMs | number | Write Latency (ms). Read only. | |
throughputReadMBs | number | Read Throughput (MB/s). Read only. | |
throughputWriteMBs | number | Write Throughput (MB/s). Read only. |
Backend Storage
| Field | Type | Required | Notes |
|---|---|---|---|
storageArray | reference → COMPINV | Physical SAN/NAS device backing this datastore | |
lunId | text | LUN / Volume ID. | |
multipathing | enum | Valid ids: 1 (Fixed), 2 (Round Robin), 3 (Most Recently Used), 4 (ALUA). | |
pathCount | number | Active Paths. | |
encrypted | boolean | Encryption at Rest. |
Activity timeline panel attached.
Relationships
- Lookup:
cluster(reference →HYPCLUSTER). - Lookup:
storageArray(reference →COMPINV). - Related list:
COMPINV, related list.
Creating a Datastore via the API
POST /v1/objects
Authorization: Bearer <your-pat>
Content-Type: application/json
{
"entity": "DATASTORE",
"level": 320,
"comboKey": "SUB:<your-sub-id>|ENT:",
"name": "Example name",
"datastoreType": "1",
"status": "1",
"description": "Example value"
}
Listing Datastores records
GET /v1/entities/DATASTORE/SUB:<your-sub-id>