> ## Documentation Index
> Fetch the complete documentation index at: https://docs.primeintellect.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Managing Disks

> How to create and manage network-attached storage using the CLI

<Info>Before you start, ensure that you have [API Key](/api-reference/api-keys) with `Disks -> Read and write` permission</Info>

## Overview

Network-attached disks provide persistent storage that can be shared across multiple GPU instances. Disks persist independently from instances, making them ideal for storing datasets, model checkpoints, and other data that needs to survive instance termination.

## Checking Disk Availability

Before creating a disk, check available storage options:

```bash theme={null}
prime availability disks
```

<Tip>
  Filter results using these options:

  * `--regions`: Geographic locations (e.g., united\_states,eu\_north)
  * `--data-center-id`: Specific datacenter (e.g., US-1)
  * `--cloud-id`: Cloud configuration ID
</Tip>

Example with filters:

```bash theme={null}
prime availability disks --regions united_states
```

### Example Output

| ID     | Provider    | Location                | Stock     | Price/Hr/GB  | Max Size (GB) | Is Multinode |
| ------ | ----------- | ----------------------- | --------- | ------------ | ------------- | ------------ |
| c008ad | runpod      | US (US-CA-2)            | Available | \$0.00011111 | 8,192         | Yes          |
| 4e50ab | runpod      | US (US-IL-1)            | Available | \$0.00011111 | 8,192         | Yes          |
| 4eb3b5 | runpod      | US (US-KS-2)            | Available | \$0.00011111 | 8,192         | Yes          |
| 334eaa | runpod      | US (US-MO-1)            | Available | \$0.00011111 | 8,192         | Yes          |
| d9c8e5 | runpod      | US (US-NC-1)            | Available | \$0.00011111 | 8,192         | Yes          |
| 241b41 | runpod      | US (US-TX-3)            | Available | \$0.00011111 | 8,192         | Yes          |
| 7d2232 | runpod      | US (US-WA-1)            | Available | \$0.00011111 | 8,192         | Yes          |
| a869c3 | hyperstack  | US (US-1)               | Available | \$0.00009700 | 100,000       | No           |
| 8121df | crusoecloud | US (us-southcentral1-a) | Available | \$0.00011546 | 8,192         | No           |
| 81cdd2 | crusoecloud | US (us-east1-a)         | Available | \$0.00011546 | 8,192         | No           |
| 2f139f | dc\_roan    | US                      | Available | \$0.00007000 | 8,192         | Yes          |

**Column Descriptions:**

* **ID**: Short identifier for easy disk creation (use with `--id` parameter)
* **Provider**: Storage provider offering the disk (runpod, hyperstack, crusoecloud, dc\_roan)
* **Location**: Country code and datacenter identifier
* **Stock**: Current availability status
* **Price/Hr/GB**: Cost per gigabyte per hour (hourly rate × disk size = total hourly cost)
* **Max Size (GB)**: Maximum disk capacity supported by the provider
* **Is Multinode**: Whether the disk can be attached to multiple instances simultaneously

## Creating a Disk

Create a new persistent disk:

```bash theme={null}
prime disks create --id c008ad --size 500
```

### Available Options

<ResponseField name="--id" type="string" required>
  Short ID from availability disks list
</ResponseField>

