Dualstack im Blog und auf bastelfreak.de

Der Blog und bastelfreak.de ( und tim-meusel.de) laufen nun wieder im Dualstack (IPv4 und IPv6 Support). Ebenfalls der Mailserver läuft wieder mit IPv6.

Posted in General | Leave a comment

Linux Short Tip

wget http://www.python.org/ftp/python/2.3.7/Python-2.3.7.tgz
gunzip Python-2.3.7.tgz
tar xfv Python-2.3.7.tar
cd Python-2.3.7
./configure
make
make install
wget http://downloads.sourceforge.net/project/decompyle/decompyle/Decompyle%202/decompyle_2.3.2.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fdecompyle%2F&ts=1355840859&use_mirror=garr
gunzip decompyle_2.3.2.tar.gz
tar xfv decompyle_2.3.2
cd decompyle_2.3.2
python2.3 setup.py install
decompyle *FILE* > *OUTPUTFILE*

Für Python 2.7 nutzt man am besten uncompyle.

Posted in General, Linux, Short Tips | Leave a comment

WordPress Theme modifizieren

Es kommt vor das man kein komplett eigenes Theme für seinen Blog bauen möchte sondern nur ein vorhandenes modifizieren möchte. Dazu kann man die CSS Datei unter “/wp-content/themes/theme-name/style.css” anpassen. Leider werden diese Änderungen  überschrieben sobald es ein Update für das Theme gibt. Um dies zu umgehen kann man ein Child-Theme anlegen. Dabei nutzt man eine eigene CSS Datei + die Templates des Originals.

Dafür muss nur der Ordner “/wp-content/themes/theme-name-child” erstellt werden. Darin kann man seine modifizierte CSS Datei speichern.  Die Datei benötigt folgende Kommentare am Anfang:

/*
Theme Name: Twenty Ten Child // Name vom Theme
Template: twentyten // Name des Originalthemes
*/

Posted in General | Leave a comment

Linux Short Tip

Das Tool “ip” unter Gentoo ist im Paket “iproute2” enthalten. Dies kann man simpel mit “emerge -av iproute2” installieren. Die Abhängigkeiten sind überschaubar: iptables :)
Das Tool “whois” befindet sich im gleichnamigen Paket, “dig” versteckt sich unter “bind-tools”, beide haben keine Abhängigkeiten.

Posted in General, Linux, Short Tips | Leave a comment

Good Guy elcomsoft.com

Elcomsoft bietet nicht nur sehr gute Software zum Wiederherstellen/Cracken von Passwörtern, Sie bieten auch guten Support. Samstag Nacht ein Supportticket eröffnet, Sonntag Mittag kam die passende Antwort. So lobt man sich Support :)

Posted in General | Leave a comment

ZFS RaidZ2 vs mdadm Raid6

Im Vorfeld habe ich RaidZ2 gestet. Nun Werden die gleichen Tests mit mdadm durchgeführt. Dazu muss zuerst der Pool Tank gelöscht werden. Dies geht mit zpool destroy tank. Im Anschluss werden die von ZFS angelegten Partitionen gelöscht (bzw. eine neue, leere, gpt Tabelle erstellt):
for i in {a..e}; do parted /dev/sd$i mklabel gpt; done

Das Raid6 wird wie folgt angelegt:
root@debian:~# mdadm --zero-superblock /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde
root@debian:~# mdadm --create md0 --verbose --level=6 --raid-devices=5 /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: /dev/sda appears to be part of a raid array:
level=raid0 devices=0 ctime=Thu Jan 1 01:00:00 1970
mdadm: partition table exists on /dev/sda but will be lost or
meaningless after creating array
mdadm: /dev/sdb appears to be part of a raid array:
level=raid0 devices=0 ctime=Thu Jan 1 01:00:00 1970
mdadm: partition table exists on /dev/sdb but will be lost or
meaningless after creating array
mdadm: /dev/sdc appears to be part of a raid array:
level=raid0 devices=0 ctime=Thu Jan 1 01:00:00 1970
mdadm: partition table exists on /dev/sdc but will be lost or
meaningless after creating array
mdadm: /dev/sdd appears to be part of a raid array:
level=raid0 devices=0 ctime=Thu Jan 1 01:00:00 1970
mdadm: partition table exists on /dev/sdd but will be lost or
meaningless after creating array
mdadm: /dev/sde appears to be part of a raid array:
level=raid0 devices=0 ctime=Thu Jan 1 01:00:00 1970
mdadm: partition table exists on /dev/sde but will be lost or
meaningless after creating array
mdadm: size set to 77528576K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md/md0 started.
root@debian:~#

Der Aufbau des Arrays muss noch gestartet werden:
root@debian:~# mdadm --readwrite /dev/md127
root@debian:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md127 : active raid6 sde[4] sdd[3] sdc[2] sdb[1] sda[0]
232585728 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/5] [UUUUU]
[>....................] resync = 0.1% (105448/77528576) finish=73.4min speed=17574K/sec

unused devices:
root@debian:~#

