KVM Image vergrößern

Ich bin sehr konservativ was Plattenplatz betrifft. Lieber lege ich wenig an und erweitere dann, als s zu viel brach herum liegen lassen. Daher muss ich immer wieder Images vergrößern. Ich schreib mir hier mal die paar Schritte auf:

  1. Image sichern:
    cp kvm-image.img kvm-image.img.backup
    
  2. Typ der Partition ermitteln:
    qemu-img info kvm-image.img 
    
    image: kvm-image.img
    file format: raw
    virtual size: 4.0G (4294967296 bytes)
    disk size: 3.7G
    
  3. Gegebenenfalls Typ umwandeln:
    Ist das Image kein raw Format, so konvertiert man es erst mal ins raw Format

    qemu-img convert -f qcow2 kvm-image.img -O raw kvm-image.raw
    
  4. Image vergrößern:
    Hier z.B. wird das Image auf 10GB (10240*1MB) erweitert:

    dd if=/dev/zero of=kvm-image.raw bs=1M count=0 seek=10240
    

Anschließend ist Platz für eine neue Partition. Und diese kann etwa ein bestehendes LVM wie hier beschrieben vergrößern.

Mal wieder Apache Paranoia

Um nichts nach außen dringen zu lassen sollte man die folgende Direktiven in seine Apache Konfig einbauen:

TraceEnable Off
FileETag None

TraceEnable kann man auf einem Livesystem ausschalten, denn dort führt man sowieso kein Debuggen oder ähnliches aus. FileETag abschalten führt zwar zu etwas mehr Last, aber bevor man sich mit dem Aufwand dafür herum schlägt oder mehr Server hinter einem Loadbalancer im Einsatz hat, lohnt es sich die Direktive zu deaktivieren. Das sagt sogar Yahoo.

Zeit ist Geld oder PHP Profiling mit XHProf

Eben habe ich wieder einen sehr interessanten Artikel von Jan gelesen. Dieses mal geht es um PHP Profiling. Er berichtet über den Einsatz von XHProf von Facebook bei ihnen.

Bei Gelegenheit werde ich das Teil unbedingt mal versuchen. Für Software, bei der mehr gleichzeitig zugreifen, ist Profiling eigentlich schon immer ein Muss. Viel zu viele „Softwareentwickler“ kennen leider solche Tools gar nicht. Ich schreibe mir jedenfalls den Link zu dem Tool unbedingt mal auf.

Debian + Asterisk + iLbc Codec

Die Debian Jungs haben das iLbc aus dem Asterisk raus heraus geworfen. Das blöde daran ist, dass man es eigentlich schon braucht. Mein N97 verwendet es, Google-Talk nimmt es, … Daher hier mal kurz die Anleitung wie man es wieder aktiviert:

  1. Asterisk Source downloaden (Für Lenny muss es Asterisk 1.4 sein)
  2. aus packen
    tar -xzvf asterisk-1.4.28.tar.gz
  3. iLbc holen
    ./contrib/scripts/get_ilbc_source.sh 
  4. iLbc zum Übersetzen auswählen
    make menuselect
  5. codecs übersetzen
    ./configure
    make menuselect
  6. dann den codec kopieren
     cp codecs/codec_ilbc.so /usr/lib/asterisk/modules/
  7. Asterisk neu starten
    /etc/init.d/asterisk restart

Redundante Default Routen und Lastverteilung unter Linux

Anders als viele glauben kann ein Linux „Router“ nicht nur ein Default Gateway besitzen sondern mehrere. Das macht bei 2 Szenarien Sinn:

  1. Autofailover
    Definiert man 2 Default Routen etwa mit:

    route add default gw 172.16.1.1 dev eth1
    route add default gw 172.16.2.1 dev eth2
    

    So wird die zweite Default Route dann verwendet, wenn die erste einen Timeout liefert.

  2. Loadbalancing
    Das geht auch ganz einfach:

    ip route del default
    ip route add default equalize nexthop via 172.16.1.1 dev eth1 nexthop via 172.16.2.1 dev eth2 

    . Am besten trägt man das in /etc/rc.d/rc.local ein. Dann übersteht es auch einen Reboot.

Beiden Methoden ist übrigens gemein, dass der Timeout einer ausgefallenen Default Route noch angepasst werden muss. Der Default Timeout liegt bei stolzen 300 Sekunden.

cat /proc/sys/net/ipv4/route/gc_timeout
300

Das bedeutet, dass erst nach 5 Minuten die entsprechende Route deaktiviert wird. Umstellen kann man diesen Wert über sysctl. Also in /etc/sysctl.conf folgendes eintragen:

net.ipv4.route.gc_timeout = 10

und mit

sysctl -p

aktivieren