Category Archives: Virtualization

Why VMware Needs A New Direction

In my last article, I analyzed the real motivation behind the VMware’s recent intention to acquire Nicira. In this article, I am going to review VMware’s past strategies and predict its long term strategies. In short, VMware’s past growth strategy is “vertical,” and its future growth strategy should be “horizontal.”

Past Strategy Review

Also posted in Cloud Computing | Tagged , | 5 Responses

What Are Cisco’s Options to VMware’s Nicira Deal?

VMware’s acquisition of Nicira posted a big risk on Cisco’s future control of networking market. The risk was in fact there from day one of VMware ESX with virtual switches and then distributed virtual switches, which reduces the need for customers to buy physical geeks from Cisco because virtual machines use “free” virtual ports. For the inter-physical server communication, customers still need Cisco and other vendors even though the volume is not as high as otherwise. That is why Cisco quickly came up with its own distributed virtual switch Nexus 1000v to stay relevant in the virtualization market.

Also posted in Cloud Computing, News & Events | Tagged , , | Leave a comment

What VMware Didn’t Tell You About Nicira Deal

On this past Monday VMware announced to buy Nicira for $1.26 billion. Congratulations to many of my former VMware colleagues who joined Nicira and will return back to VMware soon.

Overall this deal aligns well with VMware’s newly found vision on software defined data center. You must have read many of similar explanations and comments from various sources including this one from VMware CTO Steve Herrod, and this one by Nicira cofounder and CTO Martin Casado.

Also posted in Cloud Computing, News & Events | Tagged , , , | 7 Responses

VMware Serengeti: A Perfect Match of Hadoop and vSphere

During the Hadoop Summit 2012 last month, I learned the release of the open source (Apache license) Serengeti project from VMware. The week after, I downloaded the OVA file from VMware site, and gave my first try with a development environment after browsing through the user guide which introduces a fairly easy process to get a Hadoop cluster to run on vSphere.

Also posted in Big Data | Tagged , | 1 Response

Support Next vSphere Release in VI Java API: The Plan and Work Around

Recently I got several questions and even a bug on supporting the next release of vSphere in the open source VI Java API. The questions are mostly from VMware partners who have early access of the private beta of next release of vSphere and want to ship their own products at the same time of vSphere GA. I figure more partners may have the same question, therefore decide to answer it all here with a possible work around.

Also posted in vSphere API | Tagged , | Leave a comment

Best Tool to Compress Virtual Machines

While working in virtualized environments, we need to pass around virtual machines (a.k.a. virtual appliances) from time to time. Most of the virtual machines I’ve seen for downloading are compressed to save storage and network bandwidth.

Not all the compression algorithms are created equal in terms of compression ratio, compressing speed, and decompressing speed. In most cases, it doesn’t really matter that much with documents and small programs. But it matters a lot with virtual machines whose virtual disk files are much larger than normal files. Any small percentage improvement can result in significant saving on storage and bandwidth.

Also posted in Software Development | Tagged , , | 12 Responses

Open Source VI Java API 5.0.1 Released

While preparing this annoucement, I realize that on the same day last year we had a very successful community event with several techtalks to celebrate the 3 year of vijava open source project. Today it’s the 4th year of this project!

Since VI Java API 5.0 GAed last October, there have been some changes, one of which is that I left VMware and joined VCE the same month. On the project side, there are several new bugs opened with the forum. These bugs do not affect most developers. But still I fixed them quickly in the code repository so that anyone who was affected could get the fixes from there.

Also posted in vSphere API | Tagged | 21 Responses

Common Pitfalls When Developing Virtual Appliances

A virtual appliance is a virtual machine preinstalled with operating system, middleware, and applications. It’s ready to run after a few configurations after powering up.

The benefit of delivering a virtual appliance is obvious – it offers better out of box experience due to simplified installation/configuration and complete isolation from other applications. The disadvantage is also obvious in that it potentially uses much more system resources than sharing a virtual machine with other applications. Like any solution, it’s all about when and how you use it with what for best results. This can be a long discussion by itself.

Also posted in Software Development | Tagged , | Leave a comment

Cisco Nexus 1000V in VMware vSphere API

While working at VMware, I always wondered what Cisco Nexus 1000V looked like from VMware vSphere API. Because I didn’t have access to such a system, I had no way to investigate further. This remained a myth to me until I joined VCE where I found many Vblock systems with Cisco Nexus 1000V as part of standard configuration.

Within VMware vSphere API, there are two managed object types defined related to distributed virtual switch:  DistributedVirtualSwitch, and VmwareDistributedVirtualSwitch. As you can guess, the latter type is a subtype of the first one.

