GNU/Linux >> Tutoriels Linux >  >> Cent OS

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

Ce guide explique comment vous pouvez configurer une cible AoE et un initiateur AoE (client), tous deux exécutant CentOS 7. 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 CentOS 7 :

  • server1.example.com (initiateur) :adresse IP 192.168.1.100
  • server2.example.com (cible) :adresse IP 192.168.1.101

2 Activer les référentiels supplémentaires

serveur1/serveur2 :

Tout d'abord, nous importons les clés GPG pour les packages logiciels :

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Ensuite, nous activons le référentiel EPEL sur notre système CentOS car de nombreux packages que nous allons installer au cours de ce didacticiel ne sont pas disponibles dans le référentiel officiel CentOS 7 :

yum -y install epel-release
yum -y install yum-priorities

Modifier /etc/yum.repos.d/epel.repo...

nano /etc/yum.repos.d/epel.repo

... et ajoutez la ligne priority=10 à la section [epel] :

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]

Ensuite, nous mettons à jour nos packages existants sur le système :

yum -y update

3 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 54175 0
[[email protected] ~]#

Pour que le module soit chargé automatiquement au démarrage du système, nous ajoutons la ligne suivante à /etc/rc.local :

nano /etc/rc.local
[...]
modprobe aoe
[...]

4 Configuration du serveur (cible) sur le serveur 2

serveur2 :

Tout d'abord, nous configurons la cible (serveur2) :

rpm -i http://download.opensuse.org/repositories/home:/cyberorg:/ltsp/CentOS_7/x86_64/vblade-22-3.1.x86_64.rpm

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 10 Go qui se trouve dans le dossier de stockage /storage.

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

Cela créera un fichier image /storage/storage1.img d'une taille de 10 Go.

Si vous souhaitez utiliser un volume logique à la place, vous pouvez en créer un d'une taille de 10 Go nommé storage1 dans le groupe de volumes vg0 comme ceci :

lvcreate -L10G -n storage1 vg0

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

vbladed 0 1 ens33 /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 ens33 indique à vbladed quel périphérique Ethernet utiliser, vous pouvez trouver les détails de 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 (après la ligne modprobe aoe !) :

[...]
vbladed 0 1 ens33 /storage/storage1.img
[...]

5 Configuration du client (initiateur) sur le serveur 1

serveur1 :

Sur le serveur1, nous installons l'initiateur. Il n'y a pas de package pour CentOS 7 disponible, mais celui de centOS 6 fonctionne bien, nous l'utiliserons donc ici.

rpm -i http://download.opensuse.org/repositories/system:/aoetools/CentOS_CentOS-6/x86_64/aoetools-36-1.2.x86_64.rpm

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 10.485GB ens33 1024 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 Jun 30 14:49 .
drwxr-xr-x. 21 root root 3240 Jun 30 14:32 ..
c-w--w----. 1 root disk 152, 3 Jun 30 14:32 discover
brw-rw----. 1 root disk 152, 0 Jun 30 14:49 e0.1
cr--r-----. 1 root disk 152, 2 Jun 30 14:32 err
c-w--w----. 1 root disk 152, 6 Jun 30 14:32 flush
c-w--w----. 1 root disk 152, 4 Jun 30 14:32 interfaces
c-w--w----. 1 root disk 152, 5 Jun 30 14:32 revalidate
[[email protected] ~]#

Pour utiliser cet appareil, nous devons le formater :

fdisk /dev/etherd/e0.1
[[email protected] ~]# fdisk /dev/etherd/e0.1
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xed572fd4.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.


The number of cylinders for this disk is set to 2610.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): <-- n
Command action
   e   extended
   p   primary partition (1-4)
<-- p
Partition number (1-4): <-- 1
First sector (2048-20479999, default 2048): <-- ENTER
Using default value 1
Last sector, +sectors or +size{K,M,G} (2048-20479999, default 20479999): <-- ENTER
Using default value 20479999
Partition 1 of type Linux and of size 9.8 GiB is set

Command (m for help): <-- t
Selected partition 1
Hex code (type L to list codes): <-- L

 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       bf  Solaris
 1  FAT12           24  NEC DOS         81  Minix / old Lin c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          82  Linux swap / So c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  83  Linux           c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c7  Syrinx
 5  Extended        41  PPC PReP Boot   85  Linux extended  da  Non-FS data
 6  FAT16           42  SFS             86  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set de  Dell Utility
 8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext df  BootIt
 9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       e1  DOS access
 a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  GPT
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a6  OpenBSD         f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
Hex code (type L to list codes): <-- 83

Command (m for help): <-- w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]#

Ensuite, il y a un nouveau périphérique /dev/etherd/e0.1p1 que vous pouvez voir dans la sortie de

ls -l /dev/etherd/
[[email protected] ~]# ls -l /dev/etherd/
total 0
c-w--w----. 1 root disk 152, 3 Jun 30 14:32 discover
brw-rw----. 1 root disk 152, 0 Jun 30 14:54 e0.1
brw-rw----. 1 root disk 152, 1 Jun 30 14:54 e0.1p1
cr--r-----. 1 root disk 152, 2 Jun 30 14:32 err
c-w--w----. 1 root disk 152, 6 Jun 30 14:32 flush
c-w--w----. 1 root disk 152, 4 Jun 30 14:32 interfaces
c-w--w----. 1 root disk 152, 5 Jun 30 14:32 revalidate
[[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
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930336k,nr_inodes=232584,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=30,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw,relatime,seclabel,data=ordered)
[[email protected] ~]#

... et

df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.3G 27G 5% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 192M 306M 39% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/etherd/e0.1p1 9.5G 37M 9.0G 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 :

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 (après la ligne modprobe aoe !) :

[...]
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
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930336k,nr_inodes=232584,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=30,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw,relatime,seclabel,data=ordered)
[[email protected] ~]#
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.3G 27G 5% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 192M 306M 39% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/etherd/e0.1p1 9.5G 37M 9.0G 1% /mnt
[[email protected] ~]#

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

Cent OS
  1. Utilisation d'ATA sur Ethernet (AoE) sur Ubuntu 12.10 (initiateur et cible)

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

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

  4. Centos 4.8 et Glibc 2.5 ?

  5. Installation et utilisation de Docker sur CentOS et Fedora

Surveillance et détection des fichiers modifiés à l'aide de Tripwire sur CentOS 7

Comment installer et gérer des packages sur CentOS à l'aide de RPM

Installation et utilisation de Perf dans Ubuntu et CentOS

Comment installer Webmin sur CentOS 8 et Rocky Linux 8

Comment configurer la cible iSCSI à l'aide de targetcli dans CentOS / RHEL 7

Comment configurer une interface Fibre-Channel Over Ethernet (FCoE) dans CentOS/RHEL