Offload workload to another server by synchronizing the entire system up there.
Possible workloads are:
- installing packages through building (especailly for Gentoo)
- checking system integrity
- playing game
Currently syncupd can only be installed on Gentoo Linux.
Steps:
- add overlay https://github.com/fpemud/fpemud-overlay
- emerge syncupd
- emerge syncupd-plugin-gentoo (optional)
- emerge syncupd-plugin-xrdp-games (optional)
- systemctl enable syncupd
- systemctl start syncupd
syncupd and it's client carry on the following operations:
- sync up: create a disk image on server, rsync all system files of the client machine into it
- execute: mount the disk image, using "ssh -t" to chroot execute a command (like "/usr/bin/emerge ...")
- rsync down: rsync the content of the disk image back into the client machine
Step 1 may take hours on first use, but from the second time on it should take no time since the disk image is cached on server.
I have an ASUS T300chi, installs Gentoo. It is a fanless notepad which is not suitable to bear any high work load. Below is how I install www-client/firefox:
Synchronize your system elsewhere is intriscally insecure. You should take the following measurement to solve this problem:
- exclude critical files (like /etc/shadow) from synchronizing on client side
- deploy syncupd in local network
- cross-architecture-execution currently syncupd must be run on a machine which has the same or super architecure than the client machine in future, syncupd should auto create qemu virtual machine and cross-distcc to support cross architecure
- realtime sync down sync down after work is done has many disadvantanges use inotify techonology, so that sync down happens realtime it's hard work because it means I can't use rsync anymore for sync down, I must implement by myself.