
Product
by
Josh Mineroff
(Hint: not only with us.)
Mithril's storage doesn't work like a traditional cloud's, and treating it like one costs you money in three different ways.
Some teams treat their GPU cloud's storage as the archive. Every dataset, every checkpoint, every artifact from every run, parked on provisioned volumes forever. They end up paying working-set prices for cold data, and their storage bill grows every month whether they're training or not.
Other teams do the opposite. Their data lives on S3, and every training run starts by streaming the same multi-terabyte dataset down from Amazon. The download is slow, and worse, S3 charges for egress. Pull 5 TB at five cents a gigabyte and that's about $250. Do it weekly for six months and you've spent six grand moving the same bytes to the same place.
And a third failure mode, the most painful one: leaving data on ephemeral storage. Every Mithril instance comes with fast NVMe scratch space at /mnt/local, free of charge. It's great for caches and shuffle buffers. It is also wiped on preemption, relocation, or reboot. We've watched teams leave checkpoints there expecting them to persist, and they don't. If losing it would hurt, it doesn't belong on /mnt/local.
All three mistakes come from the same root: treating storage as one thing. It's two things (and a scratchpad).
The two-tier model
Tier 1 is your source of truth. Raw datasets and final checkpoints, the data that has to outlive any individual run. This belongs in an object store. Object stores are durable, cheap per gigabyte, and they decouple your data's lifetime from any single machine or region. Your source of truth stays put whether or not you have compute running.
Tier 2 is your working set. The data your GPUs actually read and write during a run. This belongs on fast storage colocated with your compute. On Mithril, that's a file share (shared across instances, mounted automatically) or a block volume (a raw per-instance disk). It only needs to hold what one run needs, for as long as the run lasts.
The pipeline is simple: pull from the object store when a run starts, write results back when it finishes. Everything in between happens on fast, local storage.
Get this pattern right and storage becomes a rounding error on your GPU bill. Get it wrong and you're either paying enterprise prices for a 50 TB file share you barely touch, or paying Amazon every Monday for the same download.
Which object store
If you're choosing from scratch: Cloudflare R2. Storage pricing is comparable to S3, but R2 charges nothing for egress. To Mithril, to your laptop, to another cloud, data leaves for free. On a platform like ours, where the natural pattern is ephemeral compute pulling fresh data at the start of every run, your data leaves a lot. R2's economics fit that pattern; S3's punish it.
If you're already established on S3 or GCS and migrating is impractical, they work fine. Just know that the egress line item is on their bill, not ours.
Why we can say this with a straight face
Mithril charges nothing for ingress, egress, or IOPS. You pay for gigabytes provisioned, multiplied by time. That's the whole formula.
This is also why we can tell you, as your GPU cloud, that your data's permanent home shouldn't be with us. We don't profit from data gravity. There's no fee waiting for you when you move data in, out, or between regions, so we have no incentive to talk you into parking everything here. The two-tier model is just the right architecture, and our pricing means we can recommend it honestly.
See it in five minutes
Here's the whole model, plus a quick tour of creating and mounting storage in the console:
https://www.loom.com/embed/95e4395eca4247f58c7f01a09dc0084f
Go deeper
Persistent storage overview: the two-tier model, the decision guide, and region availability
File shares: shared storage that mounts automatically
Block storage: raw disks with full filesystem control
Not sure whether your current setup matches this model? Message us at support@mithril.ai. We'll look at your storage configuration and tell you if you're overpaying or under-provisioned. That's a free thing we do, not a sales call.