Bild: https://adlerweb.info/blog/wp-content/uploads/2014/11/colorcode.svg
BitNotice #68 – Multimedia unter Linux – Videos konvertieren
(16.3 MB) 00:08:17
2014-11-07 20:14 🛈Nachdem wir nun einige Formen kennen um Videos zu erstellen stehen wir vor dem nächsten Problem: Auch wenn viele moderne Geräte ein breites Spektrum an Codecs unterstützen passt das Format immer irgendwo nicht, wir müssen also ggf. Videos in andere Formate umwandeln. Zwar ist dies prinzipiell auch mit den gezeigten Videoeditoren möglich, die die aber meist Filter erneut anwenden oder einfache Bearbeitungen nicht effizient unterstützen empfiehlt es sich zu passenderen Programmen zu greifen. Als Auswahl zeige ich hier die grafische Lösung HandBrake sowie die eierlegende Wollmilchsau für Konsolennutzer: ffmpeg/avconv.
dd-Backupfortschritt mit pv visualisieren
Vollsicherungen gesamter Festplatten oder Partitionen lassen sich mit dem Unix-Tool „dd“ schnell und einfach anfertigen. Während das Tool automatisiert wohl keine Wünsche offen lässt ist es ein wahrer Quählgeist, wenn man dringend auf die Fertigstellung eines Jobs wartet, denn eine automatische Ausgabe des Fortschirttes ist nicht vorgesehen. Zwar kann man sich hier behelfen, in dem man über den „kill„-Befehl das Signal „SIGUSR1“ an den Prozess sendet und so die Anzeige der verarbeiteten Datenmenge erzwingt, wirklich komfortabel ist dies jedoch nicht.
Senden von SIGUSR1
Bild: https://adlerweb.info/blog/wp-content/uploads/2014/11/pv1-300×98.png
Um das Signal SIGUSR1 an einen Prozess zu senden sollte im ersten Schritt dessen Prozess-ID (PID) ermittelt werden, hierzu kann man in der Ausgabe „ps“ nach dem zuvor gestarteten „dd„-Befehl suchen. Ich nutze zur Suche im Beispiel „grep„. Da zum Zeitpunkt des Schreenshots mehrere „dd„-Prozesse liefen suche ich zudem nach der Quelle des Testjobs (urandom).kronos ~ # ps xa | grep "dd" | grep urandom 23204 pts/24 R+ 0:24 dd if=/dev/urandom of=/dev/zeroMit dieser ID kann man nun das Signal über den Befehl „kill“ absetzen. „dd“ verarbeitetet dieses Signal intern, das Programm wird hierdurch nicht beendet.
kronos ~ # kill -SIGUSR1 23204Während auf der aktuellen Konsole keine Ausgabe erfolgt müsste dd nun einen Status ausgeben, welcher u.A. die verarbeitete Datenmenge sowie die Geschwindigkeit enthält:
162183+0 Datensätze ein 162182+0 Datensätze aus 83037184 Bytes (83 MB) kopiert, 37,7423 s, 2,2 MB/s
Wer sich einen übersichtlicheren und automatisierten Status wünscht kann hier mit dem Zusatztool „pv“ (Pipe Viewer) nachhelfen. Statt die Daten direkt von „dd“ an das Ziel schreiben zu lassen werden sie durch „pv“ geleitet, welches wiederum eine statistische Auswertung anzeigt. Als Ziel kann dann über einen weiteren „dd„-Prozess wieder eine Datei oder Gerät verwendet werden, alternativ gehen natürlich auch Kompressionstools wie „gzip“ oder man lässt die Daten z.B. mittels „nc“ (netcat) oder „SSH“ (Secure Shell) zur Speicherung an einen anderem Rechner senden.
Beispiele mit „pv„
Bild: https://adlerweb.info/blog/wp-content/uploads/2014/11/pv2.png
Daten in Datei speichern
dd if=/dev/lvm/vm-102-disk-1 | pv -pterabs 32g | dd of=vm-102-disk-1.img 15GiB 0:20:34 [ 19MiB/s] [12,5MiB/s] [============================================> ] 46% ETA 0:23:12Daten über gzip komprimieren und in Datei speichern
dd if=/dev/lvm/vm-102-disk-1 | pv -pterabs 32g | gzip > vm-102-disk-1.img.gz 15GiB 0:20:34 [ 19MiB/s] [12,5MiB/s] [============================================> ] 46% ETA 0:23:12Daten über gzip komprimieren, per SSH mit schwacher Verschlüsselung an einen anderen Rechner senden und dort in Datei speichern
dd if=/dev/lvm/vm-102-disk-1 | pv -pterabs 32g | gzip | ssh -c arcfour,blowfish-cbc backup@cautio.lan.adlerweb.info 'dd of=/var/backup/vm-102-disk-1.img.gz' Password: 251MiB 0:00:23 [12,6MiB/s] [10,8MiB/s] [> ] 0% ETA 0:49:38
Wichtig hierbei ist, dass „pv“ am Ende die Größe der Quelldatei/des Quellgerätes genannt wird, in diesem Fall 32 GB. Ingesamt bedeuten die Optionen folgendes:
-p Fortschrittsbalken anzeigen
-t Bisher vergangene Zeit anzeigen
-e ETA, also erwartete Restzeit, anzeigen
-r Aktuelle Datenrate, also „Geschwindigkeit“, anzeigen
-a Durchschnittliche Datenrate anzeigen
-b Bereits kopierte Datenmenge anzeigen
-s Größe der Quelle in Byte, k,m,g,… möglich
Alternative Reihenfolge zum besseren Merken: pertabs (per tabs) oder für Nutzer diverser Imageboards betraps.
Die Ausgabe ist wie folgt zu lesen:
15GiB 0:20:34 [ 19MiB/s] [12,5MiB/s] [====== ] 46% ETA 0:23:12 Kop.Datenmenge|Verg.Zeit|Datenrate|Ø Datenrate | Fortschritt |Restzeit
Damit wäre der nervöse Admin mit beruhigenden Statistiken versorgt und weiß wie lange er sich noch gedulden muss – eine Ausrede weniger die Backups zu vernachlässigen. Natürlich kann „pv“ auch für andere Konstrukte verwendet werden, welche mit einer Pipe arbeiten.
BitBastelei #121 – Bett-Projekt Teil 3 – Lattenrostersatz & Matratzenschnitt
(199.1 MB) 00:22:19
2014-11-02 11:00 🛈In Teil 3 gibt’s das Halloween-Special für euch: Eine etwas ausgefallene Unterkonstruktion um eine Liegefläche zu ermöglichen. Zudem gibt’s mit einem improvisierten „Heißen Draht“ (15:02) halbe Matratzen, denn so lange die Richtige Matratze noch nicht da ist muss halt etwas anderes her.
Einige Hinweise sind noch in den Annotations
- 04:30 …welche natürlich noch verschraubt werden…
- 11:30 Hooray for Spanplatten…Auf Dauer müssen diese zumindest Teilweise „echtem“ Holz weichen. Um zu testen, ob das Ganze überhaupt praktikabel ist sollte es aber erst mal reichen.
- 13:35 Durch die geringe Entfernung und große Auflageflächen geht die Federwirkung gegen Null, entsprechend sollte das kein Problem sein. Am Ende verhält sich der Unterbau wie ein großes Brett.
- 13:51 Das Brett unten rechts muss übergangsweise das gebrochene Abfangen. Am Ende muss es wegen des großen Höhenunterschiedes natürlich weichen
BitNotice #67 – Kurzer Blick auf x265
(6 MB) 00:04:12
2014-10-29 18:59 🛈Kurzer Blick auf X.265 gegen X.264 und den Rohen MPEG2-Sat-Stream.
Korrektur: Originalmaterial hatte 15.000kBit/s nur im Header, real waren es etwa 2.600kBit/s.
BitBastelei #120 – Mückenstich-Heizstick-Improvisation
(113.5 MB) 00:13:55
2014-10-26 11:00 🛈Mückenstiche sind lästig, doch ein kleiner Trick kann Abhilfe schaffen: Die für den Juckreiz verantwortlichen Proteine zersetzen sich bei Temperaturen oberhalb von ca. 40-45°C. Im Handel gibt es bereits diverse Heiz-Sticks zu kaufen – hilft mir nicht, die Geschäfte haben zu. Improvisieren wir mal.
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.
BitBastelei #119 – Bett-Projekt Teil 2 – Außengestell
(188 MB) 00:15:12
2014-10-19 10:00 🛈Nachdem beim letzten Mal bereits die grobe Richtung bestimmt wurde geht’s nun ans Holz: Aus den Terrassendielen soll das Außengestell entstehen.
BitNotice #66 – Bendgate? Kann ich auch…
(11.8 MB) 00:01:29
2014-10-18 13:37 🛈Mein HTC Desire S hat die „neue“ Funktion des iPhone 6 bereits vor mehr als 3 Jahren gehabt und sich nun entsprechend verbogen – OK, bei abgebrochenen Halterungen nicht verwunderlich. Nach entfernen der Elektronik (ja, es gibt Handys, die kann man aufschrauben) und ein paar gezielten Schlägen war es aber auch wieder grade.
BitNotice #65 – Multimedia unter Linux – Videoschnitt mit Cinelerra & Kdenlive
(30.4 MB) 00:15:52
2014-10-17 23:05 🛈Mit AVidemux und OpenShot haben wir schon den einfachen Videoschnitt hinter uns – Zeit in die komplexeren Programme einzutauchen: Cinelerra und Kdenlive sind mächtige Programme und müssen sich zumeist nicht hinter kommerziellen Lösungen verstecken.