GNU/Linux >> Tutoriels Linux >  >> Debian

Utilisation d'ATA sur Ethernet (AoE) sur Debian Squeeze (initiateur et cible)

Ce guide explique comment configurer une cible AoE et un initiateur AoE (client), tous deux exécutant Debian Squeeze. AoE signifie "ATA over Ethernet" et est un protocole de réseau de stockage (SAN) qui permet aux initiateurs AoE d'utiliser des périphériques de stockage sur la cible AoE (distante) en utilisant un câblage Ethernet normal. "Distant" 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 l'initiateur AoE, le stockage distant ressemble à un disque dur normal, connecté localement.

1 Remarque préliminaire

J'utilise ici deux serveurs Debian Squeeze :

  • server1.example.com (initiateur) :adresse IP 192.168.0.100
  • server2.example.com (cible) :adresse IP 192.168.0.101

2 Chargement du module noyau aoe sur les deux systèmes

serveur1/serveur2 :

Avant de commencer, nous devons nous assurer que le noyau prend en charge AoE :

grep ATA_OVER /boot/config-`uname -r`

Cela devrait afficher quelque chose comme ceci :

[email protected]:~# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
[email protected]:~#

Cela signifie qu'AoE a été construit en tant que module du noyau. Vérifions si le module est déjà chargé :

lsmod | grep aoe

Si vous ne recevez rien en retour, cela signifie qu'il n'est pas chargé. Dans ce cas, nous pouvons le charger comme suit :

modprobe aoe

Vérifions à nouveau si le module est chargé :

lsmod | grep aoe
[email protected]:~# lsmod | grep aoe
aoe                    21380  0
[email protected]:~#

Pour que le module soit chargé automatiquement au démarrage du système, nous ajoutons le module aoe à /etc/modules :

vi /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

aoe
loop

3 Configuration de la cible (server2)

serveur2 :

Nous configurons d'abord la cible (serveur2) :

apt-get install vblade

Nous pouvons utiliser des volumes logiques inutilisés, des fichiers image, des disques durs (par exemple /dev/sdb), des partitions de disque dur (par exemple /dev/sdb1) ou des périphériques RAID (par exemple /dev/md0) pour le stockage. Dans cet exemple, je vais créer un volume logique de 20 Go nommé storage1 dans le groupe de volumes vg0 :

lvcreate -L20G -n storage1 vg0

(Si vous souhaitez utiliser un fichier image, vous pouvez le créer comme suit :

mkdir /storage
dd if=/dev/zero of=/storage/storage1.img bs=1024k count=20000

Cela crée le fichier image /storage/storage1.img d'une taille de 20 Go.

)

Maintenant, nous exportons notre périphérique de stockage comme suit :

vbladed 0 1 eth0 /dev/vg0/storage1

Le premier chiffre (0) est le numéro d'étagère (majeur), le second (1) le numéro d'emplacement (mineur), changez ces chiffres à votre convenance. Chaque appareil AoE est identifié par un couple majeur/mineur qui doit être unique (si vous exportez plusieurs appareils), avec majeur entre 0-65535 et mineur entre 0-255. La partie eth0 indique à vbladed quel périphérique Ethernet utiliser (si votre périphérique Ethernet est eth1, utilisez eth1 - vous pouvez en savoir plus sur vos périphériques Ethernet en exécutant

ifconfig

).

Pour démarrer l'exportation automatiquement chaque fois que vous démarrez la cible, ouvrez /etc/rc.local...

vi /etc/rc.local

... et ajoutez-y la ligne suivante (avant la ligne exit 0) :

[...]
/usr/sbin/vbladed 0 1 eth0 /dev/vg0/storage1
[...]

4 Configuration de l'initiateur (server1)

serveur1 :

Sur le serveur1, nous installons l'initiateur :

apt-get install aoetools

Nous vérifions maintenant quels périphériques de stockage AoE sont disponibles :

aoe-discover

La commande

aoe-stat

devrait maintenant afficher les périphériques de stockage :

[email protected]:~# aoe-stat
      e0.1        21.474GB   eth0 up
[email protected]:~#

À ce stade, nous avons un nouveau périphérique de bloc disponible sur la boîte client nommé /dev/etherd/e0.1. Si nous regardons l'arborescence /dev, un nouveau nœud apparaît :

ls -la /dev/etherd/
[email protected]:~# ls -la /dev/etherd/
total 0
drwxr-xr-x  2 root root     160 Mar 16 13:34 .
drwxr-xr-x 14 root root    3000 Mar 16 13:33 ..
c-w--w----  1 root disk 152,  3 Mar 16 13:33 discover
brw-rw----  1 root disk 152, 16 Mar 16 13:34 e0.1
cr--r-----  1 root disk 152,  2 Mar 16 13:33 err
c-w--w----  1 root disk 152,  6 Mar 16 13:33 flush
c-w--w----  1 root disk 152,  4 Mar 16 13:33 interfaces
c-w--w----  1 root disk 152,  5 Mar 16 13:33 revalidate
[email protected]:~#

Dans la sortie de

fdisk -l

vous devriez maintenant également trouver le nouveau disque dur :

[email protected]:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00029d5c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3793    30461952   83  Linux
/dev/sda2            3793        3917      992257    5  Extended
/dev/sda5            3793        3917      992256   82  Linux swap / Solaris

