Posted by rodo on Thu 11 Oct 2007 at 08:59
Imagine you have a machine with all of his disk full and another with unused Gigabits, and you don't want to move the data from one to other. Why not using the second's disk on the first, you can do it with iSCSI but you can do it with ATA over Ethernet (AoE) too. It's the second method I'll explain is this article.
All of this was made with two computer running Debian Etch.
First check if your running kernel have AoE, the config option name is CONFIG_AT_OVER_ETH, have a look at fig1, my kernel has AoE in module
host:/# grep ATA_OVER /boot/config-`uname -r` CONFIG_ATA_OVER_ETH=m host:/#If not, configure your kernel and activate AoE in core or in module like you prefer
Device Drivers --> |- Block Devices ---> |- <m> ATA over Ethernet supportOk now you have a kernel with AoE, just load the aoe module
host:/# modprobe aoe host:/#You can check your syslog to be sure AoE is available
host:/# tail /var/log/syslog Oct 10 11:54:07 host kernel: aoe: aoe_init: AoE v22 initialised. host:/#Now we'll call the client 'client' and the server 'server', funny isn't it ?
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:/#On our server we'll export the /dev/sdd5 partition which has a size of 5GB, export a block device is easy at do
server:/# vbladed 0 1 eth0 /dev/sdd5 server:/#Some explication about this command, each AoE device is identify by a couple Major/Minor, with major between 0-65535 and minor between 0-255. AoE is based just over Ethernet on the OSI models so we need to indicate which ethercard we'll use.
client:/# apt-get install aoetoolsNow discover what we can use over our network :
client:/# aoe-discover client:/# aoe-stat e0.1 5.000GB eth0 up client:/#At this point we have a new block device available on the client box named /dev/etherd/e0.1. If we have a look at the /dev tree a new node appears
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.1and use it like you do with your /dev/hd* or /dev/sd* the only difference is that block device is over the network !