/mnt/local. Use this storage for temporary data such as intermediate training artifacts, caches, render outputs, or logs. This page is for workload authors who need fast scratch space close to compute and want to understand how to request it safely on CoreWeave Kubernetes Service (CKS).
Pod container filesystems (the writable layer created by the container runtime) and Kubernetes emptyDir volumes are stored on this NVMe-backed storage by default, through kubelet and containerd directories under /mnt/local. As a result, most workloads benefit from local storage without any additional configuration.
Local storage applies to workloads running on CoreWeave Kubernetes Service (CKS). Data is non-persistent and may be lost when a Pod is deleted or when the Node reboots (for example, during maintenance or failure).
Recommended emptyDir volumes
For most scratch-storage use cases, useemptyDir volumes. emptyDir is the standard Kubernetes mechanism for Node-local scratch space. An emptyDir volume is created when a Pod is scheduled onto a Node and is deleted automatically when the Pod is removed.
On CoreWeave, emptyDir volumes are:
-
Backed by NVMe: Data is stored under the kubelet Pod directories on
/mnt/local, an encrypted NVMe RAID array dedicated to ephemeral workload storage. This provides high throughput and low latency for scratch workloads. -
Better for heavy writes: Writes to an
emptyDirvolume go directly to the underlying filesystem, avoiding the copy-on-write overhead of the container image overlay filesystem. For large or write-heavy scratch data, useemptyDirinstead of writing to arbitrary paths in the container root filesystem.
Set the amount of local ephemeral storage
Size youremptyDir volume to match the scratch space your workload needs. This protects the Node from runaway usage and helps the scheduler place your Pod correctly.
The amount of available local ephemeral storage depends on the Node type. For information on ephemeral storage size per instance type, see GPU instances and CPU-only instances.
For ephemeral storage above 20Gi, include the size in the workload’s resource request. This lets the scheduler place the Pod on a Node with enough capacity.
The following example shows where to set the size limit for an emptyDir volume:
Advanced hostPath volumes
hostPath volumes mount a specific directory on the Node’s filesystem directly into a Pod. In most cases, emptyDir is the right choice for scratch storage. Use hostPath only when you explicitly need to access a specific path on the Node’s filesystem (for example, a legacy application that expects a hard-coded directory under /mnt/local).
The following example shows where to set a hostPath volume:
hostPath:
- Understand the trade-offs:
hostPathbypasses Kubernetes storage isolation and couples your Pod to a particular Node layout. Volumes aren’t cleaned up automatically, and you’re responsible for managing path uniqueness, cleanup, and avoiding conflicts with other workloads. - Remember data is ephemeral: Data on
/mnt/localis encrypted at rest and tied to in-memory keys. When the Node reboots, those keys are discarded and data becomes inaccessible.