May 21, 2012

Look I’m A Tool! : vSphere Session Monitor 1.0

Patio hacking

(version 2.0 is now released! Go here)

So eight days ago I decided I was going to give another try to write an application that uses the VMware vSphere Web SDK. I had attempted this at least a year ago and never finished anything because of *insert excuse here*.

I always have ideas for cool (at least in my mind) tools swirling in my head. Even though I am a data center quadruple threat kind of guy (Microsoft, VMware, Cisco, and EMC), I like to do scripting and development to sharpen my mind. I always thought I was going to be a developer in college and love to turn ideas into reality.

So last week I fired up Visual Studio 2008 and started spending some nights coding. Along the way I found out some interesting things, caused a great blog post, and had a blast learning more about vSphere. I have a tendency to roll my challenges together and so decided to make this slick as possible including:

  • Making it a Tray Icon (A must for this app)
  • Doing all forms in WPF which I have never worked with before (XAML crash course)
  • Making all background processes multithreaded and eliminating the need for timers
  • Learning how to effectively use PropertyCollector.WaitForUpdates method to touch vCenter as little as possible
  • Building a proper MSI setup

On top of all this I went and wrote all the operations, connections, and credential pieces into classes for re-usability.  I am a bit of a perfectionist and probably went WAY overboard without much gain.

So without further self flagellation and glorification I present the: [drain file 2 url vSphere Session Monitor]

 

This little bad boy right here’s only purpose is to keep you informed of who is on your vCenter server.
Let me walk you through the steps to try it out.

Download the x86 installer from here: [drain file 2 url vSphere Session Monitor]

I do not endorse using this tool in production. Please test in a lab environment until you (if ever!) are comfortable using elsewhere.

Run the installer on the workstation of your choice. You must have .NET 3.5 installed. Also this workstation must have the ability to hit the vCenter Web SDK which is https://*your vCenter Server/sdk

After the application is installed, launch it from your new desktop shortcut or Program Files menu.

The application will prompt you for your vCenter fully qualified domain name (FQDN):

It will then prompt for you vCenter credentials:

If you entered everything correctly the tool will open up the main page:

And down in your notification tray a little pop-up will list current vCenter sessions:

 

Couple quick UI things to get out of the way:

  • To close the application, click the “X” in the main window.
  • Minimizing will hide the form. You can bring it back or hide it with a left-click on the notification tray icon.
  • If you right-click on the tray icon it will list the current users on the vCenter host.
  • The “Change Credentials” button will allow you to switch username and password. And the ‘Change vCenter Server” will let you change the FQDN you entered.

I bet at this point you are thinking: “Well Nick, that is cool and dandy but I can get that info from my vSphere client! Way to reinvent the wheel…”
Well… now for the best part. This is the real reason I wrote this little app. It all started with my senior engineer, Justin. He had a nasty habit of yelling out “What are you doing?” every time someone did something on a vCenter server. That got me thinking; “It would be cool if something popped up telling Justin someone logged in. And it would be even cooler if you didn’t have to have the vSphere Client running to do it.”
So with the vSphere Session Manager, the instant someone logs into your vSphere vCenter, you see this:

Not super fancy but if you want to know when someone is playing in your pool (like Justin) this will let you know.
Here are couple features I was going to add but will (maybe) later:

  • Storing of credentials (encrypted) – not too difficult, a little RSA key generation, mix in some environment specific salt, and dehydrate a class to XML.
  • Allow multiple vCenter hosts – You can open multiple monitors to watch each vCenter for now

So that is a few hours of my life dedicated to seeing how easy it is to utilize the VMware vSphere Web SDK. And from a datacenter guy I can definitely say that the documentation, community (thanks @sjin2008), and SDK made this a pretty easy task. I highly recommend everyone take your cool tool ideas and try something out too.

Do me a favor and leave comments with feedback/questions. Thanks!

 

.nick

Hello Hyper-V : Meet Reality (part deux)

Well my blog post yesterday drew way more attention that I thought it would. Part of the attention was a comment from the esteemed Ben Armstrong (twitter & blog).

He provided wonderful feedback and I have decided to highlight it here with my response. Not sure if I am breaking a blogosphere rule but, I shall claim etiquette ignorance and proceed.

