www.nickhodge.com

microsoft, munging and on being a mercurial iconoclastic professional geek.

Our Virtual Future: There are Cycles to Burn

with 3 comments

Just over the digital hori­zon, your Apple Mac­Book will boot mul­tiple MacOS X 10.x, Win­dows Vista and Linux/Ubuntu oper­at­ing sys­tems at launch. You don’t see all of their friendly faces, but they are there ready-to-go. Get-info on Fire­fox, and you inform the primary OS which of these oper­at­ing sys­tem envir­on­ments you would like the applic­a­tion to launch into. Need to run Out­look 2007 for your large organ­isa­tion? No stress: its there, behind the scenes as you run­ning Pho­toshop on the MacOS side. If your Win­dows instance crashes as you are test­ing a new applic­a­tion; it is shut­down and relaunched sim­ul­tan­eously. Far fetched? With Vir­tu­al­iz­a­tion and mul­tiple Core CPUs, no. On the desktop, usable vir­tu­al­iz­a­tion is rel­at­ively new; what can we do with mod­ern pro­cessors and soft­ware. There are cycles to burn.

Vir­tu­al­iz­a­tion is noth­ing new in the IT world. Main­frames, the Cro­codilian sur­viv­ors of last cen­tury have long used Vir­tu­al­iz­a­tion as a method of per­form­ance man­age­ment and isol­a­tion. If you are login as user on a main­frame in, your ses­sion is a vir­tu­al­ized instance of the whole oper­at­ing sys­tem. This isol­ates you from other users, pro­tects the whole sys­tem from strange things you may do: like run­away quer­ies. SELECT * FROM INVOICES;

Micro-processors since the Intel 4004 have sur­vived with a single Cent­ral Pro­cessing Unit (CPU) that stepped through the com­mands in strict mil­it­ary time as soun­ded by the clock. We star­ted with Hertz, then x1000 to Mega­hertz and now x1000 again to Giga­hertz. A big leap has been the mul­tiple “cores”, or sep­ar­ate CPUs added to the Intel pro­cessor line, with the VT-x,With multi-core pro­cessors being the cur­rent “thing”, and with Intel talk­ing about their pro­cessors hav­ing upto 32 cores in 2010 — per­form­ance is going hori­zontal (more CPU cores) and ver­tical (Ghz Clock speeds). The drum­mer in that mil­it­ary band must be get­ting sore arms beat­ing that fast!

PowerPC and other RISC-like pro­cessors star­ted to split their pro­cessing com­mands to internal co-processors. This is like del­eg­at­ing the “dif­fi­cult” jobs to the spe­cial­ized under­lings. For instance, Maths to Float­ing Point Units (FPUs). To gain per­form­ance dur­ing the lat­ter days of the PowerPC, Apple star­ted adding mul­tiple pro­cessors to split the work­load. Smart soft­ware could take advant­age of these to speed up heavy pro­cessing tasks.

Mul­tiple Cores in the same pro­cessor is bring­ing this same philo­sophy to every­one — includ­ing low-end Mac­Book laptops. Few applic­a­tions scale well into multi-cores: one that does is Virtualization.

How does this related to Vir­tu­al­iz­a­tion? Now we have mul­tiple cores, one poten­tial use is to run sep­ar­ate oper­at­ing sys­tems on these mul­tiple core CPUs; and each oper­at­ing sys­tem run­ning at full speed. Vet­er­ans in the Mac world would remem­ber the first ver­sions of non-Microsoft Vir­tu­alPC. This soft­ware emu­lated (and dynam­ic­ally recom­piled!) the Intel pro­cessor com­mands on PowerPC like a human lan­guage trans­lator. Trans­lat­ing takes time, and there­fore the oper­at­ing sys­tem just didn’t feel snappy. Now on we have Intel mul­tiple cores, the OS world is a user’s oyster as the trans­la­tion is no longer required.

