A few years ago, after writing my whitepaper on VMware Infrastructure (VI) plug-ins, I was fortunate enough to visit the VMware campus and meet several of their engineers. I mentioned to them that it would be nice to have a VMware Infrastructure simulator to develop against for when a full VMware installation was not available. They said that while that may be nice, it was a lot of work, and wouldn’t installing an ESX server be a better idea?
Skip ahead two years when I joined Hyper9. I mentioned to some of the other employees that I created a mini-simulator while working on my VMM project. They said it sure would be nice to have a full VMware simulator.
Rewind your clock to last fall. David Marshall and Dave McCrory (CTO of Hyper9) mentioned that they had been thinking it would be cool to create a VMware simulator, and wouldn’t you know it, Dave McCrory, after some poking around, discovered a very special JAR file that turned out to be the equivalent of our very own flux capacitor.
It is March 2010 and I am pleased as punch to announce the immediate availability of the open source (BSD) project from Hyper9, SimDK, a VMware vSphere4 simulator which provides vSphere4 API-compatibility for official vSphere4 clients and other applications built using the vSphere4 SDK. SimDK represents months of hard work and is nothing less than an API-compatible recreation of the vSphere SDK.
The following video presents a brief overview of SimDK.
And this video is a demonstration of connecting to SimDK with the vSphere4 PowerCLI.
In a standard vSphere deployment, the vSphere4 clients, such as the vSphere PowerCLI (PowerShell), the vSphere Client, and other toolkits access vSphere4 through the vSphere4 SDK.
The SDK is responsible for handling requests for creating virtual machines (VMs) and issuing vMotion commands. And of course the SDK is also in charge of providing the clients with responses to their requests.
SimDK is able to simulate a vSphere4 environment by replacing the vSphere API/SDK web service with the SimDK web service.
The SimDK web service handles requests from vSphere4 clients and instead of communicating with a vCenter database or an ESX server, the requests are handled by the SimDK simulator. The data is persisted in SimDK’s own database tables and the responses are serialized and sent back to the clients.
SimDK is also able to proxy other hypervisors by emulating the vSphere4 API to the vSphere4 clients.
For example, when a vSphere client connects to the SimDK web service, the web service could be configured to proxy communications to a Citrix XenServer. In this way SimDK can emulate vSphere4 for a Citrix Xen environment.
I think SimDK is one of the most exciting pieces of software released in the realm of virtualization in a long time. If you’re interested in learning more about SimDK or want to become involved with the project, please visit the SimDK homepage (a work in progress). In the meantime, if you have any questions, feel free to e-mail me at sakutz at gmail. Thanks!