Skip to content

Fedora 22 ...

fedora Mal schnell wegbloggen, ich habe vor 1,5 Wochen mein Hauptarbeitsgerät mittels fedup von Fedora 21 auf Fedora 22 aktualisiert. Dabei war ich ziemlich überrascht, wie reibunglos alles funktioniert hat. Das Update von KDE 4.x auf Plasma 5 hat sehr gut funktioniert!

Interessanterweise wurden auch die eingebundenen Fremdrepositories angefasst.

"Normalerweise" installiere ich neue Releases direkt mit der ISO-Datei neu, das war nur ein Test, ob es funktioniert und ich muss sagen: Prima!

Schaltsekunde ...

linux So soll es sein:

05:06:02 [dirk@moas:~] $ sudo grep -i leap /var/log/messages
Jul 1 01:59:59 moas kernel: Clock: inserting leap second 23:59:60 UTC
Jul 1 02:00:00 moas ntpd[24383]: 0.0.0.0 061b 0b leap_event

Willkommen Debian Jessie ...

debian Am gestrigen Sonntag wurde Debian 8.0, Codename "Jessie" veröffentlicht.

Neben der üblichen Versionspflege ist die vermutlich grösste Änderung die umstrittene Umstellung von System-V-Init auf Systemd (ich persönlich begrüsse das sehr).

Die weiteren Änderungen sind zu zahlreich, um sie in einem kurzen Blogartikel zu beleuchten, das haben andere bereits erledigt. Es lohnt sich in jedem Fall ein Blick in die (auch in deutscher Sprache erhältlichen) Releasenotes oder dem Artikel bei Pro-Linux.

Wer die Informationen gerne in Form von Slides haben möchte, wird bei Michael Prokop fündig (PDF) oder kann sich die "Folien" (HTML) von Axel anschauen.

Ich freue mich sehr darüber, dass sich das LTS-Modell durchsetzt. LTS steht für Long Term Support und in Debian dafür, dass die Version fünf Jahre lang mit Sicherheitsupdates versorgt wird. Die Seite LTS im Debian-Wiki klärt über das "wie" auf.

News+ und Tiny Tiny RSS ...

android News+ ist ein kostenpflichtiger, aber dafür vielleicht auch der beste, Feedreader für Android. Nicht zuletzt, weil es auch eine freie Tiny Tiny RSS Extension gibt, mit der das Lesen von Tiny Tiny RSS Inhalten lokal auch Spass macht.

Apropos Spass, damit die gelesen/ungelesen Status mit Tiny Tiny RSS synchronisiert wird, muss das entsprechende Plugin auf der Serverseite installiert und aktiviert werden.

nice und ionice ...

linux Ein kleiner Shorty für alle, die Last intensive Dinge mit ihren Linux-Maschinen anstellen müssen und den eigentlichen Betrieb so wenig wie möglich einschränken wollen.

Mit nice bzw. renice kann man die Priorität eines Prozesses bezogen auf die CPU beeinflussen und mit ionice kann man das gleiche auch in Bezug auf I/O tun.

Wenn man die folgenden Befehle in ein Skript schreibt, werden alle Kommandos und Kindprozesse des Skriptes mit niedrigst möglicher Priorität ausgeführt.
renice -n 19 -p $$
ionice -c 2 -n 7 -p $$


(ionice -c 3 -p $$ gibt dem Prozess nur dann I/O, wenn kein anderer Prozess I/O anfordert).

Die beiden obigen Befehle kann man natürlich auch in der aktuellen Shell (interaktiv) ausführen.

Tuning ...

centos Wie bereits geschrieben, musste ich ein wenig tunen.

In der ersten Stufe habe ich einige Datenbankparameter angepasst und in der zweiten Stufe die Datenbankinhalte bereinigt.

Wenn man ein Monitoringsystem - in meinem Fall Bloonix (gibt es übrigens auch in der Open-Source-Variante zum selber hosten) - benutzt, kann man sehr schön den Erfolg feststellen (die Webseite wird von extern aufgerufen).

Limits für MariaDB auf CentOS ...

centos Erkan hat - nachdem er mir einen entscheidenden Tipp gab - es auch gleich selber verbloggt.

