mercredi 15 juin 2011

RAID1 avec un ramdisk

Dans la série c'est faisable mais pas simplement, voici le RAID1 entre un disque physique et un disk RAM.
L'avantage:
- des lectures ultra rapides
- une synchro permanente entre le HD et la RAM

L'inconvénient:
- c'est chère la RAM

Donc, mon Use Case, c'est un serveur MySQL qui demande moultes lectures/ecritures (une DB dspam) qui sature mon serveur de mails en IOwait.

J'ai donc une machine physique avec 32 Go de RAM, et 2x320Go de HD.
J'ai donc installé un RAID 1 complet sur les deux disques, et j'ai paramétré une partition /dev/md3 de 25 Go pour stocker le /var/lib/mysql.

1) donner aux disques physiques une préférence pour l'écriture:
mdadm /dev/md3 -f /dev/sda2 -r /dev/sda2 --add --write-mostly /dev/sda2
... attendre la fin de la synchro ...
mdadm /dev/md3 -f /dev/sdb2 -r /dev/sdb2 --add --write-mostly /dev/sdb2
(notez s/sda2/sdb2/)

2) ensuite, ajouter le ramdisk tout simplement:
mdadm /dev/md3 --add /dev/ramdisk

Et là, attention, le dev/ramdisk est ajouté en tant que Spare.
il faut enlever un HD et le remettre en spare. Je n'ai pas trouvé d'autres méthodes:
mdadm /dev/md3 -f /dev/sda2 -r /dev/sda2
mdadm /dev/md3 --add --write-mostly /dev/sda2

Et maintenant, j'ai :
Number   Major   Minor   RaidDevice State
2       1        0        0      spare rebuilding   /dev/ram0
1       8       18        1      active sync writemostly   /dev/sdb2

0       8        2        -      writemostly spare   /dev/sda2

Le problème c'est que l'allocation de RAM est plutôt longue, du coup la synchro est très lente... (speed=4456K/sec)

Une fois terminée, le résultat est là:
Number   Major   Minor   RaidDevice State
       0       1        0        0      active sync   /dev/ram0
       1       8       18        1      active sync writemostly   /dev/sdb2

       2       8        2        -      writemostly spare   /dev/sda2
/dev/md3:
 Timing buffered disk reads:  1544 MB in  3.00 seconds = 514.37 MB/sec

/dev/md2:
 Timing buffered disk reads:  208 MB in  3.03 seconds =  68.60 MB/sec
(md2 est une autre partition en RAID1 sur les memes disques)

Bien sur, il y a des trucs à savoir:
sfdisk -l /dev/sda donne (entre autres) le nombre de blocs du ramdisk (dans mon cas, 26218080)
J'ajoute donc dans /boot/grub/menu.lst:
kernel /vmlinuz-2.6.18-238.12.1.el5 ro root=/dev/md2 nodmraid ramdisk_size=26218080

Puis je crée dans le fichier rc.local:
# RAID1 ramdisk
mdadm /dev/md3 --add /dev/ramdisk
DEVICE=/dev/sda2
if [ -e /dev/sdb2 ]; then
        DEVICE=/dev/sdb2
fi
mdadm /dev/md3 -f ${DEVICE} -r ${DEVICE}
mdadm /dev/md3 --add --write-mostly ${DEVICE}

mardi 15 mars 2011

Politique un jour ...

Je ne suis pas un adorateur de la politique française...
Je n'aime pas faire des blogs des tribunes politiques.

Mais pour une fois ... je vous invite à lire ces pages (moches .. on dirait du html préhistoriques)...

Ce n'est pas la forme qui m'inquiète, mais c'est 1) le fond 2) la manière.

Merci
http://alternative50.over-blog.com/article-la-derniere-de-roselyne-bachelot-63316827.html


et la "réaction" : http://www.touchepasamonlabo.com/php/index.php

lundi 24 janvier 2011

"Je suis revenu d'Indochine hier matin"

Plutôt hier soir d'ailleurs.
Et oui, je suis aller voir Nicola Sirkis et sa bande à la coopé ;-)
Bon, j'aimais bien sans être fan fan. D'ailleurs, je connaissais la première (Electrastar), mais après, pas une pendant 1 heure.
Ceci dit, c'est la première fois que je vois la coopé dans cet état: le public était conquis, vraiment extra.
Au final, des reprises vraiment sympa, un son extra, un peu fort, mais très bon (comme toujours à la grande coopé).
J'ai vu U2 en live, hier c'est "l'aventurier" en live .. que reste-t'il à voir ?

