One filesystem. Every instance.
Attach it everywhere.
Three instances, one filesystem. The dataset downloads once.
A real filesystem.
Plain files at a plain path. No sync calls, no commit step, no inode budget.
Outlives the instance.
Pause, resume, destroy: the filesystem persists through all three.
What is a network filesystem?
Instance storage belongs to one machine and shares its fate: pause keeps it, destroy takes it. A filesystem is a separate thing you create once, sized from 50 GB to 10 TB, that mounts at /home/jl_fs/ on any instance you launch with it. Many of your instances can mount it at the same time, and it belongs to none of them.
That split changes how you work. Datasets and checkpoints stop being cargo you copy between machines and become a place your machines visit. Train on an A100, destroy it, and the L4 you launch tomorrow finds everything where you left it.
No speed penalty. Measured.
The obvious worry about network storage is that it is slow. We timed it against the local disk.
| Instance storage | Filesystem | |
|---|---|---|
| First model load | 1.71s | 1.73s |
| Shared across instances | No | Yes |
| Survives instance destruction | No | Yes |
Measured loading a diffusion model into ComfyUI on H100 instances. Full write-up on the blog. Read the write-up
Two patterns pay for it.
The GPU swap
Generate rollouts on a cheap card, train on a fast one. The dataset sits on the filesystem, so switching GPUs is destroying one instance and launching another; nothing is copied, nothing re-downloads.
The fleet
Serve one model from many instances. Weights download once to the filesystem; every new worker mounts them and is serving in about 2 minutes instead of waiting out a download.
The contract, in one table.
| Size | 50 GB to 10 TB, grown in 50 GB steps |
|---|---|
| Resizing | Grow anytime. Never shrinks |
| Mount path | /home/jl_fs/ on every attached instance |
| Attach | At instance launch or resume, by fs-id |
| Concurrent mounts | As many of your own instances as you need |
| Lifetime | Independent: survives pause, resume and destroy |
| Region | Lives in one region; attaches to instances in that region |
| Backed by | CephFS |
Instance storage or a filesystem?
Every instance has a disk. Not everything belongs on it.
| FilesystemThis page | Instance storage | |
|---|---|---|
| Belongs to | You, independently | One instance |
| Mounts on | Many instances at once | Its instance only |
| On pause | Unaffected | Kept, billed while paused |
| On destroy | Unaffected | Deleted with the instance |
| Rate | $0.00014/GB/hour | $0.00014/GB/hour |
| Billed | Around the clock, provisioned size | While the instance exists |
| Put here | datasets, checkpoints, model weights | the OS, your code, scratch |
One number, no tiers.
$0.00014/GB/hour
About $0.10/GB/month at 720 hours. A 200 GB dataset filesystem is $20.16 a month.
Provisioned, not used
You pay for the size you created, whether it is full or empty, from the moment you create it. Grow it when you need to; growth is immediate.
Two commands, then it is infrastructure.
# create once$ jl filesystem create --name datasets --storage 200# attach to anything you launch, or on resume$ jl create --gpu A100 --fs-id <fs_id>
Yes: CephFS, mounted at /home/jl_fs/. Ordinary POSIX files, so ls, rsync, symlinks and your dataloaders behave exactly as they do on local disk. There is no sync API and nothing to commit.
Yes, as many of your own instances as you need, in the filesystem's region. It is not shared across accounts or team members; each person's filesystems attach to their own instances.
Not measurably for model loading: our published benchmark put a first model load at 1.73 seconds from the filesystem against 1.71 seconds from local disk. The write-up is on the blog.
No. Attach happens when an instance launches or resumes. Pause, attach, resume is the path for an instance that is already running.
Nothing, to the filesystem. It survives pause, resume and destroy, and the next instance you launch with its fs-id finds the files where you left them.
You can grow it any time, in 50 GB steps up to 10 TB, and growth bills from the new size. It never shrinks; to pay for less, create a smaller one and move the data.
Provisioned size, around the clock, at $0.00014/GB/hour, starting when you create it. Deleting it stops the charge; deletion is permanent.
India today, in two regions. A filesystem lives in one region and attaches only to instances there.