Construire un SAN LowCost avec le protocole AoE (ATA Over Ethernet)
Aujourd’hui lorsque, vous souhaitez mettre en oeuvre un SAN, vous avez généralement le choix entre iSCSI, Fiber Channel, ou beaucoup plus rarement NBD (Network Bloc Device) ou eNBD (ehanced Nework Bloc Device). Mais connaissez vous l’AoE ou ATA Over Ethernet ?
AoE est un protocole développer par Brantley Coile communicant sur la couche MAC afin de transférer des informations ou des données entre périphérique de stockage ATA ou IDE.
L’avantage majeur sur les technologies iSCSI et Fiber channel, qui soit dit en passant sont les plus répandues, c’est le coût:
| Technologie | Vitesse | Interface Serveur | Switch | Cablage | Stockage/TB |
| AoE | 2Gb | $99 | $15-$30 | $25-$35 | $400-$500 |
| iSCSI | 1Gb | $500-$1000 | $400-$600 | $25-$35 | $1000-$5000 |
| Fiber Channel | 4Gb | $1200-$2000 | $800-$3600 | $175-$225 | $4000-$10000 |
Les chiffres parlent d’eux même…
Autre avantage, AoE est un protocole qui fonctionne au niveau MAC et n’utilise pas le protocole Tcp/Ip comme le iSCSI, NBD ou eNBD. Il s’affranchit ainsi de la charge nécessaire à la gestion de la pile protocolaire, ce qui soulage réseau et processeur. De plus la couche MAC étant par essence non routable, la sécurité est accrue.
Coté matériel, le protocole AoE fonctionne sur des cartes réseaux et des Switchs standards. Par conséquent, sa mise en place est compatible avec la plupart des infrastructures existantes sans l’ajout d’équipements coûteux.
Malgré cela, AoE présente quelques défauts par rapport à iSCSI. Il ne gère pas le cryptage des données, le routage et l’accès par utilisateur à l’unité de stockage. De plus, il n’est pas aussi extensible que iSCSI ou Fiber Chanel d’un point de vue géographique de par le fait qu’il est non routable. Enfin, les disques ATA sont un peu moins fiable que les disques iSCSI.
Mais ces défauts sont très vite oubliés car il convient à la plupart des usages en entreprise pour un faible coût et une grande simplicité d’administration.
Les solutions existantes
Depuis, Brantley Coile a fondé la société CORAID qui a pour vocation la commercialisation de SAN à faible coût à travers une gamme de produits appelé EtherDrive.
Mais différentes solutions Open Source existent et pour les plus connues:
- Kvblade
- Aoeserver
- Vblade-Kernel
- Vblade
- Ggaoed
- Qaoed
Ces solutions sont plus ou moins fiables et leurs simplicité de mise en oeuvre varient. Si vous ne devez en choisir qu’une, je vous suggère Qaoed qui me semble présenter les meilleurs compromis.
Installation de QaoeD coté serveur
1 – Pour ne pas déroger à la tradition, il faut commencer par télécharger les sources et les compiler:
[root@node1] # svn checkout http://qaoed.googlecode.com/svn/trunk/ qaoed [root@node1] # make
2 – Comme vous êtes pressé que vous n’avez pas prévue un poste avec un disque de libre, commencez par simuler un disque en créant un fichier de type bloc et montez le (en loop):
[root@node1] # dd if=/dev/zero of=disque.img bs=1M count=200 [root@node1] # loseup /dev/loop1 disque.img
3 – Qaoed fonctionne avec un fichier de configuration /etc/qaoed.conf qui, dans le cas présent, pourrait contenir ceci:
apisocket = /tmp/qaoedsocket; default
{
shelf = 0; /* Shelf */
slot = 6; /* Autoincremented slot numbers */
interface = eth0;
device
{
target = /dev/loop1;
}
4 – Enfin, exportez le device
[root@node1] # ./qaoed -c /etc/qaoed.conf
Montage d’un device AoE sur le client
Pour monter un device de type AoE sur un client, vous devez disposez de aoe driver et aoe-tools.
1 – ‘aoe driver’ est un module noyaux qu’il faut préalablement charger.
[root@aoeclient]# modprobe aoe [root@aoeclient]# lsmod j grep aoe
2 – Lancez ensuite la commande aoe-stat pour qu’il collecte, par broadcast, la liste des disques disponibles.
[root@aoeclient]# aoe-stat
3 – Après celà, la liste des lecteurs AoE disponibles sont listés dans le répertoire /dev/etherd
[root@aoeclient]# ls -l /dev/etherd/
4 – Enfin, formatez le disque puis montez le à votre convenance:
[root@aoeclient]# mkfs.ext3 /dev/etherd/e0.0 [root@aoeclient]# mount /dev/etherd/e0.0 /mnt
Bon arrivé là, ce tuto n’a pas beaucoup de sens: vous venez de monter un disque de 200 Mo (la belle affaire). Mais le mode opératoire coté serveur est exactement le même en remplaçant le fichier type bloc par un vrai disque disponible.
Coté client, et si vous avez des moyens matériels suffisants, préparez un petit laboratoire avec un switch, 3 ou 4 serveurs dont l’un fera office de client les autres de disques.
Ensuite, à la place de monter un simple disque et si chaque serveur est bien configurés, vous pouvez créer un VolumeGroup avec l’ensemble des disques obtenus:
[root@clientaoe] pvcreate /dev/etherd/e0.0 [root@clientaoe] pvcreate /dev/etherd/e0.1 [root@clientaoe] pvcreate /dev/etherd/e0.2
puis
[root@clientaoe] vgcreate [options] MySAN /dev/etherd/e0.0 /dev/etherd/e0.1 /dev/etherd/e0.2
Notez que l’utilisation de VolumeGroup apporte un bénéfice non négligeable: la scalabilité. En effet, si vous souhaitez étendre la surface de stockage, rien de plus simple. Il suffit de rajouter un serveur disque à l’ensemble et d’étendre le VolumeGroup avec ce nouveau disque.
Vous pouvez également optez pour un RAID logiciel et offrir un bon niveau de tolérance de panne à votre SAN.
1- Installez d’abbord de package ‘mdadm’ s’il ne l’est pas déjà puis créer votre raid (ici un raid1 sur 2 disques):
[root@clientaoe]# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/e0.0 /dev/e0.1
2 – Formatez le puis montez le:
[root@clientaoe]# mkfs.ext3 /dev/md0 [root@clientaoe]# mkdir /raid1 [root@clientaoe]# mount /dev/md0 /raid1
Conclusion
Dans la plupart des cas, tout ce qu’on demande à un SAN c’est du stockage et les capacités avancées qu’ils offrent sont rarement exploitées. Alors pourquoi dépenser si chère dans un tel équipement alors que quelques serveurs font très bien l’affaire ?













Philippe BECHET, Ingénieur Système au sein du service R&D d'un FAI.
Mission: isolation du réseaux de développement et de la plate forme de service.



















