Table des matières
Installation d'un serveur iSCSI
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 de la base
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
Installation des dépendances
Le serveur iSCSI utilise des modules noyaux qu'il faut installer :
aptitude install iscsitarget-modules-2.6-686 iscsitarget
Configuration des target iSCSI
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 :
- L'acces a la target se fera via un login / mot de passe.
- Chaque LUN sera un LV du volumeGroup LVM créé lors de l'installation, voir cette page pour plus de details sur l'utilisation du LVM.
- Nous n'acceptons qu'une seule connexion cliente maximum.
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).
Activer et demarrer le serveur
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.
Aller plus loin
- Il existe une commande permettant de configurer à chaud les targets, ietadm , par exemple pour ajouter un LUN à chaud, on aurait pu utiliser :
# 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
- Utilisation de targets dans du RAID soft. Si l'on souhaite utiliser des targets iSCSI dans des grappes RAID logiciel, attention à ne pas démarrer automatiquement le service RAID au démarrage, car les volumes accédés en iSCSI ne sont pas encore disponibles : cf cette page. Sinon la grappe RAID sera déclarée inconsistante (et nécessitera une reconstruction) à chaque reboot.
Liens externes
Comparaison des fonctionalités des serveurs iSCSI : http://scst.sourceforge.net/comparison.html