GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Verwenden von ATA über Ethernet (AoE) auf Ubuntu 12.10 (Initiator und Ziel)

Diese Anleitung erklärt, wie Sie ein AoE-Ziel und einen AoE-Initiator (Client) einrichten können, die beide Ubuntu 12.10 ausführen. AoE steht für „ATA over Ethernet“ und ist ein Storage Area Network (SAN)-Protokoll, das es AoE-Initiatoren ermöglicht, Speichergeräte auf dem (entfernten) AoE-Ziel mit normaler Ethernet-Verkabelung zu verwenden. „Remote“ bedeutet in diesem Fall „innerhalb desselben LANs“, da AoE außerhalb eines LANs nicht geroutet werden kann (dies ist ein wesentlicher Unterschied zu iSCSI). Für den AoE-Initiator sieht der Remote-Speicher wie eine normale, lokal angeschlossene Festplatte aus.

Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

1 Vorbemerkung

Ich verwende hier zwei Ubuntu 12.10-Server:

  • server1.example.com (Initiator):IP-Adresse 192.168.0.100
  • server2.example.com (Ziel):IP-Adresse 192.168.0.101

2 Laden des aoe-kernel-moduls auf beiden systemen

server1/server2:

Bevor wir beginnen, müssen wir sicherstellen, dass der Kernel AoE unterstützt:

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

Dies sollte etwa so aussehen:

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

Das bedeutet, dass AoE als Kernel-Modul gebaut wurde. Prüfen wir, ob das Modul bereits geladen ist:

lsmod | grep aoe

Wenn Sie nichts zurückbekommen, bedeutet dies, dass es nicht geladen ist. In diesem Fall können wir es wie folgt laden:

modprobe aoe

Lassen Sie uns noch einmal prüfen, ob das Modul geladen ist:

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

Damit das Modul beim Booten des Systems automatisch geladen wird, fügen wir das aoe-Modul zu /etc/modules:

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

loop
lp
rtc
aoe

3 Einrichten des Ziels (server2)

server2:

Zuerst richten wir das Ziel (server2) ein:

apt-get install vblade

Wir können ungenutzte logische Volumes, Image-Dateien, Festplatten (z. B. /dev/sdb), Festplattenpartitionen (z. B. /dev/sdb1) oder RAID-Geräte (z. B. /dev/md0) für die Speicherung verwenden. In diesem Beispiel erstelle ich ein logisches Volume mit 20 GB namens storage1 in der Volume-Gruppe vg0:

lvcreate -L20G -n storage1 vg0

(Wenn Sie eine Bilddatei verwenden möchten, können Sie diese wie folgt erstellen:

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

Dadurch wird die Image-Datei /storage/storage1.img mit einer Größe von 20 GB erstellt.

)

Jetzt exportieren wir unser Speichergerät wie folgt:

vbladed 0 1 eth0 /dev/vg0/storage1

Die erste Zahl (0) ist die Regalnummer (groß), die zweite (1) die Fachnummer (klein), ändern Sie diese Nummern nach Ihren Wünschen. Jedes AoE-Gerät wird durch ein Paar Major/Minor identifiziert, das eindeutig sein muss (wenn Sie mehrere Geräte exportieren), wobei Major zwischen 0-65535 und Minor zwischen 0-255 liegt. Der eth0-Teil teilt vbladed mit, welches Ethernet-Gerät verwendet werden soll (wenn Ihr Ethernet-Gerät eth1 ist, verwenden Sie eth1 - Sie können Ihre Ethernet-Geräte herausfinden, indem Sie

ausführen
ifconfig

).

Um den Export automatisch zu starten, wenn Sie das Ziel booten, öffnen Sie /etc/rc.local...

vi /etc/rc.local

... und fügen Sie die folgende Zeile hinzu (vor der Zeile exit 0):

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

4 Einrichten des Initiators (server1)

server1:

Auf server1 installieren wir den Initiator:

apt-get install aoetools

Jetzt prüfen wir, welche AoE-Speichergeräte verfügbar sind:

aoe-discover

Der Befehl

aoe-stat

sollte nun die Speichergeräte anzeigen:

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

An diesem Punkt haben wir ein neues Blockgerät mit dem Namen /dev/etherd/e0.1 auf der Client-Box verfügbar. Wenn wir uns den /dev-Baum ansehen, erscheint ein neuer Knoten:

ls -la /dev/etherd/
[email protected]:~# ls -la /dev/etherd/
total 0
drwxr-xr-x  2 root root     160 2012-10-01 16:24 .
drwxr-xr-x 16 root root    3800 2012-10-01 16:21 ..
c-w--w----  1 root disk 152,  3 2012-10-01 16:21 discover
brw-rw----  1 root disk 152, 16 2012-10-01 16:24 e0.1
cr--r-----  1 root disk 152,  2 2012-10-01 16:21 err
c-w--w----  1 root disk 152,  6 2012-10-01 16:21 flush
c-w--w----  1 root disk 152,  4 2012-10-01 16:21 interfaces
c-w--w----  1 root disk 152,  5 2012-10-01 16:21 revalidate
[email protected]:~#

In der Ausgabe von

fdisk -l

Sie sollten jetzt auch die neue Festplatte finden:

