Configuration réseau · 8 min read · Jan 07, 2026
Configurer ATA over Ethernet (AoE) sur Debian 8 (Initiateur et Cible)
Ce tutoriel vous montre comment configurer un client AoE (initiateur) et un serveur (cible) sur Debian 8 /Jessie). Le terme AoE signifie “ATA over Ethernet” qui est un protocole de réseau de stockage (SAN) permettant aux clients AoE d’utiliser des dispositifs de stockage sur le serveur AoE (à distance) via un réseau ethernet normal. “À distance” dans ce cas signifie “à l’intérieur du même LAN” car AoE n’est pas routable en dehors d’un LAN (c’est une différence majeure par rapport à iSCSI). Pour le client AoE (initiateur), le stockage distant ressemble à un disque dur normal, attaché localement.
1 Remarque Préliminaire
J’utilise ici deux serveurs Debian 8 :
- server1.example.com (Initiateur) : adresse IP 192.168.1.100
- server2.example.com (Cible) : adresse IP 192.168.1.101
2 Charger le Module du Noyau AoE sur les deux systèmes
server1/server2 :
En premier lieu, nous devons nous assurer que le noyau de nos serveurs prend en charge ATA Over Ethernet. Exécutez la commande suivante en tant qu’utilisateur root.
grep ATA_OVER /boot/config-`uname -r`Cela devrait afficher quelque chose comme ceci :
root@server1:/tmp# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
root@server1:/tmp#Cela signifie qu’AoE a été intégré en tant que module du noyau. Maintenant, nous allons vérifier si le module est chargé :
lsmod | grep aoeSi vous ne recevez rien, cela signifie qu’il n’est pas chargé. Dans ce cas, nous pouvons le charger comme suit :
modprobe aoeVérifions à nouveau si le module est chargé :
lsmod | grep aoeroot@server1:/tmp# lsmod | grep aoe
aoe 51917 0
root@server1:/tmp#Pour que le module soit chargé automatiquement au démarrage du système, nous ajoutons le module aoe à /etc/modules :
nano /etc/modules# /etc/modules: modules du noyau à charger au démarrage.
#
# Ce fichier contient les noms des modules du noyau qui doivent être chargés
# au démarrage, un par ligne. Les lignes commençant par "#" sont ignorées.
# Les paramètres peuvent être spécifiés après le nom du module.
aoe3 Configuration de la Cible (server2)
server2 :
Tout d’abord, nous configurons la cible AoE (server2) :
apt-get install vbladeNous pouvons utiliser des volumes logiques non utilisés, des fichiers image, des disques durs (par exemple, /dev/sdb), des partitions de disque dur (par exemple, /dev/sdb1) ou des dispositifs RAID (par exemple, /dev/md0) pour le stockage. Dans cet exemple, j’utiliserai un fichier image de 20 Go stocké dans le dossier /storage.
mkdir /storage
dd if=/dev/zero of=/storage/storage1.img bs=1024k count=20000Cela crée le fichier image /storage/storage1.img d’une taille de 20 Go.
Si vous souhaitez utiliser un volume logique à la place, vous pouvez en créer un d’une taille de 20 Go nommé storage1 dans le groupe de volumes vg0 comme ceci :
lvcreate -L20G -n storage1 vg0Maintenant, nous exportons notre dispositif de stockage comme suit :
vbladed 0 1 eth0 /storage/storage1.imgLe premier nombre (0) est le numéro de l’étagère (majeur), le second (1) le numéro de l’emplacement (mineur), changez ces numéros à votre convenance. Chaque dispositif AoE est identifié par une paire majeur/mineur qui doit être unique (si vous exportez plusieurs dispositifs), avec majeur entre 0-65535 et mineur entre 0-255. La partie eth0 indique à vbladed quel dispositif ethernet utiliser (si votre dispositif ethernet est eth1, utilisez eth1 - vous pouvez découvrir vos dispositifs ethernet en exécutant
ifconfig).
Pour démarrer l’exportation automatiquement chaque fois que vous démarrez la cible, ouvrez /etc/rc.local…
nano /etc/rc.local… et ajoutez la ligne suivante (avant la ligne exit 0) :
[...]
/usr/sbin/vbladed 0 1 eth0 /storage/storage1.img
[...] 4 Configuration du Client AoE / Initiateur (server1)
server1 :
Sur server1, nous installons l’initiateur :
apt-get install aoetoolsMaintenant, nous vérifions quels dispositifs de stockage AoE sont disponibles :
aoe-discoverNe vous inquiétez pas, la commande ne montrera aucune sortie. La commande :
aoe-statdevrait maintenant afficher les dispositifs de stockage :
root@server1:/tmp# aoe-stat
e0.1 20.971GB eth0 1024 up
root@server1:/tmp#À ce stade, nous avons un nouveau dispositif de bloc disponible sur la boîte cliente nommé /dev/etherd/e0.1. Si nous regardons dans l’arborescence /dev, un nouveau nœud apparaît :
ls -la /dev/etherd/root@server1:/tmp# ls -la /dev/etherd/
total 0
drwxr-xr-x 2 root root 160 Mar 22 08:46 .
drwxr-xr-x 19 root root 3160 Mar 22 08:34 ..
c-w--w---- 1 root disk 152, 3 Mar 22 08:34 discover
brw-rw---- 1 root disk 152, 0 Mar 22 08:46 e0.1
cr--r----- 1 root disk 152, 2 Mar 22 08:34 err
c-w--w---- 1 root disk 152, 6 Mar 22 08:34 flush
c-w--w---- 1 root disk 152, 4 Mar 22 08:34 interfaces
c-w--w---- 1 root disk 152, 5 Mar 22 08:34 revalidate
root@server1:/tmp#Pour utiliser ce dispositif /dev/etherd/e0.1, nous devons le formater :
fdisk /dev/etherd/e0.1root@server1:/tmp# fdisk /dev/etherd/e0.1Bienvenue dans fdisk (util-linux 2.25.2).
Les changements resteront en mémoire uniquement, jusqu'à ce que vous décidiez de les écrire.
Soyez prudent avant d'utiliser la commande d'écriture.Le dispositif ne contient pas de table de partition reconnue.
Créé une nouvelle étiquette de disque DOS avec l'identifiant de disque 0x2922f0be.Commande (m pour l'aide) : <-- n
Type de partition
p primaire (0 primaire, 0 étendue, 4 libre)
e étendue (contenant pour les partitions logiques)
Sélectionner (par défaut p) : <-- p
Numéro de partition (1-4, par défaut 1) : <-- 1
Premier secteur (2048-40959999, par défaut 2048) : <-- ENTER
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-40959999, par défaut 40959999) : <-- ENTERCréé une nouvelle partition 1 de type 'Linux' et de taille 19.5 GiB.Commande (m pour l'aide) : <-- wLa table de partition a été modifiée.
Appel de ioctl() pour relire la table de partition.
Synchronisation des disques.Maintenant, nous créons un système de fichiers sur /dev/etherd/e0.1p1…
mkfs.ext4 /dev/etherd/e0.1p1root@server1:/tmp# mkfs.ext4 /dev/etherd/e0.1p1
mke2fs 1.42.12 (29-Aug-2014)
Création du système de fichiers avec 5119744 blocs de 4k et 1281120 inodes
UUID du système de fichiers : 2342cd83-bd45-4975-96c0-b0f366b73778
Sauvegardes du superbloc stockées sur les blocs :
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000Allocation des tables de groupe : fait
Écriture des tables d'inodes : fait
Création du journal (32768 blocs) : fait
Écriture des superblocs et des informations de comptabilité du système de fichiers : fait… et le monter à des fins de test :
mount /dev/etherd/e0.1p1 /mntVous devriez maintenant voir le nouveau dispositif dans les sorties de…
mountroot@server1:/tmp# mount
sysfs sur /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc sur /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev sur /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=125556,mode=755)
devpts sur /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs sur /run type tmpfs (rw,nosuid,relatime,size=204220k,mode=755)
/dev/sda1 sur / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs sur /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs sur /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs sur /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs sur /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup sur /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore sur /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup sur /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup sur /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup sur /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup sur /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup sur /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup sur /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup sur /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 sur /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue sur /dev/mqueue type mqueue (rw,relatime)
debugfs sur /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs sur /dev/hugepages type hugetlbfs (rw,relatime)
rpc_pipefs sur /run/rpc_pipefs type rpc_pipefs (rw,relatime)
/dev/etherd/e0.1p1 sur /mnt type ext4 (rw,relatime,data=ordered)
root@server1:/tmp#… et
df -hroot@server1:/tmp# df -h
Système de fichiers Taille Utilisé Disponible Utilisation% Monté sur
/dev/sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0% /dev
tmpfs 200M 4.6M 195M 3% /run
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
/dev/etherd/e0.1p1 20G 44M 19G 1% /mnt
root@server1:/tmp#Vous pouvez le démonter comme ceci :
umount /mntPour que le dispositif soit monté automatiquement au démarrage, par exemple dans le répertoire /storage, nous créons ce répertoire…
mkdir /storage… et ajoutons la ligne suivante à /etc/fstab :
nano /etc/fstab[...]
/dev/etherd/e0.1p1 /storage ext4 defaults,auto,_netdev 0 0Cela seul n’est pas suffisant pour que le dispositif soit monté au démarrage car les éléments AoE sont chargés après la lecture de /etc/fstab. Par conséquent, nous ouvrons /etc/rc.local…
nano /etc/rc.local… et ajoutons les lignes suivantes (avant la ligne exit 0) :
[...]
aoe-discover
sleep 5
mount -a
[...] À des fins de test, vous pouvez maintenant redémarrer le système :
rebootAprès le redémarrage, le dispositif devrait être monté :
mountroot@server1:/tmp# mount
[...snip...]
/dev/etherd/e0.1p1 sur /storage type ext4 (rw,relatime,data=ordered)
[...snip...]df -hroot@server1:/tmp# df -h
Système de fichiers Taille Utilisé Disponible Utilisation% Monté sur
/dev/sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0% /dev
tmpfs 200M 4.6M 195M 3% /run
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
/dev/etherd/e0.1p1 20G 44M 19G 1% /storageMaintenant, nous pouvons faire un test d’écriture sur la partition montée :
touch /storage/test.txtVérifiez avec la commande ls si le fichier a été écrit :
ls -la /storageroot@server1:/tmp# ls -la /storage
total 24
drwxr-xr-x 3 root root 4096 Mar 22 09:06 .
drwxr-xr-x 23 root root 4096 Mar 22 09:05 ..
drwx------ 2 root root 16384 Mar 22 09:00 lost+found
-rw-r--r-- 1 root root 0 Mar 22 09:06 test.txt
root@server1:/tmp#Le fichier test.txt a été écrit avec succès sur le volume que nous avons monté depuis server2.
5 Liens
- Définition du Protocole AoE : http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
- Debian : http://www.debian.org/
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.