On Fri, Mar 5, 2021 at 5:37 AM Andrii Nikitin <andrii.nikitin@suse.com> wrote:
(Note: this email was sent weeks ago, but it looks it didn't come trough).
Hi all,
As part of improvements to download.opensuse.org experience, currently new pilot service is available for using with zypper.
https://mirrorcache.opensuse.org
Its primary task is to redirect zypper requests to a mirror in client's country, similar to what MirrorBrain project does.
You can try to replace in /etc/zypp/repos.d/*.repo http://download.opensuse.org with http://mirrorcache.opensuse.org or https://mirrorcache.opensuse.org
If you are in Europe or America, the best experience is expected with these addresses: mirrorcache-eu.opensuse.org (Europe) mirrorcache-na.opensuse.org (North America)
Since it is still a pilot, the service comes without any guarantee or obligations.
Reasons to try it may have those who: - live in North America and don't want to be redirected to send cross-continent requests when possible; - want to stick to https connection (mirrorcache will try to find a mirror in the same country, which supports https); - are on ipv4-only or ipv6-only connection (mirrorcache will try to find a mirror which supports ipv4 or ipv6, depending on the request's connection); - redirection from d.o.o leads to a mirror, which actually doesn't have the requested file (it is rare, but can happen); - want to try hosting a mirrorcache instance for own location (e.g. organization, country or continent) and enjoy fast and reliable redirection. (with very modest disk space / HW requirements).
Additional reasons may have those who: - want to help with improving d.o.o experience and provide feedback; - are interested in mirror management, for which admin's UI is available, and non-admin UI is planned (so a user can add and manage own mirror without global admin rights); https://mirrorcache.opensuse.org/app/server (login using UI menu and ask me for admin rights if you want to use it or see more advanced controls, like job details). - need some related functionality: it is possible that it can be easily achievable with mirrorcache.
Further read about differences from MirrorBrain: https://github.com/andrii-suse/MirrorCache/blob/master/doc/mb_compare.md
How caching works: - caching happens on folder level, so e.g., when zypper tries to access file, unknown for mirrorcache - it will be redirected to d.o.o, then a background job will collect info about mirrors. Thereafter further requests to the same folder will be properly redirected to a mirror in the client's country, honoring http/https scheme and ipv4/ipv6 connection used: https://raw.githubusercontent.com/andrii-suse/MirrorCache/master/doc/flow.sv... - requests to remodata/repomd.xml are not cached, so zypper always gets the latest version of packages.
If you are interested in current source code (most of architecture is stolen from OpenQA): https://github.com/andrii-suse/MirrorCache
In case of questions or any feedback do not hesitate to contact me.
This looks very cool, but I'm confused why we would do this instead of using MirrorManager2[1] and collaborating on that project? The documentation showing the differences between MirrorCache and MirrorBrain seem to mirror the differences between MirrorManager2 and MirrorBrain based on my memory of discussing this at oSC two years ago. Moreover, MirrorManager2 already has self-service management of mirrors. The main difference between MirrorManager2 and MirrorCache seems to be that MirrorCache lacks metalink support, which I think we would actually *want* to have. Are there any other specific features that MirrorCache has that I'm missing? [1]: https://github.com/fedora-infra/mirrormanager2/ -- 真実はいつも一つ!/ Always, there's only one truth!