使用ATA over Ethernet(AoE)在Ubuntu 12.10(启动器和目标)

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

我不会保证这将为您工作!

1初步说明

我在这里使用两个Ubuntu 12.10服务器:

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

2在两个系统上加载aoe内核模块

server1 / server2:

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

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

这应该显示如下:

root@server1:~# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
root@server1:~#

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

lsmod | grep aoe

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

modprobe aoe

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

lsmod | grep aoe
root@server1:~# lsmod | grep aoe
aoe                    26960  0
root@server1:~#

要在系统启动时自动加载模块,我们将aoe模块添加到/ etc / modules中

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设置目标(server2)

server2:

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

apt-get install vblade

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

lvcreate -L20G -n storage1 vg0

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

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

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

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

vbladed 0 1 eth0 /dev/vg0/storage1

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

ifconfig

)。

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

vi /etc/rc.local

...并添加以下行(在退出0行之前):

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

4设置启动器(server1)

server1:

server1上 ,我们安装启动器:

apt-get 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 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
root@server1:~#

在输出中

fdisk -l

你现在还应该找到新的硬盘驱动器:

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

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

fdisk /dev/etherd/e0.1

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

警告:分区表4的无效标志0x0000将被w(rite)修正

警告:DOS兼容模式已弃用。 强烈建议
关闭模式(命令'c')并将显示单位更改为
扇区(命令'u')。

命令(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列出代码): < - 83

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

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

之后,输出

fdisk -l

应该看起来如下:

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

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

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

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

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

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

mount
root@server1:~# 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)
root@server1:~#

...和

df -h
root@server1:~# 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
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

...并添加以下行(在退出0行之前):

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

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

reboot

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

mount
root@server1:~# 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)
root@server1:~#
df -h
root@server1:~# 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
root@server1:~#

5链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