Pour étendre le stockage sans pour autant avoir une baie de disque, on peut en simuler une avec du iSCSI, qui est du SCSI over IP.
Tout d'abord un peu de vocabulaire : en iSCSI on parle d'initiator ( le client qui “initie” un acces ) et de target (le serveur qui propose la cible a l'initiateur)
Comme d'habitude pour l'installation on se basera sur une Debian Lenny fraichement installée en netinstall via boot PXE.
Installation d'une debian lenny minimale, en décochant “système standard” lors de l'installation.
Dans mon cas le partitionnement sera le suivant : (machine comportant 2 disques de 80 Go)
partition | taille | type de partition | usage |
---|---|---|---|
hda1 | 4 Go | ext3 | partition / |
hda2 | 1 Go | swap | partition de swap |
hda3 | le reste du disque soit 77 Go | volume physique pour LVM | rattachée au volume group vg0 |
hdb1 | 82 Go | volume physique pour LVM | rattachée au volume group vg0 |
On installe juste un serveur SSH avec la commande :
aptitude install ssh
et comme on est pas intégriste quelques outils de base :
aptitude install vim less
Le serveur iSCSI utilise des modules noyaux qu'il faut installer :
aptitude install iscsitarget-modules-2.6-686 iscsitarget
La configuration se fait dans le fichier “/etc/ietd.conf”
Une target iSCSI est nommee par convention “iqn.yyyy-mm.<reversed domain name>[:identifier]” soit dans mon cas iqn.2010-05.com.example.mamachine:cache-debian
Chaque export sera ensuite un LUN de ce target
Nous allons prendre un cas relativement simple :
Il faut donc mettre dans le fichier /etc/ietd.conf :
Target iqn.2010-05.com.example.mamachine:cache-debian IncomingUser monUtilisateur monMotDePasse Lun 0 Path=/dev/vg0/debian-backports,Type=fileio,IOMode=rw Lun 1 Path=/dev/vg0/debian-archive,Type=fileio,IOMode=rw Lun 2 Path=/dev/vg0/apt-cacher,Type=fileio,IOMode=rw Lun 3 Path=/dev/vg0/debian-multimedia,Type=fileio,IOMode=rw MaxConnections 1
Comme on peut le voir ce stockage servira pour les miroirs debian locaux (voir article ici )et le cache de l'apt-cacher ubuntu (peut etre un jour un article la dessus).
Il faut autoriser le service avec la commande suivante :
sed -i -e "s/ISCSITARGET_ENABLE=false/ISCSITARGET_ENABLE=true/" /etc/default/iscsitarget
Puis démarrer le service :
/etc/init.d/iscsitarget start
Voila, vous avec une target iSCSI qui fonctionne, pour configurer la partie initiator ca se passe ici.
# pour ajouter l'export de "/dev/vg0/kikoo" en tant que LUN 4 à chaud : # ietadm --op new --tid=1 --lun=4 --params Path=/dev/vg0/kikoo,Type=fileio,IOMode=rw
Comparaison des fonctionalités des serveurs iSCSI : http://scst.sourceforge.net/comparison.html