Die Limits für MariaDB (ich musste an den "open files" schrauben) werden nicht - wie bei SystemV üblich - in der Datei /etc/security/limits.conf gesetzt, sondern neu in der Datei /etc/systemd/system/mariadb.service.d/limits.conf, das passende Verzeichnis mariadb.service.d muss allerdings auch noch angelegt werden.

Die Einstellung der maximal offenen Dateien in der limits.conf, plus der Bereinigung der Logbuch-Datenbanken von Altlasten sollten jetzt zu einer annehmbaren Performance führen. (Grafik liefere ich nach).

Migration abgeschlossen ...

centos Ende letzter Woche habe ich meine Migration von Debian Squeeze LTS auf CentOS 7 und von Manitu zu Metanet abgeschlossen.

Es ist noch reichlich Performance-Tuning nötig, aber die Dienste laufen jetzt alle auf der neuen Hardware.

Ein Wort zu dem Wechsel:
Ich war mit Manitu nicht unzufrieden, ganz im Gegenteil, aber ich wollte die Dienste alle in der Schweiz haben, weil mir der Spagat zwischen dem Deutschen und dem Schweizer Rechtssystem nicht so gut gefällt.

Interessanterweise hat es bei dem Wechsel an Stellen geknallt, die ich nicht erwartet hatte.

Eine davon war die Apache-Konfiguration, bedingt durch den Wechsel von Apache 2.2 auf Apache 2.4 und einem Fehler in dem Upgrade-Guide.

Dort steht, dass man die 2.2er Konfiguration
Order allow,deny
Allow from all

Durch die folgende 2.4er Konfiguration
Require all granted
ersetzen soll.

Tatsächlich ist es aber so, dass man beides braucht:
Order allow,deny
Allow from all
Require all granted


Das hat mich viele Nerven gekostet.

Restart check ...

linux Wenn auf einem Linux-System Updates eingespielt werden, beispielsweise von Bilbiotheken, die von vielen Programmen benutzt werden, dann werden die neu installierten Libraries erst benutzt, wenn ein neues Programm gestartet wird. Alle bereits laufenden Programme nutzen noch die Bibliothek, die vor dem Update vorhanden war.

Um festzustellen, welche Programme das sind, gibt es unter CentOS das Skript needs-restarting, es ist im Paket yum-utils zu finden. Unter Debian und Ubuntu heisst das Skript checkrestart und ist im Paket debian-goodies zu finden.

Es lohnt sich, diese Skripte direkt nach einem Update auszuführen, um sich nicht in falscher Sicherheit zu wiegen.

dd vs. fallocate vs. truncate ...

linux Gerade bei Virtualisierung kommt man nicht darum herum, Filesystem-Container in einer bestimmten Grösse anzulegen, wenn man nicht komplette Devices übergeben kann oder möchte.

Der Standardweg war bisher, einen solchen Container bzw. eine solche Datei mit dem Kommando dd zu erzeugen. Das kann zuweilen schon einmal einige Zeit benötigen, wie hier auf einem Testserver zu sehen ist:

dirk@testserver:~$ sync ; time (dd if=/dev/zero of=10gig.dd bs=1024 count=10485760 ; sync)
10485760+0 records in
10485760+0 records out
10737418240 bytes (11 GB) copied, 20.7891 s, 516 MB/s

real    1m42.645s
user    0m0.942s
sys     0m19.807s


Die Dauer resultiert daher, dass dd jeden einzelnen Block schreibt (bzw. kopiert) und 10 GiB schreiben, dauert ein wenig ...

Insbesondere ist spannend zu sehen, dass das dd-Kommando bereits nach etwa 21 Sekunden fertig ist, es aber weitere 80 Sekunden dauert bis alles auf der Festplatte ist.

Ein Arbeitskollege wies mich jetzt auf fallocate hin, was ich bisher noch nicht kannte.

dirk@testserver:~$ sync ; time (fallocate -l 10G 10gig.fallocate ; sync)

real    0m0.165s
user    0m0.000s
sys     0m0.013s


Das Programm ist so schnell, weil nicht 10 GiB an Daten geschrieben werden, sondern nur der Platz für die Datei reserviert wird. Das ist völlig ausreichend für nahezu alle Anwendungsfälle.

Die Filesysteme, die fallocate unterstützt sind btrfs, ext4, ocfs2 und xfs.

Das dritte Programm im Bund ist truncate.

dirk@testserver:~$ sync ; time (truncate -s 10G 10gig.truncate ; sync)

