---
layout: docs
page_title: ephemeral_disk Block - Job Specification
description: |-
  The "ephemeral_disk" block describes the ephemeral disk requirements of the
  group. Ephemeral disks can be marked as sticky and support live data
  migrations.
---

# `ephemeral_disk` Block

<Placement groups={['job', 'group', 'ephemeral_disk']} />

The `ephemeral_disk` block describes the ephemeral disk requirements of the
group. Ephemeral disks can be marked as sticky and support live data migrations.
All tasks in this group will share the same ephemeral disk.

```hcl
job "docs" {
  group "example" {
    ephemeral_disk {
      migrate = true
      size    = 500
      sticky  = true
    }
  }
}
```

The ephemeral disk can be referenced under `alloc/data/`. More information can
be found in the [filesystem internals][].

Each job's logs will be written to ephemeral disk space. See the [logs
documentation][] for more information.

## `ephemeral_disk` Parameters

- `migrate` `(bool: false)` - This specifies that the Nomad client should make a
  best-effort attempt to migrate the data from the previous allocation, even if
  the previous allocation was on another client. Enabling `migrate`
  automatically enables `sticky` as well. During data migration, the task will
  block starting until the data migration has completed. Migration is atomic and
  any partially migrated data will be removed if an error is encountered. Note
  that data migration will not take place if a client garbage collects a failed
  allocation or if the allocation has been intentionally stopped via `nomad
  alloc stop`, because the original allocation has already been removed.

- `size` `(int: 300)` - Specifies the size of the ephemeral disk in MB. The
  current Nomad ephemeral storage implementation does not enforce this limit;
  however, it is used during job placement.

- `sticky` `(bool: false)` - Specifies that Nomad should make a best-effort
  attempt to place the updated allocation on the same machine. This will move
  the `local/` and `alloc/data` directories to the new allocation.

## `ephemeral_disk` Examples

The following examples only show the `ephemeral_disk` blocks. Remember that the
`ephemeral_disk` block is only valid in the placements listed above.

### Sticky Volumes

This example shows enabling sticky volumes with Nomad using ephemeral disks:

```hcl
ephemeral_disk {
  sticky = true
}
```

[resources]: /nomad/docs/job-specification/resources 'Nomad resources Job Specification'
[filesystem internals]: /nomad/docs/concepts/filesystem#templates-artifacts-and-dispatch-payloads 'Filesystem internals documentation'
[logs documentation]: /nomad/docs/job-specification/logs 'Nomad logs Job Specification'