Finalement, j'admets qu'Indochine, c'est un putain de groupe :-)

mardi 21 décembre 2010

Les moines Kaolin à la coopé

Dans la foulée de Gaétan, nous sommes allés voir Kaolin à la coopé ce samedi.
Je ne connaissais pas, j'étais invité à découvrir ce groupe.
Très bon (les gens commencent à savoir ce que j'aime :-) )
Un groupe de musicien, avec une vraie musique, une signature musicale typique.
Un pur moment de plaisir et de musique. En plus à la petite coopé, très bon moment !
L'album est bien, le concert est aussi bien, mais différent. Plus rock, plus ... proche aussi du publique. Une bonne ambiance et une bonne complicité avec le public.

Et non, ce ne sont pas des moines :-D

A suivre, Indochine à la coopé ... en janvier.

mercredi 15 décembre 2010

Gaetan Roussel à la coopé

De retour avec les concerts. Ce soir Gaetan, chanteur de Louise Attaque, Tarmac, etc.
c'est TOP !
Petite pensée pout Tom, qui n'aurait eu aucun morceaux des groupes precedents.
Et pensée pour Franck Dep. qui ressemble à Gaetan :-)
Des orchestrations super ! Tres bon jeu de scene (merci au bassiste !!, un ex de la Mano).
Vraiment que du bon ! Et trois rappels ! Plutot rare, c'est dire si c'est bien !

mardi 3 août 2010

Building PFSense Firewall appliance

Depuis quelques temps maintenant, j'utilise les appliances virtuelles pfSense, FreeBSD based, avec un grand succés: stabilité et fonctionnalité.

Je me suis lancé dans la customisation des iso pour nos usages internes.
Pour ce faire, il faut recompiler l'appliance en Embedded mais avec les packages kivonbien: arping (indispensable), openBGPD, enlever la stack OLSR et autres choses inutiles pour nous (captive portal etc...) et préconfigurer la distribution.

Une partie de tout cela ne sera pas publiée, car la configuration interne de nos réseaux n'a rien à faire sur Internet.

Par contre, à partir des indications du site www.pfsense.org, je me suis construit un script de "building from scratch" des sources pour la distribution 2.0 qui marche pas mal (un peu brouillon, mais c'est un début).

1) il faut installer un FreeBSD 8.1-RELEASE (pas envie de faire ca dans une jail, VMWare is your friend)
2) il faut ajouter dans /etc/make.conf
WITHOUT_X11=yes
BATCH=yes
NO_PROFILE=no
NO_MANCOMPRESS=no

3) lancer "sh launch_build.sh"
====================================================================
#! /bin/sh

BASEDIR=/usr/home/pfsense

test_make_conf(){
        grep -q ^$1 /etc/make.conf
        if [ $? -ne 0 ]; then
                echo $1 >> /etc/make.conf
        fi
}

safe_mkdir(){
        if [ ! -d ${BASEDIR}/$1 ]; then
                mkdir -p ${BASEDIR}/$1
        fi
}

ports_install(){
        cd /usr/ports/$1
        make check-already-installed 2>&1 > /dev/null && make install distclean
}

test_make_conf WITHOUT_X11=yes
test_make_conf BATCH=yes
test_make_conf NO_PROFILE=no
test_make_conf NO_MANCOMPRESS=no

safe_mkdir pfSenseGITREPO
safe_mkdir installer
safe_mkdir freesbie2
if [ ! -d /usr/pfSensesrc ]; then
        mkdir -p /usr/pfSensesrc
fi

echo "Updateting ports"
/usr/sbin/portsnap fetch && /usr/sbin/portsnap update
echo "Update vulnerabilities DB"
if [ ! -f /usr/local/sbin/portaudit ]; then ports_install ports-mgmt/portaudit; fi
/usr/local/sbin/portaudit -Fq
ports_install textproc/expat2
ports_install devel/git
ports_install sysutils/fastest_cvsup
rehash

cd ${BASEDIR}

echo "GIT checkout"
if [ -d tools ]; then rm -rf tools; fi
git clone http://gitweb.pfsense.org/pfsense-tools/mainline.git tools
if [ -d freesbie2 ]; then rm -rf freesbie2; fi
cd ${BASEDIR}/tools/builder_scripts && chmod a+rx *.sh

echo "Getting FreeBSD sources"
csup -h `fastest_cvsup -c tld -q` /usr/share/examples/cvsup/standard-supfile

cd ${BASEDIR}/tools/builder_scripts
./menu.sh
============================================================================
4) Choisir la version RELENG_8_1
5) lancer le build d'une image ISO pour commencer.

... à suivre