Here are Ben’s comments:

Ben Armstrong
January 22nd, 2010 at 12:27 am

Hi Nick,

Just thought I would drop in to clarify some of the issues you raise around the issue of operating system support.

What we often talk about on the Hyper-V team is “Support versus support”. Hyper-V can run Windows NT 4.0 – and I would love it if we said that we support it, but we cannot say that – because Microsoft as a whole does not support Windows NT 4.0. And it really changes the story when you are the OS maker.

For example – let’s imagine that we did state that we supported Windows NT 4.0 on Hyper-V, and we compared the support experience between Microsoft and VMware:

VMware:

Customer encounters a problem with Windows NT 4.0 on ESX. They contact VMware – who after investigating the issue declares that “sorry – this is a bug in Windows NT 4.0, you should contact Microsoft”. When the customer contacts Microsoft they are told that Windows NT 4.0 is not supported. The customer still has a problem, but they do not feel lied to.

Microsoft:

Customer encounters a problem with Windows NT 4.0 on Hyper-V. They contact Microsoft – who after investigating the issue declares that “sorry – this is a bug in Windows NT 4.0, and even though we said we supported Windows NT 4.0 on Hyper-V we did mean that we supported Windows NT 4.0″.

Can you see why we (Microsoft) do not feel that we can make such statements? Meanwhile VMware currently states that they support every Microsoft OS from MS-DOS 6.22 onwards.

In regards to Linux support – when we state that we support a Linux distribution on Hyper-V, it means that we have signed formal support agreements with the owner of that Linux distribution. For example – if you have an issue running SuSE on Hyper-V, you can contact Microsoft product support. They will then work with Novel support engineers directly to solve the issue – without requiring you to bounce back and forth between the two companies.

As an aside – the problem with this approach is that it makes it hard to support versions of Linux like CentOS, where there is not a corporate entity who can sign a support agreement. That was one of the motivating points releasing our integration components under GPL – so that community supported distributions could provide the same level of support for Hyper-V as they provide for other platforms.

Cheers,
Ben

First off, thanks for the comments Ben. I appreciate your providing clarity and participating in a discussion

I completely understand the predicament around legacy Windows versions. Because of the dual ownership, Microsoft does have to maintain standards around support.

But, I disagree that at a higher-level this is a problem. I see this as the difference between strategic and tactical viewpoints with hypervisors (great post on this from Steve Kaplan here).
Here is an example:

Let’s say we have a customer that has 20 legacy servers running Windows NT 4.0.
They don’t have the budget to purchase replacement software, the original application creator is gone (and they didn’t have the source in escrow), and it is completely incompatible with new OS server versions.

With Hyper-V not only will they not be able to P2V (physical to virtual migration) these servers. They also would get zero support from Microsoft for Hyper-V hosts that encounter issues with these VM‘s. There is a built-in out for the support person on the other end of the phone. This translates into an implementation impossibility and extreme operational risk.

With VMware vSphere, not only is the P2V actually supported (allowing abstraction of the OS) but the VM’s themselves are supported on the hypervisor. That means if there is a specific issue with hypervisor configuration VMware will support, fix, and help with making this successful. I know people that have not only successfully virtualized legacy operating systems but, have also done it with extremely proprietary configurations (@tscalzott).

The hypervisor is a layer and a toolkit meaning the intent is to provide abstraction as well as options for business needs. Hyper-V is missing these options which, because of the tactical approach MS has, make it more limited in application. My points is the missing options and not an effort to downplay the features it does possess.

Microsoft’s (and your focus) on integrated support is because of the tactical approach to the hypervisor. Hyper-V it is built on the same platform as the server product and blends layers rather than abstracts. Support can be integrated but, in an abstraction model that is done successfully (empirically proven with VI3 & vSphere) this is not a critical need. When layers are abstracted you break the dependencies that exist in blended/tactical models. Integrated support is a core marketable value in tightly coupled dependency situations like hypervisor to storage, networking, and server components. In fact, that is one of the primary reasons VMware tightly maintains and accelerates their hardware compatibility list (HCL). Where abstraction does not exist this is essential and with vSphere is assumed by the ESX host. With Hyper-V the HCL is much broader because it is based on the underlying server operating system. But that is because Microsoft has abstracted hardware using the operating system (Windows Server). Problem is, that means all you have done is create another dependency upon a relocated layer. In fact if you think about it, the operating system with Hyper-V is now a layer above and below the hypervsior. This is a completely different approach to virtualization.

