[technique] Etat des miroirs chez tetaneutral.net (2024)
Baptiste Jonglez
baptiste at bitsofnetworks.org
Mar 5 Nov 23:41:39 CET 2024
Bonjour,
Une nouvelle année est passée depuis le dernier mail, voilà le moment de
refaire un bilan sur les miroirs hébergés par tetaneutral.net.
Les points précédents sont là :
https://lists.tetaneutral.net/pipermail/technique/2017-August/002853.html
https://lists.tetaneutral.net/pipermail/technique/2017-October/002888.html
https://lists.tetaneutral.net/pipermail/technique/2018-June/003233.html
https://lists.tetaneutral.net/pipermail/technique/2018-July/003246.html
https://lists.tetaneutral.net/pipermail/technique/2019-October/003691.html
https://lists.tetaneutral.net/pipermail/technique/2021-January/004169.html
https://lists.tetaneutral.net/pipermail/technique/2023-October/004537.html
# Matériel
Pour faire face à l'augmentation de l'espace disque et à la possibilité de
panne du matériel, une nouvelle machine a été mise en place. Il s'agit
cette fois-ci d'une machine virtuelle hébergée sur le cluster Proxmox de
tetaneutral.net, mais avec un disque SSD dédié (passthrough). Cette
solution du disque dédié permet d'avoir des performances disques
suffisantes pour le miroir, et également de ne pas dégrader les
performances du stockage Ceph (qui est utilisé par l'ensemble des autres
VMs hébergées par tetaneutral.net).
La répartition du stockage et des miroirs est actuellement la suivante :
* mirror-01, NUC-like mis en place fin 2021 en remplacement d'une panne,
Debian 10, 4 TB de stockage SSD sur LVM
Miroirs hébergés : F-Droid
* mirror-02, NUC acheté mi-2021
Debian 12, 6 TB de stockage SSD sur ZFS
Miroirs hébergés : Debian
* mirror-03, VM sur cluster Proxmox
Debian 12, 4 TB de stockage SSD sur ZFS
Miroirs hébergés : LineageOS, OpenWrt, Tails, CPAN, CTAN
# Gestion du stockage
Avec l'installation de mirror-03, nous en avons profité pour passer de LVM
à ZFS. mirror-02 a été migré vers ZFS. En revanche, mirror-01 est resté
sur LVM pour l'instant.
Le principal avantage de ZFS est de partager l'espace libre entre tous les
miroirs d'une même machine. Avec LVM, il fallait allouer un espace
explicite à chaque miroir : pour éviter de gaspiller l'espace disque, on
se retrouvait à mettre peu de marge dans l'allocation de chaque miroirs,
ce qui occasionnait de nombreux redimensionnement manuels par la suite
lorsqu'un miroir grossit ou réduit.
Un autre avantage de ZFS est sa gestion des checksums pour détecter des
données corrompues (nous avons déjà eu des données corrompues par le
passé).
De manière plus anectodique, ZFS fournit aussi de la compression
transparente, mais cela ne fait gagner que 1% à 4% d'espace selon les
miroirs (la plupart des fichiers des miroirs sont déjà compressés en amont)
# Utilisation disque
Voilà l'espace utilisé par chaque projet, toujours en prenant le maximum
sur le dernier mois pour "lisser" les variations naturelles :
| Projet | Espace occupé | Espace occupé | Evolution | Evolution |
| | octobre 2024 | octobre 2023 | absolue | annuelle % |
|-----------+---------------+---------------+-----------+------------|
| Debian | 1624 GiB | 1400 GiB | +224 GiB | +16% |
| OpenWrt | 2353 GiB | 2160 GiB | +193 GiB | +9% |
| LineageOS | 903 GiB | 810 GiB | +97 GiB | +12% |
| F-Droid | 2989 GiB | 1865 GiB | +1124 GiB | +60% |
| CTAN | 54 GiB | 53 GiB | +1 GiB | +2% |
| CPAN | 35 GiB | 33 GiB | +2 GiB | +6% |
| Tails | 22 GiB | 30 GiB | -8 GiB | -26% |
|-----------+---------------+---------------+-----------+------------|
| Total | 7980 GiB | 6351 GiB | +1629 GB | +26% |
On constate que F-Droid continue de grossir à un rythme de +60% par an, ce
qui est vraiment conséquent. C'est maintenant notre plus gros miroir.
Les miroirs OpenWrt et LineageOS, qui historiquement grossissaient aussi
assez vite, sont maintenant sur une croissante plus raisonnable de +10%
par an, à peu près équivalente à celle de Debian.
# Trafic réseau (global)
Au total sur les trois machines, on constate un débit sortant moyen de
200 Mbit/s, avec un pattern journalier et donc des pics réguliers à
300 Mbit/s.
Sur le trafic entrant (synchronisation des miroirs), on est à seulement
20 Mbit/s en moyenne en comptant le total des trois machines.
Ca représente donc environ 750 TiB de données envoyées par an, et 75 TiB
de données reçues, soit un ratio 10:1 qui est plutôt bon. Le volume est
en légère augmentation par rapport à l'année dernière (l'estimation 2023
était entre 650 TiB et 700 TiB de données envoyées).
Le chiffre de 75 TiB de données reçues en un an peut paraître gros en
comparaison des 8 TiB de stockage utilisés pour les miroirs. On peut
expliquer ce chiffre par deux facteurs :
- LineageOS est en "rolling release", c'est à dire qu'il y a un nouveau
build chaque semaine pour l'ensemble des modèles, et seuls les 4
derniers builds sont conservés. Ainsi, les 900 GiB de données stockées
sont en fait totalement renouvellées en quatre semaines, ce qui donne
environ 10 TiB par an.
- OpenWrt a des snapshots qui sont rebuildés en continu, ce qui fait
qu'une partie des données (200 GiB environ) est renouvellée tous les
quelques jours. Avec une estimation très grossière, ça représente entre
30 TiB et 60 TiB de données reçues par an.
# Trafic HTTP (par miroir)
Pour connaître le détail par projet, je me base sur une analyse des logs
HTTP (avec goaccess) moyennée sur les deux dernières semaines :
| Trafic HTTP | Données servies | Données servies | Evolution | Note |
| par projet | Octobre 2024 | Octobre 2023 | annuelle % | |
|-------------+-----------------+-----------------+------------+------------------|
| Fdroid | 770 GiB/jour | 1338 GiB/jour | -42 % | |
| LineageOS | 670 GiB/jour | 432 GiB/jour | +55 % | |
| Tails | 145 GiB/jour | 123 GiB/jour | +18 % | |
| CTAN | 130 GiB/jour | 88.5 GiB/jour | +47 % | |
| OpenWrt | 27 GiB/jour | 2.8 GiB/jour | +864 % | 80% à 90% robots |
| Debian | 11 GiB/jour | 3.4 GiB/jour | +224 % | 50% à 75% robots |
| CPAN | 2.8 GiB/jour | 0.5 GiB/jour | +460 % | 80% à 90% robots |
|-------------+-----------------+-----------------+------------+------------------|
| Total | 1756 GiB/jour | 1988 GiB/jour | -12 % | |
Ces chiffres ne comptent que le trafic applicatif HTTP et HTTPS, et non
les accès via rsync (voir ci-dessous).
On constate une légère diminution globale du trafic, mais qui est uniquement
dûe à une grosse diminution de F-Droid : tous les autres miroirs sont en
hausse.
La diminution notable du trafic F-Droid pourrait venir d'une augmentation
du nombre de miroirs F-Droid et donc une charge moindre sur chaque miroir.
Cependant, le traffic F-Droid est très variable d'un jour à l'autre : il
peut varier de 400 GiB à plus de 1 TiB. Nous sommes donc peut-être dans
une période de creux non représentative de l'année.
LineageOS, Tails et CTAN voient une augmentation substantielle de leur
trafic, avec très peu de bots/crawlers.
OpenWrt, Debian et CPAN ont toujours relativement peu de trafic, avec en
plus une grosse majorité de crawlers. Cependant, ces miroirs restent a
priori utiles (notamment le miroir Debian qui est utilisé en interne par
de nombreux adhérents tetaneutral.net, et par ailleurs comme source pour
d'autres miroirs)
# Trafic rsync
Tous les miroirs sont également accessibles via rsync sans
authentification, ce qui permet à n'importe qui de synchroniser ses
propres miroirs à partir des miroirs hébergés par tetaneutral.net.
Voilà le volume de traffic envoyé par an et par projet, calculé à partir des logs de rsyncd :
| Trafic rsync | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 (10 mois) |
|--------------+----------+----------+-----------+-----------+-----------+----------------|
| OpenWrt | 9366 GiB | 8487 GiB | 13705 GiB | 19929 GiB | 36962 GiB | 5735 GiB |
| LineageOS | 1.7 GiB | 2.8 GiB | 2.8 GiB | 5.4 GiB | 285 GiB | 11 GiB |
| CTAN | 80 GiB | 91 GiB | 106 GiB | 113 GiB | 29 GiB | 68 GiB |
| CPAN | 1.4 GiB | 5.5 GiB | 9.3 GiB | 25 GiB | 242 GiB | 323 GiB |
| Debian | | | 0.2 GiB | 213 GiB | 3359 GiB | 4231 GiB |
| F-Droid | | | | | | 120 GiB |
Le total partiel en 2024 (jusqu'à fin octobre) est d'environ 10.5 TiB
envoyés par rsync, soit environ 35 GiB par jour. C'est une division par
trois par rapport à l'année dernière, principalement parce que le volume a
très fortement diminué pour OpenWrt. En revanche, on constate une
augmentation de volume conséquente pour Debian.
Pour Debian, il s'agit majoritairement de deux machines qui synchronisent
leur miroir local depuis tetaneutral.net : une à l'Université d'Evry, et
l'autre derrière une connexion Free.
Pour OpenWrt, les machines qui se synchronisent chez nous sont toujours
aussi variées : Inde, Cuba, France (OVH), et aussi ... Freifunk Munich !
# Le futur
La répartition sur 3 machines laisse de la marge niveau espace de stockage
à moyen terme. mirror-03 est actuellement rempli à 90%, mais il sera
facile de déplacer certains miroirs vers mirror-02 lorsque le
disque sera proche de la saturation.
En revanche, si F-Droid continue de grossir et dépasse les 4 TB, il va
devenir difficile de stocker l'intégralité des données sur une seule
machine. Une piste possible serait d'arrêter d'être miroir de l'archive
des vieux paquets : actuellement, le dépôt principal prend 500 Go alors
que les archives prennent 2.5 TB. Il faudra étudier la faisabilité de
cette solution avec les développeurs F-Droid.
Il faut mettre à jour mirror-01 (Debian 10 vers 12, passage à ZFS),
éventuellement via un renouvellement de matériel.
D'autres miroirs pourraient être mis en place, à condition de ne pas
prendre trop d'espace disque : Libreoffice, Gimp, VLC...
Plus d'informations sur la liste de diffusion technique