Virtualization is the answer. Now, what was the question?
The drumbeat for virtualization as the answer for the storage world’s ills continues unabated. Yet I wonder if we are virtualizing the right things and, if we are, doing it in the right way.

I got into the computer business in 1981, when virtual memory superminicomputers were still the coming thing. Folks had figured out that due to the cost of memory *and* the cost of dealing with fixed memory capacities, that memory was the right thing to virtualize.

Yet the early implementations were clunky and prone to non-productive behaviors like thrashing. It took a while to engineer a virtual memory system that provided a good illusion of physical memory. How many people even know they are using virtual memory today?

The Turing test for virtualization
You can’t tell whether it is virtual or real.

As scary as lions, tigers and bears?
Maybe blocks should be.

Grand virtualization architecture visions
The dotcom boom saw at least a couple of dozen storage virtualization startups funded, at least for a while. A surprising number still survive. Major storage companies launched storage virtualization programs.

  • Virtualization in HBAs
  • Virtualization in switches
  • Virtualization in appliances

And more.

Blocks are the problem. What is the answer?
My thought: maybe OSD has the right idea. Maybe by virtualizing a really basic and largely irrelevant resource – blocks – we can advance virtualization without a costly rejiggering of everything else in storage.

I pinged a very smart and highly experienced engineer I know to ask him what he thought about OSD. A member of the T10 committee on OSD, he asked that I not give his name. He considers his comments a SWAG, and he is not professionally given to making unresearched statements.

His response had a couple of threads
The first is what OSD could do.

One of the most interesting things about OSD was that you could provide a certain amount of information about an object in the SCSI command set defined for it. This could have been the basis for some security, access management, and information life cycle management solutions.

My take away is that OSD could offer new infrastructure for managing data, were we to adopt it.

His second point is where OSD fits.

I have always believed that people cared about files, and that blocks and objects were just interesting ways to construct files. Data base and transaction processing applications may be a significant exception to that because they attempt to optimize their behavior at a much lower level, though that may be a temporary expedient due to present performance limitations.

Just as people once programmed in ones and zeros before moving to assembler, perhaps blocks are the ones and zeros of the age of massive storage. We have to stop thinking about them to achieve useful virtualization, and let the machines handle blocks so we don’t have to.

Comments welcome – we got some good ones on the first OSD post – thank you all. Moderation is a virtue. Have a good weekend.