I’ve been paying backblaze for B2 offsite storage for a while now. While it’s something I can afford, I also have excess local storage somewhere in the order of 15TB. While I don’t need to keep all my data backed up offsite, I’d really like the ability to back up, I don’t know, the most important 500GB or so. With all that said, I have the following idea:
If I were to offer 500GB of storage on my NAS to a community member, and they reciprocated, then I did it again for another 2-3 people, I’d have a more reliable backup, and it would cost me nothing but time!
So, how would we go about doing this? That’s the challenge. My initial thought was to build a container that can be run, into which, SSH keys are loaded and a volume is mounted. This would work best if you’re running ZFS or some other filesystem that supports quotas, so you can give each user a quota. Basically, we’d have some sort of coordination system, which will tell each user who they’re peering with and would help distribute username allocations.
Prototype spec for a join request:
name: sarge
email: [email@domain]
endpoint:
address: [ IP addr or DNS record]
port: [whatever port is open]
spaceOffered: 1.5Ti
spaceRequested: 500Gi
peersRequested: 3
egressThroughput: 500Mi
ingressThroughput: 1Gi
publicKey: |
asdf
Rules would be as follows:
- No illegal content. Nobody wants to get in trouble here. (Pirated material, other things that would make the police go are absolutely prohibited)
- Encrypt your backups. Your peering partners are not responsible for encryption, that’s on you. They just host the bits as you send them.
- Expectation of 95% uptime. We’re homelabbers, not datacenters, 100% uptime isn’t realistic, but we do need it to be somewhat reliable.
- You should be reachable within 48 hours via either forum DM or email.
Requirements:
- At least 100mbps of upload (so that if someone needs to recover data, they can do it in a reasonable timeframe)
- Must run Linux
- Must be able to peer for at least 2x the amount of space you’d like to consume.
Any thoughts on this? Would this be fun? Am I off my rocker?