-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512
I’m curious as to how queries to mirrorlist.centos.org are processed.
For example, querying mirrorlist from my CentOS mirror:
justin@bruce:~$ curl -s "http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os" | sort ftp://ftp.ussg.iu.edu/linux/centos/7.1.1503/os/x86_64/ http://centos.eecs.wsu.edu/7.1.1503/os/x86_64/ http://centos.sonn.com/7.1.1503/os/x86_64/ http://ftp.usf.edu/pub/centos/7.1.1503/os/x86_64/ http://mirror.beyondhosting.net/CentOS/7.1.1503/os/x86_64/ http://mirror.clarkson.edu/centos/7.1.1503/os/x86_64/ http://mirror.metrocast.net/centos/7.1.1503/os/x86_64/ http://mirror.san.fastserv.com/pub/linux/centos/7.1.1503/os/x86_64/ http://mirror.trouble-free.net/centos/7.1.1503/os/x86_64/ http://reflector.westga.edu/repos/CentOS/7.1.1503/os/x86_64/
Same query from my home system about a thousand miles away:
justin@selina:~$ curl -s "http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os" | sort ftp://ftp.ussg.iu.edu/linux/centos/7.1.1503/os/x86_64/ http://centos.eecs.wsu.edu/7.1.1503/os/x86_64/ http://centos.sonn.com/7.1.1503/os/x86_64/ http://ftp.usf.edu/pub/centos/7.1.1503/os/x86_64/ http://mirror.beyondhosting.net/CentOS/7.1.1503/os/x86_64/ http://mirror.clarkson.edu/centos/7.1.1503/os/x86_64/ http://mirror.metrocast.net/centos/7.1.1503/os/x86_64/ http://mirror.san.fastserv.com/pub/linux/centos/7.1.1503/os/x86_64/ http://mirror.trouble-free.net/centos/7.1.1503/os/x86_64/ http://reflector.westga.edu/repos/CentOS/7.1.1503/os/x86_64/
How is the list of responses to mirrorlist queries determined? Obviously, it can’t return the full mirrorlist by country or something, that wouldn’t be efficient when yum-fastestmirror runs.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 08/04/15 14:37, Justin Coffman wrote:
I’m curious as to how queries to mirrorlist.centos.org are processed.
For example, querying mirrorlist from my CentOS mirror:
justin@bruce:~$ curl -s "http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os" | sort ftp://ftp.ussg.iu.edu/linux/centos/7.1.1503/os/x86_64/ http://centos.eecs.wsu.edu/7.1.1503/os/x86_64/ http://centos.sonn.com/7.1.1503/os/x86_64/ http://ftp.usf.edu/pub/centos/7.1.1503/os/x86_64/ http://mirror.beyondhosting.net/CentOS/7.1.1503/os/x86_64/ http://mirror.clarkson.edu/centos/7.1.1503/os/x86_64/ http://mirror.metrocast.net/centos/7.1.1503/os/x86_64/ http://mirror.san.fastserv.com/pub/linux/centos/7.1.1503/os/x86_64/
http://mirror.trouble-free.net/centos/7.1.1503/os/x86_64/
http://reflector.westga.edu/repos/CentOS/7.1.1503/os/x86_64/
Same query from my home system about a thousand miles away:
justin@selina:~$ curl -s "http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os" | sort ftp://ftp.ussg.iu.edu/linux/centos/7.1.1503/os/x86_64/ http://centos.eecs.wsu.edu/7.1.1503/os/x86_64/ http://centos.sonn.com/7.1.1503/os/x86_64/ http://ftp.usf.edu/pub/centos/7.1.1503/os/x86_64/ http://mirror.beyondhosting.net/CentOS/7.1.1503/os/x86_64/ http://mirror.clarkson.edu/centos/7.1.1503/os/x86_64/ http://mirror.metrocast.net/centos/7.1.1503/os/x86_64/ http://mirror.san.fastserv.com/pub/linux/centos/7.1.1503/os/x86_64/
http://mirror.trouble-free.net/centos/7.1.1503/os/x86_64/
http://reflector.westga.edu/repos/CentOS/7.1.1503/os/x86_64/
How is the list of responses to mirrorlist queries determined? Obviously, it can’t return the full mirrorlist by country or something, that wouldn’t be efficient when yum-fastestmirror runs.
_______________________________________________ CentOS-mirror mailing list CentOS-mirror@centos.org http://lists.centos.org/mailman/listinfo/centos-mirror
So already explained, but here we go (I'd probably need to just write a wiki page and point people at it ...) - - mirrors are entered into mysql - - mirmon checks that mirrors are reachable and verify time/timestamp at the root - - validated mirrors (basic check) then appear on http://mirror-status.centos.org - - specific crawler processes (one per release) - do a mysql query for active and current mirrors validated by mirmon (but "order by rand()" !) - checks each ${arch}/${repo} and validate that mirror. If good add it to the list - stops when it reaches 10 good mirrors for a country - - mirrorlists are then pushed/used by the mirrorlists.centos.org nodes
So, one thing to understand is the 10 mirrors limit for mirrorlist, and the "order by rand()" in the sql query. What that means is that depending on which mirrors are returned to the crawler process, they can so appear/disappear from mirrorlist every ~60 minutes (time needed to generate all mirrorlists for all countries for a specific release) Obviously, countries with less than 10 mirrors don't notify that effect in the mirrorlists.
Hope that it answers the question
- --
Fabian Arrotin The CentOS Project | http://www.centos.org gpg key: 56BEC54E | twitter: @arrfab