Dies kann man noch ein bisschen beschleunigen mit ‘echo 99999999999999 > /proc/sys/dev/raid/speed_limit_min && echo 999999999999999 > /proc/sys/dev/raid/speed_limit_max’ (minimale und maximale sync speed raufsetzen)
In ~70min geht es hier wieder

[~70min später]

So, als nächstes kommt ext4 auf das Softwareraid mit mkfs.ext4 ‘/dev/md127’. Dann folgt der erste Benchmark mit dd:
root@debian:/test# dd if=/dev/zero of=10gb.bin bs=1M count=10000 && dd if=10gb.bin of=/dev/null bs=1M
10000+0 Datensätze ein
10000+0 Datensätze aus
10485760000 Bytes (10 GB) kopiert, 69,1497 s, 152 MB/s
10000+0 Datensätze ein
10000+0 Datensätze aus
10485760000 Bytes (10 GB) kopiert, 41,8779 s, 250 MB/s
root@debian:/test#

Das Ergebnis von bonni++ gibt es hier, iozone3 gibts hier.

Posted in General | 3 Comments

Probleme mit ZFS

nach meinen Tests gestern mit ZFS hatte ich die Testumgebung über nacht heruntergefahren. Nach dem heutigen Start war allerdings mein Pool ‘tank’ nicht gemountet. dmesg gab folgende Fehler:

root@debian:~# dmesg | egrep -i “zfs|spl”
[ 7.213905] SPL: Loaded module v0.6.0-rc12
[ 8.601085] SPL: Failed user helper ‘/bin/sh -c exec 0</dev/null 1>/proc/sys/kernel/spl/hostid 2>/dev/null; hostid’, rc = 32512
[ 8.601106] SPLError: 694:0:(spl-err.c:67:vcmn_err()) WARNING: pool ‘tank’ could not be loaded as it was last accessed by another system (host: debian hostid: 0x7f0101). See: http://zfsonlinux.org/msg/ZFS-8000-EY
[ 9.333075] ZFS: Loaded module v0.6.0-rc12, ZFS pool version 28, ZFS filesystem version 5
root@debian:~#

Gelöst wird das Problem mit ‘zpool import tank’

root@debian:~# zpool status
no pools available
root@debian:~# zpool import
pool: tank
id: 2126857698774177816
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

tank ONLINE
raidz2-0 ONLINE
sda ONLINE
sdb ONLINE
sdc ONLINE
sdd ONLINE
sde ONLINE
root@debian:~# zpool import tank
root@debian:~# zpool status
pool: tank
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
sda ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0

errors: No known data errors
root@debian:~#

Nun ist der Pool wieder online und dank ZFS automount auch direkt verfügbar

root@debian:~# mount | grep tank
tank on /tank type zfs (rw,relatime,xattr)
root@debian:~#

Theorie zu dem Problem: Vor dem gestrigen runterfahren der Laborumgebung waren noch keine Partitionen unter /dev ersichtlich, das betagte und hochgepatchte Debian (Lenny=>Squeeze=>Wheezy) hatte solche Problem schon im Vorfeld mit Festplatten die direkt auf dem Mainboard angeschlossen waren (ide Modus…)

Testweise habe ich die Testumgebung mehrmals neugestartet. dmesg enthielt nie Fehler und laut zpool status war der Pool immer online.

root@debian:~# dmesg | egrep -i “zfs|spl”
[ 7.168528] SPL: Loaded module v0.6.0-rc12
[ 9.220155] ZFS: Loaded module v0.6.0-rc12, ZFS pool version 28, ZFS filesystem version 5
root@debian:~# zpool status
pool: tank
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
sda ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0

errors: No known data errors
root@debian:~#

Allerdings ist wohl die zfs-automount-on-boot Funktion deaktiviert, ein automount erfolgt nicht. Dies könnte man in der /etc/zfs/vdev.conf aktivieren. Manuell geht es aber auch mit ‘zpool mount -a’

Posted in General, Linux | Leave a comment

Nerdig ist

Homemade Rodeo auf der Waschmaschine (Toplader+Backsteine)

Posted in General, Nerd Stuff | Leave a comment

Dokumentation der Abschlussarbeit zum Fachinformatiker Systemintegration

Seit langem möchte ich  hier meine Abschlussarbeit veröffentlichen. Thema war die Einrichtung einer Laborumgebung für Betriebssystem- und Softwaretests. Der IHK Prüfungsausschuss hat die Arbeit mit einer 2 benotet. Download

Aktuell arbeite ich an einer Neuauflage in deutsch und englisch. Diese soll den unnützen Kram (z.B. Kostenplan) nicht enthalten, dafür mehr auf Archipel, Cluster und Migrationen eingehen.

Posted in General, Linux, Nerd Stuff | Leave a comment

ZFS on Linux Benchmark

Einige findige Entwickler haben http://zfsonlinux.org/ ins Leben gerufen – ein Patchset das ZFS unter Linux über ein Kernelmodul/Patch zur Verfügung stellt (alternativ gibt es eine dreckige FUSE Implementation, aber wer will das schon). Die Installation wurde bereits im vorherigen Blogpost beschrieben.