<ResponseField name="--size" type="integer" required>
  Disk size in GB (must be within provider's min/max limits)
</ResponseField>

<ResponseField name="--name" type="string" optional>
  Human-friendly name for the disk (auto-generated if not provided)
</ResponseField>

<ResponseField name="--team-id" type="string" optional>
  Team identifier for the disk
</ResponseField>

<ResponseField name="--yes" type="boolean" optional>
  Skip confirmation prompt
</ResponseField>

### Creation

```bash theme={null}
prime disks create \
  --id 7d2232
  --size 500 \
  --name ml-training-data
```

<Note>
  Disks are billed continuously from creation until termination. Make sure to terminate disks when no longer needed.
</Note>

## Listing Your Disks

View all your disks:

```bash theme={null}
prime disks list
```

### Output Options

Display as JSON:

```bash theme={null}
prime disks list --output json
```

With pagination:

```bash theme={null}
prime disks list --limit 50 --offset 0
```

The output shows:

* Disk ID, name, and size
* Current status
* Provider and location
* Creation date and age
* Hourly cost
* Attached pods and clusters

## Getting Disk Details

View detailed information about a specific disk:

```bash theme={null}
prime disks get <disk-id>
```

Display as JSON:

```bash theme={null}
prime disks get <disk-id> --output json
```

The detailed view includes:

* Complete disk configuration
* Current status and pricing
* List of attached pods
* List of attached clusters
* Creation and update timestamps
* Location information

## Updating a Disk

Update the disk name:

```bash theme={null}
prime disks update <disk-id> --name new-disk-name
```

<Note>
  Currently, only the disk name can be updated. Disk size cannot be changed after creation.
</Note>

## Terminating a Disk

Terminate a disk when you no longer need it:

```bash theme={null}
prime disks terminate <disk-id>
```

Skip confirmation prompt:

```bash theme={null}
prime disks terminate <disk-id> --yes
```

<Warning>
  **Disk termination is permanent and irreversible**. All data stored on the disk will be lost. Make sure to backup any important data before terminating a disk.
</Warning>

<Info>
  **Detachment Timing**: After terminating an instance with attached disks, you may need to wait a few moments for the disk to detach before you can terminate it or attach it to another instance.
</Info>

## Disk Status Values

Disks go through different statuses during their lifecycle:

| Status         | Description                                                  |
| -------------- | ------------------------------------------------------------ |
| `PROVISIONING` | Disk is being created                                        |
| `PENDING`      | Disk status is changing                                      |
| `ACTIVE`       | Disk is ready and can be attached to instances or terminated |
| `STOPPED`      | Disk is stopped                                              |
| `ERROR`        | An error occurred during disk operations                     |
| `DELETING`     | Disk is being terminated                                     |
| `TERMINATED`   | Disk has been terminated                                     |
| `UNKNOWN`      | Disk status is unknown (cannot access the current status)    |

## Using Disks with Instances

### Attach Disks During Instance Creation

```bash theme={null}
prime pods create \
  --id 346663 \
  --disks disk-id-1 \
  --disks disk-id-2
```

Learn more in [Provision Instance](/cli-reference/provision-gpu).

### Best Practices

**Location Planning**

* Create disks in the same datacenter where you plan to run GPU instances
* Use `prime availability disks` to find compatible storage options

**Size Planning**

* Start with the size you need - you cannot resize disks after creation
* Consider future growth when selecting disk size
* Remember that larger disks cost more per hour

**Data Management**

* Use descriptive names to identify disk contents
* Regularly backup important data from disks
* Terminate unused disks to avoid unnecessary costs

**Multinode Disks**

* Use multinode-capable disks for distributed training
* Check the `isMultinode` field in availability output
* Ensure your provider supports simultaneous access if needed

## Common Use Cases

### Shared Training Data

Create large disks with your training datasets that can be reused across multiple training runs:

```bash theme={null}
# Create a 1TB disk for training data
prime disks create --size 1000 --name training-datasets --id 7d2232

# Attach to multiple training instances
prime pods create --id gpu-id --disks disk-id-1
```

### Model Checkpoints

Use disks to persist model checkpoints and training artifacts:

```bash theme={null}
# Create disk for checkpoints
prime disks create --size 200 --name model-checkpoints --id 7d2232

# Use with training instance
prime pods create --id gpu-id --disks checkpoint-disk-id
```

### Multi-Node Distributed Training

Use multinode-compatible disks for distributed training:

```bash theme={null}
# Find multinode-capable disk storage
prime availability disks --regions united_states

# Create multinode disk (look for "Yes" in Is Multinode column)
prime disks create --size 500 --name shared-data --id multinode-disk-id

# Attach to multiple nodes
prime pods create --id gpu-id-1 --disks shared-disk-id
prime pods create --id gpu-id-2 --disks shared-disk-id
```

## Related Documentation

* [Check Availability](/cli-reference/check-gpu-availability) - Find available disk options
* [Provision Instance](/cli-reference/provision-gpu) - Attach disks when creating instances
* [API Disk Management](/api-reference/managing-disks) - API reference for disk operations