Also posted in vSphere API | Tagged , , | 7 Responses

IT Infrastructure: A Software Perspective

Weeks ago, ThoughtWorks published a new issue of Technology Radar compiled by its senior tech leaders. It has done a great job to track latest technology and market trends since 2010 (for archives, scroll to the bottom of this page).

Also posted in Software Development | Tagged , | Leave a comment

Hypervisor is Containership

There are a few metaphors that help explain what virtualization is. Some suggested virtualization is like people (virtual machines) sharing a bus (physical machine) for efficiency and consolidation.

While the bus sample well explains the benefit of consolidation. It does not explain well isolation. Here I make up a new one: a hypervisor is like a containership, and a virtual machine is like a container that is stacked on the ship.

Posted in Virtualization | Tagged , | 4 Responses

Virtualization Matters Except When It Doesn’t

In my previous post “Physical is New Virtual,” I mentioned that I would talk about when you will need virtualization and when you don’t. This topic could be a little controversial as we at virtualization community all assume that virtualization is the way to go, which is true in general.

There are however use cases in which virtualization doesn’t make much sense. In the following, I will detail some of these use cases and explain why it doesn’t make much sense to use virtualization. Like everything else, virtualization doesn’t fit all.

Posted in Virtualization | Tagged , , , | Leave a comment

Easy Switching RDP and PCoIP Protocol with VMware View

I recently use quite a lot of VMware View because my development environment is a VDI desktop. By default, the PCoIP protocol is used and things just work as expected.

As a power user, I didn’t find PCoIP convenient sometimes, especially when copying files between my physical desktop and my virtual desktop. I ended up using a FTP server instead of drag and drop. It worked but not as quite convenient as I expected it to be.

Posted in Virtualization | Tagged , , , | 1 Response

vSphere APIs for Guest Operating System Management: What’s Special and When to Use It?

This is a wrap-up post of recent series on vSphere guest operating system management APIs. If you missed them, here are a few links to related posts: [Note: these are not related to the vSphere Guest API.]

Also posted in Software Development, vSphere API | Tagged , , , | 13 Responses

How to Upload File to Guest Operating System on VMware

My last post explained how to download file from a guest operating system. Naturally this post is about how to upload file. After a quick sample code, I will discuss how to extend the capability of existing APIs that run program inside guest operating system. My next post will wrap up this series of guest related APIs in vSphere API.

Let’s take a look at a sample code: (To run it, first check out the simple prerequisites in a previous post)

Also posted in Software Development, vSphere API | Tagged , , , | 31 Responses

How to Download File from Guest Operating System on VMware

In my last few posts I discussed how to use the Guest Operating System Management API to run program, set/read environment variables. From this post, I will talk about how to move files to and from a Guest Operating System, and advanced features like moving whole directory only implemented in the Guest Operating System Management API.

Also posted in Software Development, vSphere API | Tagged , , , | 23 Responses

Set Environment Variables in Guest Operating System on VMware

While reading my last post on reading environment variables from a guest operating system, you may wonder how to set environment variables. Don’t be disappointed if I tell you that there is NO direct support for setting an environment variable.

However, you have a workaround – use a command directly. Unlike reading variables, there is no standard ways to do it for different operating systems. You have to first figure out what type of operating system and then run different commands. For example, if you are targeting Windows family of operating systems, you simply run the following:

Also posted in Software Development, vSphere API | Tagged , , , , | Leave a comment

Read Environment Variables in Guest Operating System on VMware

My last post explained how to run, kill, and list programs in guest operating system on VMware. In that post, I mentioned that you can actually use the same API, GuestProgramDirector in particular, to read environment variables. I think the explanation is detailed enough for an implementation.

Still, a good sample provides more details. That is why I decided to write a quick sample just to show how to read environment variables. While trying the sample by myself, I did find more that I will discuss after the sample code.

Also posted in Software Development, vSphere API | Tagged , , , , | 14 Responses

Run, Kill, and List Programs in Guest Operating System on VMware

In my last article, I announced the Guest Operating System Management API for vSphere. As promised, I will write samples to show how to use the APIs. This post explains the GuestProgramDirector type with an example.

Let’s take a quick look at the following sample:

Also posted in Software Development, vSphere API | Tagged , , , | 29 Responses

Announcing Guest Operating System Management API for vSphere

Having created a sample to run a program in guest operating system using GuestProgramManager, I started to write a similar one to show how to use the GuestFileManager. Compared with the GuestProgramManager, the GuestFileManager is much more complicated to use.

Also posted in Software Development, vSphere API | Tagged , , , | 15 Responses
  • NEED HELP?


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__ doublecloud.org.

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.