real    0m0.087s
user    0m0.000s
sys     0m0.007s


Es ist noch ein wenig schneller als fallocate, weil es mogelt. Es erzeugt ein "sparse file" und gaukelt dem Betriebssystem vor, dass dort eine Datei mit lauter Nullen zu finden ist. Spätestens wenn man eine bestimmte Position in der Datei springen oder etwas verändern will, werden die I/O-Operationen durchgeführt, die man anfänglich vermieden hat.

Aus Sicht des Nutzers sehen alle drei Dateien gleich aus.

dirk@testserver:~$ ls -lah 10gig.*
-rw-r--r--. 1 dirk dirk 10G Jan 10 15:46 10gig.dd
-rw-r--r--. 1 dirk dirk 10G Jan 10 15:48 10gig.fallocate
-rw-r--r--. 1 dirk dirk 10G Jan 10 15:50 10gig.truncate


Die Empfehlung ist aber, in jedem Fall fallocate zu nutzen und nicht dd oder truncate oder anders ausgedrückt, Ihr solltet wissen, was die drei Programme tun und dann das passende für Euren Zweck auswählen.

Git-Server auf CentOS ...

centos Eigentlich ist "Git-Server" etwas hoch gegriffen, da als Server-Komponente SSH zum Einsatz kommt. Nichtsdestowenigertrotz ist das Endergebnis ein Git-Repository-Server, den man sehr bequem nutzen kann.

Für den Server habe ich einen User git (UserID 600) angelegt, mit dem die Repositories verwaltet werden sollen und das Homeverzeichnis soll unter /srv/git liegen:
groupadd -g 600 git
useradd -u 600          \
        -g 600          \
        -d /srv/git     \
        -m -s /bin/bash \
        git


Eine Besonderheit unter CentOS ist, dass dort SELinux läuft und wir dem System bekanntgeben müssen, dass es sich bei /srv/git um ein Homeverzeichnis handelt. Die einfachste Methode ist, den Kontext eines bestehenden Homeverzeichnisses auf das neue Verzeichnis zu übertragen.
semanage fcontext -a -e /home/dirk /srv/git
restorecon -R -v /srv/
ls -Zd /srv/git

Zu SELinux gibt es reichlich Dokumentation, ich verweise hier einmal auf den SELinux User's and Administrator's Guide bei RedHat. SELinux kann man auch abschalten, wenn einem der Aufwand zu hoch ist.

Der Rest ist relativ einfach und geht strikt nach der gitolite-Anleitung.

Den eigenen Public-Key (wird benötigt, um gitolite zu verwalten) in das Verzeichnis /srv/git kopieren, für mich hat sich dafür das Format user-host.pub bewährt (ich habe auf jedem Host einen separaten SSH-Key und nutze nicht überall den gleichen).
git clone git://github.com/sitaramc/gitolite
mkdir -p ${HOME}/bin
gitolite/install -to ${HOME}/bin
export PATH=${HOME}/bin:${PATH}
echo 'PATH=${HOME}/bin:${PATH}' >> ${HOME}/.bashrc
gitolite setup -pk user-host.pub


Fertig!

Die restliche Konfiguration läuft über das admin-Repository, das man auschecken muss und dann bearbeitet. Die neue Konfiguration ist direkt nach einem git push aktiv.
git clone git@host:gitolite-admin.git gitolite-admin-host.git


Dort finden sich im keydir-Verzeichnis alle Public Keys von Usern, die Zugriff auf irgendeines der Repositories haben sollen und im Verzeichnis conf liegt die gitolite.conf mit einem Beispiel-Repository.

Viel Spass!

Taskserver auf CentOS 7 ...

centos Im Rahmen meines privaten Migrationsprojektes habe ich natürlich mit Hürden gerechnet, manchmal tauchen die Herausforderungen allerdings an unerwarteten Stellen auf.

Taskserver lässt sich nach Dokumentation relativ leicht installieren. Allerdings läuft bei CentOS 7 ein firewalld mit, der eingehende Verbindungen blockt, was meiner Meinung nach sinnfrei ist, wenn es nur ein Netzwerkinterface hat, aber gut.

Mittels
firewall-cmd --zone=public --add-port=53589/tcp

lässt sich der firewalld überzeugen, eingehende Taskserver-Verbindungen zu akzeptieren.

Kein guter Start ...

