Diese Anleitung erläutert, wie Sie ein AoE-Ziel und einen AoE-Initiator (Client) einrichten, die beide CentOS 6.3 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.
1 Vorbemerkung
Ich verwende hier zwei CentOS 6.3-Server:
- server1.example.com (Initiator):IP-Adresse 192.168.0.100
- server2.example.com (Ziel):IP-Adresse 192.168.0.101
2 Zusätzliche Repositories aktivieren
server1/server2:
Zuerst importieren wir die GPG-Schlüssel für Softwarepakete:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Dann aktivieren wir das EPEL6-Repository auf unseren beiden CentOS-Systemen:
rpm --import https://fedoraproject.org/static/0608B895.txt
cd /tmp
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm -ivh epel-release-6-7.noarch.rpm
yum install yum-priorities
Bearbeiten Sie /etc/yum.repos.d/epel.repo...
vi /etc/yum.repos.d/epel.repo
... und fügen Sie die Zeile priority=10 zum Abschnitt [epel] hinzu:
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |
Das vblade-Paket ist nur über EPEL5 verfügbar Repository, daher müssen wir den folgenden Abschnitt zu /etc/yum.repos.d/epel.repo hinzufügen, aber nur auf server2:
server2:
vi /etc/yum.repos.d/epel.repo
Stellen Sie sicher, dass Sie priority=100 verwenden und GPG-Prüfungen mit gpgcheck=0:
deaktivieren[...] [epel5] name=Extra Packages for Enterprise Linux 5 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-5&arch=$basearch failovermethod=priority enabled=1 priority=100 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 |
3 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 26466 0
[[email protected] ~]#
Damit das Modul automatisch geladen wird, wenn das System bootet, fügen wir die folgende Zeile zu /etc/rc.local hinzu:
vi /etc/rc.local
[...] modprobe aoe [...] |
4 Einrichten des Ziels (server2)
server2:
Zuerst richten wir das Ziel (server2) ein:
yum 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 vg_server2:
lvcreate -L20G -n storage1 vg_server2
(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/vg_server2/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ührenifconfig
).
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 (nach der Zeile modprobe aoe!):
[...] vbladed 0 1 eth0 /dev/vg_server2/storage1 [...] |
5 Einrichten des Initiators (server1)
server1:
Auf server1 installieren wir den Initiator:
yum 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 Dec 11 16:24 .
drwxr-xr-x. 20 root root 3620 Dec 11 16:00 ..
c-w--w----. 1 root disk 152, 3 Dec 11 16:00 discover
brw-rw----. 1 root disk 152, 16 Dec 11 16:24 e0.1
cr--r-----. 1 root disk 152, 2 Dec 11 16:00 err
c-w--w----. 1 root disk 152, 6 Dec 11 16:00 flush
c-w--w----. 1 root disk 152, 4 Dec 11 16:00 interfaces
c-w--w----. 1 root disk 152, 5 Dec 11 16:00 revalidate
[[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
Das Gerät enthält weder eine gültige DOS-Partitionstabelle, noch Sun, SGI oder OSF-Disklabel
Erstellen eines neuen DOS-Disklabels mit Festplattenkennung 0xed572fd4 .
Änderungen bleiben nur im Arbeitsspeicher, bis Sie sich entscheiden, sie zu schreiben.
Danach können die vorherigen Inhalte natürlich nicht mehr wiederhergestellt werden.
Die Anzahl der Zylinder für diese Festplatte ist auf 2610 festgelegt.
Daran ist nichts falsch , aber dass ist größer als 1024,
und könnte bei bestimmten Setups Probleme verursachen mit:
1) Software das beim Booten ausgeführt wird (z. B. alte Versionen von LILO)
2) Booten und Partitionieren von Software von anderen Betriebssystemen
(z. B. DOS FDISK, OS/2 FDISK)
Warnung: ungültiges Flag 0x0000 der Partitionstabelle 4 wird durch w(rite) korrigiert
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
Unter Verwendung des Standardwerts 1
Letzter Zylinder, +Zylinder oder +Größe{K,M,G} (1-2610, Standard 2610): <-- ENTER
Unter Verwendung des Standardwerts 2610
Befehl (m für Hilfe): <-- t
Ausgewählte Partition 1
Hex-Code (geben Sie L ein, um Codes aufzulisten): <-- L
0 leer 1E versteckt W95 FAT1 80 ALTES MINIX BF Solaris
1 FAT12 24 NEC DOS 81 MINIX/ALTES 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 Erweitert 41 41 erweitert 41 PPC Prep Boot 85 Linux Extended DA Non-FS-Daten
6 FAT16 42 SFS 86 NTFS Volumensatz DB CP/M/CTOS/.
7 HPFS/NTFS 4D QNX4.X 87 NTFS Volumensatz de Dell Utility
8 AIX 4e QNX4.x 2 Teil 88 Linux Klartext df BootIt
9 AIX bootable 4f Qnx4.x 3. Teil 8e Linux LVM E1 DOS Access
A OS /2 Boot Managing 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 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 Sekundär
16 Hidden Fat16 63 GNU Hurd oder SYS ab Darwin Boot FB VMware versteckt VMFS
17 Verstecktes HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netwa re b8 BSDI swap fd Linux raid auto
1b Versteckt W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Versteckt W95 FAT3 75 PC/IX br be Solaris boot (H L um Codes aufzulisten): <-- 83
Befehl (m für Hilfe): <-- w
Die Partitionstabelle wurde verändert!
Anruf ioctl (), um die Partitionstabelle erneut zu lesen.
Laufwerke werden synchronisiert.
[[email protected] ~]#
Danach gibt es ein neues Gerät /dev/etherd/e0.1p1, das Sie in der Ausgabe von
sehen könnenls -l /dev/etherd/
[[email protected] ~]# ls -l /dev/etherd/
total 0
c-w--w----. 1 root disk 152, 3 Dec 11 16:00 discover
brw-rw----. 1 root disk 152, 16 Dec 11 16:27 e0.1
brw-rw----. 1 root disk 152, 17 Dec 11 16:27 e0.1p1
cr--r-----. 1 root disk 152, 2 Dec 11 16:00 err
c-w--w----. 1 root disk 152, 6 Dec 11 16:00 flush
c-w--w----. 1 root disk 152, 4 Dec 11 16:00 interfaces
c-w--w----. 1 root disk 152, 5 Dec 11 16:00 revalidate
[[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...
sehenmount
[[email protected] ~]# mount
/dev/mapper/vg_server1-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (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/vg_server1-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
/dev/etherd/e0.1p1 20G 151M 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üge folgende Zeilen hinzu (nach der Zeile modprobe aoe!):
[...] 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/vg_server1-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (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/vg_server1-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
/dev/etherd/e0.1p1 20G 151M 19G 1% /storage
[[email protected] ~]#
6 Links
- AoE-Protokolldefinition:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
- CentOS:http://www.centos.org/