[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: 0x00016be9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32        3917    31205377    5  Extended
/dev/sda5              32        3917    31205376   8e  Linux LVM

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

Um dieses Gerät zu verwenden, müssen wir es formatieren:

fdisk /dev/etherd/e0.1

[email protected]:~# fdisk /dev/etherd/e0.1
Gerät enthält weder eine gültige DOS-Partitionstabelle, noch Sun, SGI oder OSF-Disklabel
Erstellen eines neuen DOS-Disklabels mit Festplattenkennung 0x3093ae28.
Änderungen bleiben nur im Arbeitsspeicher, bis Sie sich entscheiden, sie zu schreiben.
Danach können die vorherigen Inhalte natürlich nicht wiederhergestellt werden.

Warnung:Ungültiges Flag 0x0000 der Partitionstabelle 4 wird von w(rite) korrigiert

WARNUNG:Der DOS-kompatible Modus ist veraltet. Es wird dringend empfohlen,
         den Modus auszuschalten (Befehl 'c') und Anzeigeeinheiten auf
         Sektoren zu ändern (Befehl 'u').

Befehl (m für Hilfe):<-- n
Befehl Aktion
   e   erweitert
   p   primäre Partition (1-4)
<-- p
Partitionsnummer (1-4): <- - 1
Erster Zylinder (1-2610, Standard 1): <-- ENTER
Verwenden des Standardwerts 1
Letzter Zylinder, +Zylinder oder +Größe{K,M,G} (1 -2610, Standard 2610): <-- ENTER
Verwenden des Standardwerts 2610

Befehl (m für Hilfe): <-- t
Ausgewählte Partition 1
Hex code (geben Sie L ein, um Codes aufzulisten): <-- 83

Befehl (m für Hilfe): <-- w
Die Partitionstabelle wurde geändert!

Aufruf von ioctl(), um Partitionstabelle erneut zu lesen.
Datenträger werden synchronisiert.
[email protected]:~#

Danach die Ausgabe von

fdisk -l

sollte wie folgt aussehen:

[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: 0x00016be9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32        3917    31205377    5  Extended
/dev/sda5              32        3917    31205376   8e  Linux LVM

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: 0x3093ae28

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

Jetzt erstellen wir ein Dateisystem auf /dev/etherd/e0.1p1...

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

... und zu Testzwecken mounten:

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

Sie sollten nun das neue Gerät in den Ausgaben von...

sehen
mount
[email protected]:~# mount
/dev/mapper/server1-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
/dev/sda1 on /boot type ext2 (rw)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw)
[email protected]:~#

... und

df -h
[email protected]:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/server1-root
                       18G  838M   16G   5% /
none                  243M  180K  242M   1% /dev
none                  247M     0  247M   0% /dev/shm
none                  247M   32K  247M   1% /var/run
none                  247M     0  247M   0% /var/lock
none                  247M     0  247M   0% /lib/init/rw
none                   18G  838M   16G   5% /var/lib/ureadahead/debugfs
/dev/sda1             228M   17M  199M   8% /boot
/dev/etherd/e0.1p1     20G  172M   19G   1% /mnt
[email protected]:~#

Sie können es wie folgt aushängen:

umount /mnt

Damit das Gerät beim Booten automatisch gemountet wird, z. im Verzeichnis /storage erstellen wir dieses Verzeichnis...

mkdir /storage

... und fügen Sie die folgende Zeile zu /etc/fstab hinzu:

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

Dies allein reicht nicht aus, um das Gerät beim Booten gemountet zu haben, da das AoE-Zeug geladen wird, nachdem /etc/fstab gelesen wurde. Dazu öffnen wir /etc/rc.local...

vi /etc/rc.local

... und fügen Sie die folgenden Zeilen hinzu (vor der Zeile exit 0):

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

Zu Testzwecken können Sie nun das System neu starten:

reboot

Nach dem Neustart sollte das Gerät gemountet sein:

mount
[email protected]:~# mount
/dev/mapper/server1-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
/dev/sda1 on /boot type ext2 (rw)
/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/mapper/server1-root
                       18G  838M   16G   5% /
none                  243M  180K  242M   1% /dev
none                  247M     0  247M   0% /dev/shm
none                  247M   32K  247M   1% /var/run
none                  247M     0  247M   0% /var/lock
none                  247M     0  247M   0% /lib/init/rw
none                   18G  838M   16G   5% /var/lib/ureadahead/debugfs
/dev/sda1             228M   17M  199M   8% /boot
/dev/etherd/e0.1p1     20G  172M   19G   1% /storage
[email protected]:~#

  • AoE-Protokolldefinition:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
  • Ubuntu:http://www.ubuntu.com/

Ubuntu
  1. Verwenden von ATA Over Ethernet (AoE) auf CentOS 7 (Initiator und Ziel)

  2. Verwenden von ATA über Ethernet (AoE) auf Debian Squeeze (Initiator und Ziel)

  3. ATA over Ethernet (AoE) auf Debian 8 einrichten (Initiator und Target)

  4. Verwenden von ATA über Ethernet (AoE) auf CentOS 6.3 (Initiator und Ziel)

  5. So verwenden Sie Ansible zum Installieren und Konfigurieren von Redis 6 unter Ubuntu 20.04

Verwenden von Yarn unter Ubuntu und anderen Linux-Distributionen

Verwenden von Dateien und Ordnern auf dem Desktop-Bildschirm in Ubuntu

Der endgültige Leitfaden zur Verwendung und Anpassung des Docks in Ubuntu

Installieren Sie die neuesten Entwicklertools und IDEs auf Ubuntu mit Ubuntu Make

Tipps und Tricks zur Verwendung von Strg+Z in Ubuntu Linux

So verwenden Sie apt-get reinstall unter Debian und Ubuntu