GNU/Linux >> Linux Esercitazione >  >> Cent OS

Utilizzo di ATA Over Ethernet (AoE) su CentOS 7 (iniziatore e destinazione)

Questa guida spiega come configurare un target AoE e un iniziatore AoE (client), entrambi con CentOS 7. AoE sta per "ATA over Ethernet" ed è un protocollo SAN (Storage Area Network) che consente agli iniziatori AoE di utilizzare dispositivi di archiviazione sulla destinazione AoE (remota) utilizzando il normale cablaggio Ethernet. "Remote" in questo caso significa "all'interno della stessa LAN" perché AoE non è instradabile al di fuori di una LAN (questa è una grande differenza rispetto a iSCSI). Per l'iniziatore AoE, l'archiviazione remota appare come un normale disco rigido collegato localmente.

1 Nota preliminare

Sto usando due server CentOS 7 qui:

  • server1.example.com (iniziatore):indirizzo IP 192.168.1.100
  • server2.example.com (Target):indirizzo IP 192.168.1.101

2 Abilita repository aggiuntivi

server1/server2:

Per prima cosa importiamo le chiavi GPG per i pacchetti software:

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

Quindi abilitiamo il repository EPEL sul nostro sistema CentOS poiché molti dei pacchetti che installeremo nel corso di questo tutorial non sono disponibili nel repository CentOS 7 ufficiale:

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

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

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

... e aggiungi la linea priority=10 alla sezione [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
[...]

Quindi aggiorniamo i nostri pacchetti esistenti sul sistema:

yum -y update

3 Caricamento del modulo del kernel AoE su entrambi i sistemi

server1/server2:

Prima di iniziare, dobbiamo assicurarci che il kernel supporti AoE:

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

Questo dovrebbe visualizzare qualcosa del genere:

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

Ciò significa che AoE è stato creato come modulo del kernel. Verifichiamo se il modulo è già caricato:

lsmod | grep aoe

Se non ricevi nulla in cambio, significa che non è caricato. In questo caso possiamo caricarlo come segue:

modprobe aoe

Controlliamo ancora se il modulo è caricato:

lsmod | grep aoe
[[email protected] ~]# lsmod | grep aoe
aoe 54175 0
[[email protected] ~]#

Per caricare automaticamente il modulo all'avvio del sistema, aggiungiamo la seguente riga a /etc/rc.local:

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

4 Configurazione del server (target) sul server 2

server2:

Per prima cosa, impostiamo la destinazione (server2):

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

Possiamo utilizzare volumi logici inutilizzati, file di immagine, dischi rigidi (es. /dev/sdb), partizioni di dischi rigidi (es. /dev/sdb1) o dispositivi RAID (es. /dev/md0) per l'archiviazione.

In questo esempio, utilizzerò un file immagine di 10 GB che si trova nella cartella di archiviazione /storage.

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

Questo creerà un file immagine /storage/storage1.img con una dimensione di 10 GB.

Se invece desideri utilizzare il volume logico, puoi crearne uno con una dimensione di 10 GB denominato storage1 nel gruppo di volumi vg0 in questo modo:

lvcreate -L10G -n storage1 vg0

Ora esportiamo il nostro dispositivo di archiviazione come segue:

vbladed 0 1 ens33 /storage/storage1.img

Il primo numero (0) è il numero dello scaffale (principale), il secondo (1) il numero dello slot (minore), cambia questi numeri a tuo piacimento. Ogni dispositivo AoE è identificato da una coppia maggiore/minore che deve essere univoca (se si stanno esportando più dispositivi), con maggiore tra 0-65535 e minore tra 0-255. La parte ens33 dice a vbladed quale dispositivo ethernet utilizzare, puoi scoprire i dettagli sui tuoi dispositivi ethernet eseguendo

ifconfig

).

Per avviare l'esportazione automaticamente ogni volta che avvii il target, apri /etc/rc.local...

nano /etc/rc.local

... e aggiungi la seguente riga (dopo la riga modprobe aoe!):

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

5 Configurazione del client (iniziatore) sul server 1

server1:

Sul server1, installiamo l'iniziatore. Non è disponibile alcun pacchetto per CentOS 7, ma quello di centOS 6 funziona bene, quindi lo useremo qui.

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

Ora controlliamo quali dispositivi di archiviazione AoE sono disponibili:

aoe-discover

Il comando

aoe-stat

ora dovrebbe mostrare i dispositivi di archiviazione:

[[email protected] ~]# aoe-stat
e0.1 10.485GB ens33 1024 up
[[email protected] ~]#

A questo punto abbiamo un nuovo dispositivo a blocchi disponibile sul box client chiamato /dev/etherd/e0.1. Se diamo un'occhiata all'albero /dev appare un nuovo nodo:

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] ~]#

Per utilizzare quel dispositivo, dobbiamo formattarlo:

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] ~]#

Successivamente, c'è un nuovo dispositivo /dev/etherd/e0.1p1 che puoi vedere nell'output di

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] ~]#

Ora creiamo un filesystem su /dev/etherd/e0.1p1...

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

... e montalo a scopo di test:

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

Ora dovresti vedere il nuovo dispositivo negli output di...

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] ~]#

... e

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] ~]#

Puoi smontarlo in questo modo:

umount /mnt

Per avere il dispositivo montato automaticamente all'avvio, ad es. nella directory /storage, creiamo quella directory...

mkdir /storage

... e aggiungi la seguente riga a /etc/fstab:

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

Questo da solo non è sufficiente per avere il dispositivo montato all'avvio perché il materiale AoE viene caricato dopo la lettura di /etc/fstab. Quindi apriamo /etc/rc.local...

nano /etc/rc.local

... e aggiungi le seguenti righe (dopo la riga modprobe aoe!):

[...]
aoe-discover
sleep 5
mount -a
[...]

A scopo di test, ora puoi riavviare il sistema:

reboot

Dopo il riavvio, il dispositivo dovrebbe essere montato:

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] ~]#

  • Definizione del protocollo AoE:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
  • CentOS:http://www.centos.org/

Cent OS
  1. Utilizzo di ATA Over Ethernet (AoE) su Ubuntu 12.10 (iniziatore e destinazione)

  2. Utilizzo di ATA Over Ethernet (AoE) su Debian Squeeze (iniziatore e destinazione)

  3. Imposta ATA su Ethernet (AoE) su Debian 8 (Initiator e Target)

  4. Utilizzo di ATA Over Ethernet (AoE) su CentOS 6.3 (iniziatore e destinazione)

  5. Configura target e iniziatore iSCSI su CentOS 7 / RHEL7

Monitoraggio e rilevamento di file modificati utilizzando Tripwire su CentOS 7

Come installare e gestire i pacchetti su CentOS utilizzando RPM

Installazione e utilizzo di Perf in Ubuntu e CentOS

Come installare Webmin su CentOS 8 e Rocky Linux 8

Come configurare la destinazione iSCSI utilizzando targetcli in CentOS / RHEL 7

Come configurare un'interfaccia Fibre-Channel Over Ethernet (FCoE) in CentOS/RHEL