ATA over Ethernet

With a few steps, you can turn the MyBookWorld into an ATA over Ethernet device. Please note that this includes disabling the mionet services, the web interface will be of no use and the data partition of the hard drive will become unmounted.

An ATA over Ethernet device is also very different from a Samba (CIFS) or NFS server. It will behave more like a hard drive that is directly connected to one server or PC and it cannot be shared directly. Thus, it will be more similar to an USB drive albeit Ethernet connected. Actually AoE is a SAN device and similar to Fiber Channel. It runs on layer 2 on Ethernet and is quite safe from a security perspective. There is also iSCSI, but it runs on a higher layer (tcp) and can be routed. There is one free AoE driver that can be used with windows. ( There are also free drivers for Linux and BSD available elsewhere. For some reasons, the current implementation of AoE is much more easy to setup on linux targets and clients than iSCSI. In comparison to other protocols AoE is in theory the fastest with least overhead and also because caching occures on the client side, i.e. the target machine that contains the physical drives is not loaded as much (iSCSI for instance hast to create ip packets with checksums).

This tutorial assumes that there is one internal hard drive in the MyBookWorld. It should work on a RAID system, too.


As described elsewhere on this site, install ssh and the Optware package manager. Log into MyBookWorld as root and disable the mionet service as described here.

I also turned off samba and lighttpd by editing /etc/init.d/

# $SCRIPTS_PATH/ start
# $SCRIPTS_PATH/ start

#$WGET -q http://localhost/$HOME_PAGE
# if [ -e "$HOME_PAGE" ]
# then
# fi

Install the AoE target software by issuing

ipkg install vblade

Now you have to unmount the data partition of the internal hard drive. Note that by creating the AoE device, we won't touch the system partitions ot MyBookWorld.

umount /shares/internal

Edit /etc/fstab and comment the line where the drive is mounted. On my version the line became #/dev/md4 /shares/internal ext3 defaults,noatime 0 2

Now try to mount the drive with vblade:

/opt/sbin/vblade 1 2 eth0 /dev/md4

If this works, stop vblade with Ctrl-c and then add the following line to /etc/inittab:

::respawn:/opt/sbin/vblade 1 2 eth0 /dev/md4

This will start vblade at bootup and also respawn it if it for some reason dies.

Reboot MyBookWorld and check with df that /shares/internal is still unmounted and check with for instance ps ax|grep vblade that the target software is running.

Client installation

On my server with Fedora 8 I had to run yum install aoetools. The package should be named the same on Debian and Ubuntu. Note that the linux kernel has support for AoE so it should be possible even without this user tool package.

Then the following commands:

Load the kernel module
modprobe aoe

This will show available AoE devices and also create the nodes in /dev

Create a directory to mount the AoE device
mkdir /backup

Mount it (can also be added to fstab for convenience)
mount /dev/etherd/e1.2 /backup

I found some good instructions here how to automatically start and mount the AoE drive.

Then create directories with your preferred permissions on the new device. Note that you have to unmount the device before powering down, otherwise it would be like disconnecting a running ATA drive.

Performance and conclusion

The write speed, measured with nmon, is quite slow, around 2 MB/s, and I think it depends on the Arm CPU (vblade takes about 70% CPU).

The read speed, also measured with nmon, is around 3 MB/s. These are real world transfer speeds.

A hdparm -Tt run reports:

Timing cached reads: 978 MB in 2.00 seconds = 488.24 MB/sec
Timing buffered disk reads: 8 MB in 3.04 seconds = 2.63 MB/sec

I am only using the device for weekly backup. One thing that changed a lot by using it as a AoE device was that I don't have to bother with permissions any more. The device mounts as any hard drive on my server and I can define the permissions I want.


Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License