One thing I have to admit is that I definitely have a full glass of the virtualization kool-aid. I have had the opportunity to work on some pretty large scale virtualization projects, and from a geek perspective it's just some really cool stuff. Consequently, I have a few blog ideas around virtualization and the impact it will have (or I think it will have) on the network that I wanted to run with for blog/discussion. The first is really just a bit of a history lesson for those who may not be too familiar with virtualization (and an attempt to tie virtualization back to numerous network technologies and concepts). I’m also going to prove that really all this big talk about virtualization is stuff they stole from us network admins anyway, and like usual we got none of the credit. :)
Virtualization today is pretty much being driven by VMware, with Citrix, Microsoft and even Cisco introducing competing (or complimentary in the case of Cisco) solutions. Particularly from the Windows side of the house, virtualization was fairly revolutionary. The basic premise is that you typically have servers which spend most of their time underutilized. For example, your file and print server may be busy when folks are accessing resources, but when they aren’t its just sitting there consuming electricity and generating heat. Similarly you have application servers which may get hammered during daily processes, etc. but the rest of the time they sit pretty idle. This creates a lot of waste. Wasted space in the datacenter, wasted electricity (both to power and cool the system) and the need for more servers than you really require (and all the management and operational overhead that goes with that). And of course, you can’t forget maintenance on all that hardware.
Well, if the actual hardware is being used infrequently, why not essentially timeshare it? Run multiple virtual machines on the same physical hardware, with the hope being that you don’t oversubscribe the hardware resources like CPU, Memory, Disk, Network and other I/O. To steal a line from the Guinness guy, “brilliant!!”.
While virtualization is definitely stirring up all sorts of issues for server admins, when I first started looking at it and working with it, I found myself thinking “I’ve been doing this forever on the network”. Albeit slightly backwards, the concept of a virtualized resource has been implemented in network devices for years now. Virtual Router Redundancy Protocol (VRRP), Hot Standby Router Protocol (HSRP) and Gateway Load Balancing Protocol (GLBP) have been around for some time now and allow a “virtual gateway/router” to exist so that if a physical router fails, traffic will continue to be passed properly by the backup. In a lot of ways, that sounds to me like what VMware VMotion does - if the physical server (router) fails, VMotion (VRRP/HSRP/GLBP) will ensure that another server (router) is able to continue servicing requests.
Even more direct of a comparison though is the tried and true VLAN. You have a hub/switch, but you need to have multiple subnets running on it. In the old days, this meant buying more devices (in those days probably hubs) and winding up with an unmanageable sprawl of network devices. You can consolidate all of those network devices into a smaller subset, but still keep the isolation of network segments by simply creating a VLAN for each network segment. One switch (or at least a subset of the original switches) while still having the same number of subnets. This sounds strikingly similar to how you can consolidate all those physical servers down virtual machines running on a handful of physical servers.
So there you have it. Virtualization is nothing more than VLANs and HSRP/VRRP/GLBP, plucked right from us network admins and applied to servers. You've gotta watch those server folks...
Wes Noonan
Interesting
Interesting to see because at one time the infrastructure from user to disk access was thought to be a network. I still do but it is not very common any more, maybe too much specializing? Now, virtualization is a little more, it is an old thing from 60's when resource sharing was started, VMWare, etc are just new products. CPUs (systems) were shared in 60's, disk farm and physical network sharing came in 70's, stagnated a little over 80's and 90's and are very hot now. Think about network virtualization that happens inside a system, be it Unix pipes through stack or those crazy TCP/IP connections in a mainframe between virtual machines delivering tens of Giga Bytes per second in an as complicated network structures as the external networks. Yes, you have a point but it would need going back in time and, for many, learning a lot more how the whole systems work and why.
Pieces of the whole
When you talk about virtual pipes or networking, those are pieces of a system. Virtualization from a VMware perspective is encapsulation. It is not the same thing as simple CPU or memory resource sharing. The entire OS is (or can be) encapsulated into a flat file and can be moved around to other x86 hosts, copied to DVDs, whatever, and yet retain its complete OS features and that is very different from just network virtualization or any other virtualization that happens within the OS.
It's probably closer to regions in the mainframe world, but I'm not an expert there.
I would actually contend
I would actually contend that it's not an either/or situation. VMware (and most x86 virtualization technologies) is a combination of the encapsulation concept you refer to and then the resource sharing that I referred to. For example, your virtual machines are indeed completely portable and moveable between resources. However, if you have multiple virtual machines on physical hardware, they are absolutely going to share the physical resources (including potentially creating contention for resources, etc.).
Is it different from network virtualization - yes, absolutely in the details. But conceptually, and for my objective of drawing parallels to network concepts that network admins at large might be more familiar with than server virtualization concepts, I think that they are similar (as another poster put it (and what I was shooting for), "maybe at the 1 million foot level").
Thanks for the response!
Wes
http://www.netiq.com
VMWare is old school
I have been working with VMWare since it came out. It is a great product and has a lot of good features. However, I seem to be getting a bigger bang for my buck using SWSofts Virtuozzo. Its like a combination of Xen and VMWare all rolled into one. VMWare is Software Virtualization. Virtuozzo is Operating System Virtualization - you install the OS once and then make as many VE's as you want. It saves disk (a lot of disk) and you can also do Software provisioning - so you install Oracle once and deploy it 20 times - it only takes up one copy and then after deployed it only takes the disk needed for each of the 20 instances individual changes. Its like Multicasting verses Unicasting.
How virtualization was stolen from network admins
If one crawls back further in time one will find virtual machines predate networks. Virtual machines were first offered by IBM in the early 1960's in an operating system known as CP 67 which later evolved into VM 360.
I've been in training this
I've been in training this week, so I haven't had time to update the blog, much less respond to comments. I apologize.
I wanted to first thank everyone for the comments. When I started the blog I was a little worried that I'd be shouting into the ether so to speak, and it's nice to see that the blog has encouraged discussion, which is what I wanted.
I want to respond specifically to the "credit where credit is due" comments. Y'all are 100% spot on. Actually, in my second to final draft, I had a sentence that was "(and actually, if you ask the *nix/iSeries/Mainframe folks, they will tell you that they have been doing this next to forever with LPARs, etc)". I wound up pulling it from the final post for two reasons.
First, I was curious to see if anyone would notice and comment about that.
Second, since I am writing this blog on the Cisco Subnet portion of the website, and I was already taking some liberty by talking about virtualization, I wanted to keep the focus on bringing it back to the question of "If I'm a network admin, why do I really care about virtualization". I'll have some more blogs on some very specific virtualization and network issues later (hopefully this weekend at the latest) but part of how I decided to do that was to present the introduction a little tongue in cheek with some good natured ribbing of server admins, and to go ahead and leave out the broader (however totally accurate) history that goes back into the mainframes, etc.
Hopefully that clarifies where I was coming from, and hopefully you'll all stick around for what I think will be an educational and lively discussion of what virtualization is going to mean (or at least what I think it will mean) to the daily life of the network admin.
Thanks!!
Wes
http://www.netiq.com
Virtual servers were first done in the mainframes
Virtual server technology was first devoped and implemented in the mainframe world decades ago. Well before TCP/IP and Microsoft. Such short memories! The rest of the world is just now catching up. It is a good thing to share technology ideas, but please give credit where credit is due.
Credit where credit is due
I have not run across anyone in IT who does not know that mainframes were doing this long before it was done in the x86 world. It's a basic history lesson in IT.
But the point I like to make is that with the mainframe world, you had very expensive and specialized equipment with support generally coming outside the organization. In short, virtualization was limited to those who had big iron in their shop. With VMware (and those that followed), you can take very inexpensive comoditity off the shelf x86 hardware-and it doesn't even have to be new systems-and create VMs and a virtual infrastructure farm. Even at the desktop and laptop level you are only limited by your hardware as to how many VMs you can create.
And that is why it is such a big deal, not that it is new but that it can be done on any hardware by any administrator. And the fact that it is running on known x86 hardware, we don't need to buy an IBM employee to fix it when it breaks.
So let's turn this around, the mainframe folks should give the x86 crowd credit for taking a platform that was not designed for virtualization and making it work.
I agree completely.
I agree completely. Excellent point. Thanks!!
Wes
http://www.netiq.com
Getting silly...
Really, now that virtualization has become mainstream and is a hot topic, a lot of folks are coming out with 'we've been doing that for years' types of statements-especially if the word virtual is in the name of whatever technology. Steve Ballmer said that MS has been doing it since Windows 3.1 in the form of .vxd files. Another article I read somewhere said virtualization has been around for a long time by pointing to print queues-yes, since you print to a 'virtual' print queue rather than the physical printer, you are doing virtualization. Now Mr. Noonan is comparing the encapsulation of an entire operating environment with all its complications to VLANs-after all, it has the word virtual in it. As if the creation of switch technologies were anything close to the comparatively simple idea of switch logic.
What this shows is that those who make these comparisons have little understanding as to what all that is going on when you take a piece of hardware and load either an OS and then a virtualization layer (or hypervisor) on top, or make the the hypervisor talk directly to the hardware (a la VMware ESX) or a combination like Xen. To say it is a major undertaking as well as technological feat to take a platform such as the x86 systems, which unlike the mainframes were never meant to be used for multiple OSes (and yes, there is the virtual 8086 mode but that isn't the same thing) and actually make it work-and work great is difficult is an understatement. And the really brilliant thing is the guest OS has no idea at all that it is running in a virtual environment or sharing its CPU with 10 or 40 or more other OSes-even different OSes (unless it queries the "hardware" of course).
Think about what VMotion does: it actually copies every instruction going on in a CPU and every bit in memory that an OS is performing and sends it to another CPU and memory set on a different host and then powers off one while powering on another-all without so much as a hitch in operations (the arp broadcast takes away one or two ping replies at most). And that is compared to some sort of VLAN or network HA?
I don't think so...maybe at the 1 million foot level.