Welcome to Incremental Social! Learn more about this project here!
Check out lemmyverse to find more communities to join from here!

Backing-up Single Board Computer

Hello everyone!

I have a small OrangePi running some small services on it (some with Docker and some without Docker).

And I'd love to know how do you backup your single-board computers.

Do you just rsync the system to a storage server ?
Do you plug in a USB drive and rsync on it ?
Do you save only the important data or the whole system ?

For now my SBC is not backed-up and I'd like to get a good backup solution up and running quickly! (I don't trust SD cards to last long...)

I have access to USB drives and disks and also another big server with 20TB of storage which I can make the backup to if needed!

Thanks for your help !

Darkassassin07 , (edited )
@Darkassassin07@lemmy.ca avatar

I wrote a bash script a while back that uses sshfs to mount an ssh server to the filesystem, then uses dd to write /dev/mmcblk0 to it as hostname-date.img and finally unmount the ssh server. Cron job runs that daily.

I run that on each of my rpis. (just one rn, but theres been as many as 4 going).

Any time I have an issue, be that my fault or not, I can just pull the sd card and write the last .img to it directly.

There's some extra stuff in there too: it checks for the dependancy sshfs and installs it if missing (for deploying to a new system without reconfiguring), cleans up backups older than x days, logging, and the ability to write the log file as a test instead of the whole filesystem.

jkrtn ,

Sorry, but do you have a setup where you don't need to worry about the atomicity of that operation? It sounds simple and effective, so I'd like to do it, but I'm concerned I may get something halfway through a write.

I suppose the odds are you'd have at worst a bad log file whereas config files and binaries are used read-only the majority of the time.

Darkassassin07 ,
@Darkassassin07@lemmy.ca avatar

I've run it on every pi I've used for several years now, though they are typically pretty quiet systems. Usually something like pihole or a reverse proxy. Not much writing going on. I've restored about a dozen of those images and never had an issue.

I also tend to keep 3-6 backups at a time. If the most recent is messed up for some reason, there's others to try. (though I've never actually had to try more than one)

bartolomeo ,
@bartolomeo@suppo.fi avatar

I only have the OS on the sd card and I pop that out and dd a copy to my backup drive every 6 months or so. For that reason I like to use small sd cards like 8gb size. All other drives on the machine are external or network drives and those have their own backup routine with rsync.

Do you use only the sd card or what kind of storage system do you have on your sbc?

Cenzorrll ,

You don't need to pop it out to DD the SD card, you can do it while it's running. I like to pipe DD through gzip to get a compressed image as the output so I'm not sitting on 16gb file for 3gb worth of files.

bartolomeo ,
@bartolomeo@suppo.fi avatar

That sounds really good but is that safe to do? I thought you shouldn't dd a disk if there was some activity going on on it.

So is the output image saved to the SD card or do you save it to an external drive?

Darkassassin07 ,
@Darkassassin07@lemmy.ca avatar

Been working fine for me for several years.

You can have it written to an external drive, or you can use tools like sshfs and ftpfs to mount remote servers as local drives then write to those. I use the sshfs route.

This will create an .img that you can just write directly to an sd card and boot from.

bartolomeo ,
@bartolomeo@suppo.fi avatar

Very cool, thank you.

Kalcifer ,
@Kalcifer@sh.itjust.works avatar

The fact that it's a "single board" computer, specifically, is mildly irrelevant, imo; just follow standard backup practices. The only way the type of computer really comes into question is whether or not it has adequate resources to run whatever backup solution that you choose. For my usecase, Borg works great, but choose whatever solution fits your requirements. The "simplest", and lightest solution is probably rsync, but that may leave a lot to be desired.

bartolomeo ,
@bartolomeo@suppo.fi avatar

SBCs often run on sd cards or emmc modules so there are other possibilities than a standard desktop computer.

Kalcifer ,
@Kalcifer@sh.itjust.works avatar

[...] so there are other possibilities than a standard desktop computer.

Would you mind elaborating? I'm curious to know what you're referring to.

Darkassassin07 , (edited )
@Darkassassin07@lemmy.ca avatar

Copying the entire drive into a bootable backup using tools like dd is more feasible when you're whole fs is only 8-16gb.

Larger systems often require more selectivity or more sophisticated methods to reduce output size.

You can also pull the card occasionally and backup via another system easier. Some people like this route.

Kalcifer ,
@Kalcifer@sh.itjust.works avatar

Fair points! I hadn't considered these nuances.

bartolomeo ,
@bartolomeo@suppo.fi avatar

Re:

The fact that it's a "single board" computer, specifically, is mildly irrelevant

Kalcifer ,
@Kalcifer@sh.itjust.works avatar

Did you forget to complete your reply, or did it perhaps glitch out?

bartolomeo ,
@bartolomeo@suppo.fi avatar

Haha sorry mate I must have assumed you had your mind reading hat on. Basically what darkassasin said above.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • selfhosted@lemmy.world
  • incremental_games
  • meta
  • All magazines