I am not saying Hyper-V has taken the wrong approach, I am just trying to clarify the real value of each product and the completely different approach. Microsoft has invested interest in businesses moving operating systems to newer Server version from a revenue perspective. Their motivation is inherit in their approach and marketing as evidenced by both the blog & your comments. Why would Microsoft invest major effort in reducing their ability to consume operation system market share?

On the other hand VMware’s interest in providing a extremely stable hypervisor with a robust feature-set that will work for as many possible deployment models as possible. They are successful despite the operating system choices of their customers. Being a customer I can testify that VMware support is extremely helpful in supporting guest OS’s on their platforms. While they won’t make changes application configurations (not stated at least), they do posses a massive knowledge base of how to successfully virtualize their long list of possible options.

However, in forward looking design scenarios Hyper-V does stand differently against newer Windows Server versions. With an apples to apples design using Windows Server 2008 and beyond, the battle is more over the cost, operational capability, and long-term value than support or compatibility choices.
Hyper-V does not have options that compete against VMware in heterogeneous operating system space and once you cross that line and make statements against operating system approaches, you have broadened the argument beyond an apples to apples comparison.

I really do appreciate the feedback and feel free to hit me back.

 

.nick

Reblog this post [with Zemanta]

Hello Hyper-V : Meet Reality

First off stop reading this and go read Eric Gray’s post on the new Microsoft Virtualization Team post. He does a great job of pointing out the hypocrisy of marketing speak from the MS Virtual Team.

I am writing this blog post to address some specific annoyances in reasoning. While I have made a career in being a Microsoft guy (along with VMware, Cisco, EMC, and Nissan sportscars) I have some serious problems with the marketing pitch around Hyper-V.

So let me attack these head on. First off Chris Steffen states:

VMWare claims to support 4x more OSes that Hyper-V, but what does that really mean? When Microsoft lists an OS as supported, they COMPLETELY support the actual OS installation in the VM and you can call Microsoft support on that OS. Microsoft has support agreements with Red Hat and Novell specifically for this purpose.

So let’s be clear. What does Microsoft support in this case? Do they have support staff on hand that will work with the customer on Red Hat or Novell OS configuration? Would you trust Microsoft to touch your device information files on your Linux host? And to be quite honest, since Red Hat and Novell fully supports their enterprise products within the VMware environment. What is the real difference?

So let’s sum this up.

On vSphere if I have a problem I can:

  1. Call VMware for hypervisor specific issues (experts on this layer)
  2. Call Red Hat or Novell to get full support for OS specific issues (experts on this layer)

On Hyper-V if I have a problem I can:

  1. Call Microsoft for hypervisor specific issues (experts on this layer)
  2. Call Microsoft for OS issues (not-experts) and likely be transferred to step 3
  3. Call Red Hat or Novell to get full support for OS specific issues (experts on this layer)

So the real benefit Chris Steffen points out is an extra possible step. In the end my support coverage is the same at worst. Although I would be very curious about the actual level of knowledge between Linux support/Hyper-V and Linux support/vSphere. But, I can’t prove that point yet. And outside of these two specific operating systems flavors vSphere is light-years ahead. According to the current checklist, vSphere supports 48 flavors of OS compared to Hyper-V’s paltry 13.

Now to the next item:

Also, many of the OSes that VMWare claims to support are only supported by the Linux community – not taking a shot at the Linux community here, but most do not have a formal support organization. This leads me to question why they would be used in an enterprise environment. Also, those Linux distributions can be run under Hyper-V, using the Linux Integration Components Microsoft has available for download and the drivers which are in the 2.6.32 Linux kernel release. In this case, customers wouldn’t be able to call Microsoft for support for the OS, but would work with the Linux community, just as they would with VMware.

So this is pretty simple. The point here is: don’t use open source software. He states that VMware and Microsoft have the same community support so it is just a case of commercial vs. OSS and not a hypervisor argument. I would point out that community support is not only robust for vSphere but also VMware has guides, links, and walkthroughs on their own site (in a very easy to use setup) for how to implement multiple flavors. I wonder how easy it is with the Hyper-V side of things. Since OSS is not the argument here feel free to post OSS success stories in the comments.

 

