While I've got a big 🧵 going on Twitter for the mirror.fcix.net project @warthog9 and I are working on twitter.com/KWF/status/1509276

I figured Mastodon would be a fitting place to put the thread for the other half of the same project, where John and I are building a fleet of "Micro Mirrors" to help distributions continue to operate for free.

So we're building mirrors and then passing the hat around to fund this silly little project in exchange for entertainment. paypal.me/kennethfinnegan


As part of the MFN (mirror.fcix.net) project, John built an amazing Grafana/influx telemetry system that takes every HTTP request in the logs and parses it out into what project, which release, what ASN, and how many bytes the request was, which is giving us an amazing level of visibility into what's going on with that large software mirror.

This lead to the realization that I'm now able to calculate what I'm calling the "CDN efficiency" of every project, which is the number of bytes served per day divided by the number of bytes used on disk.

Look up the day's "bytes served" and divide by the output of "du -h -d 1 /data/mirror"

And we get numbers like the following:
centos 9.02
manjaro 2.55
epel 1.97
rocky 0.32
fedora 0.23
centos-altarch 0.21
almalinux 0.20
centos-stream 0.11

So for example, the 1.97 CDN efficiency for EPEL means that for the 269GB used on our mirror to host that project, we're serving 1.97 times that (530GB) per day.

Which lead to the realization that even though we're using almost 40TB on MFN to host projects, something like 60-70% of our actual served bandwidth is coming from only the most popular 3TB worth of files.

So while these big heavy-iron mirrors are needed and valuable for a foundational capacity and the long tail of projects, what if we added more mirroring capacity and distribution by building additional mirrors which are:
* smaller
* cheaper
* easier to host

And scatter them around in more places on the Internet to combat the consolidation that seems to be pervasively happening across all strata of the Internet?

Enter the concept of the Micro Mirror. github.com/PhirePhly/micromirr

What if we built a tiny Micro Mirror that only had 2TB of storage in it and only served a few of the smallest and most popular projects?

Not as a replacement for the monolithic heavy iron mirrors, but as a way to take some of the hottest load off of them so the heavy iron mirrors can spend more of their time doing what they're good at, which is serving the long tail of the less popular content?

@kwf I like this concept and it has merit, especially if you have a stack of them and round robin the load across them, that will make up for slower port speed and other internals. What OS are you running on these and the big iron?

@Tubsta our plan was to try and get every one of these on a different network and in a different building.

Some projects support weights per mirror, and for those that don't we're using the argument that a 1G mirror with 4 projects is comparable to a 10G mirror with 40 projects.

The big iron is running Debian, but I used the mm as an opportunity to force myself to use Alma for a project.

@kwf if you are looking for others to mirror, the BSD projects would be nice to add. One of our large edu mirrors in Australia is what I am looking at for content inspiration. Though it looks like you get inserted into projects GeoCDN so users don't have to select your mirror??

@Tubsta FreeBSD doesn't seem to use community mirrors, so we weren't planning on mirroring them.

@kwf No, and it is quite frustrating for #FreeBSD users, especially in Australia. The other BSD projects (OpenBSD, NetBSD and DragonflyBSD) all have traditional mirror configurations.

Sign in to participate in the conversation
A Social Front Organization

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!