在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 ~]#
6链接
- AoE协议定义: http : //www.coraid.com/RESOURCES/AoE-Protocol-Definition
- CentOS: http : //www.centos.org/