As Vir­tu­al­iz­a­tion is in the hard­ware, the soft­ware that has been unique can be com­mod­it­ised. This has drawn WMWare and Microsoft into a war for the “Vir­tual Server Plat­form”, and the first battle on the desktop to grab the hearts-and-minds. The dol­lar returns for these organ­iz­a­tions lies with the “own­er­ship” of the server platform.

Microsoft has released Vir­tu­alPC 2004 as now a free product, with Vir­tu­alPC 2007 also fol­low­ing for free. This is a parry to the VMWare thrust of WMWare Player. Vir­tu­alPC comes from a product star­ted by Con­nectix. Announce­ment made at a recent Mac­World that Vir­tual PC Mac would sup­port Intel based Macs in the future. The Channel9 Team at Microsoft have an inter­view with the engin­eers of Vir­tu­alPC. This provides an excel­lent back­grounder on the his­tory, and tech­no­logy of virtualization.

EMC, and spe­cific­ally their VMWare divi­sion, has free ver­sions of VMWare Server and VMWare Player avail­able for free. Con­veni­ently, VMWare have links to pre-created VMWare images, or “appli­ances” as they name them.

Server Appli­ances: one of the VMWare images avail­able is a Fire­fox Browser appli­ance.. A self-contained oper­at­ing sys­tem with user inter­face (Ubuntu) and Fire­fox — pre-installed, ready to go. We are all wait­ing for VMWare for the Intel-based Macs.

The recent scrabble over the Xen envir­on­ment for vir­tu­al­iz­a­tion between Microsoft and VMWare, and recent com­ments by Nov­ell are an indic­ator of the import­ance of server vir­tu­al­iz­a­tion. Many large server hard­ware com­pan­ies must con­cerned about the impact on their busi­ness as server hard­ware is consolidated.

Server, large sys­tems, IT shops with many phys­ical serv­ers and the need to sup­port leg­acy server applic­a­tions bene­fit from Vir­tu­al­iz­a­tion today. How about desktop environments?

One of the first applic­a­tions I installed on my Mac­Book Pro was Par­al­lels Desktop for the Mac. There are a few Windows-only applic­a­tions I need to use; and within 30 minutes I was sold (and yes, I pur­chased a copy). I use Win­dows XP daily, Par­al­lels has been use­ful in see­ing what this com­mo­tion about Ubuntu has been about, and doing a test install of Debian prior to pro­duc­tion install as our home server.

