在CentOS 6.3(启动器和目标)上使用ATA over Ethernet(AoE)

本指南说明如何设置AoE目标和AoE发起方(客户端),两者都运行CentOS 6.3。 AoE  代表

在CentOS 6.3(启动器和目标)上使用以太网上的ATA(AoE)

本指南介绍了如何设置AoE目标和运行CentOS 6.3的AoE启动器(客户端)。 AoE代表“以太网上的ATA”,是一种存储区域网络(SAN)协议,允许AoE启动器使用通用以太网布线在(远程)AoE目标上使用存储设备。 在这种情况下,“远程”意味着“在同一个LAN内部”,因为AoE不能在LAN外部路由(这与iSCSI相比是一个主要的区别)。 对于AoE启动器,远程存储器看起来像一个正常的本地连接的硬盘驱动器。

1初步说明

我在这里使用两台CentOS 6.3服务器:

  • server1.example.com (Initiator):IP地址192.168.0.100
  • server2.example.com (目标):IP地址192.168.0.101

2启用其他存储库

server1 / server2:

首先我们导入软件包的GPG密钥:

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

然后我们在我们的两个CentOS系统上启用EPEL6存储库:

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

编辑/etc/yum.repos.d/epel.repo ...

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

...并将行优先级= 10添加到[epel]部分:

