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

# Mounting Volumes

> Mount storage volumes to your GPU instances for persistent data access.

export const RuncrateStyles = () => {
  if (typeof document !== 'undefined' && !document.getElementById('runcrate-overrides')) {
    const s = document.createElement('style');
    s.id = 'runcrate-overrides';
    s.textContent = `
      /* Match Runcrate's rounding scale (--radius: 0.75rem) */
      .rounded-sm { border-radius: 0.5rem !important; }   /* 8px */
      .rounded-md { border-radius: 0.625rem !important; } /* 10px */
      .rounded-lg { border-radius: 0.75rem !important; }  /* 12px */
      .rounded-l-sm { border-top-left-radius: 0.5rem !important; border-bottom-left-radius: 0.5rem !important; }
      .rounded-r-sm { border-top-right-radius: 0.5rem !important; border-bottom-right-radius: 0.5rem !important; }
      .rounded-l-md { border-top-left-radius: 0.625rem !important; border-bottom-left-radius: 0.625rem !important; }
      .rounded-r-md { border-top-right-radius: 0.625rem !important; border-bottom-right-radius: 0.625rem !important; }
      .rounded-l-lg { border-top-left-radius: 0.75rem !important; border-bottom-left-radius: 0.75rem !important; }
      .rounded-r-lg { border-top-right-radius: 0.75rem !important; border-bottom-right-radius: 0.75rem !important; }

      /* Cards: never pure white in light mode */
      .card { background-color: #fcfcfc !important; border-radius: 0.75rem !important; }
      html.dark .card { background-color: #141414 !important; }

      /* Docs hero box */
      .rc-hero { background-color: #fcfcfc; border: 1px solid #e0e0e0; }
      html.dark .rc-hero { background-color: #141414; border-color: #242424; }
      html.dark .rc-hero h1 { color: #f5f5f5; }

      /* Runcrate scrollbar — thin, transparent track, hide-until-hover thumb */
      ::-webkit-scrollbar { width: 6px; height: 6px; background-color: transparent; }
      ::-webkit-scrollbar-track { background-color: transparent; }
      ::-webkit-scrollbar-thumb { background-color: rgba(155, 155, 155, 0.5); border-radius: 10px; transition: opacity 0.3s ease; opacity: 0; }
      ::-webkit-scrollbar-thumb:hover { background-color: rgba(155, 155, 155, 0.7); }
      *:hover::-webkit-scrollbar-thumb,
      *:focus::-webkit-scrollbar-thumb,
      *:active::-webkit-scrollbar-thumb { opacity: 1; }
      * { scrollbar-width: thin; scrollbar-color: rgba(155, 155, 155, 0.5) transparent; }
    `;
    document.head.appendChild(s);
  }
  return null;
};

<RuncrateStyles />

Mount a storage volume to your instance during deployment to access persistent data inside your container.

## Mount During Deployment

<Steps>
  <Step title="Start a Deployment">
    Go to **Dashboard → Instances** and click **Deploy Instance**.
  </Step>

  <Step title="Configure Your Instance">
    Select your GPU, image, and other settings as usual.
  </Step>

  <Step title="Select a Storage Volume">
    In the storage section of the deployment form, select an existing volume from the dropdown. The volume will be mounted inside your container.
  </Step>

  <Step title="Deploy">
    Complete the deployment. Your volume will be available once the instance is running.
  </Step>
</Steps>

<Note>
  The volume must be in the same workspace as the instance you are deploying.
</Note>

## Accessing Mounted Storage via SSH

Once your instance is running with a mounted volume, connect via SSH and access your data:

```bash theme={"theme":"github-dark"}
# Connect to your instance
ssh root@<instance-ip> -p <port>

# Your storage volume is mounted and accessible
ls /workspace
```

The exact mount path will be shown in the instance details on the dashboard.

## Example Workflows

<CardGroup cols={2}>
  <Card title="Save Checkpoints" icon="download">
    Write training checkpoints to your mounted volume so they persist after the instance stops.

    ```bash theme={"theme":"github-dark"}
    # In your training script
    model.save("/workspace/checkpoints/epoch_10.pt")
    ```
  </Card>

  <Card title="Download Datasets" icon="download">
    Download large datasets once to your volume and reuse them across multiple instance deployments.

    ```bash theme={"theme":"github-dark"}
    # Download dataset to persistent storage
    wget -P /workspace/datasets/ https://example.com/dataset.tar.gz
    tar -xzf /workspace/datasets/dataset.tar.gz -C /workspace/datasets/
    ```
  </Card>

  <Card title="Clone Repos" icon="git-branch">
    Clone your project repositories to the volume so your code is ready on every new instance.

    ```bash theme={"theme":"github-dark"}
    cd /workspace
    git clone https://github.com/your-org/your-repo.git
    ```
  </Card>

  <Card title="Share Data Across Instances" icon="share">
    Use the same volume across different instances to share model weights or processed data.
  </Card>
</CardGroup>

## Best Practices

<CardGroup cols={2}>
  <Card title="Organize with Directories" icon="folders">
    Create a clear folder structure — `/workspace/datasets/`, `/workspace/checkpoints/`, `/workspace/models/` — to keep your volume organized.
  </Card>

  <Card title="Use Symlinks" icon="link">
    Symlink paths from your project to the storage mount to keep training scripts portable.

    ```bash theme={"theme":"github-dark"}
    ln -s /workspace/datasets /workspace/data
    ```
  </Card>

  <Card title="Clean Up Regularly" icon="eraser">
    Remove outdated checkpoints and temporary files to avoid unnecessary storage costs.
  </Card>

  <Card title="Choose Nearby Regions" icon="world">
    Select a storage region close to your typical instance region for faster read/write performance.
  </Card>
</CardGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Volume not showing in deployment dropdown">
    Make sure the volume is in the same workspace as the instance you are deploying. Switch workspaces using the sidebar selector if needed.
  </Accordion>

  <Accordion title="Cannot access /workspace inside the instance">
    Verify that the volume was selected during deployment. Check the instance details page on the dashboard to confirm the volume is mounted. If not, you will need to redeploy with the volume attached.
  </Accordion>

  <Accordion title="Slow read/write performance">
    This is usually caused by a region mismatch between your storage volume and instance. For best performance, choose the same or nearest region for both.
  </Accordion>

  <Accordion title="Volume shows as busy when trying to delete">
    The volume is still mounted to a running instance. Terminate the instance first, then delete the volume.
  </Accordion>

  <Accordion title="Data missing after redeployment">
    Confirm you mounted the correct volume. If you created a new volume instead of selecting the existing one, your data will be in the original volume.
  </Accordion>
</AccordionGroup>
