Benchmarking Tape drives

Generally it is much better to create a ramdisk for this benchmark:
# mount -t tmpfs -o size=10G tmpfs /tmp/ramdisk;
or
# dd if=/dev/zero of=/dev/ram bs=1M count=10000;
# mkfs.ext3 /dev/ram;
# mount /dev/ram /tmp/ramdisk -o loop;

Normally your harddisk is to slow for a LTO3/4 or a Jaguar2/3 drive 😉

  1. Create a 5G or 10G file
    # dd if=/dev/urandom of=/tmp/ramdisk/urandom bs=1M count=5000;
  2. Now load the tape and start the backup
    # tar -cl -f- /tmp/ramdisk/urandom 2>/dev/null | mbuffer -L -s 256k -m 5G -P 85 > /dev/nstX;
    For Jaguar2/3 (IBM) tapedrives you can reach up to 150mb/s over a 2GBit FC HBA
  3. Now rewind the tape and restore
    # mt -f /dev/nstX rewind
    # < /dev/nstX mbuffer -L -s 256k -m 5G -p 25 | tar -x -f- 2>/dev/null;

Now check which is the best blocksize (-s 256k) for your drive. This must be the same for backup AND restore!

My results for a 2Gbit FC HBA, Jaguar2/3 drive and FC disk(s) on SLES10 SP2:
HDD -> Tape -> HDD (5G Cache, BS 256k): W 139mb/s peak 75mb/s avg R 137mb/s peak 84mb/s avg
RAM -> Tape -> RAM (1G Cache, BS 256k): W 139mb/s peak 126mb/s avg R 155mb/s peak 140mb/s avg

HDD -> Tape -> HDD (5G Cache, BS 512k): W 149mb/s peak 70mb/s avg R 137mb/s peak 84mb/s avg
RAM -> Tape -> RAM (1G Cache, BS 512k): W 149mb/s peak 131mb/s avg R 155mb/s peak 140mb/s avg

BS <256 or >512 jammed the drive.

For IBM tape drives exists the lin_tape driver which is only necessary for multipathing (or support from IBM *unverified* )

Xen virtualization with Intel-VT

Hej,

for a training i needed some pcs with a virtualization technology preferably from Intel (VT). The easiest way is to buy some pc components and to build thereof a pc. After my last selfmade pc i’m a little bit impaired on that score. So i needed a pre-build pc with a intel cpu, gigabit lan and if it possible: small-sized. So is started my research with my best friend google 😉

After a while i found the transtec SENYO 610.

In the small configuration they have a

inside. But according to the Intel website both cpus didn’t support the Intel VT 🙁 So i needed the big one and they have the following configuration

  • C2D T8300 / C2D T9500
  • 1 GB DDR2 RAM (up to 4GB RAM)
  • 160GB 5400rpm (up to 500GB)
  • Gigalan, Bluetooth, Wlan

So i order the big one with a C2D T8300, 4GB Ram and a 160GB (7200rpm) harddisk. Now i’m waiting for the postman 😀

Debian Lenny – OCF Resource Agent o2cb Bug

Lenny Stable ? Ohne RC-Bugs ? Im heartbeat Paket hat sich ein kleiner Fehler versteckt (ist schon gemeldet).

Wenn ihr versucht, mit heartbeat eine ocfs2 Resource via o2cb zumanagen, wird das nicht gehen 🙂 Der Grund ist, dass ein $ vergessen wurde im OCF Resource Script (Zeile 314). Folge ist, dass die ocfs2/o2cb Resource nicht startet.

Hier ist ein Patch zum selber fixen.

*** /tmp/test/ocf_o2cd.patch
--- usr/lib/ocf/resource.d/heartbeat/o2cb	2009-01-22 06:58:49.000000000 +0100
+++ /usr/lib/ocf/resource.d/heartbeat/o2cb	2009-03-24 15:56:28.000000000 +0100
@@ -311,7 +311,7 @@
 		;;
 esac

-RCO2CB=INITDIR/o2cb
+RCO2CB=$INITDIR/o2cb
 # RCO2CB=/etc/init.d/o2cb

 if [ ! -x $RCO2CB ]; then

