A new feature called vCenter Linked Mode has been introduced in vSphere 4. It allows several vCenter servers to form a linked mode group. When you connect to any of the vCenter server via vSphere Client, you see all of them behind a single pane of glass.
I got questions from time to time, “what does it mean for vSphere API?” More specifically, if you connect to one vCenter in a linked mode group, will you “see” all of them? If not, how can vSphere Client achieve that?
Bothered by SLOW Web UI to manage vSphere? Want to manage ALL your VMware vCenters, AWS, Azure, Openstack, container behind a SINGLE pane of glass? Want to search, analyze, report, visualize VMs, hosts, networks, datastores, events as easily as Google the Web? Find out more about vSearch 3.0: the search engine for all your private and public clouds.
After waiting so long, I finally got a chance to get my hands dirty with a linked mode environment, thanks to my colleague in our QA organization. The following are my observations/findings.
First of all, the vSphere Client does a great job to provide an integrated view. Still, it’s a shallow integration among these vCenter servers. It actually connects to each individual vCenter server, and combines information on the client side. But how does a vSphere Client knows what other vCenter in the group while connecting to only one of them? The trick is the LDAP which stores these information, as well as roles, privileges, license, etc. according to this video. Beyond that, linked mode feature comes with global query service which is a backend with external cache. Because it’s external to vCenter, I don’t think it’s accessible via vSphere API.
Once we understand how vSphere Client works in the linked mode, it’s fairly easy to say that linked mode does not change the functionality and scope of vSphere API service on each vCenter server. If you want to emulate what vSphere does, you basically need to do something similar: access LDAP for all member vCenter and connect to all of them. BTW, the open source VI Java API makes it really easy to connect multiple vCenters at same time.
To confirm this, I also used MOB to access both vCenter servers in a group and find their inventory trees under rootFolder are totally separate. Even in vSphere Client, each vCenter takes a top level root node in the inventory tree anyway.
In summary, vCenter linked mode does not make your life any easier from API perspective. The API service in each vCenter in a group behaves pretty much the same as does independently.