Disk /dev/etherd/e0.1: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/etherd/e0.1 doesn't contain a valid partition table
[email protected]:~#

Pour utiliser cet appareil, nous devons le formater :

fdisk /dev/etherd/e0.1

[email protected] :~# fdisk /dev/etherd/e0.1
L'appareil ne contient ni une table de partition DOS valide, ni Sun, SGI ou OSF disklabel 
Création d'une nouvelle étiquette de disque DOS avec identifiant de disque 0xa00b110d.
Les modifications resteront en mémoire uniquement, jusqu'à que vous décidiez de les écrire. le nombre de cylindres pour ce disque est défini sur 2 610.
Il n'y a rien de mal à cela, mais ceci est plus que 1024,
et pourrait dans certaines configurations causer des problèmes avec :
1) un logiciel qui s'exécute au démarrage (par exemple, les anciennes versions de LILO)
2) le démarrage et le partitionnement du logiciel à partir d'autres systèmes d'exploitation
   (par exemple, DOS FDISK, OS/2 FDISK)
Attention : indicateur non valide 0x0000 de la table de partition 4 sera corrigée par w(rite)

Commande (m pour l'aide) : <-- n
Commande action
   e   étendu
   p   partition principale ( 1-4)
<-- p
Numéro de partition (1-4) : <-- 1
Premier cylindre (1-2610, 1 par défaut) :<-- E NTER
En utilisant la valeur par défaut 1
Dernier cylindre ou +taille ou +tailleM ou +tailleK (1-2610, 2610 par défaut) :<-- ENTER
En utilisant la valeur par défaut 2610

Commande (m pour l'aide) : <-- t
 Partition sélectionnée 1
Code hexadécimal (tapez L pour répertorier les codes) : <-- 83

Commande (m for help): <-- w
La table de partition a été modifiée !

Appel ioctl() pour relire la table de partition .
Synchronisation des disques.
[ e-mail protégé] :~#

Ensuite, la sortie de

fdisk -l

devrait ressembler à ceci :

[email protected]:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00029d5c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3793    30461952   83  Linux
/dev/sda2            3793        3917      992257    5  Extended
/dev/sda5            3793        3917      992256   82  Linux swap / Solaris

Disk /dev/etherd/e0.1: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0cf58b15

            Device Boot      Start         End      Blocks   Id  System
/dev/etherd/e0.1p1               1        2610    20964793+  83  Linux
[email protected]:~#

Maintenant, nous créons un système de fichiers sur /dev/etherd/e0.1p1...

mkfs.ext4 /dev/etherd/e0.1p1

... et montez-le à des fins de test :

mount /dev/etherd/e0.1p1 /mnt

Vous devriez maintenant voir le nouvel appareil dans les sorties de...

mount
[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw)
[email protected]:~#

... et

df -h
[email protected]:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G  806M   27G   3% /
tmpfs                 249M     0  249M   0% /lib/init/rw
udev                  244M  108K  244M   1% /dev
tmpfs                 249M     0  249M   0% /dev/shm
/dev/etherd/e0.1p1     20G  172M   19G   1% /mnt
[email protected]:~#

Vous pouvez le démonter comme ceci :

umount /mnt

Pour que l'appareil soit monté automatiquement au démarrage, par ex. dans le répertoire /storage, on crée ce répertoire...

mkdir /storage

... et ajoutez la ligne suivante à /etc/fstab :

vi /etc/fstab
[...]
/dev/etherd/e0.1p1       /storage        ext4    defaults,auto,_netdev 0 0

Cela seul n'est pas suffisant pour que le périphérique soit monté au démarrage, car les éléments AoE sont chargés après la lecture de /etc/fstab. Nous ouvrons donc /etc/rc.local...

vi /etc/rc.local

... et ajoutez-y 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 :

reboot

Après le redémarrage, l'appareil doit être monté :

mount
[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/etherd/e0.1p1 on /storage type ext4 (rw,_netdev)
[email protected]:~#
df -h
[email protected]:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G  806M   27G   3% /
tmpfs                 249M     0  249M   0% /lib/init/rw
udev                  244M  108K  244M   1% /dev
tmpfs                 249M     0  249M   0% /dev/shm
/dev/etherd/e0.1p1     20G  172M   19G   1% /storage
[email protected]:~#

  • Définition du protocole AoE :http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
  • Debian :http://www.debian.org/

Debian
  1. Comment installer et configurer ZFS sur Linux avec Debian Jessie 8.1

  2. Debian – Utiliser deux écrans sur Debian ?

  3. Installer et utiliser Docker sur Ubuntu et Debian

  4. Installer et configurer openDKIM sur Debian Squeeze

  5. Comment améliorer la sécurité de votre VPS Debian en utilisant DenyHosts et Logwatch

Installation d'Apache2 avec prise en charge de PHP5 et MySQL sur Debian Squeeze (LAMP)

Utilisation de mod_spdy avec Apache2 sur Debian Squeeze

Hébergement virtuel avec vsftpd et MySQL sur Debian Squeeze

Mise à niveau de Debian 6 Squeeze avec ISPConfig et courrier/postfix vers Debian 7 Wheezy

Utilisation de ATA sur Ethernet (AoE) sur CentOS 6.3 (initiateur et cible)

Comment supprimer des fichiers et des répertoires à l'aide du terminal dans Debian 10