Guten Tag,
ich habe die Frage von Gunner zu unser Download infra per mail erhalten und moechte hier mal etwas dazu informieren, ohne den ganzen Thread gelesen zu haben.
Ich bin neben Andrii Nikitin einer der Sysadmins fuer die Download-Infrastruktur.
- MirrorBrain war frueher mal in Verwendung fuer download.o.o, aber war als C-code zu schwer zu warten und zu erweitern. Darum ist es nicht mehr in Verwendung.
- MirrorCache ist der aktuelle redirector-code. Dieser laeuft auf mirrorcache.o.o, mirrorcache-eu.o.o und download.o.o mit der gleichen Datenbank und dem gleichen 40TB Dateisystem mit repos. Diese koennen sich minimal in der MirrorCache-config unterscheiden. Normalerweise ist download.o.o der schnellste von denen, da er lokal das grosse xfs Dateisystem gemountet hat. Fuer Dateien <100KB werden diese direkt von hier ausgeliefert, um die Latenz klein zu halten.
- Es gibt auch noch die anderen regionalen mirrorcache-us, -us-west, -us-east, -au, -jp, -br, -br-2 die unabhaengiger vom zentralen download.o.o laufen.
- cdn.o.o wird teilweise von Fastly gesponsort, aber kostet SUSE trotzdem noch 250 /mon fuer 50TB. Die verwenden dort eine spezielle Variante vom varnish caching proxy, zu der wir die VCL config bereitstellen. Dies verwendet download.o.o als upstream, d.h. wenn download.o.o ausfaellt, kann der Cache noch ein paar Minuten bereits zuvor ausgelieferte kleine Dateien und Redirects ausliefern. Fastly hat ca 50 Standorte (2 in DE) und kann mit einem warmen Cache deutlich schneller sein.
- moderne Versionen von zypper (Tumbleweed, wahrscheinlich auch schon Leap 15.5 mit updates) fragen bei download.opensuse.org vor dem ersten Repo-Zugriff des Tages nach https://download.opensuse.org/geoip und wenn da ein XML-Schnipsel rauskommt, nimmt er fuer 24 den host darin als Endpunkt. Wenn man das aus Deutschland abfragt, kommt nichts raus, aber zum Testen kann man
?COUNTRY=caanhaengen und bekommt<geoip><region>na</region><country>ca</country><host>cdn.opensuse.org</host></geoip>. - Bei laengeren Ausfaellen des zentralen download.o.o biege ich das DNS auf download3.o.o um. Der hat selbst zwar nur ~5TB SSD mit den Haupt-repos, aber leitet Anfragen nach anderen Dateien an rsync.o.o durch, welcher auch die meisten debug, home- und devel-Repos hat. Da kommen dann immer Dateien und nie Redirects, was evtl. die Netz-Resourcen etwas an den Anschlag bringt - 3Gbit/s im Durchschnitt hatte ich da gemessen.
- Zusaetzlich hatte ich https://downloadcontent2.opensuse.org/ als caching proxy mit nginx (frueher varnish, aber das hat grosse Dateien nicht vertragen) aufgesetzt. Den hatten wir eine Zeit lang in Verwendung fuer Dateien, die noch auf zu wenigen Mirrors liegen. Ist momentan aber vermutlich unbenutzt, weil wir stattdessen das Fastly CDN nehmen. Letzteres koennte aber mit grossen Dateien Probleme machen, darum leiten wir diese dann nach downloadcontent.o.o, welcher auf der gleichen VM wie download.o.o laeuft, aber von nginx her Dateien ausliefert. Kann aber manchmal schlechte disk-IO und network-IO performance haben. Evtl sollten wir das wieder auf downloadcontent2 aendern. Der ist die gleiche Maschine wie download3. Ist bei Hetzner auf einem dedicated server untergebracht mit 10GBit/s Anbindung.
Ciao
Bernhard M.