在Debian Etch上使用以太网上的ATA
想象一下,你的机器的所有磁盘已满,另一个没有使用千兆字节,你不想将数据从一个移动到另一个。 为什么不在第一个磁盘上使用第二个磁盘,您可以使用iSCSI来实现,但也可以通过以太网ATA (AoE)来实现。 这是我在本文中解释的第二个方法。 所有这一切都是用两台运行Debian Etch的电脑进行的。
准备内核
首先检查你的运行内核是否有AoE,配置选项名称是CONFIG_ATA_OVER_ETH ,看看fig1,我的内核有AoE作为一个模块:
host:/# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
host:/#
如果没有,请配置您的内核并激活核心或模块中的AoE,如您所愿:
Device Drivers -->
|- Block Devices --->
|- <m> ATA over Ethernet support
好的,现在你有一个带有AoE的内核,只需加载aoe模块:
host:/# modprobe aoe
您可以检查您的系统日志以确保AoE可用:
host:/#tail /var/log/syslog
Oct 10 11:54:07 host kernel: aoe: aoe_init: AoE v22 initialised.
host:/#
现在我们来打电话给客户端的“客户端”和服务器的“服务器”,有趣的不是吗?
在SAN词汇表中,我们称客户端的“发起者”为服务器的目标,我宁愿继续使用最简单的术语。
服务器端(目标)
首先我们需要安装vblade包:
server:/# apt-get install vblade
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
vblade
[...]
Unpacking vblade (from .../archives/vblade_11-1_i386.deb) ...
Setting up vblade (11-1) ...
server:/#
在我们的服务器上,我们将导出大小为5GB的/ dev / sdd5
分区,导出块设备很容易:
server:/# vbladed 0 1 eth0 /dev/sdd5
有关此命令的一些解释,每个AoE设备由几个Major / Minor标识,主要在0-65535之间,小于0-255之间。 AoE基于OSI模型上的以太网,因此我们需要指出我们将使用哪个以太网卡。
在这个例子中,我们导出/ dev / sdd5
的主要值为0 ,而在eth0接口上导出为1。
我们准备在网络上使用我们的分区!
客户端(启动器)
客户端也需要aoe内核模块,所以准备好你所看到的内核。
用户工具在包中存在aoetools :
client:/# apt-get install aoetools
现在发现我们可以通过我们的网络使用什么:
client:/# aoe-discover
client:/# aoe-stat
e0.1 5.000GB eth0 up
client:/#
此时,我们在名为/dev/etherd/e0.1的客户端框上提供了一个新的块设备。 如果我们看看/ dev
树,会出现一个新的节点:
client:/# ls -al /dev/etherd/
total 4
drwxr-xr-x 2 root root 140 2007-10-10 13:30 .
drwxr-xr-x 16 root root 14660 2007-10-10 13:30 ..
c-w--w---- 1 root disk 152, 3 2007-10-10 13:30 discover
brw-rw---- 1 root disk 152, 16 2007-10-10 13:30 e0.1
cr--r----- 1 root disk 152, 2 2007-10-10 13:30 err
c-w--w---- 1 root disk 152, 4 2007-10-10 13:30 interfaces
-rw-r--r-- 1 root root 5 2007-10-10 13:00 revalidate
如何使用它
只需在您的块设备上创建一个文件系统,如:
client:/# mkfs.ext3 /dev/etherd/e0.1
并且像你/ dev / hd *
或/ dev / sd *
一样使用它。 唯一的区别是块设备在网络上!