[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
[...]

vblade软件包仅可从EPEL 5存储库中获得,因此我们必须将以下部分添加到/etc/yum.repos.d/epel.repo但仅在server2上

server2:

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

确保使用priority = 100 ,并使用gpgcheck = 0禁用GPG检查:

[...]
[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在两个系统上加载aoe内核模块

server1 / server2:

在我们开始之前,我们必须确保内核支持AoE:

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

这应该显示如下:

[root@server2 ~]# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
[root@server2 ~]#

这意味着AoE被构建为内核模块。 我们检查模块是否已经加载:

lsmod | grep aoe

如果你没有回来,这意味着它没有加载。 在这种情况下,我们可以加载如下:

modprobe aoe

如果模块加载,我们再检查一下:

lsmod | grep aoe

[root@server2 ~]# lsmod | grep aoe
aoe                    26466  0
[root@server2 ~]#

要在系统启动时自动加载模块,我们将以下行添加到/etc/rc.local中

vi /etc/rc.local

[...]
modprobe aoe
[...]

4设置目标(server2)

server2:

首先我们设置目标( server2 ):

yum install vblade

我们可以使用未使用的逻辑卷,映像文件,硬盘驱动器(例如/ dev / sdb ),硬盘驱动器分区(例如/ dev / sdb1 )或RAID设备(例如/ dev / md0 )作为存储。 在本例中,我将在卷组vg_server2中创建名为storage1的20GB的逻辑卷:

lvcreate -L20G -n storage1 vg_server2

(如果要使用图像文件,可以按如下方式创建它:

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

这将创建大小为20GB的映像文件/storage/storage1.img

现在我们出口我们的存储设备如下:

vbladed 0 1 eth0 /dev/vg_server2/storage1

第一个号码( 0 )是货架编号(主要),第二个( 1 )socket号(次要),根据您的喜好更改这些数字。 每个AoE设备由几个主要/次要标识,必须是唯一的(如果您导出多个设备),主要在0-65535之间,次要在0-255之间。 eth0部分告诉vbladed哪个以太网设备要使用(如果以太网设备是eth1 ,那么使用eth1 - 您可以通过运行以下方式了解以太网设备:

ifconfig

)。

要在启动目标时自动导出导出,请打开/etc/rc.local ...

vi /etc/rc.local

...并添加以下行( modprobe aoe行之后!):

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

5设置启动器(server1)

server1:

server1上 ,我们安装启动器:

yum install aoetools

现在我们检查一下可用的AoE存储设备:

aoe-discover

命令

aoe-stat

现在应该显示存储设备:

[root@server1 ~]# aoe-stat
      e0.1        21.474GB   eth0 up
[root@server1 ~]#

此时,我们在名为/dev/etherd/e0.1的客户端框上提供了一个新的块设备。 如果我们看看/ dev树,会出现一个新的节点:

ls -la /dev/etherd/

[root@server1 ~]# 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
[root@server1 ~]#

要使用该设备,我们必须格式化它:

fdisk /dev/etherd/e0.1

[root @ server1〜]#fdisk /dev/etherd/e0.1
设备既不包含有效的DOS分区表,也不包含Sun,SGI或OSF disklabel
构建一个新的DOS磁盘标签,磁盘标识符为0xed572fd4。
更改将仅保留在内存中,直到您决定编写它们。
之后,当然,以前的内容将无法恢复。


此磁盘的柱面数设置为2610。
没有什么问题,但是这大于1024,
并且在某些设置中可能会导致以下问题:
1)在引导时运行的软件(例如,LILO的旧版本)
2)从其他操作系统启动和分区软件
(例如DOS FDISK,OS / 2 FDISK)
警告:分区表4的无效标志0x0000将被w(rite)修正

命令(m帮助): < - n
命令行动
e扩展
p主分区(1-4)
< - p
分区号(1-4): < - 1
第一个圆柱体(1-2610,默认为1): < - ENTER
使用默认值1
最后一个圆柱体,+圆柱体或+大小{K,M,G}(1-2610,默认值2610): < - ENTER
使用默认值2610

命令(m为帮助): < - t
所选分区1
十六进制代码(L型列表代码): < - L

0空1e隐藏W95 FAT1 80旧Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS / sec(FAT-
2 XENIX root 39计划9 82 Linux交换/ 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隐藏C:c7 Syrinx
5扩展41 PPC PReP引导85 Linux扩展da非FS数据
6 FAT16 42 SFS 86 NTFS卷集db CP / M / CTOS /。
7 HPFS / NTFS 4d QNX4.x 87 NTFS卷集戴尔实用程序
8 AIX 4e QNX4.x第二部分88 Linux明文df BootIt
9 AIX可启动4f QNX4.x第3部分8e Linux LVM e1 DOS访问
一个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隐藏FAT12 56金弓a7 NeXTSTEP f1 SpeedStor
12 Compaq diagnostics 5c Priam Edisk a8达尔文UFS f4 SpeedStor
14隐藏FAT16 <3 61 SpeedStor a9 NetBSD f2 DOS辅助
16隐藏FAT16 63 GNU HURD或Sys ab Darwin启动fb VMware VMFS
17 Hidden HPFS / NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI交换fd Linux raid auto
1b隐藏W95 FAT3 70 DiskSecure多bb启动向导隐藏在局域网
1c隐藏W95 FAT3 75 PC / IX是Solaris启动ff BBT
十六进制代码(类型L列出代码): < - 83

命令(m为帮助): < - w
分区表已被更改!

调用ioctl()重新读取分区表。
同步磁盘
[root @ server1〜]#

之后,还有一个新的设备/dev/etherd/e0.1p1 ,您可以在其输出中看到

ls -l /dev/etherd/

[root@server1 ~]# 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
[root@server1 ~]#

现在我们在/dev/etherd/e0.1p1上创建一个文件系统

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

...并安装它用于测试目的:

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

您现在应该在...的输出中看到新设备

mount

[root@server1 ~]# 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)
[root@server1 ~]#

...和

df -h

[root@server1 ~]# 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
[root@server1 ~]#

你可以这样卸载它:

umount /mnt

要使设备在启动时自动安装,例如在目录/存储中 ,我们创建该目录...

mkdir /storage

...并将以下行添加到/ etc / fstab中

vi /etc/fstab

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

这仅仅是在启动时安装设备是不够的,因为在读取/ etc / fstab之后AoE的东西被加载。 因此我们打开/etc/rc.local ...

vi /etc/rc.local

...并添加以下行( modprobe aoe行之后!):

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

出于测试目的,您现在可以重新启动系统:

reboot

重新启动后,应安装设备:

mount

[root@server1 ~]# 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)
[root@server1 ~]#

df -h

[root@server1 ~]# 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
[root@server1 ~]#