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

# External Storage

For users who prefer full control over their data or have existing storage infrastructures, External Storage provides the flexibility to integrate cloud or on-premises storage solutions directly into the VESSL platform. This allows users to connect their preferred storage without migrating data into VESSL.

## Integrate External Storage

<Note>In YAML, external storage volumes are specified as `volume://{storage-name}/{volume-name}`. </Note>

### 1. Cloud object storage

VESSL supports AWS S3 and Google Cloud Storage as external cloud storage options. Follow the steps below to integrate cloud storage:

<Steps>
  <Step title="Integrate cloud credentials">
    Integrating AWS S3 or Google Cloud Storage is straightforward. Navigate to **Organization settings > Integrations** and add your credentials.

    <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/6aBA2WrBVZlPiuT8/images/storages/external-storage/aws_integration.png?fit=max&auto=format&n=6aBA2WrBVZlPiuT8&q=85&s=700c1e051e2daf8b97e28fe9336e2229" width="1433" height="729" data-path="images/storages/external-storage/aws_integration.png" />

    * [How to integrate AWS credentials](https://docs.vessl.ai/guides/organization/integrations#aws-credentials)
    * [How to integrate GCP credentials](https://docs.vessl.ai/guides/organization/integrations#gcp)
  </Step>

  <Step title="Integrate external storage">
    After adding credentials, integrate your external storage using the bucket path. Click `Test connection` to validate the credentials, and then click `Integrate`.

    <Frame>
      <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/6aBA2WrBVZlPiuT8/images/storages/external-storage/integrate_external_storage.png?fit=max&auto=format&n=6aBA2WrBVZlPiuT8&q=85&s=09db0ac1103203440b1615f96c7cdb3c" width="1440" height="813" data-path="images/storages/external-storage/integrate_external_storage.png" />
    </Frame>
  </Step>

  <Step title="Create a new volume">
    Create a volume in the external storage for use in workloads.

    <Warning>You cannot create files or folders directly in External Storage volumes. These must be managed at the source.</Warning>

    <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/6aBA2WrBVZlPiuT8/images/storages/external-storage/create_volume.png?fit=max&auto=format&n=6aBA2WrBVZlPiuT8&q=85&s=59725c1237bfbb08dcd8563c215f40a2" width="1440" height="813" data-path="images/storages/external-storage/create_volume.png" />
  </Step>

  <Step title="Import the volume to run">
    When creating a run in the web console, create a directory (e.g., `/dataset`) and import the volume from External Storage as follows:

    <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/6aBA2WrBVZlPiuT8/images/storages/external-storage/import_volume.png?fit=max&auto=format&n=6aBA2WrBVZlPiuT8&q=85&s=699466a7e4b3580a33c5b1f89d8faaa1" width="1440" height="813" data-path="images/storages/external-storage/import_volume.png" />

    Alternatively, you can manually specify the volume in the YAML editor:

    ```yaml theme={null}
    import:
        /dataset: volume://{storage-name}/{volume-name}
    ```
  </Step>

  <Step title="Export a workload volume to storage">
    To export your workload's data to External Storage, create a new directory (e.g., `/output`), and export the data as follows:

    <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/6aBA2WrBVZlPiuT8/images/storages/external-storage/export_volume.png?fit=max&auto=format&n=6aBA2WrBVZlPiuT8&q=85&s=1b9a0d941e57ca20888005aab18bafa8" width="1440" height="813" data-path="images/storages/external-storage/export_volume.png" />

    Alternatively, you can manually specify the export in the YAML editor:

    ```yaml theme={null}
     export:
         /output: volume://{storage-name}/
    ```
  </Step>

  <Step title="Locate the exported volume">
    Navigate to **Run > Files** to find he file tree of the executed run.

    <Frame>
      <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/6aBA2WrBVZlPiuT8/images/storages/external-storage/run_files.png?fit=max&auto=format&n=6aBA2WrBVZlPiuT8&q=85&s=fe8406ac9277928ea530c84562b5d227" width="1440" height="813" data-path="images/storages/external-storage/run_files.png" />
    </Frame>

    Follow the export volume link to access the data in External Storage.
  </Step>
</Steps>

### 2. On-Premises storage

VESSL supports NFS (Network File System) and host path volumes for users who maintain on-premises storage solutions. You can integrate and use data from on-premises storage by following these steps:

<Steps>
  <Step title="Integrate external storage">
    <Note>On-premises storage is bound to a specific cluster.</Note>
    Integrate external storage with the NFS or host path options. Click the`Integrate` button.

    <Frame>
      <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/6aBA2WrBVZlPiuT8/images/storages/external-storage/nfs_create.png?fit=max&auto=format&n=6aBA2WrBVZlPiuT8&q=85&s=bcc7f9071db53e26ace117198a25100b" width="1440" height="813" data-path="images/storages/external-storage/nfs_create.png" />
    </Frame>
  </Step>

  <Step title="Mount the volume to a run">
    NFS volumes can be directly mounted to runs, reducing initialization time and making it ideal for large datasets.

    <Frame>
      <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/6aBA2WrBVZlPiuT8/images/storages/external-storage/mount_volume.png?fit=max&auto=format&n=6aBA2WrBVZlPiuT8&q=85&s=5ed8ababee1a82f671a310552c1fd9a4" width="1440" height="813" data-path="images/storages/external-storage/mount_volume.png" />
    </Frame>

    Alternatively, you can manually specify the mount in the YAML editor:

    ```yaml theme={null}
    mount:
      /mnt: volume://{storage-name}/{volume-name}
    ```
  </Step>
</Steps>

## Tagging & Search

Similar to VESSL Storage, you can tag external storage volumes for easy search and retrieval. Tags are supported across both cloud and on-premises storage, ensuring a consistent experience.

<Frame>
  <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/6aBA2WrBVZlPiuT8/images/storages/external-storage/tagging.png?fit=max&auto=format&n=6aBA2WrBVZlPiuT8&q=85&s=801f11f8a87e18655cb1dbab0e8c62a2" width="1440" height="813" data-path="images/storages/external-storage/tagging.png" />
</Frame>