10 Ways Vir­tu­al­iz­a­tion Will Change Our Digital Lives:

  1. Crit­ical Applic­a­tion isol­a­tion In our daily computer-lives, there are applic­a­tions that are more miss­ing crit­ical. Ima­gine you have a soft-phone run­ning via VoIP. You really want that applic­a­tion run­ning, rain hail or crash. With Vir­tu­al­iz­a­tion, you could put that applic­a­tion in an envir­on­ment that is isol­ated from your World-of-Warcraft envir­on­ment. In fact, you have a “play”, “work” envir­on­ment to sep­ar­ate your digital life.
  2. Hol­istic Backups Backup your VM, and there­fore your whole envir­on­ment. I remem­ber the first time I lost a hard drive (an amaz­ing 100Mb external SCSI drive on a Mac II) and lost all the data. Bour­bon and Coke soothed the loss; now I have a laptop with 100Gb. Learn­ing from the ori­ginal loss of data, there are a myriad of backups lying around: burnt CDs, DVDs, Debian server with 450Gb, some data inside GMail. How­ever, the invest­ment in the setup of my machine is worth 4–5 work­ing days to become “online” if I lost the hard drive. With an image of the think invest­ment in the setup, let alone the data.
  3. Pre-setup Server Plat­forms:A pro­ject like Ruby on Rails. To install this beastie, you have to install Ruby, Apache, MySQL (or Post­gres), the Ruby Gem remote installation/dependency sys­tem, Rails plus a few Ruby hooks to con­nect all this together. For the faint of heart, or non-OS tweaker — its a major and poten­tially impossible chore. Deploy­ing this in a development/test/production cycle increases the com­plex­ity by an order of mag­nitude. Serv­ers, and server soft­ware is just too darn com­plex for the aver­age developer.

    Instead, if there was a light­weight OS with these pre-configured, installed, secur­ity checked — a developer could simply down­load the VirtualPC/VMWare image and start.

    It would be cool if organ­iz­a­tions that sold/developed server tools provided a “pre-installed” image rather than an a myriad of inter-linked installers and required dependencies.

  4. Light­weight Server oper­at­ing sys­tems, or based “frame­work” on which “vir­tu­al­ized” sys­tems can be cre­ated and eas­ily deployed. Guess what? there are these envir­on­ments for Linux and poten­tially for Win­dows.

    Rather than build­ing a large, com­plex OS with mul­tiple soft­ware sub-installs, com­mer­cial server applic­a­tions should move to a VMWare/VirtualPC image for double-click launch-and-go.

  5. Deep debug­ging: ima­gine an instru­mented, or as Microsoft call it an enlightened OS. Run the VM, Record all the com­mands until crash. Rewind, Replay.
  6. Vir­tu­al­iz­able OS for Test/Development; or Quick OS Undo: launch a VM and test an applic­a­tion and keep it sep­ar­ate from your work­ing oper­at­ing sys­tem. If some­thing “breaks”, throw away the VM image and restart. Keep­ing clean images of vari­ous oper­at­ing sys­tems in “cold stor­age” per­mits quick reset­ting back to a baseline.

    In a recent pod­cast Ruby on Rails inter­view with : “Its about breadth, not depth”; as pro­cessors are start­ing to go mul­tiple core, applic­a­tions need to scale hori­zont­ally, not expect more pro­cessor speed to magic­ally work. This has an impact on Dynamic/Scripted lan­guages being deployed as web applic­a­tions. Also SOA is about these applic­a­tions con­nect­ing to each other between dif­fer­ent servers.

  7. Hos­ted Serv­ers from Vir­tu­al­ized Images: grab a “copy” of a vir­tual server from your new hos­itng pro­vider; loc­ally test/install & and then remotely deploy and start. After writ­ing this, I notived that TextDrive is offer­ing Sol­aris Con­tainer style serving.
  8. Clone + Clone back: Take an image of your cur­rent VM OS con­fig­ur­a­tion. Make some change (install an applic­a­tion or OS upgrade), and bin­ary re-merge the now mod­i­fied clone back onto the ori­ginal. This is prob­ably more dif­fi­cult to do than think through, but a well archi­tec­ted OS could per­mit smal­ler diff style changes.
  9. Why re-invent the wheel? Large applic­a­tions have large prob­lems; sav­ing files. found­a­tion: with IO/MM and low-level access to the hard­ware, could a large applic­a­tion run in its own oper­at­ing sys­tem? Sep­ar­at­ing the IO/MM out of the large frame­work into a well-tested OS res­ults in re-factored frame­works. Higher level applic­a­tions really don’t know they are in a vir­tual environment.
  10. Net­work Vir­tual desktops. A twist on the Cit­rix envir­on­ment, but the CPU in use is on the desktop, file image on the server. VMware is a part of a gorup work­ing on desktop VDI. What we need is a small, eas­ily Vir­tu­al­iz­able (and pre-installed image) MacOS X and Win­dows XP/Vista.

Vir­tu­al­iz­a­tion, as the pro­cessors go madly hori­zontal with mul­tiple CPU cores, is going to be a large part of our future: not only on the server, but also on the desktop.

Down­load Par­al­lels (if you on an Intel Mac) or VMWare Player / Microsoft Vir­tu­alPC and give it a whirl and exper­i­ence the begin­ning of our vir­tual future. Burn those Cycles!

Bed­time Reading

Written by Nick Hodge

August 1st, 2006 at 2:49 pm