Skip to content

Commit

Permalink
What's Up? ARM64
Browse files Browse the repository at this point in the history
  • Loading branch information
DerLinkman committed Jul 31, 2023
1 parent 1af2605 commit 6a9c0e8
Show file tree
Hide file tree
Showing 2 changed files with 146 additions and 0 deletions.
73 changes: 73 additions & 0 deletions content/posts/whats-up-arm64/index.de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: "🤔🐮 Wie schaut's aus? - ARM64 Integration"
date: 2023-07-31T09:15:10+02:00
draft: false

author: Niklas Meyer/DerLinkman
authorLink: "https://github.com/DerLinkman"
toc: false

license: ""

tags: ["2023", "faq", "news", "status", "arm64"]
categories: ["Wie schaut's aus?", "News"]

---

**Moohoo zusammen!**

Über einen Monat haben wir nichts mehr von uns hören lassen und heute einfach so ein Shadowdrop als Update.

Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren möchten, haben wir uns eine Rubrik ausgedacht, die wir **Wie schaut's aus?** nennen.

Heute starten wir direkt mit dem ersten Thema, nämlich **ARM64**:

Wir hatten ja ursprünglich angekündigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt. Trotzdem wollen wir das immer noch bieten und arbeiten weiter an dieser. Allerdings gibt es ein paar Schwierigkeiten im Bezug auf den Fehlerlosen bzw. Seemless übergang von mailcow auf ARM64.

Diese sind für den Hauptbetrieb prinzipiell nicht wirklich spürbar, stören uns jedoch so sehr, dass wir das ganze bisher on hold lassen.

> Worum geht's fragt ihr?
Lieb, dass ihr fragt! Es geht im genauen um die Hyperscan Bibliothek bzw. die Implementation von Hyperscan bzw. Vectorscan (wie es auf ARM64 heißt) für Rspamd. Besagter Hyperscan kompiliert regelmäßig Regex Einträge, welche durch den Betrieb von mailcow dynamisch erzeugt werden und zur Erkennung von Spam benötigt wird. Genauer gesagt dient Hyperscan hier als Performanceboost, da die Kompilierung der Regex Einträge somit nicht immer wieder neu passieren muss, sondern dieser kompiliert bleibt.

> Was ist nun das Problem?
Das Problem ist nun, dass besagter Hyperscan (Vectorscan) auf ARM64 zum aktuellen Zeitpunkt nicht richtig funktioniert bzw. die Kompilierung nach einem Neustart hinfällig ist, da er diese nicht mehr laden kann. Man muss aber auch dazu sagen, dass Rspamd erst mit der aktuellen Version 3.5 nativen ARM64 Support erhalten hat und damit noch einige Fehler aufweisen lassen kann.

Der Hauptgrund, warum wir das ganze zurückhalten (obwohl die eigentliche Funktionalität bereits gegeben ist und von einigen Testern [DANKE] bereits erfolgreich getestet wurde) ist der, dass es zu einigen Warnungen in der Konsole kommt, welche unerfahrenere Nutzer verwirren bzw. beängstigen kann. Ebenfalls kann durch dieses Problem eine gleichwertige Performance nicht garantiert werden.

Zusätzlich dazu kommt noch der Fakt, dass einige wichtige Kernkomponenten wie bspw. Dovecot (er insbesondere) mit dem Nightly Release von ARM64 von uns selbst kompiliert werden muss, da das Dovecot Team keinen nativen ARM64 Support anbieten wird und wir nun mal im mailcow Stack die Pakete von Ihnen direkt beziehen und nicht über das APT Repo von Debian bspw. an die Versionen gelangen wie bei Postfix bspw.

Dies kann zum aktuellen Zeitpunkt ungeahnte Konsequenzen mit sich ziehen, welche mit einer größeren Testrunde geklärt bzw. beleuchtet werden müssen.

Wir wollen den ARM64 Support nicht einfach "hinrotzen" nur damit wir sagen können "Hey, mailcow kann jetzt auch ARM64, schaut mal her!!!" sondern ihn in den normalen Releasecycle und die normale mailcow Architektur integrieren, sodass wir nicht zwei Repos, sondern ein einziges Repo mit demselben Inhalt für x86 und ARM64 pflegen können.

So profitiert im Endeffekt jedermann davon.

> Was heißt das nun für den ARM64 Support?
Wir arbeiten weiter an dem Support und werden auch wirklich bald damit beginnen, besagte Änderungen in den Nightly Branch zu implementieren. Allerdings wird es dann noch dauern, bis das ganze dann in den normalen Stable Branch gelangen wird und jeder es nutzen kann, wie er mag.

