SeaweedFS ?
Reddit NixOs
GitHub
Issues
If you want something thatās a million times nicer than Ceph and also supports geo-replication out of the box (whilst only supporting S3) - check out Garage: https://garagehq.deuxfleurs.fr/
I had heard of garage, but thanks for the reminder. I think what they are doing is super cool, but it is absolutely not a Ceph replacement for anything other than basic object storage (i.e. weakly consistent object store, no read your own writes), and so I think calling it nicer than Ceph with no qualifiers is a bit unfair . For instance it is completely feasible with decent networking for Ceph to provide block storage devices and then run a database with separated compute / storage atop. This is a non-goal for garage, which is fine, they are trying to build a different system.
Actually, it does implement read-after-write consistency: https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/#top-level-configuration-options
For me, itās nicer than Ceph in that you can get it going in a matter of seconds on basic hardware as opposed to requiring 10GE networking.
It seems to me like a good seaweed implementation needs at least 3 master servers with low latency + different failure domains to keep itās promises (because you have a master with volume mappings replicated with RAFT). This is before you even bother adding any volume servers (although maybe you just add some big disks to your masters and collocate the services).
Still seems like a bunch of hassle vs some weakly consistent p2p sync system. I guess if you enjoy this kind of thing go for it? If you want to know why all of these distributed file systems all seem to have such baroque requirements and you have a bunch of free time and enjoy CS papers give this a read. It doesnāt require advanced mathematics, just a great deal of patience to work through various voting scenarios.
You could always run the seaweed master on a single machine, and back it up regularly? If volume mappings are āstable enoughā this could provide something, but just bear in mind any new volumes created between backups would need to be manually recovered (assuming that seaweedfs has the tools for this, I havenāt read enough to answer that).
Shame on me for skimming! Thatās super cool. But Ceph doesnāt require 10GBe for object replication, you only need the really nice networking gear if you want to provide an FS or block device. That said: configuring and running ceph is horrible, and I wouldnāt wish it on anyone
This is mentioned under non-goals in the goals page.
POSIX/Filesystem compatibility: we do not aim at being POSIX compatible or to emulate any
kind of filesystem. Indeed, in a distributed environment, such synchronizations are translated
in network messages that impose severe constraints on the deployment.
Does that mean I canāt use it as a filesystem?
Correct. Garage is an object store, not an FS. You can use it as a backup target, or for systems that target object stores.
The Quobyte site have a lot of good Explanations.
I have now Unison running on my system, syncing /home between my server and work computer.
I make a systemd service that sync, when I start up my work computer. It is possible to sync on file changes (inotify), by changes one parameter in the config. But in my case, I want to reduce net traffic, so it only syncs on start up of my work computer.
Since there currently is no support for configuration of unison in NixOs, I have used the unison config framework.
The only unsolvable problem I meet, is that unison donāt sync the modified time of directories. I used rsync to solve that problem.
Iām considering SeaweedFS
to implement CSI
(Container Storage Interface) for use in workloads in a small nomad
cluster (3-4 nodes).
My main objective is to avoid having to define 10s of host volumes in my nomad
clients (configured via the NixOS module) and to decouple storage from the nomad clients.
Since it feels a bit off to run SeaweedFS as a nomad workload in the very cluster that relies on it, Iād prefer to run it as a host-system-service (via a NixOS module).
- Does this sound like a plan?
- Is
SeaweedFS
suitable for this purpose, or are there better alternatives?
For now Iām looking to realise this in a LAN setting, but I want to replicate the same method later on a VPS based nomad cluster that is interlinked (nomad+consul) via a private WireGuard network. Iāll not be looking to have the distributed FS also store databases, only files; I think for HA/redundancy for my databases a replicating set (managed by the database) would be the correct way?
For backups Iāll probably be looking to just stream/archive from the VPS to a local storage solution, i.e. basically just dumps or maybe better borg backup
. For database backup likely just pg_dump
git-annex seems like a good alternative to syncthing
I highly recommend git-annex: Iāve been using it daily for more than a year. Integrates into magit, too!
It does require the remote to also have it installed (so most forges wont work, lest there is some LFS-adapter Iām not aware of), but you can also use network filesystems as remotes, as you can with git.
You can also just use a plain old git repo on your NAS via ssh. Thatās what I do.
Thanks for the LFS doc link. It just works. No more wrestling with horrible file systems!