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
| Feature | Details |
|---|---|
| Media | NVMe SSD (PCIe Gen5) |
| Replication | 2× replication via Ceph |
| IOPS | No artificial caps — performs at hardware limits |
| Throughput | No bandwidth throttling |
| Encryption | AES-256 at-rest encryption |
Create a volume
- Navigate to Storage → Volumes in your project
- Click Create Volume
- Configure:
- Name — descriptive label for the volume
- Size — in GB
- Storage type — choose your performance tier
- Zone — must match the Instance's zone
- Click Create
Attach a volume to an Instance
- Select the volume from Storage → Volumes
- Click Attach and select the target Instance
- 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
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
| Feature | Details |
|---|---|
| API | S3-compatible (works with AWS CLI, Cyberduck, etc.) |
| Deduplication | 2× deduplication reduces effective storage cost |
| Versioning | Optional per-bucket object versioning |
| Locking | WORM (write-once-read-many) support |
| Access control | ACL and bucket policy based |
| Public sharing | Optional per-object or per-bucket public URLs |
Create a bucket
- Navigate to Object Storage in your project
- Click Create Bucket
- Configure:
- Bucket name — globally unique identifier
- Versioning — enable to preserve previous object versions
- Object locking — enable for compliance (requires versioning)
- 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.