evblade - Enterprise Virtual Blade Server
The evblade is a "blade" server, serving ata block devices using the "Ata Over
Ethernet" protocol. Serving different blades to different clients using the
same blade-id makes it suitable for thin-client use. Hence the E for
enterprise.
Intro
The AoE protocol is a very simple ata over l2-ethernet
encapsulation protocol. It's strength comes from the fact that it is rather
"simple". You can for instance easily use swap on AoE without fear for a
deadlock due to the memory needed by the protocol stack. (That's why swap over
an IP network on linux is almost impossible).
(See Coraid)
vblade
The original idea is derived from vblade
(Hosted on sf.net), and
the intention was to just modify the code. However, the code does not allow for
easy modification to a multiclient multiblockdevice server. When that was clear
I decided to just rewrite that part from scratch using the original protocol
specs and the linux AoE driver.
(original design blurps. some design things are from before reading the
protocol spec itself)
Design of enterprise vblade:
blades are assigned on mac-address level
since aoe doesn't use labels or other stuff like that, the client mac-address
will be used to give out private blades with a common name. This way a thin
client can easily access swap with a common name, while getting a private swap
space on the server.
Properties of a "blade":
shared: does each client get's it's own blade or is this one shared.
readonly: is the blade read only
locking: Do we need to support some kind of block-device locking?
Announce blades
Types:
Objects:
connection: (or maybe circuit)
Properties:
client-mac: the mac address of the client
blade id: The id of the blade (major, minor)
authorised: has the client passed the acl, if not, this is a mere negative cache
blade:
blade id
shared
readonly
locking
autocreate (auto create a blade file if it does not exist yet)
copyonwrite
blade tech stats (nrofblocks, lba, etc...)
acl
Functions:
setupclient: client-mac, blade id
sets up a client when it does not exist yet
Future wishes for AoE
AoE is a real neat solution for a lot things. There are two things I really love to see:
An IDE-drive to AoE interface. Thus: a device that you connect to the IDE port of
you proprietary or non upgradeable system that converts the ATA
settings/messages to Ethernet and back. This way you can have your old hardware
or your proprietary PVR use your server and let it be quiet.
A *cheap* IDE-host to AoE interface. The price for such a thing with a
100MBit interface should be able to be equal to the IDE-host to USB interfaces.
At least the cost should not exceed 80 euro with standard hardware.