Skip to main content

Block & Object Storage

Octos Cloud provides two storage primitives: Block Storage (attachable NVMe SSD volumes) and Object Storage (S3-compatible, with built-in deduplication).

Block storage

Block storage volumes are persistent NVMe SSD disks that attach to your Instances. They survive Instance reboots and can be detached and reattached to different Instances within the same zone.

Key specifications

FeatureDetails
MediaNVMe SSD (PCIe Gen5)
Replication2× replication via Ceph
IOPSNo artificial caps — performs at hardware limits
ThroughputNo bandwidth throttling
EncryptionAES-256 at-rest encryption

Create a volume

  1. Navigate to Storage → Volumes in your project
  2. Click Create Volume
  3. Configure:
    • Name — descriptive label for the volume
    • Size — in GB
    • Storage type — choose your performance tier
    • Zone — must match the Instance's zone
  4. Click Create

Attach a volume to an Instance

  1. Select the volume from Storage → Volumes
  2. Click Attach and select the target Instance
  3. The volume appears as a new block device in the Instance (e.g., /dev/vdb)
# Format and mount the volume
sudo mkfs.ext4 /dev/vdb
sudo mkdir /mnt/data
sudo mount /dev/vdb /mnt/data
tip

Enable Delete Volume on Instance Delete if the volume's lifecycle should match the Instance it's attached to.

Object storage

S3-compatible object storage for unstructured data — backups, media files, logs, and archives.

Key specifications

FeatureDetails
APIS3-compatible (works with AWS CLI, Cyberduck, etc.)
Deduplication2× deduplication reduces effective storage cost
VersioningOptional per-bucket object versioning
LockingWORM (write-once-read-many) support
Access controlACL and bucket policy based
Public sharingOptional per-object or per-bucket public URLs

Create a bucket

  1. Navigate to Object Storage in your project
  2. Click Create Bucket
  3. Configure:
    • Bucket name — globally unique identifier
    • Versioning — enable to preserve previous object versions
    • Object locking — enable for compliance (requires versioning)
  4. Click Create

Mounting Object Storage (Ubuntu)

You can mount your S3-compatible object storage directly to an Ubuntu Instance using rclone and a systemd service so it mounts automatically on boot.

1. Install and Configure rclone

Install rclone and configure your remote:

sudo apt update
sudo apt install rclone -y

Create or edit your rclone configuration file (~/.config/rclone/rclone.conf):

[ceph-remote]
type = s3
provider = Ceph
env_auth = false
access_key_id = <your-access-key>
secret_access_key = <your-secret-key>
endpoint = https://s3.octosinfra.com
region = in-west-1
no_check_bucket = true

2. Create Mount Directory

Create a directory where the bucket will be mounted (replace <username> with your actual Linux user):

mkdir -p /home/<username>/ceph-mount

3. Create systemd Service File

Create a systemd unit file to manage the mount:

sudo nano /etc/systemd/system/rclone-ceph-mount.service

Paste the following contents (adjust <username> and replace my-bucket with your actual bucket name):

[Unit]
Description=Mount Ceph Object Storage Bucket with Rclone
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=<username>
Group=<username>
ExecStart=/usr/bin/rclone mount ceph-remote:my-bucket /home/<username>/ceph-mount \
--config=/home/<username>/.config/rclone/rclone.conf \
--vfs-cache-mode writes \
--s3-no-check-bucket
ExecStop=/bin/fusermount -u /home/<username>/ceph-mount
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

4. Enable and Start the Service

Reload the systemd daemon, enable the service to start on boot, and start it:

sudo systemctl daemon-reload
sudo systemctl enable rclone-ceph-mount.service
sudo systemctl start rclone-ceph-mount.service

5. Verify the Mount

You can verify the mount is active by checking the status and listing the directory contents:

systemctl status rclone-ceph-mount.service
ls /home/<username>/ceph-mount

To manually stop and unmount, use:

sudo systemctl stop rclone-ceph-mount.service
# Or manually: fusermount -u /home/<username>/ceph-mount

Snapshots

Snapshots capture the current state of an Instance or volume, allowing point-in-time restoration.

  • Snapshots are priced per GB per hour
  • Snapshots can only be restored to equal or larger disks
  • Both manual and scheduled snapshots are supported

See Snapshots & Backups for full details.

Next steps