Alle Beiträge von adlerweb

MySQL/MariaDB unter Linux mit ZFS: Operating system error number 22 in a file operation

Nachdem LVM eine Qual ist wenn es um die Konfiguration von RAID geht (anm: Natives LVM-Raid, nicht md) und btrfs auf mehreren meiner Systeme gerne mal Dateien vergisst habt ich mich nach langer Zeit nochmal an ZFS gewagt. Die Funktionspalette ist beeindruckend: Integriertes RAID, integriertes Volumemanagement, Subvolumes, Kompression, Quota, etc. Alles natürlich verzahnt, sodass ein RAID-Rebuild wirklich nur belegte Dateisystembereiche rekonstruiert. Einzig die statische RAID-Konfiguration ist wenn man von LVM kommt etwas bedauerlich. Ansonsten scheint die Linux-Portierung des eigentlich von Solaris stammenden Systems inzwischen durchaus stabil.

Genug geredet, eigentliches Thema: MySQL unter ZFS. Als guter Einstieg sollte man hier einen Blick auf die Arch-Wiki werfen, welche einen Blick auf die Blockgrößen und Cache-Eigenheiten wirft. Doch egal wie: MySQL bzw. MariaDB haben noch eine Gemeinheit im Paket: Direct IO.

Da MySQL ein eigenes Caching implementiert versucht es über O_DIRECT die Dateicaches des Betriebssystems zu umgehen. Im Falle von ZFS ist dies durch den Aufbau nicht sonderlich hilfreich und wird durch den Linux-Treiber nicht unterstützt. Während die meisten Programme automatisch auf klassisches IO zurückfallen verabschiedet sich MySQL mit folgenden Log-Einträgen:

141019 18:07:42 InnoDB: Operating system error number 22 in a file operation.
InnoDB: Error number 22 means ‚Invalid argument‘.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html
InnoDB: File name ./ib_logfile0
InnoDB: File operation call: ‚aio write‘.
InnoDB: Cannot continue operation.

Um das Problem zu beheben kann man die Datenbank über /etc/mysql/my.cnf in den klassischen IO-Modus zwingen, hierzu unter [mysqld] folgenden Eintrag ändern bzw. hinzufügen:

innodb_use_native_aio=0

im Anschluss sollte die Datenbank wieder wie gewohnt starten. Hinweis: Fehlender Direct-IO bringt auch Probleme mit KVM/LibVirt, auch hier sind ggf. Anpassungen notwendig.

[Gentoo] Installation von dev-ruby/ffi-1.9.4 schlägt fehl

Die Installation von dev-ruby/ffi-1.9.4, welches als Dep gezogen wurde, machte auf einem Server Probleme. Unter anderem war folgende Meldung zu lesen:

cannot load such file -- rspec/core/rake_task

Woher die Anforderung kam oder warum keine Dep da ist konnte ich nicht direkt sehen, ein manuelles Installieren von dev-ruby/rspec sollte jedoch die nötigen Voraussetzungen schaffen um das Kompilieren zu ermöglichen.

[Gentoo] Update sys-apps/man-db schlägt fehl

Auf mehreren Servern quittierte das Update von sys-apps/man-db-2.6.6 mit folgender Meldung:

BEGIN failed--compilation aborted at /usr/bin/po4a line 547.

Schuld ist Perl, entsprechend kann das gute, alte perl-cleaner --all Wunder wirken.

[Gentoo] Slot-Conflice durch Perl-Updates

Schon etwas älter, aber ab und zu stoße ich trotzdem drauf: Durch Perl kommt es bei Updates zu einem Slot-Conflice / Blocked Packages. Die Lösung wird z.T. gleich mitgeliefert:


* Remove all perl-core packages from your world file
* emerge --deselect --ask $(qlist -IC 'perl-core/*')
* Update all the installed Perl virtuals
* emerge -uD1a $(qlist -IC 'virtual/perl-*')
* Afterwards re-run perl-cleaner
perl-cleaner --reallyall

Fotos Kirmes Saffig 2014 / Pfarreienfest 2014

Die Fotos der Kirmes Saffig 2014 sind nun online, etwas verspätet finden sich zudem Impressionen des Pfarreienfestes in der Gallery.

Arch Linux: Grafik-Software streikt nach Mesa-Update (10.2.7-2)

Seit vermutlich dem letzten Mesa-Update auf 10.2.7-2 vom letzten Wochenende ist offenbar OpenGL nicht mehr voll funktionsfähig – in meinem Fall verabschiedete sich Hugin mit der folgenden Meldung:

/usr/share/hugin/data/plugins/crop_cp.py
   CAT:Control Points
   NAM:Crop Control Points
/usr/share/hugin/data/plugins/woa.py
   CAT:Control Points
   NAM:Warped Overlap Analysis