Now for the fun part:

Reality: The Microsoft solution does not allow for over subscription of critical resources, but you shouldn’t do it anyway.

Oh no! I did not know this. Well I hope he is going to explain why at least.

The core of the VMWare argument is that you can somehow get “something for nothing” – that there is some kind of magic that comes with the over subscription of RAM using VMWare that is the silver bullet regarding memory management.

Wait a second, the argument is “something for nothing”? So efficiency is zero sum result? So I guess there goes thin provisioning, thin-client computing, or any other “thin” (read: effecient) technology. I better go shutdown my Windows Terminal Services farm too because I must be not really gaining anything.

So without the sarcasm, this is utter nonsense. He does not actually attack the technology or approach. He does not talk about direct risk or that fact that all efficiency models require management. Just like you have to manage the amount of users on a Terminal Services server you have to manage use on a vSphere cluster (notice I said cluster, not host. DRS much?). There is always inherent risk in higher utilization rates. That risk is managed by proper operational abilities. With vSphere these are clustering with DRS which allows automated movement of VM’s across hosts based on utilization and vCenter alarms which set low water marks against memory utilization. So with vSphere I have the option to take on operational responsibility for risk in exchange for higher efficiency (see $$$). The reason this is not zero-sum is obvious. I manage out the risk with a mature hypervisor (vSphere) gaining benefit I can never get with Hyper-V. With VDI and newer deployment models using virtualization, this can be a huge cost savings.

To leverage memory management in ESX to the fullest, one would have to fully burden the host beyond the physical memory. If you don’t, you really aren’t using memory overcommit.

Burden. Got to love that word. Puts an emotional spin on it. You can picture it right? The poor ESX host crawling across the data center will all the VM’s on it’s poor weary back.

Efficiency = lower total cost of ownership. The “burden” is your host doing more work for less money. I wonder if trucking companies talk about weight loads as “burdens” upon their poor MAC trucks.

 

Ok, one more:

Let’s go back to Basic Computer Architecture 101, and the example of the water pipe. There are limits to how much water you can push through a pipe at any given time, and the more taps that you add to the pipe, the longer it will take to fill up a bucket at each of the pipes. Hyper-V uses the best practice of moving a single VM as quickly as possible, using the entire bandwidth available to complete the transfer. Also, it is important to point out that without a modification of the host setting, VMWare would limit the migration to 4 VMs at a time (presumably for the same bandwidth considerations). The idea of moving 40 VMs all at the same time (as mentioned in the article) is not something that would be recommended, ever, regardless of platform.

Nice of him to explain throughput constraints for a kindergarten class. I would like to show a comparison of VMotion vs. Live Migration speeds (especially on my 10GE FCoE stuff) but instead I will keep it simple.

Why? Why can’t I do this with Hyper-V? Isn’t it because they don’t trust me? Or it is because they can’t make it work without sacrificing stability?
vSphere lets you not only do more but, also lets you do less. In other words, the mechanism is stable enough that throughput is the limitation (the water pipe) and not the stability of the mechanism (Hyper-V Live migration). Microsoft’s limitation on this points out a possible stability flaw and not a risky endeavor. What is also fascinating is the focus on making it “quicker“. Why does it have to be so quick? Are they afraid the VM’s won’t get there on Hyper-V if it takes to long?

 

There is a lot more to point out but, instead I will let someone else have the fun. I am not an anti-Hyper-V guy. I am an anti-F.U.D. guy. I would much rather Microsoft focus on providing a cheap product for small shop markets. In my mind that is what they designed with their product in both cost and feature-set. Even though VMware has some nice offerings also – see here & here

Also, I claim originality rights to the term: “DRS much?”. Feel free to tweet it like crazy :)

Comments and criticisms are welcome and appreciated.
.nick

 

Reblog this post [with Zemanta]

Retrospective Thanks (VMware, Dell, Cisco, EMC)

