Several times I've been asked something along the lines of “why should I install virtual machine additions on a virtual machine? The virtual machine works fine without them, doesn't it?". I thought it is worth it to quickly mention the benefits of virtual machine additions in this post.
The Virtual Machine Additions included with Virtual Server perform several tasks. They allow better communication between Virtual Server and the guest OS, on things such as time synchronization or the ability to shut down the machine on command. But the most important task performed by the Additions is that they patch the operating system so it can work with what is called Ring Compression.
Operating systems normally run on Ring 0 on x86 CPUs. Ring Compression allows the virtual machine OS to run on Ring 1 on the hardware, allowing the host operating system and the virtual machine monitor to run on Ring 0. By using ring compression, the VMM is able to trap instrucions from the virtual machine that otherwise it is unable to catch – such as memory requests. The alternative, at least in Virtual PC (I’m not 100% possitive Virtual Server follows the same approach) is to run the operating system instructions not on the hardware, but on a binary translator. This is the one of the reasons why after installing the additions you see such an increase in the virtual machine’s performance.
Of course, ring compression is not necessary if you have a CPU with AMD-V or Intel VT technology. In those CPUs, the virtual machine monitor runs on a Ring -1, so guest operating system will run on Ring 0 without any complications.
You can read more about this topic here or here.
Windows Virtualization is the next generation of virtualization solutions offered by Microsoft. Here is a quick list on how it compares to Virtual Server 2005 R2 SP1:
- Supported Hardware: Virtual Server 2005 R2 SP1 runs on both x86 and x64 architectures. Windows Virtualization will be x64 ONLY.
- Virtual Machine Support: Virtual Server supports 32–bit virtual machines. Windows Virtualization supports both 32 and 64–bit Virtual Machines
- Virtual Machine Memory Support: Virtual server can allocate up to 3.6GB per VM. Windows Virtualization will be able to assign up to 32GB per VM
- Hot add: Virtual Server does not support adding hardware to a virtual machine while it is running. Windows Virtualization supports hot add of memory, processors, storage, and networking devices.
A couple of weeks ago, during the Virtualization for Developers event in Redmond, we had a short presentation on Viridian by Arno Mihm, Program Manager for Windows Virtualization. He explained the features that will be available on that platform, the differences with the current Virtual Server architecture, and also talked a little bit about the hypervisor.
Windows Virtualization is coming up with some pretty impressive features. The Windows Hypervisor is a tiny piece of code (right now it is around 160KB… it has grown, though, since it was 140KB when we first heard about it on the Longhorn Developer Review back in April), that manages the different partitions running on the physical computer. Microsoft has taken an intelligent approach at this level. The hypervisor only manages context switches between the VMs and protects access to the different VM’s resources. All device drivers and any other logic are managed by the parent OS. This way the hypervisor code can remain really small and extremely fast, and provide the type of reliability that is necessary for this type of environment.
Another nice feature of Windows Virtualization is the device driver architecture. “Enlightened” operating systems will route all device requests through Virtualization Service Clients, that through a very efficient communication mechanism (called VMBus) will communicate directly with Virtualization Service Providers on the parent partition of the server, and then call the hardware directly. This is more efficient than current implementations, in which calls to virtual devices are trapped and handled through the virtual machine worker processes, requiring several context switches in the process.
The best part of the presentation, however, was to finally get to see Windows Virtualization in action. He did a short demo on his laptop, that had a preliminary build of Longhorn server with the Hypervisor enabled. One of the virtual machines was also running Longhorn server, and he showed us how you can dynamically add memory to a virtual machine, WHILE THE VM IS RUNNING, and the client operating system (Longhorn server in this case) will pick it up immediately. This is very useful for those times when you need to give an extra boost to a virtual machine so it can complete a certain task. And my understanding is that all new server products from Microsoft (starting with Exchange 2007) will be able to dynamically pick up these changes as well.
Over at the Virtually vista blog there’s a post talking about how to run the RTM of Vista in a virtual machine. Regarding the supported products and additions, the post states:
If you're using Virtual PC, you should be using the VPC 2007 Beta - the additions that ship with that product work just fine in Vista.
If you're using Virtual Server, you should use the VS 2005 R2 SP1 Beta - those additions work with Vista as well.
The only downside we've found with running Vista on a VM is that the precompactor doesn't work - and Vista uses a lot of disk space during the installation, so we haven't been able to compact a dynamic VHD with Vista.You can get both VPC 2007 and Virtual Server 2005 R2 SP1 Beta form http://connect.microsoft.com.
Last week we succesfully delivered the first in the series of virtualization events aimed at developers creating software to work with Virtual Server 2005. Even though we didn’t get as much of a turnout as we were expecting, the event was a complete success. Also, the feedback we got for both the content and the presentation was excellent!
I encourage you to register for one of these events. The next one is in Zaragoza on Jan 23–25. The next US event will be again in Redmond, on Feb 6–8. Don’t miss them!
Not everything that revolves around Virtualization is good - point in case: the software known as Microsoft.Windows.Vista.Local.Activation.Server-MelindaGates
This VMW virtual image fools Microsoft's latest operating system (Vista) into believing that it is contacting a Key Management Service server (KMS). When Vista tries to access the KMS, it connects to the Virtual Machine and within seconds the operating system is activated and fully functional even though it is a pirated copy.
As of now, Microsoft has yet to release an update that will fix this hack and assist Vista into knowing that it is not contacting a real KMS. It really makes you wonder how soon the hackers will release and update to their VMWare image after Microsoft releases their update.
The complete article
is on on the vmblog's web site.
Many people at Artinsoft use VMWare for their Virtualization needs. This quickly became a hassle as the VMs that they were using that I needed could not be used in Virtual Server. I just found out through this article that there is a new tool called the VMDK to VHD file converter.
I have not yet tested the tool, but soon I will be converting all the RedHat VMDK to VHDs and running them on our Virtual Server R2 SP1 (which fully supports Linux!).
You can find the official link here
, download it and let me know if you run into any issues!
I have talked quite a bit in terms of the different VHDs there are, let's now focus on the different controller types that are available.
When you create a VHD, you need to attach it to an emulated controller in order for the VM to use it. You have two options: SCSI or IDE, but which one should you choose and why?
The rule of thumb seems to be: if you can use SCSI, use SCSI, but why? SCSI emulated controllers allow concurrent connections on the BUS, so this will make operations with multiple VHDs faster. Furthermore, your VHDs can be bigger with SCSI controllers (2 Terabytes SCSI vs. 127 GB IDE!). If that was not enough, SCSI controllers have more devices that can be attached to them. IDE supports only 4 connections, SCSI supports up to 28!
Furthermore, emulated devices such as DVD drives can only be attached to IDE buses, so you better save those buses for these types of connections.
So when should you use IDE controllers? Use them when working with removable media or when you are dealing with a VHD that has an OS that will not allow itself to install itself on a SCSI connection.
Microsoft released Internet Explorer 7 a few months ago, with some great features such as an RSS reader and tabs (my favorite). You, however, cannot run both Internet Explorer 6 AND Internet Explorer 7 on the same Windows installation. So if you are a web developer, and have to test your web pages in different versions of the browser, what can you do? Well, for one, you can thank Microsoft for releasing Virtual PC 2004 as a free download.
One of the known advantages of virtualization is the fact that you can run different configurations on the same machine. Microsoft is right now using this to help developers, by releasing AS A FREE DOWNLOAD a Virtual Machine image that contains a pre-activated Windows XP SP2 installation, Internet Explorer 6 and the IE7 Readiness Toolkit. With this VPC Image, you can run IE7 as the standard browser in your PC, and have and Virtual PC 2004 image with IE6 for testing purposes.
You can get more information about the VPC image in this post at the IEBlog. One of the downsides of the image, though, is that it has a "timebomb" and expires in April, 2007. But, between now and then, looks like the best alternative for running both browsers on your PC.
You can get the image from the Internet Explorer 6 Testing VPC Image download page
I found two websites that give tips on how to get the best performance out of Virtual Server 2005. Check them out:
One of the best tips came from the second article, when discussing SCSI and IDE virtual hard disks:
Still, the rule for performance is pretty simple. Use SCSI-attached VHDs whenever you can and use IDE-attached VHDs whenever you must.
Both pages give excellent tips, and discuss things like the amount of memory you should have, how to optimize VHD placement, number of CPUs, and others. I recommend you look at them if you are considering installing Virtual Server.
The first Virtualization for Developers event will be held in Redmond between December 12–14. The registration is still open at the Virtualization Developer Lab Series webpage. We’ve been working hard on the content for this labs, and we are really looking forward to this event.
In these events you will learn how to work with the Virtual Server 2005 COM API in great detail. Once you complete them, you’ll be able to script common management tasks, and incorporate API calls to your own management applications. You’ll also get an overview of Virtual Server capabilities, and you’ll see how the System Center Virtual Machine Manager can make your life easier. You can review the complete agenda on this webpage: Virtualization 3 day Lab Agenda Overview.
It’s been almost 5 months since I brought a black MacBook to work. At first I thought it was not such a good idea due to the incompatibilities I could face. So far the experience has not been a bad one, and I can run most of the software I need without having to strive against slow performance or incompatibilities. With the exception of screwing up some of Jose’s powerpoint slide animations, I don’t think there has been mayor damage done.
The following compromises a list of the software that any individual looking for to work in a Windows environment should have on their list:
Parallels: If you must run Windows on OS X, then you need Parallels. It’s performance is superb and it will allow you to run a Virtualialzied Windows with a little performance hit. This blog I am writing as of now is under BlogJet using a copy of WindowsXP. I also run Office 2007, Firefox, Messenger, Project, and Visual Source Safe (watch out Parallels, someone is lurking in the dark)
Crossover: it allows you to run Windows binaries without having to run Windows. It is based on the Wine project and so far I have been able to run Office 2007 and Internet Explorer 6 without having to run Windows. Still on early beta stages but nonetheless quite impressive.
TSClient: I mentioned this on an earlier post. It has become my default RDC client, extremely fast.
NeoOffice: a port of OpenOffice but does not require x11 on your system. It runs faster than Microsoft Office for Mac on my MacBook. Until there is a universal binary for Office, I am using this one for Office productivity.
And finally, if all else fails (as is the case of running VTune on a VM), I can always boot into Windows natively using BootCamp. Fortunately, thanks to the great programs above, this is something that is happening less often every time.
A crucial part when carrying out training labs is setup. Without a well thought plan that takes into consideration everything that can go wrong (because it will), your labs are toast. We've done about ~70 trainings so far and in every one of them something pops up. With more and more trainings, you start to develop a sixth sense of complete and utter pessimism that will help you identify problems before they even show up.
That being said, we are in the middle of testing all of the setup for a series of Virtualization training labs in December 2007. We needed a way to quickly and painlessly add a bunch of users to a Windows 2003 Server. The following is the series of commands to create a user callled student1 on the server with Administrative priviledges that belongs to domain admins and an account that never expires:
net user student1 p@ssw0rd /ADD /DOMAIN
net group "domain admins" student1 /ADD /DOMAIN
net localgroup Administrators student1 /ADD
net accounts /maxpwage:unlimited /DOMAIN
There are plenty more of options so check out the net command to find a command that best suits your need.
Are you new to Virtualization? Do you want to learn the best ways to manipulate Virtual Server using the Virtual Server API? Do you want to learn about future Microsoft Virtualization technologies such as Carmine and VT support in Longorn? Well, today is your lucky day.
In its continuing effort to provide customers with the latest technology, Microsoft has launched the Virtualization Events lab series. During 3 days, you will learn everything you need to know in order to code your way through Virtual Server. Please bear in mind that the lab is not targetted for the IT Pro, but instead for programmers who want to learn the latest tips and tricks without having to read through thousands of pages of documentation.
Virtualization is a very hot topic, and I would not be surprised if the events filled up very quickly, so act fast if you want a seat reserved!
On November 6th, Microsoft had a big announcement to make. This announcement is only the beginning of something that will, without a doubt, become a huge success: the VHD Test Drive program.
The program’s idea is that a user can download a pre-configured VHD that has and operating system already installed. The idea is evolved a bit more in the sense that the VHD not only has an OS, but also has some kind of pre-configured environment in order to test out a particular product without the hassle to go through difficult setups.
For instance, if you want to test drive Exchange Server 2007 quickly and effortlessly, just download this VHD and you are good to go. Want to install something on Windows Server R2 without having to install the OS? This VHD right here will help you accomplish your task.
There are 4 VHDs available for download, the entire list is summarised below:
For the official press release, click here.
The self-service portal is one of the best features of System Center Virtual Machine Manager (SCVMM – I have to say I can’t get used to the new name – Carmine still sounds more familiar), as it allows administrators to define policies for creating Virtual Machines, and then users themselves can create new VMs that comply with the limits set by IT (i.e.: Guest OS, amount of RAM, hard drive, etc). This greatly improves the efficiency of IT departments, and allows end-users to take control of the server and workstation provisioning process into their own hands.
During the development of our labs, we run into several issues with the Self-Service portal of SCVMM . After going through all the process to create templates and hardware and guest profiles, we kept running into issues with the template being disabled in the self-service portal. Well, it turns out that the issues had nothing to do with SCVMM itself, but with the configuration on the target Virtual Server. Here are some points in the Virtual Server configuration you should check if you ever run into similar problems (the error messages are not that descriptive):
- The host have enough RAM and disk space for the new VM
- The host must have a default path for Virtual Machines. You can check this one on the web management console of Virtual Server, under Server Properties->Search paths->Default virtual machine configuration folder.
- The host must have sufficient network adapters to support the amount specified in the template.
Our test Virtual Server installation, the default path was missing. Be sure to check these points out if you ever run into a similar situation!
Registration for the Virtualization labs we will be teaching next year is now open. The program will run from December, 2005 to May, 2006, and we will be presenting the content in Redmond, Spain, and several countries in Asia.
The labs are 3 days long, and in them we show you how to leverage the features of Virtual Server 2005 R2 SP1 from a developer perspective. You’ll learn how to script common management tasks, how to use Virtual Server 2005’s API to manipulate virtual machines and develop your own management applications, and how you can setup the System Center Virtual Machine Manager (a.k.a. Carmine) to manage Virtual Server installations.
You can see the complete schedule and sign up for the events at http://www.virtualizationevents.com/ .
A couple of weeks ago I made a post about pre-configured virtual machine images. Well, it turns out that the program is now official, and it is called VHD Test Drive. You can read about it in this press release. With this program, you can download virtual machine VHDs that contain pre-configured Microsoft’s server products, so you can try them out easily. Third party support for the program is expected later. From the press release:
These virtual machines, which are provided in Microsoft’s virtual hard disk image format, are pre-built and pre-configured so that they can be downloaded or distributed for easy setup and evaluation. This allows customers to evaluate software in a fraction of the time it usually takes, such as setting up SQL Server 2005 in minutes instead of hours.
The VHD Test Drive Program is a first for Microsoft software and the more than 7,000 software vendors who can now deliver pre-configured applications within Windows Server-based virtual machines to their customers. Today the program launches with the latest versions of Windows Server 2003 R2 Enterprise Edition, SQL Server 2005 Enterprise Edition SP1, Microsoft Exchange Server 2007 (32-bit beta) with Microsoft Office Live Communications Server 2005, and Internet Security & Acceleration (ISA) 2006 Standard Edition. Partners and customers can expect to see additional Microsoft software added to this program.
You can check out the press release here, and read more about the program on the VHD Test Drive page.
The race between Microsoft and VMWare for the virtualization space can only offer benefits to the end user. The close competition will push the limits of both Microsoft and VMWare in offering the best of each other. Point in case is the (beta) release VMWare's Converter.
The VMWare converter makes the process of moving a physical machine to a virtual a painless process. So far in our tests, we've managed to hack our way with some unconventional methods
, but these take a lot of time. The VMWare tools offers a new level of Physical to Virtual (P2V) conversion by having a manager that can queue operations for this process. It is fully scriptable as well, which can only simply and make the whole process more efficient for system administrators.
Microsoft is not falling behind in this area. The Virtual Machine Manager has plans for not only fully automating P2V conversions but guiding you on the best Virtual Server where the new physical machine can be. Unfortunately, this is not currently supported at the beta stage that the product is right now, but from demos I have seen I am sure it will be a sure contender to VMWare's offerings.
For more info on VMWare's Converter visit this page
and for Microsoft's Virtual Machine Manager info, check this site
If you are a MSDN subscriber, you have access to Virtual Machine images that are preconfigured with most Microsoft’s products:
MSDN Subscribers have access to a series of Virtual Images containing a fully functional installation of Windows Server 2003, SQL Server 2005, Visual Studio 2005 Team Suite, and Visual Studio 2005 Team Foundation Server. These Virtual Images are a benefit of your MSDN subscription and are available for download from the MSDN Subscriber download area.
I copied the paragraph above from Visual Studio’s Evaluation page. You do need to have an MSDN subscription to access these images. They are a great way to evaluate Microsoft’s products without commiting a physical machine to the evaluation, or having to spend time installing and configuring a server.
This is another great example of how virtualization is making our lives easier!