Mount Tigris as a Filesystem
For AI workloads, most runtimes assume data is accessible via a filesystem. By mounting a Tigris bucket as a filesystem, data is no longer limited by local storage nor memory capacity.
After testing filesystems for performance and reliability, we support GeeseFS. GeeseFS lets you mount S3 buckets to your local Linux system. Since Tigris is S3-compatible, you can use GeeseFS to mount any Tigris bucket as if it was a normal Linux filesystem.
- Install geesefs
- Configure credentials
- systemd service to start geesefs on boot
- Reboot test
Prerequisites:
- A Tigris account
- A bucket you want to mount into your system (
mybucket
) - A target location you want to mount your bucket to (
~/data
)
geesefs uses FUSE to mount buckets into the filesystem. FUSE has limitations involving multiple users accessing the same mountpoint. If you need multiple users (human or service) to access the same bucket, consider creating multiple systemd services mounting the bucket in each user's home directory.
Installing geesefs
Download the latest release for your machine from
the list of geesefs releases
to /usr/local/bin
and mark it as executable:
amd64 Linux
sudo wget -O /usr/local/bin/geesefs https://github.com/yandex-cloud/geesefs/releases/download/v0.42.0/geesefs-linux-amd64
sudo chmod +x /usr/local/bin/geesefs
Configure credentials
Create a new access key with edit permissions on your target bucket in the Tigris Dashboard. Configure the aws-cli to utilize the credentials as described in the guide here.
Mount bucket on login with systemd
Make a folder for the geesefs service:
mkdir -p ~/.local/share/systemd/user
Then copy this unit into ~/.local/share/systemd/user/mount-data.service
:
[Unit]
Description=Mount Tigris bucket mybucket to ~/data
After=network.target
[Service]
Type=forking
WorkingDirectory=%h
ExecStart=/usr/local/bin/geesefs --endpoint https://fly.storage.tigris.dev mybucket %h/data
[Install]
WantedBy=default.target
Make sure to adjust mybucket
and %h/data
as needed. In systemd units, %h
refers to your home directory, so this mounts bucket mybucket
to ~/data
.
Enable the unit with systemctl daemon-reload
and systemctl enable
:
systemctl --user daemon-reload
systemctl --user enable --now mount-data.service
Reboot test
Reboot your system and log back in. Run the mount command and you should see information about geesefs mounting your bucket:
$ mount | grep geesefs
mybucket on /home/opc/data type fuse.geesefs (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000,default_permissions)
You did it! You now have a performant filesystem backed by bottomless object storage.