[MDBF-297] Provide mirror manager service for RPM Created: 2021-11-11 Updated: 2022-04-07 Resolved: 2022-04-07 |
|
| Status: | Closed |
| Project: | MariaDB Foundation Development |
| Component/s: | None |
| Affects Version/s: | N/A |
| Fix Version/s: | N/A |
| Type: | Task | Priority: | Major |
| Reporter: | Daniel Black | Assignee: | Faustin Lammler |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | 0d | ||
| Time Spent: | 7h | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Description |
|
https://github.com/fedora-infra/mirrormanager2 would solve:
|
| Comments |
| Comment by Faustin Lammler [ 2021-11-11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Daniel! Here are some comments/questions:
Here is what I could determine from rpmfusion:
And some more questions:
My guess is that this is not a very heavy service and it should not be too complicated to setup and manage, but before jumping into an implementation, we should define better what the infra would look like IMO. If you have any contact at rpmfusion, I would be happy to contact their SRE to get some experience feedback. Ping some more person to join that discussion: I am also happy to setup a quick POC in the next days so we can understand better how this works, let me know. Cheers! | ||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2021-11-12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
> How would we integrate/sync mirrormanager2 with actual repository tool configuration (just only point to mirrormanager2 for fedora/rhel)? Obviously both maintain mirror lists, I don't have good answer on syncing these. Looks like it has its own crawler - utility/mm2_crawler On enable release. mirrormanager has some APIs. repository tool to show repo config, example fedora one below, will just need the Major version in the output.
> I went through the documentation and it is very poor IMO, above all I am missing the "How to not create a SPOF documentation". RR DNS, local reverse proxy, database replication between sites (galera or multisource). > How do they sync those 2 machines? I assume a common database. This is more an information service that points to mirrors on user install/update time. > Is there a mechanism if those 2 machines have downtime? Not that I can immediately see. > Do you have any pointer on how the infra would look like with say 2 mirrors (EU/US)? Two different data centers, sure. > What would be required in terms of CPU/RAM (and storage above all)? Storage, looks like at least one needs to be colocated with a mirror. CPU/RAM/BW, not sure. > What maintenance tasks are needed to update/remove/add mirrors? I'm sure the POC will answer this. | ||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Faustin Lammler [ 2021-11-18 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi! Even if the project seems to be a bit abandoned (latest commit 23 Jan), it is used by some important project (VLC being the biggest). And here is how to use the new CDN mirror: I have created a new DNS record mirror.mariadb.org and 2 CNAME (deb.mariadb.org and rpm.mariadb.org). Fedora34:
Debian11:
If you want to understand the routing decision on a particular file, just add
to the URL, example: You can also check the global mirror status page: https://mirror.mariadb.org/mirrorstats.
Regarding the last point, I only added mirrors that also propose FTP or RSYNC (necessary for the scan). SPOF considerations:
You can verify the fallback mechanism with the following file (that is only present on the reference mirror): There is probably some tuning necessary above all with the nginx reverse proxy regexp that is not my cup of tea
| ||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2021-11-19 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
So 302 redirects, looking pretty good (as concept, and quick behaviour check, I haven't checked nginx confg).
| ||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Faustin Lammler [ 2022-01-14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Here is what I have done:
Everything looks good so far but I would like that at least @Vicențiu Ciorbaru confirms that he understand what I have done and maybe take a quick look. Once OK, I will add the mirror manager IP to yum.mariadb.org (currently 2 OVH IP are serving it). This way we would get 1/3 of the yum traffic hitting the new server through RR DNS and we could see if we have errors and how the new server behaves. Ping @Daniel Black also if you have any comments... You can use this new setup on a fedora/centos/redhat with the following line in your /etc/hosts file:
This is the MariaDB.repo file for yum.mariadb.org:
This is the MariaDB.repo file for rpm.mariadb.org (that should replace it in the future):
| ||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2022-02-14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
http://rpm.mariadb.org/repo/10.6/ has only debian and ubuntu repositories. | ||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Faustin Lammler [ 2022-02-14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
It's under yum: Or am I missing something? | ||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2022-02-14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
my bad, was looking at yum.mariadb.org urls | ||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Faustin Lammler [ 2022-03-31 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Little change in the URL, now you should use https://rpm.mariadb.org, example:
And in a near future, probably today, the same goes for deb.mariadb.org:
| ||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Faustin Lammler [ 2022-04-07 ] | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Here is a summary of the URLS:
Regarding the last one, the DNS has not been changed for the moment, see |