Heißt abgekürzt also: Ein Full-Release noch dieses Jahr wollen wir nicht mehr garantieren. Wir hoffen es natürlich.

Natürlich geben wir euch Bescheid, sobald es dazu Neuerungen gibt.

Jetzt wisst ihr, was aktuell mit ARM64 los ist und warum es dort stagniert, obwohl es erst nicht so aussah.

Vielleicht denken jetzt einige von euch:
> "Wegen so einer Lappalie released ihr das nicht?"
Und vermutlich werdet ihr damit auch nicht ganz falsch liegen, aber wir selbst möchten eben keine Experimente *mal eben* machen.

---

Wir planen solche "Ask the Developer" ähnliche Blogposts nun öfters zu bringen und euch direkter über den aktuellen Stand zu informieren.

Für alle LDAP Fans kann ich auch schonmal einen ähnlichen Post im Stile von "Ask the Developer" ankündigen. Den macht aber der gute Patrick, wenn er so weit ist euch dazu was sagen zu können.

Ansonsten gilt, was immer gilt:

Bleibt gesund und happy Mailing!

Euer mailcow Team
> Niklas aka. DerLinkman
73 changes: 73 additions & 0 deletions content/posts/whats-up-arm64/index.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: "🤔🐮 What's up? - ARM64 Integration"
date: 2023-07-31T09:15:10+02:00
draft: false

author: Niklas Meyer/DerLinkman
authorLink: "https://github.com/DerLinkman"
toc: false

license: ""

tags: ["2023", "faq", "news", "status", "arm64"]
categories: ["What's up?", "News"]

---

**Moohoo everyone!**

More than a month we have not heard from us and today just like that a shadowdrop as an update.

Since we have some things to discuss and also want to communicate directly in the future, we have come up with a section that we call **What's up?**.

Today we start directly with the first topic, namely **ARM64**:

We had originally announced to make mailcow ARM64 ready by June 2023. Obviously that didn't quite work out. However, we still want to provide this and are continuing to work on it. However, there are a few difficulties in making a faultless transition from mailcow to ARM64.

These are not really noticeable for the main operation, but bother us so much that we leave the whole thing on hold so far.

> What is it you ask?
Nice that you ask! It's about the Hyperscan library or the implementation of Hyperscan or Vectorscan (as it's called on ARM64) for Rspamd. Said Hyperscan compiles regular regex entries, which are dynamically generated by mailcow and are needed for spam detection. To be more precise, Hyperscan serves as a performance boost here, since the compilation of the regex entries does not have to happen over and over again, but remains compiled.

> What is the problem?
The problem now is that said Hyperscan (Vectorscan) does not work properly on ARM64 at the current time or the compilation is invalid after a restart because it can no longer load it. But it has to be said that Rspamd just got native ARM64 support with the current version 3.5 and thus can still have some bugs.

The main reason why we hold back the ARM64 support (although the actual functionality is already given and has been successfully tested by some testers [THANKS]) is that it comes with some warnings in the console, which can confuse or scare inexperienced users. Also, due to this problem, an equivalent performance cannot be guaranteed.

Additionally there is the fact that some important core components like Dovecot (in particular) have to be compiled by ourselves with the nightly release of ARM64, because the Dovecot team will not offer native ARM64 support and we get the packages in the mailcow stack directly from them and not via the APT repo of Debian like we do with Postfix for example.

This may have unforeseen consequences at this time, which will need to be clarified in a larger test round.

We don't want to just "throw in" ARM64 support just so we can say "Hey, mailcow can do ARM64 now, look!!!" but integrate it into the normal release cycle and the normal mailcow architecture so that we can maintain not two repos, but a single repo with the same content for x86 and ARM64.

So in the end everyone benefits from it.

> What does it mean for ARM64 support?
We are still working on the support and will really start implementing said changes in the nightly branch soon. However, it will take some time until the whole thing will be moved to the normal stable branch and everyone can use it as they like.

So in short: We don't want to guarantee a full release this year. We hope for it of course.

Of course we will let you know as soon as there are any news.

Now you know what's going on with ARM64 and why it's stagnating, although it didn't look like that at first.

Maybe some of you are thinking now:
> "Because of such a trifle you don't release it?".
And probably you won't be completely wrong, but we don't want to do any experiments *fastly*.

---

We plan to publish such "Ask the Developer" like blogposts more often now and inform you more directly about the current state.

For all LDAP fans I can also announce a similar post in the style of "Ask the Developer". But that will be done by Patrick, when he is ready to tell you something about it.

Otherwise, what always applies:

Stay healthy and happy mailing!

Your mailcow Team
> Niklas aka. DerLinkman

0 comments on commit 6a9c0e8

Please sign in to comment.