Wo finde ich Informationen über ZFS?
Ja natürlich im Hardforum :D http://hardforum.com/forumdisplay.php?s=e7249dec513d52ebb64da71b39685996&f=29 (man achte auf den “The [H]ard Forum Storage Showoff Thread – Post your 10TB+ systems” Thread)
Auch im deutschsprachigen Raum gibt es einen passenden Pendanten http://www.hardwareluxx.de/community/f242/ und http://www.hardwareluxx.de/community/f15/ , zu empfehlen ist der Sammelthread über ZFS und das Webfrontend (www.napp-it.org) http://www.hardwareluxx.de/community/f101/zfs-stammtisch-570052.html

Was ist eigentlich ZFS?
Gaaaaanz grob: ZFS ist ein Volume Manager(ähnlich LVM) inklusive Dateisystem (ähnlich btrfs) mit einigen netten Features wie eingebaute Raidlevel, dem Ruf unkaputtbar zu sein (ja ne, is klar…) und noch vieles vieles mehr (funktionierende Quotas z.B.). ZFS unterstützt auch automount, ob dies nun ein Feature oder Bug ist kann nun ausdiskutiert werden.

Was ist denn dieses RaidZDings?
RaidZ1 beschreibt das Raidlevel das ZFS nutzt. 1 gleicht einem Raid 5, RaidZ2 einem Raid 6 und RaidZ3 ist relativ neu (gibt es erst seit der aktuellen ZFS Version 28?) und enthält eine dreifache Parität (ein Gegenstück müsste wohl Raid7 heißen, dies gibt es allerdings nicht offiziell).

Erste Benchmarks mit ZFS und Hinweise zum Testsystem:
Aktuell nutze ich als Hardware Basis einen i5-650 auf einem Gigabyte Ga-P55-UD2H mit 6GB Ram und einem Raidcontroller. Auf dem Mainboard ist eine Sata Festplatte angeschlossen welches das gepatchte Betriebssystem Debian 7 enthält (Test mit Gentoo folgt). Der Raidcontroller ist ein betakter Dell Perc 5/i. Daran angeschlossen sind 5 Festplatten a 80gb. Jede Festplatte befindet sich in einem Raid 0. Der Perc ist “nur” ein SAS3G Controller mit veralteter Firmware, außerdem ist er bekannt dafür das seine Performance miserabel ist wenn er eine einzelne Festplatte im Raid0 durchreicht (und er steckt auch noch in einem PCIe X4 Slot mit seinem x8 Anschluss). Hinzu kommt das die HDDs fast 5 Jahre alt sind und ca 4 Jahre Dauerbetrieb auf dem Buckel haben. Benchmark einer einzelnen Festplatte (eine partition, ext4):

root@debian:/test# dd if=/dev/zero of=10gb.bin bs=1M count=10000 && dd if=10gb.bin of=/dev/null bs=1M
10000+0 Datensätze ein
10000+0 Datensätze aus
10485760000 Bytes (10 GB) kopiert, 194,86 s, 53,8 MB/s
10000+0 Datensätze ein
10000+0 Datensätze aus
10485760000 Bytes (10 GB) kopiert, 120,905 s, 86,7 MB/s
root@debian:/test#

Mit dd 10Gb auf den zuvor erstellen RaidZ2 Pool schreiben und lesen:

root@debian:/tank# dd if=/dev/zero of=10gb.bin bs=1M count=10000 && dd if=10gb.bin of=/dev/null bs=1M
10000+0 Datensätze ein
10000+0 Datensätze aus
10485760000 Bytes (10 GB) kopiert, 82,8663 s, 127 MB/s
10000+0 Datensätze ein
10000+0 Datensätze aus
10485760000 Bytes (10 GB) kopiert, 68,7027 s, 153 MB/s
root@debian:/tank#

Benchmark mit Bonnie++:

root@debian:/tank# aptitude install bonnie++; bonnie -d /tank/ -s 30G -x 1 -u root > bonnie++.csv; bon_csv2html bonnie++.csv > bonnie.html

Das Ergebnis gibt es hier

Benchmark mit iozone3:

root@debian:/tank# aptitude install iozone3; iozone -r 8 -s 50M -l 1 -u 10 -i 0 -i 1 -b scale.wks

Die scale.wks gibt es hier und lässt sich mit LibreOffice Calc öffnen.

Wärend der Benchmarks ist es duchaus interessant sich mal 4 Terminals zu öffnen. Nützliche Befehle wären z.b. ein dd Befehl der Müll auf den Pool schreibt, htop(brauch man immer und ernsthaft: kein mag top!), zpool iostat 1, zpool iostat -v 1, iostat 1 (sowie ein watch pkill -USR1 dd). Das ergibt dann folgendes Bild (dd lesend mit bs=1M nach /dev/null):

Posted in General, Linux | Leave a comment