Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Has the time come for development on a virtual machine?

Has the time come for development on a virtual machine?

Scheduled Pinned Locked Moved The Lounge
javaasp-netlinuxhostingtesting
75 Posts 42 Posters 30 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Member 96

    Good stuff James, yes you should write an article on it if you have time, there is clearly a lot of interest in it here judging by the responses. I'm curious about one thing: you said you need to reactivate XP when you run your vm on a different machine, I thought that was not necessary unless the settings for the VM's ram or disk are changed. Does it want to be reactivated solely because the host os and machine is different or is it a result of you having to change settings on the vm on your notebook?


    "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

    J Offline
    J Offline
    James H
    wrote on last edited by
    #62

    XP has a "points system" to decide if the hardware has changed enough to need reactivation. Some of the big "point" scorers are: 1. CPU type 2. Network card (determined by MAC address) 3. RAM size (with the different bands of size considered as a changed being a bit old fashioned as they top out at 1GB) By default VMWare uses an auto-assigned MAC address to the network cards - I found that the change of CPU between my main PC and the notebook plus the change of MAC address meant that it wanted to reactivate each time I moved the VM between the two. Some of the tricks I learnt were: 1. Give all VM's 1028MB RAM (RAM size is in 4MB increments so I went one above what xp treats as top whack so I can upgrade a vm's RAM to 2GB if needed without XP noticing the change) - a great thing about VM's is if you have a RAM heavy app you want to use for just a bit just add the RAM and later take it out again by editing the text .vmx 2. Use manually assigned MAC addresses in the VMWare .vmx file 3. Define XP VM as a "Portable Computer" in the Hardware Profiles - as XP is applies a more generous points system to notebooks to allow for docking stations etc. This seems to have been enough in my case for XP to stop it's nasty habits. Like this the VM does not need to be changed at all between machines.

    M 1 Reply Last reply
    0
    • M Member 96

      MattPenner wrote:

      The keys, Stephen was saying, were to use the Centrino2 (or AMD equivalent) with the new virtual extensions, as much ram as you can get, and put your VPC's on a separate drive from your main O/S. He really likes external USB drives for the portability.

      Good info thanks.


      "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

      J Offline
      J Offline
      James H
      wrote on last edited by
      #63

      "He really likes external USB drives for the portability" So did I - but found USB a bit slow - so my portable disk docks in main machine as SATA. When undocked on notebook it can connect by USB or eSATA so I added a eSATA Express Card to the notebook for faster access when mobile - on trains etc that is a bit cumbersome (needs a thicker eSATA cable, eSATA card sticks out a bit and disk power has to come from USB anyway) so I just use USB.

      1 Reply Last reply
      0
      • M Member 96

        I don't do any of that kind of development but I checked and apparently VMWare has beta support for some limited subset of DirectX, however to fill in the gap there's this: http://www.cs.toronto.edu/~andreslc/xen-gl/[^] OpenGL apps running inside a Virtual Machine (VM) can use VMGL to take advantage of graphics hardware acceleration. VMGL can be used on VMware guests, Xen HVM domains (depending on hardware virtualization extensions) and Xen paravirtual domains, using XVnc or the virtual framebuffer. Although we haven't tested it, VMGL should work for qemu, KVM, and VIrtualBox. VMGL is available for X11-based guest OS's: Linux, FreeBSD and OpenSolaris. VMGL is GPU-independent: we support ATI, Nvidia and Intel GPUs


        "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

        P Offline
        P Offline
        patbob
        wrote on last edited by
        #64

        Thanks for the pointer, I'll check into it next week. We don't use much graphics where I work, just 3D, textures and pixel shaders, but it would be convenient to get it running on a VM.

        patbob

        1 Reply Last reply
        0
        • J James H

          XP has a "points system" to decide if the hardware has changed enough to need reactivation. Some of the big "point" scorers are: 1. CPU type 2. Network card (determined by MAC address) 3. RAM size (with the different bands of size considered as a changed being a bit old fashioned as they top out at 1GB) By default VMWare uses an auto-assigned MAC address to the network cards - I found that the change of CPU between my main PC and the notebook plus the change of MAC address meant that it wanted to reactivate each time I moved the VM between the two. Some of the tricks I learnt were: 1. Give all VM's 1028MB RAM (RAM size is in 4MB increments so I went one above what xp treats as top whack so I can upgrade a vm's RAM to 2GB if needed without XP noticing the change) - a great thing about VM's is if you have a RAM heavy app you want to use for just a bit just add the RAM and later take it out again by editing the text .vmx 2. Use manually assigned MAC addresses in the VMWare .vmx file 3. Define XP VM as a "Portable Computer" in the Hardware Profiles - as XP is applies a more generous points system to notebooks to allow for docking stations etc. This seems to have been enough in my case for XP to stop it's nasty habits. Like this the VM does not need to be changed at all between machines.

          M Offline
          M Offline
          Member 96
          wrote on last edited by
          #65

          Ahhh! Good to know, we almost have enough for an article here with all the replies in this thread! :)


          "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

          1 Reply Last reply
          0
          • M Member 96

            I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?


            "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

            M Offline
            M Offline
            Member 2325970
            wrote on last edited by
            #66

            Now that VMware has released ESXi if I had your setup I'd buy a motherboard that works with your processor (and buy another cpu if your not running dual yet) that supports more than 4 GB ram and put at least 16 GB in it. You can do that today for under $1000 if you buy a super high end server motherboard. Then load it up with the high speed sata disks you already have, install VMware's ESXi on it (bare-metal) and load your VMs off of that. Major benefits of ESXi over VMWare or Virtual PC is first you don't have the overhead of a full OS. Second, ESXi merges similar pages in memory so if you run 6 VMs all running XP you only pay the memory overhead for the XP OS once. Third, and probably most important, you get memory overcommit which allows you to assign each of your VMs more ram than you physically have in the system (to a point) since ESXi is smart enough to only allocate what is being used by the running VM. You'll also see much better usage of your quad-core and I believe ESXi supports cpu affinity as well for individual VMs. Your basically getting the same capabilities we use today in the data center at home (for free!).

            M J 2 Replies Last reply
            0
            • M Member 2325970

              Now that VMware has released ESXi if I had your setup I'd buy a motherboard that works with your processor (and buy another cpu if your not running dual yet) that supports more than 4 GB ram and put at least 16 GB in it. You can do that today for under $1000 if you buy a super high end server motherboard. Then load it up with the high speed sata disks you already have, install VMware's ESXi on it (bare-metal) and load your VMs off of that. Major benefits of ESXi over VMWare or Virtual PC is first you don't have the overhead of a full OS. Second, ESXi merges similar pages in memory so if you run 6 VMs all running XP you only pay the memory overhead for the XP OS once. Third, and probably most important, you get memory overcommit which allows you to assign each of your VMs more ram than you physically have in the system (to a point) since ESXi is smart enough to only allocate what is being used by the running VM. You'll also see much better usage of your quad-core and I believe ESXi supports cpu affinity as well for individual VMs. Your basically getting the same capabilities we use today in the data center at home (for free!).

              M Offline
              M Offline
              Member 96
              wrote on last edited by
              #67

              Interesting, I wonder if a person can take their existing VMWare VM and run it on it? One of the things about having a host os is you can make clones and easily backup and restore a VM, with a hypervisor are you basically treating it as hardware and having to reinstall the operating system all over again?


              "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

              M 1 Reply Last reply
              0
              • M Member 2325970

                Now that VMware has released ESXi if I had your setup I'd buy a motherboard that works with your processor (and buy another cpu if your not running dual yet) that supports more than 4 GB ram and put at least 16 GB in it. You can do that today for under $1000 if you buy a super high end server motherboard. Then load it up with the high speed sata disks you already have, install VMware's ESXi on it (bare-metal) and load your VMs off of that. Major benefits of ESXi over VMWare or Virtual PC is first you don't have the overhead of a full OS. Second, ESXi merges similar pages in memory so if you run 6 VMs all running XP you only pay the memory overhead for the XP OS once. Third, and probably most important, you get memory overcommit which allows you to assign each of your VMs more ram than you physically have in the system (to a point) since ESXi is smart enough to only allocate what is being used by the running VM. You'll also see much better usage of your quad-core and I believe ESXi supports cpu affinity as well for individual VMs. Your basically getting the same capabilities we use today in the data center at home (for free!).

                J Offline
                J Offline
                James H
                wrote on last edited by
                #68

                ESXi has pretty restricted hardware support for the host machine. Also I have found the VMWare tools targeting server operating systems are not that great for "interactive" VM's like you would want for development - they are good for "headless" things like SQL server etc but the console support is often not as good as those targetting the "workstation" environment. Obviously VMWare Workstation is the product VMWare have targetting this environment - but that is not free - though may well be worth the $200ish if what it gives you over player is considered a requirement. In particular it obviously helps making VM's as it is all wizard GUI based. It also has some great "SsnapShot" handling tools for rolling VM's back to previous points - but I don't like those for my Dev VM's - great for testing though

                M 1 Reply Last reply
                0
                • M Member 96

                  I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?


                  "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                  N Offline
                  N Offline
                  Nirav Doshi
                  wrote on last edited by
                  #69

                  I currently have 3 VMs on my machine (a Dell Precision M90 - bought around Feb-Mar 2007) running VistaUltimate64 (100GB HDD, 4GB RAM). - The main VM (10GB HDD, 1GB RAM) runs a Win2K3 Server. I use VisualStudio2008 on the Vista64 and VisualStudio6 (VS6) on the Win2K3 VM - because Vista64 doesn't allow to install VS6. BTW, I *need* the VS6 for some legacy purpose - and the VM here comes to my rescue here, instead of needing a seperate computer just for the VS6! :cool: The speed is good & the machine is pretty responsive, even if something on the Vista goes into "Not Responding" mode. - I've recently also setup an Ubuntu VM (5GB HDD, 512MB RAM)- and have just started some work on it too. Its pretty good, even with the low resources. - The third VM I have, runs MS-DOS 6.22 (Yes!) (512MB HDD, 4MB RAM). I have some classic DOS Games & utils there on it. :rolleyes: And I've also tried to have all the 3 VMs running simultaneously -> i.e. 4 machines in all... It worked. Didn't experiment further. ;P

                  * Blood donation is the superior'est form of donation, it can save lives. Celebrate special occasions, like your birthdays, by donating blood. *

                  1 Reply Last reply
                  0
                  • M Member 96

                    I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?


                    "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                    C Offline
                    C Offline
                    Cazurean
                    wrote on last edited by
                    #70

                    I'm using Virtual PC for development for more than two years now. I use it on a pretty old machine (with 2 GB of RAM) and I didn't have any problem. In my opinion it is the best way to handle multiple development environments including .NET, Java, PHP and more.

                    1 Reply Last reply
                    0
                    • M Member 96

                      Interesting, I wonder if a person can take their existing VMWare VM and run it on it? One of the things about having a host os is you can make clones and easily backup and restore a VM, with a hypervisor are you basically treating it as hardware and having to reinstall the operating system all over again?


                      "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                      M Offline
                      M Offline
                      Member 2325970
                      wrote on last edited by
                      #71

                      They have ways to import existing VMs and you can still have clones, snapshots, etc.

                      M 1 Reply Last reply
                      0
                      • M Member 2325970

                        They have ways to import existing VMs and you can still have clones, snapshots, etc.

                        M Offline
                        M Offline
                        Member 96
                        wrote on last edited by
                        #72

                        Cool, I'll have to check it out, I'm about 3 days away from wiping my system and putting on a 64bit OS for the virtual development machines I've just made, but that makes a lot more sense if I can use my VMWare 6.5 virtual machines on it.


                        "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                        1 Reply Last reply
                        0
                        • J James H

                          ESXi has pretty restricted hardware support for the host machine. Also I have found the VMWare tools targeting server operating systems are not that great for "interactive" VM's like you would want for development - they are good for "headless" things like SQL server etc but the console support is often not as good as those targetting the "workstation" environment. Obviously VMWare Workstation is the product VMWare have targetting this environment - but that is not free - though may well be worth the $200ish if what it gives you over player is considered a requirement. In particular it obviously helps making VM's as it is all wizard GUI based. It also has some great "SsnapShot" handling tools for rolling VM's back to previous points - but I don't like those for my Dev VM's - great for testing though

                          M Offline
                          M Offline
                          Member 2325970
                          wrote on last edited by
                          #73

                          Your right, hardware support definitely is not as ubiquitous as it is with Workstation. That was the primary motivator for suggesting the purchase of a new server class motherboard, a close second was the extra memory capacity you gain with those boards. VMware has some other very cool options coming in 2009 with upgrades to the Workstation product line that will go a long way to reduce the overhead you pay for in having a host OS under all your virtual machines. You'll also see a significant performance increase as the VMs get closer to the physical hardware. I don't know if that is something I can be more specific about though since much of what I know about it was learned under NDA.

                          1 Reply Last reply
                          0
                          • M Member 96

                            I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?


                            "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                            B Offline
                            B Offline
                            Bryan Konowitz
                            wrote on last edited by
                            #74

                            For me, the time came many moons ago. On my current box, I run a quad proc with 8gb and 1.25 TB split over 5 drives. The separation of drives and RAM is vital. My host is either A 64bit flavor of Linux or Vista x64, depending on what I need done on the main box. Choice of VM software is split for me as well. I have some boxes running under VirtualBox (*the* choice for speed. Seriously, wow) and others under VMWare Workstation 6.5. There's pros and cons to both, but for me it breaks down as: -- VMWare gives Directx 9.0 support, which works 'okay' when needed. Teams are a life saver for legacy apps split over multiple boxes (I have an environment I bring up that requires each of 4 servers booted in a specific order, specific services started, etc. The team and some AutoItX apps running at startup make sure everything is timed beautifully when I hit 'Play'). The Unity feature's UI ... not performance... is 1000x better than Seamless integration on VBox, especially when running multiple VMs at once; I run 2 VMs or more at all times. -- VBox is fast. Really fast. It runs Win2k and NT4.0 boxes faster than any native hardware they ever supported. It makes VMWare Workstation look like the tortoise compared to a hare with a jetpack. Did I mention it is fast? While the Seamless integration takes an approach I don't like under 90% of circumstances (it eliminates the background but leaves the start bar across the bottom), I've found it to not cause a performance hit the way that VMWare's Unity does, and to have much better redraw rates. When running under Gnome, VBox's Seamless is even more drastic. (Anecdotal findings by experience only). Because of it's speed, it provides a much smoother experience on lower-end hardware. My personal experience has lead me to always run a VM under some form of Seamless or Unity, even when I'm not developing. This lets me comfortably test out tools and other software before it hits my Host. When I am developing, the Host integration tools make for a really comfortable experience during development, allowing me to interact with a server, dev box, and host all at the same time, while fully utilizing my multi-monitors, and not having to spend much time thinking about which box I need to 'switch' over to. The less brain power expended on non-coding and problem solving tasks, the better. Being an anti-modal UI guy, this is an almost perfect choice for multiple machine interactions without breaking my train of thought. Just my $.000002, - BK

                            M 1 Reply Last reply
                            0
                            • B Bryan Konowitz

                              For me, the time came many moons ago. On my current box, I run a quad proc with 8gb and 1.25 TB split over 5 drives. The separation of drives and RAM is vital. My host is either A 64bit flavor of Linux or Vista x64, depending on what I need done on the main box. Choice of VM software is split for me as well. I have some boxes running under VirtualBox (*the* choice for speed. Seriously, wow) and others under VMWare Workstation 6.5. There's pros and cons to both, but for me it breaks down as: -- VMWare gives Directx 9.0 support, which works 'okay' when needed. Teams are a life saver for legacy apps split over multiple boxes (I have an environment I bring up that requires each of 4 servers booted in a specific order, specific services started, etc. The team and some AutoItX apps running at startup make sure everything is timed beautifully when I hit 'Play'). The Unity feature's UI ... not performance... is 1000x better than Seamless integration on VBox, especially when running multiple VMs at once; I run 2 VMs or more at all times. -- VBox is fast. Really fast. It runs Win2k and NT4.0 boxes faster than any native hardware they ever supported. It makes VMWare Workstation look like the tortoise compared to a hare with a jetpack. Did I mention it is fast? While the Seamless integration takes an approach I don't like under 90% of circumstances (it eliminates the background but leaves the start bar across the bottom), I've found it to not cause a performance hit the way that VMWare's Unity does, and to have much better redraw rates. When running under Gnome, VBox's Seamless is even more drastic. (Anecdotal findings by experience only). Because of it's speed, it provides a much smoother experience on lower-end hardware. My personal experience has lead me to always run a VM under some form of Seamless or Unity, even when I'm not developing. This lets me comfortably test out tools and other software before it hits my Host. When I am developing, the Host integration tools make for a really comfortable experience during development, allowing me to interact with a server, dev box, and host all at the same time, while fully utilizing my multi-monitors, and not having to spend much time thinking about which box I need to 'switch' over to. The less brain power expended on non-coding and problem solving tasks, the better. Being an anti-modal UI guy, this is an almost perfect choice for multiple machine interactions without breaking my train of thought. Just my $.000002, - BK

                              M Offline
                              M Offline
                              Member 96
                              wrote on last edited by
                              #75

                              Interesting, I just switched to virtual development last week after hearing all the good things here and it's been great, however my experience with Virtual Box wasn't as good but that was some time ago, I'll have to try it again. I went for windows 2003 x64 server as the host os just due to the smaller foot print and perceived less crunge than Vista. I really tried to get a Linux host going and was partially successful long enough to try vmware player on Ubuntu 64 running my development xp virtual machine and I found it much slower than on the windows host, but I had so much trouble with Linux I abandoned it. I'll give Virtual box a good testing this week, hopefully I can use a copy of my vmware workstation development virtual machine, apparently it's doable, and that will give me a side by side comparison on build times and general moving about. Frankly, the Unity thing just confuses me and seems to perform badly so I always run the vm's full screen and use the handy "next virtual machine" button at the top. Thanks for the 2 millionth of a cent (though I think it was worth far more than that) :) Cheers!


                              "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups