The VSX is all about creating imaginary disks. This ability is one of the neat things about using the ATA-over-Ethernet protocol. If it’s talking to the protocol, it must be a disk.
In a way, the SRX also creates imaginary disks. If you use the SRX to make a RAID out of a bunch of drives, that RAID looks like one big disk. It’s kind of a fake disk made up of real disks underneath.
The VSX has no disks. Instead, it creates virtual disks, hence the “V.” These virtual disks are all in the imagination of the VSX.
Now, if you store something on a disk, you’re going to want to read that data eventually. It obviously has to live somewhere, not just in the imagination of a virtualizer. In the case of the VSX, that somewhere is an SRX.
When we think about it that way, the AoE request has a target on the imaginary VSX disk, complete with an address and an imaginary block number. The VSX knows that the data is actually on a different target, the SRX, so it changes the imaginary address into the real SRX address and subs the fake block number for the real one.
The VSX has translated the block number from a virtual disk to a block number for a real disk. It’s address translation, and if there is anything I know it’s address translation. It’s what the PIX did, and network address translation for IP addresses works the same way the VSX does. Translation is translation.
So what is a VSX at its core? It’s an appliance that does one thing really well: it makes imaginary disks out of physical disks.
As it turns out, there are a whole bunch of tricks you can do with imaginary disks made up of physical disks.
For example, we can make any virtual size drive we want out of the raw materials from the SRX. This is important because the SRX builds in units of disks. Let’s say you have a 5 drive RAID. To the SRX, it looks like one large disk. Using the VSX, we can create any size virtual disk from the large RAID. We can create a bunch of little ones if we want. The VSX provides the flexibility to create any size disk you need. The VSX is capable of more tricks, of course. Mirroring, snapshotting, shadowing, cloning, even creating a system with no single point of failure. I’ll leave those features for another day.