In my career I was a late starter and fast riser. It wasn’t too long ago I was plugging in monitors and crawling under desks (a job I still highly respect). I owe a lot of my success to my supportive Wife who while she was raising my children, let me spend hours reading complete histories of LAN switching or reference book on WAN protocols. Not to mention every RFC under the sun. I owe a lot to my aggressive nature of never losing a fight whether it was an annoying Outlook bug, or an 801.X config that wouldn’t work right. But I also owe a lot to the technologies that I invested my time and effort behind who ultimately made my career. I bet on certain companies and technologies and they came through for me time and again. And so in this short blog post, I want to say thanks. So here are my thanks to the top 4 companies that have made me valuable by staying valuable in the information technology arena.

1. VMware

My first experience with VMware was very early on from listening to a Dell solution architect talk about where they were going. This was back when vMotion was just a rumor and still seemed impossible. I went on to work for a company that did a big virtualization shoot-out. At the end of the shoot-out my recommendation was VMware. I was strongly impressed by their focus on stability and running at the enterprise level. Unfortunately, the company chose another virtualization product(I left shortly after). After I left they found out the hard way what an enterprise virtual product needs and within a year they switched to VMware after going through a very painful experience with the other product.
The next company needed me for specific skills but when problem arose with their *free* virtual development solution, I pitched an idea to convert everything to a VMware platform. I must have had to pitch it a hundred times and I even called one meeting with every development team in one big room to explain how VMware works. After selling it for months I finally got the funds and approval. It was a complete success and allowed me to move production infrastructure services like Exchange, LCS 2005, SQL servers, data warehousing, and file servers down the road. I was able to be the guy that got my company from 15% to 80% virtualized within three years. When we needed to be agile with environments or cheap(aka consolidated) with hardware purchases I had changed the culture to make this possible. But I owe my thanks to everyone at VMware for not only maintaining a stable product, but having incredible support, education services, aggressive improvement cycles, and strong community support. I would not be where I am now without the guys and gals at VMware doing what they do.

2. Dell

Whether it was their servers, switches, or workstations I have been involved in Dell shops since my first IT job. They have been consistent with their excellent documentation, strong support, and great product. My favorite part about Dell is their consistent commitment to integrating with major players like EMC and VMware. When it came down to solutions that needed to work with SAN and virtualization options I had, Dell had already put in the work to make sure they were the logical option. I have had a very difficult time not choosing Dell in datacenter projects that involved VMware. I recently made my first trip to a Dell Executive Briefing and left very impressed with their commitment to really providing value and not just selling a product. Dell for me is a company designed to be invested in the long-term benefits and not short-term margins.

3. Cisco

My first praise for Cisco is that their certification programs still really matter. In a world of paper certs the Cisco network programs are still are a great way to prove your worth and actually study for comprehension. I could go on about stable and feature rich routing and switching but the one place where Cisco really paid off for me was their ASA firewall line. I put my reputation on the line pushing to change my current employer’s firewall devices to Cisco solutions. The things I was able to do with multi-tier VPN, securing site-to-site tunnels, network segmentation, troubleshooting, and improving security blew all expectations out of the water. Shortly after I was able to implement unified wireless solutions that solidified Cisco as an integral part of our infrastructure. It is tough to be at the top and still provide consistent value over many different business lines. Cisco gets kudos for giving me tools to be productive.

4. EMC

While not the cheapest storage option at first glance EMC does bring one consistent thing to the table every time, you can bet your job on it. I have never met people from company where they passionately believe in their product like the EMC folks I have run into. And EMC is definitely in this list for the early adoption of VMware (in integration and corporate stock) which made it a de facto choice early on. Every time I have a design to build, I evaluate a product for what it can do for me.  And EMC consistently provides storage products that not only do what is needed but open up possibilities that you hadn’t thought of. Similar to Cisco this is a company that could very easily surf on market-share. But they are aggressive at staying on top and in turn has paid off for me.

So just to clarify, I am not paid by any of the above. I am just thanking these firms for making my investment in them pay me back. And I know that someone could argue that X firm could have done Y for me in the same place. But, in my particular case I have benefited greatly from four companies and just wanted to say thanks where no one else might have.

Who knows what tomorrow brings? Maybe VMware will start giving free licensing to Osama Bin Laden or EMC starts stealing candy from orphan babies in Calcutta. But at least right now these guys are on my list.

So thanks

Reblog this post [with Zemanta]