Hier zum Download ocf_o2cb.patch.

OCFS2 @ Debian Lenny

Da die ocfs2-tools aus dem testing (Lenny) Repository enfernt wurden, muss man auf die Sourcen von etch oder sid zurück greifen. Beide sind lange nicht mehr aktuell, aber funktionieren _fast_ ohne Probleme.

Ich habe die ocfs2-tools aus etch installiert und dabei bemerkte ich, dass zwei wichtige Module nicht geladen wurden ! Damit beim Start OCFS zu Verfügung steht, muss man zwei Zeilen hinzufügen in der /etc/init.d/o2cb !

Den String LOAD_ACTION suchen und folgende zwei Zeilen hinzufügen.

"load_module ocfs"
"load_module jbd"

Reboot, fertig.

RDP via SSH – Alles muss über einen Port….

Wir haben eine soooo “tolle” Firewall auf Arbeit und der Cisco VPN Concentrator ist auch nicht gerade das gelbe vom Ei. Also einen Rechner fertig gemacht, der genau einen Port offen hat – den SSHd.

SSH Tunnel

Damit man sich das mal vorstellen kann ( Router, Switche usw fehlen).

Auf unsere paar Windows Server kommen wir via RDP auf. Damit ich nicht immer alles per Hand tippen muss, bzw in der history gucken, wie der Befehl gleich war, hier ein faule-Leute-Script 😉

#!/bin/bash
#
#

SSH_OPTIONS="" # additional options for ssh command
RDP_PORT="3389"
RDP_OPTIONS="-z -g 1024x768 -a 16 -k de"
LOCAL_IP="127.0.0.2"

# Usage info
if [ "$1" = "" ] ; then
        echo "Usage: $0 rdp-target ssh-target [ssh-port]"
        exit
fi

if [ "$2" = "" ] ; then
        echo "Usage: $0 rdp-target ssh-target [ssh-port]"
        exit
fi

if [ "$3" != "" ] ; then
        SSH_OPTIONS="$SSH_OPTIONS -p $3"
fi

# Set target host and SSH target
TARGET_HOST="$1"
SSH_TARGET="$2"

#
TMP=`echo $TARGET_HOST | cut -d'.' -f 4`
if [ $TMP -gt 100 ] ; then
    LOCAL_PORT="26$TMP"
else
    LOCAL_PORT="260$TMP"
fi

ssh $SSH_OPTIONS -f -L $LOCAL_IP:$LOCAL_PORT:$TARGET_HOST:$RDP_PORT $SSH_TARGET sleep 10

rdesktop $RDP_OPTIONS $LOCAL_IP:$LOCAL_PORT &amp;

Es baut die SSH Verbindung auf, zusammen mit dem Befehl sleep 10, damit die Verbindung automatisch schließt wenn rdesktop beendet wird. Desweiteren nimmt es von der IP, die letzten 8 Bit und bildet fast dynamisch den lokalen Port. Der Rest sollte selbst erklärend sein.

Der Aufruf für das Netzwerk oben wäre dann: sshrdp 192.168.26.20 root@192.168.26.254 !

Hier das Script zum runterladen: sshrdp

Pound einrichten….

Wollen wir uns nun langsam mal der Pound Konfiguration widmen.

Hier ist ein sehr einfaches Beispiel. Die lokalen Webserver hören auf dem Port 81 und Pound darf auf Port 80 hören, wobei 192.168.1.3 die HA-IP Adresse wieder spiegelt.

## Minimal sample pound.cfg
##
## see pound(8) for details

######################################################################
## global options:

User    "www-data"
Group   "www-data"
#RootJail "/chroot/pound"

## Logging: (goes to syslog by default)
##  0 no logging
##  1 normal
##  2 extended
##  3 Apache-style (common log format)
LogLevel  1

## check backend every X secs:
Alive   5

## use hardware-accelleration card supported by openssl(1):
#SSLEngine  ""

######################################################################
## listen, redirect and ... to:

## redirect all requests on port 8080 ("ListenHTTP") to the local webserver (see "Service" below):
ListenHTTP
  Address 192.168.1.3
  Port  80

  ## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
  xHTTP   0

  Service
    BackEnd
      Address 192.168.1.1
      Port  81
    End
    BackEnd
      Address 192.168.1.2
      Port  81
    End
  End
