GNU/Linux >> Tutoriels Linux >  >> Debian

Configurer ATA sur 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) qui permet aux clients AoE d'utiliser des périphériques de stockage sur le serveur AoE (distant) sur un réseau 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 le client AoE (initiateur), le stockage distant ressemble à un disque dur normal, connecté 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

serveur1/serveur2 :

Dans un premier temps, nous devons nous assurer que le noyau de nos serveurs prend en charge ATA sur 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 :

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

Cela signifie qu'AoE a été intégré en tant que module du noyau. Nous allons maintenant vérifier si le module est 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] :/tmp# lsmod | grep aoe
aoe 51917 0
[email protected] :/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.aoe

3 Configuration de la cible (server2)

serveur2 :

Tout d'abord, nous configurons la cible AoE (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 utiliser un fichier image de 20 Go qui est stocké dans le dossier /storage.

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.

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 stockage1 vg0

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

vbladed 0 1 eth0 /storage/storage1.img

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...

nano /etc/rc.local

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

[...]/usr/sbin/vbladed 0 1 eth0 /storage/storage1.img[...]

4 Configuration du client/initiateur AoE (serveur1)

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 :

découvrir aoe

Ne vous inquiétez pas, la commande n'affichera aucune sortie. La commande :

stat-aoe

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

[email protected] :/tmp# aoe-stat
e0.1 20.971GB eth0 1024 up
[email protected] :/tmp#

À 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] :/tmp# ls -la /dev/etherd/
total 0
drwxr-xr-x 2 root root 160 Mar 22 08:46 .
drwxr- xr-x 19 racine racine 3160 22 mars 08:34 ..
c-w--w---- 1 disque racine 152, 3 mars 22 08:34 découverte
brw-rw---- 1 disque racine 152, 0 mars 22 08:46 e0.1
cr--r----- 1 disque racine 152, 2 mars 22 08:34 err
c-w--w---- 1 disque racine 152, 6 mars 22 08:34 flush
c-w--w---- 1 disque racine 152, 4 mars 22 08:34 interfaces
c-w--w---- 1 racine disque 152, 5 mars 22 08:34 revalider
[email protected] :/tmp#

Pour utiliser ce périphérique /dev/etherd/e0.1, nous devons le formater :

fdisk /dev/etherd/e0.1
[email protected] :/tmp# fdisk /dev/etherd/e0.1
Bienvenue dans fdisk (util-linux 2.25.2).
Les modifications resteront uniquement en mémoire, jusqu'à ce que vous décidiez de les écrire.
Soyez prudent avant d'utiliser la commande write.
Le périphérique ne contient pas de table de partition reconnue.
Création d'un nouveau label de disque DOS avec l'identifiant de disque 0x2922f0be.
Commande (m pour l'aide) :<-- n
Type de partition
p primaire (0 primaire, 0 étendu, 4 libres)
e étendu (conteneur pour les partitions logiques)
Sélectionner (p par défaut) :<-- 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) : <-- ENTER
Créé une nouvelle partition 1 de type 'Linux' et de taille 19.5 GiB.
Commande (m pour l'aide) :<-- w
La table de partition a été modifiée.
Appel 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.1p1
[email protected] :/tmp# mkfs.ext4 /dev/etherd/e0.1p1
mke2fs 1.42.12 (29-Aug-2014)
Création d'un système de fichiers avec 5119744 blocs 4k et 1281120 inodes
UUID du système de fichiers :2342cd83-bd45-4975-96c0-b0f366b73778
Sauvegardes de superbloc stockées sur des blocs :
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2
/> 4096000
Allocation des tables de groupe :terminé
Écriture des tables d'inodes :terminé
Création du journal (32 768 blocs) :terminé
Écriture des superblocs et des informations de comptabilité du système de fichiers :terminé

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

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

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

monter
[email protected] :/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 on /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 /r un/rpc_pipefs tapez rpc_pipefs (rw,relatime)
/dev/etherd/e0.1p1 sur /mnt tapez ext4 (rw,relatime,data=ordered)
[email protected] :/tmp#

... et

df -h
[email protected] :/tmp# df -h
Taille du système de fichiers utilisé Avail Use% Mounted on
/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
[email protected] :/tmp#

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 /stockage

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

nano /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...

nano /etc/rc.local

... et ajoutez-y les lignes suivantes (avant la ligne exit 0) :

[...]aoe-discoversleep 5mount -a[...]

À des fins de test, vous pouvez maintenant redémarrer le système :

redémarrer

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

monter
[email protected] :/tmp# mount
[...snip...]
/dev/etherd/e0.1p1 sur /storage type ext4 (rw,relatime,data=ordered )
[...couper...]
df -h
[email protected] :/tmp# df -h
Taille du système de fichiers utilisé Avail Use% Mounted on
/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% /storage

Nous pouvons maintenant faire un test d'écriture sur la partition montée :

appuyez sur /storage/test.txt

La vérification avec la commande ls si le fichier a été écrit :

ls -la /stockage
[email protected] :/tmp# ls -la /storage
total 24
drwxr-xr-x 3 root root 4096 Mar 22 09:06 .
drwxr-xr-x 23 racine racine 4096 22 mars 09:05 ..
drwx------ 2 racine racine 16384 22 mars 09:00 perdu+trouvé
-rw-r--r-- 1 racine racine 0 22 mars 09:06 test.txt
[email protected] :/tmp#

Le fichier test.txt a été écrit avec succès sur le volume que nous avons monté à partir du serveur2.

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

Debian
  1. Comment installer et configurer l'hôte Docker minimaliste de Debian 8

  2. Comment configurer le serveur et le client NTP sur Debian 9 Stretch Linux

  3. Comment configurer des conteneurs virtuels avec LXC et la prise en charge des quotas sur Debian 8

  4. Configurer Apache et Php avec mod_fcgid sur Ubuntu/Debian

  5. Comment configurer un serveur de messagerie avec Exim4 et DBMail sur un VPS Debian 7

Comment configurer vsftpd sur Debian

Comment configurer Symfony 4 sur le serveur Debian 9

Comment configurer une tâche Cron dans Debian 10

Comment installer le client de messagerie Thunderbird sur Debian et configurer votre compte GMail dans Thunderbird

Comment installer et configurer Apache Spark sur Ubuntu/Debian

Comment installer et configurer Sendmail sur Debian 10