Thinking Out Loud: Is A dvFabric Closer Than We Think?

This is a short post, but one that I hope will stir some discussion.

Earlier this evening, I read Maish’s blog post titled My Wish for dvFabric—a dvSwitch for Storage. In that blog post Maish describes a self-configuring storage fabric that would simplify how we provision storage in a vSphere environment. Here’s how Maish describes the dvFabric:

So how do I envision this dvFabric? Essentially the same as a dvSwitch. A logical entity to which I attach my network cards (for iSCSI/NFS) or my HBA’s (for FcoE or FC). I define which uplink goes to which storage, what the multi-pathing policy is for this uplink, how many ports should be used, what is the failover policy for which NIC, which NFS volumes to mount, which LUNS to add – I gather you see what I am getting at.

It’s a pretty interesting idea, and one with a great deal of merit. So here’s the “Thinking Out Loud” part: is Target Driven Zoning (or Peer Zoning) the answer to a large part of Maish’s dvFabric?

If you don’t know what Target Driven Zoning (TDZ) or Peer Zoning are, I recommend you go have a look at Erik Smith’s introductory blog post on Target Driven Zoning. Based on Erik’s description of TDZ, it certainly seems like it could be used to help on the block side of the house with Maish’s dvFabric idea.

So what do you think—am I way off here?

Tags: , , ,

  1. Scott DeShong’s avatar

    I like the idea especially when dealing with storage. The more converged networks become the more we have to worry about contention. Using a dvFabric I could see designating storage adapters for specific virtual machines and prioritizing traffic according to the adapters. Especially when using Adapter-FEX to provide multiple virtual adapters to the hypervisor. Stacking low utilization vm’s on a pair of HBA’s and then providing dedicated HBA’s for a particular datastore seems like an optimal solution.
    I also see TDZ as a very viable solution. Adding additional zoning overhead will give everyone a headache and zoning only to the dvFabric would require complex FC switching configurations within the dvFabric or wouldn’t meet most storage vendors zoning requirements.

  2. Donny Parrott’s avatar

    I find this interesting. I find storage provisioning to be one of the simplest aspects of virtualization management. Now cost of operation …

    Anyway, I am not sure that a dvFabric would work as the dvSwitch addresses unique connectivity per VM. If we were to get to a point were each VM were provide a direct (RDM) storage assignment, this could be a solution. As the current virtualization platforms deliver storage to the hosts for VM consumption (in most cases), I believe the dvFabric would add complexity without much benefit.

    Conversely, I would like to see the development of APIs which would allow vCenter to manage the hosts, zoning, LUN masking, and san management through a graphical inteface. Imagine being able to open vcenter and attach your new hosts to a new cluster and opening the storage management tab. You are presented with your hosts on the left and the storage array on the right. You then “connect the dots” between host and LUNs (or create new LUNs from available disk pools). When done, you click publish and in a few minutes the configuration is deployed. If this configuration is stored in the database, you could be prompted when something changes (new host, new interface, etc.) to update the previous configuration and re-publish.

    This I would like to see for the entire data center. Switching, firewalls, storage, etc. Centralized configuration management of all supporting structures. Deploy a set of new VMs, define a VLANs, MIPs, FW policy, routes. Publish and the network is ready. Places like Amazon and Rack Space have built these frameworks by hand. I would pay to have this functionality in vCenter or similar product.


Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>