End

Installiert wird Pound einfach via aptitude pound und wieder dran denken das die pound.cfg auf beiden Servern gleich sein muss.

Bei unterschiedlich dimensionierten Servern können wir mir Priority im BackEnd, die Last unterschiedlich auf der Server verteilen.

Weitere gute Beispiel-Konfigurationen findet man in der Manpage von Pound (man pound) !

In der /etc/default/pound müssen wir noch den Wert für startup gleich 1 setzen, damit Pound überhaupt startet.

Hier mal meine Konfiguration

## Minimal sample pound.cfg
##
## see pound(8) for details

######################################################################
## global options:

User    "www-data"
Group   "www-data"
RootJail "/var/pound/chroot"

## Logging: (goes to syslog by default)
##  0 no logging
##  1 normal
##  2 extended
##  3 Apache-style (common log format)
LogLevel  1

## check backend every X secs:
Alive   5

## use hardware-accelleration card supported by openssl(1):
#SSLEngine  ""

######################################################################
## listen, redirect and ... to:

## redirect all requests on port 8080 ("ListenHTTP") to the local webserver (see "Service" below):
ListenHTTP
  Address 192.168.1.1
  Port  80

  ## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
  xHTTP   0

  Service
    BackEnd
      Address 192.168.1.2
      Port  81
      Priority 6
    End
    BackEnd
      Address 192.168.1.3
      Port  81
      Priority 3
    End
    BackEnd
      Address 192.168.1.4
      Port  81
      Priority 3
    End
  End

  Service
    URL ".*.(jpg|gif|png)"
    BackEnd
      Address 192.168.1.5
      Port  81
    End
  End
End

Homepage von pound

Die wohl teuersten Stifte der Welt – LinuxTag 2008

Wir müssen alle bekloppt sein ! Setzen uns in einen kleinen Raum, wo max. 24 Leute rein passen, bezahlen jeder 70 Euro (!) und bekommen einen Bleistift dafür !

Wer nun dabei war, oder davon schonmal gehört hat, der weiß worum es geht: LPI Zertifizierung !

Ja sicher, wenn man es geschafft, dann hat man wahlweise LPIC1, LPIC2 oder so gar LPIC3 in der Tasche oder einen Teil davon. Aber für die ersten 4-5 Wochen hat man nur einen 70 Euro teuren Bleistift 🙂

Als ich nachfragt wie lange es den jetzt dauert, meinte man zu mir 4-6 Wochen ! “Dafür haben Sie ja auch nur die hälfte bezahlt !” – Ähm, ja ? Ich hab die Hälfte bezahlt damit ich 4-6 Wochen auf mein Ergebnis warten muss, weil es in einem Paket nach Kanada zur Auswertung geht und dann wieder zurück (Hatte ich gesagt das es schriftlich war ?)

Warum ich nun 70 Euro “nur” bezahle ist mir also nicht ganz klar – Wir brauchen min. ein Bleistift, 2x A4 Blätter (1x Lösungsbogen + 1x gelbes Papier), die A4 Briefumschläge und dann noch 2 Monsterpackete für die Prüfungen inkl. Postgebühren.

Was schont also den Baum bestand mehr ? Prüfung am PC oder alles in schriftlicher Form ? Mir egal und ich hoffe einfach das ich meine 101+102 geschafft habe.

Aber nun mal zum LinuxTag 2008…. Continue reading Die wohl teuersten Stifte der Welt – LinuxTag 2008

Nagios3 @ Debian Etch

Nagios 3 (inkl. pnp) ist unter Debian Etch mit Hilfe der Pakete von svelt (http://people.teamix.net/~svelt/debian/etch/) sehr einfach geworden.

Nur wenn man versucht den Link “Disable notifications for this service” für einen Service zu aktivieren, bekommt man eine Fehlermeldung ala :

Error: Could not stat() command file '/var/lib/nagios3/rw/nagios.cmd'!

Lösung:

/etc/init.d/nagios3 stop
dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw
dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3
/etc/init.d/nagios3 start

Jetzt sollte es gehen.