/usr/share/hugin/data/plugins/top_five.py
   CAT:Control Points
   NAM:keep 5 CPs per image pair
/usr/share/hugin/data/plugins/shooting_pattern.py
   CAT:initial distribution
   NAM:6-1-1 Shooting Pattern
LLVM ERROR: Cannot select: intrinsic %llvm.x86.sse41.pblendvb
Speicherzugriffsfehler (Speicherabzug geschrieben)

Der Fehler ist schon im Arch-Bugtracker zu finden. Eine aktualisierte Mesa-Version (10.2.7-3) findet sich in Testing, hiermit tritt der Fehler nicht mehr auf.

Edit: Laut Website soll 10.2.7-3 wohl seit gestern in extra sein, auf meinem Mirror war dies jedoch noch nicht der Fall.

PEBCAK: Negative Temperaturen gibt’s ja auch…

In der BitNotice #44 hatte ich „mal schnell“ ein Script gebaut um die Werte eines DS18B20 Temperatursensors über einen Raspberry Pi in Volkszähler zu schaufeln. Was irgendwie nicht so ganz aufgefallen ist: Das Script konnte nur Plusgrade. Jetzt steht auf Github eine überarbeitete Version mit „-“ und etwas mehr Fehlerbehandlung. Danke an Peter, dessen Kühltruhe den Fehler aufgedeckt hat.

CAcert mit Chrome/Chromium unter Linux

CAcert ist an sich ja eine tolle Sache: Kostenfreie SSL-Zertifikate ermöglichen es auch kleinen Projekten Verschlüsselung zu nutzen ohne mit selbstsignierten Gerümpel anzufangen. Leider ist diese Zertifizierungsstelle nur bei wenigen Browsern vorinstalliert.

Unter Windows mit IE oder auf nahezu allen PC-Systemen per Firefox ist die Installation üblicherweise mit einem einfachen Klick auf der Webseite der CA erledigt – Chrome/Chromium unter Linux nutzen jedoch offenbar eine eigene Zertifikatsdatenbank.

Da die Warnungen und das manuelle prüfen auf Dauer natürlich nervig sind verweise ich mal einfach auf den offiziellen Installationsguide – hier ergänzt um einen kurzen Identitätscheck (Stand August 2014, gültig bis März 2033).

 

cd /tmp

wget -O cacert-root.crt "http://www.cacert.org/certs/root.crt"
wget -O cacert-class3.crt "http://www.cacert.org/certs/class3.crt"

openssl x509 -in cacert-root.crt -fingerprint -sha1 -noout
#Hier muss 13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33 erscheinen
openssl x509 -in cacert-class3.crt -fingerprint -sha1 -noout
#Hier muss AD:7C:3F:64:FC:44:39:FE:F4:E9:0B:E8:F4:7C:6C:FA:8A:AD:FD:CE erscheinen

certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org" -i cacert-root.crt 
certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org Class 3" -i cacert-class3.crt

Nach der Installation erkennt Chrome/Chromium die neue CA sofort, ein Neustart von System oder Browser ist nicht notwendig.

Ranttime #8 – Die Digitale Agenda 2014-2017 – Ein Kommentar

Links zum Thema

Inhalt:

  • 0:00 Intro / Die Internet-Troika
  • 3:23 Industrie 4.0
  • 5:12 Chancen für Start-Ups / Von Abmahnern und Patenttrolle
  • 6:34 Netzneutralitätsprioritätsvergabe
  • 8:41 Die DeMail ist sicher.
  • 10:32 Die Digitale Gesellschaft: Wir sind das Netz…
  • 14:15 Vertrauen als Währung
  • 14:55 EU-Datenschutz
  • 15:33 Was ist „kritische Infrastuktur“?
  • 17:04 Das Internet ist kein rechtsfreier Raum
  • 18:25 Mit Sandsäcken gegen den Daten-Tsunami
  • 23:44 Funkfrequenzen sind kein Kabel
  • 25:05 Damit Weißes länger weiß bleibt
  • 25:36 Closed Data, Open Data, Missing Data
  • 26:09 Überwachungsterror
  • 27:04 Hausaufgabenvergesser
  • 27:32 Der Bundestrojaner, dein Freund und Helfer
  • 28:20 Undefiniert ist genauer als Zahlen zu nennen?
  • 29:14 Lehrstunde Vectoring
  • 29:30 Offene WLANs, Störerhaftung und die Anonymität
  • 31:14 Frequenzpooldämpfung: Tetra/BOS-Funk
  • 32:22 Volkssport Google-Bashing
  • 32:52 [fefe] Förderung? Bleibt ja in der Familie
  • 33:25 [fefe] Meldepflicht
  • 34:21 [div] Folgenloses Geschwätz
  • 34:44 Mein Fazit