Create a shared disk for VMware ESX guests

To create a shared disk between two or more VMs, login into one of your ESX hosts and create a disk image.

cd /vmfs/volumes/#volume-name#/#vm-name#/;
vmkfstools -d thick -a lsilogic -c 50G shareddisk.vmdk;

Add the new hardrive to the guest(s) and select a new SCSI bus (like SCSI 2:0). VMware create a new SCSI controller. Set SCSI Bus Sharing = Physical or Virtual and have fun 🙂

Apache Tomcat & logrotate

Some linux distribution are shiped without a config for the catalina.out (Tomcat application server) 😉

$ cat /etc/logrotate.d/tomcat
/var/log/tomcat/base/catalina.out {
	compress
	copytruncate
	create 644 tomcat tomcat
	rotate 30
	size 4M
}

The catalina.out will be rotated after 4 mb and stored for 30 days (/var/log/tomcat/base/catalina.out.1; /var/log/tomcat/base/catalina.out.2.gz and so on)

SLES11, SLES10 SP3, grml64 on HP DL360-G6

Wozu gibt es zertifizierte Hardware(listen), wenns dann doch nicht geht ?

Ein HP DL360-G6 mit einer NetXtreme BCM5709 Netzwerkkarte soll unter SLES10 (SP3) und SLES11 (GM) funktionieren (Quelle: HP und Novell). Aber irgendwie gehts dann doch nicht 🙁 Selbst mit dem HP ProLiant Support Pack (Version 8.30) ging es nicht. Auch die md5sum vom bnx2.ko Modul, die HP angibt, stimmt.

Als letzter Versuch war dann noch grml64 2009.10 (x86_64 & i386) dran, nur leider ging es hier auch nicht. Alle melden nur “Firmware not running. Aborting…” Super! Ich muss leider zugeben, ich konnte auch nicht alles testen z.B. Firmware patchen konnte ich nicht, da es nur eine Leihgabe aus einem anderen Fachbereich war.

Mal sehen wann ich wieder eine in die Finger bekomme….

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