-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Requirements for OpenWRT self-hosting of wyng backup archives #195
Comments
|
I don't think it's your problem.
Didn't see it either.
Alternative @tasket? I have none but to pipe tar to awk which would lower performance. |
Added 4 in OP: rm -df (-d: delete empty dir) doesn't exist under busybox |
I'll review the need for it. When it was proposed as a fix, there was a mkdir creating a spurious dir and that no longer seems to be the case. Ref issue #175 |
Incidentally, the
|
@tasket OpenWrt would be unfortunately more representative of the embedded world way of configuring/building busybox:
Note that it's possible to install coreutils to openwrt, but if it's possible to not do that and rely on busybox instead, it would be better for compatibility reasons. Otherwise I can also poke openwrt downstream to add that in their build recipe, I guess it's a question of a kb of additional binary size max under busybox, but not sure all busybox distributions (those are configured in for compilation) would follow. |
Yeah, this shows how using tar as a generic transport can be a problem: There is big pressure to cut down a 225K executable to 223K by excising options with very simple conditional logic. But then they include the full-fat gnu awk, django, numpy, etc. in their repo. Wild and crazy. Taking the issue title into account "work on busybox + ash based systems", we see that even defining a target system is problematic because in this case it didn't provide a functional standard. Please let me know if you've reached a functional state on your OpenWRT router with the changes I posted today. @tlaurion |
Did send with dedup, arch-deduplucate and prune without issues yes @tasket ! |
"their repo" being openwrt? Well the logic is simply that by default, openwrt targets embedded low end devices like routers, but nowadays also new fledged raspberries and also X86 targets to turn mostly everything into high end routers+switching devices, where low end devices with everything in flash and low memory defaults to busybox with its ash shell by default. I still think openwrt represents the busybox(and it's ash shell) as a representative of what low end devices in the embedded world deploys by default. A quick check on the coreutils packages and description bounce back into reminding the end user that most of those tools are deployed into busybox, and each of those coreutils binaries can be selected by needs, where a big fat warning advise to not do that. Happy for wyng-backup use case, there is a python 3-light which fits the need, without having to deploy the whole python3 full fledge suite which fits the need the same way. busybox is considered pretty limited in features, while support extends for compatibility with limitations. This is also why awk is available for those relying on it extensively in their scripts if needs be. It's the embedded world dictating this from really limited storage, to recently unlimited extended storage with nvme support directly on the motherboard. Tldr: Openwrt original embedded devices as routers are now able to be NAS+vpn+suricata+router if one's want to. But busybox is still targeting the common lower denominator for low end router only platforms where people can chose with granularity what other special additional role they want to have there. The ACM3200 router still being one of tbe the most used router for such use cases if we look at attended-sysupgrade baked upgrade images for their all deployed openwrt supported platforms out there. Edit: stats https://sysupgrade.openwrt.org/stats/public-dashboards/5f0750ebb59c4666a957dc4261f7b90e?orgId=1&refresh=1m |
Consider changing default sparse-write restore op (made for local archive receive/restore) to sparse and use-snapshot and compare backup restoration perf for networked archives |
This is a tough call because as you pointed out some time ago, sparse mode doesn't perform well with some types of connections. As it is now, users can easily change the behavior with the In the future, probably in Wyng v0.9, sparse-write will probably become the default any time the local volume already exists. That helps users or wrappers to clone related qube/volumes before a restore to attain a dedup effect. Maybe Wyng will also let you tell it what those related volumes are and do the cloning automatically (there's an issue for this). |
@tasket a missing keyword was missing in my past comment:
What I meant is sparse instead of sparse-write in case of qubes-ssh scenario solely, where in my opinion it doesn't really make any sense to have sparse-write as default there. |
@tasket what do you mean by certain connection type? You mean link bandwidth? Once again, from memory, I understood that
Otherwise, could you please refresh my memory/source the conclusions held here for normal/sparse/sparse-write and connection types? I think last time we talked about it was a failed attempt on my side of finding proper hosting which unfortunately lead to a PoC for bash script which ran over sshfs mounted ssh endpoint. This was suboptimal for many reasons. My PoC went in many directions there as well, because IO were the bottleneck as well as link speed and hardware IO limits on older hardware which if local hardware is slowed down at local IO (SATA2 SSD+sshfs mouted loop device because rsync.net was a Unix server not offering python3) where all "testing" went useless. Wyng is not at the same place as before now where other hosters could probably be tested. But this is not the thread for that. Here i'm simply trying to wrap up any misunderstanding I could still have on current state of normal/sparse/sparse-write in case archives are definitely on slower "link" in qubes-ssh mode, as opposed to be local disk to dom0 (ssparse-write there is blazing fast no doubt) or "qubes" mode. But in case of qubes-ssh, I feel I'm missing something from your response: I ddon't get why qube-ssh would benefit in any case from sparse-write here, unless someone is being lucky/rich and have a real local hoster which link speed would not be the bottleneck and writing to ssh server would be par to writing into qube or dom0, in which case I? just think it's physically impossible. No? |
Four differences spotted between ash/bash/tar/rm between busybox/std unix systems that fails on busybox with e7bc559
1 and 2 are easy to fix and have no known side effects being changed, where I guess 3 and 4 were optimizationz?
Code change looks like this against e7bc559
Is 3 really wanted/needed? Tested working on openwrt with qubes-ssh destination.
Can do PR but wanted to clarify 3, since awk output could be used to replicate tar -m behavior if really needed.
The text was updated successfully, but these errors were encountered: