Cloud Disk Architecture | Tigris Object Storage Documentation

On this page

Beta

Cloud Disk is in beta and under active development.

What it is

Cloud Disk presents a Linux block device backed by a Tigris bucket. You format it with any filesystem (ext4, XFS, btrfs) and run any application on it, databases included. Capacity is effectively unlimited, you pay only for the data you store, and the volume inherits the durability, replication, and access controls of the object store underneath.

A single command gives you a formatted, mounted, ready-to-use disk:

cloud-disk create data1 -size 100G

Everything that defines the disk — its geometry, its tuning, its contents — lives in the bucket, so the disk you unmount on one machine is the disk you cloud-disk mount on the next.

Why

Traditional cloud block storage is capacity-provisioned and tied to a single availability zone. Object storage is elastic and durable, but it isn't a disk. Cloud Disk bridges the two: applications see an ordinary block device while the data lives in Tigris, inheriting its elastic capacity and global distribution. Because Tigris is global, moving a disk between machines or regions is just an unmount and a mount. There are no replication jobs and no data to copy.

Architecture at a glance

application · filesystem · database

Linux block device

cloud-disk

memory cache hot reads + write coalescing

local disk cache warm reads, survives remounts

flush commits to the bucket▼

your Tigris bucketsource of truth

The volume is divided into fixed-size chunks stored as individual objects. Unwritten regions are simply never stored — a 10 TB volume holding 50 GB of data stores only 50 GB.

Durability

By default Cloud Disk runs write-back: when the application calls fsync, the acknowledged data commits to a local write log at NVMe latency, and a background uploader drains it to the bucket continuously. It uploads in exactly the order the application's flush barriers created, which is what keeps the disk safe:

The amount of recent writes at risk is bounded: Cloud Disk throttles new writes rather than let the not-yet-uploaded backlog grow without limit, and a planned unmount drains fully before detaching. This is the default because it gives local-disk flush latency while staying crash-consistent — what OLTP databases, message queues, and most fsync-heavy workloads want.

Write-through mode for strict durability

Workloads that need every acknowledged write already in the bucket can opt a disk into write-through mode. An fsync then returns only once the data is in Tigris: no local state matters, so the host can disappear the moment a flush returns and the disk stays complete, current, and mountable elsewhere. Its durability is the durability of Tigris, which survives machine failure and region failure alike. The cost write-through can't hide is flush latency: an fsync pays for an object-store round trip.

Write-back can roll back a few seconds on sudden host loss

Losing the entire host suddenly can roll the disk back by the seconds of writes not yet uploaded. The result is crash-consistent, not corrupt — but opt into write-through (--set write-back=false) when every fsync must be on Tigris before it returns.

It's one setting per disk: write-back gives you local-disk latency in exchange for a few seconds of possible rollback on sudden host loss; write-through keeps the bucket current at every fsync.

Snapshots and forks

A disk can be snapshotted at a point in time, and new disks can be created as instant forks of a snapshot. Forks are copy-on-write, so no data is copied regardless of disk size, and cloning a multi-terabyte database for a staging environment takes seconds. A fork is a first-class disk in its own right: mount it anywhere and tune it independently of its parent.

Operating it

Operational properties

Next steps