fedora Wie schon vor längerer Zeit angekündigt, wollte ich meinen Hauptrechner auf Fedora umstellen. Interessanterweise hat weder bei der Installation noch danach das Kabel gebundene Netzwerk funktioniert. Das hatte ich bei Linux unabhängig von der Distribution tatsächlich noch nie.

Allerdings war schon spannend, dass ich das WLAN nach der Installation nutzen konnte. Nachdem die Updates eingespielt waren, funktionierte auch Netz über Kabel. Verrückt!

Es wäre klasse, wenn die Installationsmedien entsprechend angepasst würden.

Nachtrag: In den Common F21 bugs, habe ich den Eintrag IP address discovery via DHCP does not work gefunden.

Privates Migrationsprojekt ...

linux Bezogen auf Linux denke ich gerade über einen Wechsel im grossen Stil nach. Beruflich habe ich neben kommerziellen Unixen (momentan zu 100% Solaris) nahezu ausschliesslich mit Red Hat Enterprise Linux zu tun.

Dem möchte ich gerne privat Rechnung tragen. Die Server sollen auf das "Community Enterprise Operating System" CentOS migriert werden und der Desktop auf Fedora. Das passiert nicht "von Heute auf Morgen", ich habe vorher noch dringendere Arbeiten zu erledigen.

Axel schrieb ja schon einmal:
Irgendwie werde ich das Gefühl nicht los, dass Dirk nie lange bei einer Distribution bleiben wird. Marcus scheint da ähnlich zu ticken. Wirklich verstanden wieso, habe ich bisher nicht.

Mir wäre es jedenfalls viel zu mühsam, alle paar Monate meine produktiven Kisten neuzuinstallieren und mich wieder an was neues gewöhnen zu müssen, trotz dass ich die meisten Konfigurationdateien für mein $HOME in Git-Repositories habe. (Ein weiter Grund für Debian: Nie Neuinstallieren, nur alle paar Jahre mal Dist-Upgraden. :-)


Ja, ich habe die für mich ideale Distribution noch nicht gefunden. Nachdem letztlich ein Dist-Upgrade von Squeeze auf Wheezy mal so richtig viel Nacharbeit erfordert hat, hat das Ansehen von Debian bei mir eine deutliche Macke bekommen. Um eventuellen Nachfragen und dummen Kommentaren vorzubeugen: Es kamen keine Fremdrepositories zum Einsatz. Im "Normalbetrieb" kann ich mich nicht beklagen, da tut Debian seinen Dienst sehr gut.

Der Grund, der Axel bewegt bei Debian (für immer) zu bleiben, ist bei mir der Grund zu wechseln, ich möchte mich auch nicht immer an etwas Neues gewöhnen müssen. Der Unterschied ist, dass ich beruflich und privat zwei Welten bediene. Aber letzten Endes ist die Wahl der Distribution zweitrangig und fast nur Geschmackssache. Wie schon häufiger erwähnt, könnte ich meine private und berufliche Arbeit auf nahezu jedem System erledigen.

Eventuell liegt es auch an der Grundeinstellung, ich sehe mich eher als Linuxer als als Vertreter einer bestimmten Distribution. Und das wirklich schöne ist, dass man auch bei einem Distributionswechsel fast alles weiterverwenden kann, die Programme sind ja grösstenteils die gleichen.

Im Job sind die meisten Server nur einer einzigen Aufgabe (oder Webseite) zugeordnet. Privat verwalte ich rund 30 Domains mit entsprechenden Diensten.

Da ich nicht das Debian-Konfigurationsschema auf CentOS portieren möchte, suche ich nach Dokumentation, die gezielt auf Debian-Umsteiger abzielt. Habt Ihr da Tipps?

Bezüglich Fedora brauche ich noch Hinweise auf "non-free" Software, leider für die üblichen Verdächtigen mp3-Support, DVD und Flash. Da scheint RPM Fusion das Mittel der Wahl zu sein. Weitere Tipps nehme ich sehr gerne entgegen.

Bin für jeden Hinweis dankbar.

Jüngster Leser ...

adminbuch Hier ist das Bild des vermutlich jüngsten Lesers, unseres Adminbuchs, das übrigens Ende des Monats in einer neuen Auflage erscheint. :-)

Danke Arthur!

Und vielen Dank auch, dass ich das Bild verwenden darf.