GNU/Linux >> Linux Esercitazione >  >> Debian

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

Questo tutorial mostra come configurare un client AoE (iniziatore) e un server (destinazione) su Debian 8 /Jessie). Il termine AoE sta per "ATA over Ethernet", un protocollo SAN (Storage Area Network) che consente ai client AoE di utilizzare dispositivi di archiviazione sul server AoE (remoto) su una normale rete 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 il client AoE (iniziatore), l'archiviazione remota appare come un normale disco rigido collegato localmente.

1 Nota preliminare

Sto usando due server Debian 8 qui:

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

2 Carica il modulo del kernel AoE su entrambi i sistemi

server1/server2:

Come primo passo, dobbiamo assicurarci che il kernel sui nostri server supporti ATA Over Ethernet. Esegui il comando seguente come utente root.

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

Questo dovrebbe visualizzare qualcosa del genere:

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

Ciò significa che AoE è stato integrato come modulo del kernel. Ora verificheremo se il modulo è 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]:/tmp# lsmod | grep aoe
aoe 51917 0
[email protected]:/tmp#

Per caricare automaticamente il modulo all'avvio del sistema, aggiungiamo il modulo aoe a /etc/modules:

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

3 Configurazione del target (server2)

server2:

Per prima cosa, impostiamo il target AoE (server2):

apt-get install vblade

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 20 GB archiviato nella cartella /storage.

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

Questo crea il file immagine /storage/storage1.img con una dimensione di 20 GB.

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

lvcreate -L20G -n storage1 vg0

Ora esportiamo il nostro dispositivo di archiviazione come segue:

vbladed 0 1 eth0 /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 eth0 dice a vbladed quale dispositivo ethernet usare (se il tuo dispositivo ethernet è eth1, usa eth1 - puoi scoprire i 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 riga seguente (prima della riga 0 di uscita):

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

4 Configurazione del client/iniziatore AoE (server1)

server1:

Sul server1, installiamo l'iniziatore:

apt-get install aoetools

Ora controlliamo quali dispositivi di archiviazione AoE sono disponibili:

aoe-discover

Non preoccuparti, il comando non mostrerà alcun output. Il comando:

aoe-stat

ora dovrebbe mostrare i dispositivi di archiviazione:

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

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]:/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
[email protected]:/tmp#

Per usare quel dispositivo /dev/etherd/e0.1, dobbiamo formattarlo:

fdisk /dev/etherd/e0.1
[email protected]:/tmp# fdisk /dev/etherd/e0.1
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x2922f0be.
Command (m for help): <-- n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): <-- p
Partition number (1-4, default 1): <-- 1
First sector (2048-40959999, default 2048): <-- ENTER
Last sector, +sectors or +size{K,M,G,T,P} (2048-40959999, default 40959999): <-- ENTER
Created a new partition 1 of type 'Linux' and of size 19.5 GiB.
Command (m for help): <-- w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Ora creiamo un filesystem su /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)
Creating filesystem with 5119744 4k blocks and 1281120 inodes
Filesystem UUID: 2342cd83-bd45-4975-96c0-b0f366b73778
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

... e montalo a scopo di test:

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

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

mount
[email protected]:/tmp# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=125556,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=204220k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /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 on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw,relatime,data=ordered)
[email protected]:/tmp#

... e

df -h
[email protected]:/tmp# df -h
Filesystem Size Used 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#

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 (prima della riga 0 di uscita):

[...]
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]:/tmp# mount
[...snip...]
/dev/etherd/e0.1p1 on /storage type ext4 (rw,relatime,data=ordered)
[...snip...]
df -h
[email protected]:/tmp# df -h
Filesystem Size Used 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

Ora possiamo eseguire una scrittura di prova sulla partizione montata:

touch /storage/test.txt

Il controllo con il comando ls se il file è stato scritto:

ls -la /storage
[email protected]:/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
[email protected]:/tmp#

Il file test.txt è stato scritto con successo sul volume che abbiamo montato dal server2.

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

Debian
  1. Come configurare server e client NTP su Debian 9 Stretch Linux

  2. Come configurare contenitori virtuali con LXC e supporto per le quote su Debian 8

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

  4. Come configurare il server Rsyslog su Debian 11

  5. Configurazione ISPConfig Perfect Multiserver su Ubuntu 20.04 e Debian 10

Come configurare vsftpd su Debian

Come configurare Symfony 4 su Debian 9 Server

Come impostare un Cron Job in Debian 10

Come installare Thunderbird Email Client su Debian e configurare il tuo account Gmail in Thunderbird

Come installare e configurare Apache Spark su Ubuntu/Debian

Come installare e configurare Sendmail su Debian 10