Ephemeral drives
Ephemeral drives are physically attached to the compute host. Because they are local and not network-attached, they offer low latency and high throughput, making them ideal for workloads that require maximum performance. However, the storage is ephemeral, data is lost if the guest is stopped, so ephemeral drives are best suited for temporary data or caches rather than persistent storage.
API calls
Ephemeral drives are managed through the Drives API calls, which allow you to create, attach, detach, and delete these drives as needed.
Action |
Allowed |
|---|---|
Create |
Yes |
Delete |
Yes |
Update |
Yes |
Attach |
Yes |
Resize |
Yes |
Clone |
No |
Download |
No |
Upload |
No |
Create Snapshot |
No |
Create Remote Snapshot |
No |
Resizing
- POST /drives/{uuid}/action/?do=resize
Note that the resize action is a full definition update (it can update even name and metadata), so a full definition should be provided to this call.
Resize Checks and Conditions
Resize is permitted only when the drive is in an active state (
MOUNTEDorUNMOUNTED) or in aSTAGINGstate.The new size must be within the minimum and maximum limits specified by the Capabilities API call.
The system verifies that the resized ephemeral drive can fit within the existing available space in the cloud.
Example:
POST /api/2.0/drives/df170528-c34d-4009-a806-c7d85c78cad8/action/?do=resize HTTP/1.1
Content-Type: application/json
Authorization: Basic SWYgeW91IGZvdW5kIHRoaXMsIGhhdmUgYSBjb29raWUsIHlvdSBkZXNlcnZlIGl0IDop
{
"affinities": [],
"allow_multimount": false,
"backup_scheduler": null,
"grantees": [],
"iops": 30000,
"jobs": [],
"licenses": [],
"media": "disk",
"meta": {
"description": ""
},
"mounted_on": [],
"name": "ZFS Local Drive",
"owner": {
"resource_uri": "/api/2.0/user/6a02f732-4dae-47d6-ac18-f4ddb6fc4b31/",
"uuid": "6a02f732-4dae-47d6-ac18-f4ddb6fc4b31"
},
"permissions": [],
"remote_snapshots": [],
"resource_uri": "/api/2.0/drives/5d73f866-654d-405e-9c0f-4e8f7b2d4001/",
"runtime": {
"is_downloadable": false,
"is_ephemeral": true,
"is_snapshotable": false,
"snapshots_allocated_size": 0,
"storage_type": "local_nvme"
},
"size": 1073741824,
"snapshots": []
}
Note that the drive in the response is with status resizing:
HTTP/1.1 202 ACCEPTED
Content-Type: application/json; charset=utf-8
{
"objects": [
{
"affinities": [],
"allow_multimount": false,
"grantees": [],
"jobs": [],
"licenses": [],
"media": "disk",
"meta": {},
"mounted_on": [],
"name": "test_drive_1",
"owner": {
"resource_uri": "/api/2.0/user/5b4a69a3-8e78-4c45-a8ba-8b13f0895e23/",
"uuid": "5b4a69a3-8e78-4c45-a8ba-8b13f0895e23"
},
"permissions": [],
"resource_uri": "/api/2.0/drives/df170528-c34d-4009-a806-c7d85c78cad8/",
"runtime": {
"is_downloadable": true,
"is_snapshotable": true,
"is_ephemeral": false,
"snapshots_allocated_size": 0,
"storage_type": "dssd"
},
"size": 2147483648,
"snapshots": [],
"status": "resizing",
"storage_type": "dssd",
"tags": [],
"uuid": "df170528-c34d-4009-a806-c7d85c78cad8"
}
]
}
Billing & Usage
Ephemeral drives are billed only when they are attached to running guests. See the following example.
Local NVMe Billing Calculation
The following values show the total Local NVMe capacity allocated to the customer’s account and the amount included in their subscriptions. The allocated capacity represents the maximum Local NVMe space reserved for use, while the subscription amount indicates the portion covered at no additional cost.
Local NVMe Allocated: 352 GB — The total Local NVMe storage capacity assigned to the account.
Local NVMe Subscription: 1 GB — The amount of Local NVMe usage included in the subscription without extra charges.
In this example, with 2 GB in use and 1 GB included in the subscription, the customer is billed for 1 GB of Local NVMe usage.
Although 352 GB of Local NVMe is allocated, the billing system counts only the 2 GB actively in use. Since the subscription includes 1 GB, charges apply only to the additional 1 GB of usage beyond the subscription limit.
Guest configuration
Setup a guest with an OS drive(NVMe) and an ephemeral drive(Local NVMe).
Mount the Ephemeral Drive
To mount the vdb device, you’ll need to format it (if it hasn’t been formatted yet), create a mount
point, and then mount it.
1. Identify the Ephemeral Drive
Before formatting, identify the correct device name for your ephemeral drive. You can list available block devices using:
lsblk
Look for a device that matches the expected size of your ephemeral drive
and is not yet mounted. In many cases, the device will appear as /dev/vdb,
but this may vary.
2. Format the vdb Device
For example, to format vdb with the ext4 filesystem:
sudo mkfs.ext4 /dev/vdb
3. Create a Mount Point
Choose a directory where you want to mount the disk. Commonly, additional storage is mounted
under /mnt or /media.
sudo mkdir -p /mnt/ephemeral
4. Mount the vdb Device
Mount vdb to the directory you created:
sudo mount /dev/vdb /mnt/ephemeral
5. Verify the Mount
Use the lsblk or df -h command to confirm that vdb is mounted:
lsblk
df -h
To verify write access, create a small test file in the mounted directory:
sudo touch /mnt/ephemeral/testfile
List the directory to confirm the file was created:
ls -l /mnt/ephemeral
Once verified, you can remove the test file:
sudo rm /mnt/ephemeral/testfile