Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Linux Software

Linux VMs For Everyone 132

Over at Newsforge, Grant Gross has written an interesting overview of the options available for hosting multiple Linux installations on virtual machines; interestingly, it's not just for those with the big bucks for high-end IBM hardware, though that's surely nice.
This discussion has been archived. No new comments can be posted.

Linux VMs For Everyone

Comments Filter:
  • For privacy . . . (Score:5, Insightful)

    by acceleriter ( 231439 ) on Saturday January 19, 2002 @05:48PM (#2869721)
    . . . even if you aren't running multiple virtual machines simulateously, applications like VMware (and possibly Bochs) are useful for creating read only, throwaway environments for when you do anything on the net you might not want your boss or someone who shares your computer to be aware of.

    In particular, VMware's "undoable disks" are great in this regard.

  • Then install linux, no need to buy a new machine.
  • not new, but useful (Score:2, Interesting)

    by Bandito ( 134369 )
    it's not just for those with the big bucks for high-end IBM hardware

    This isn't really new. Slashdot had an article about it a month or two ago. Unfortunately the link escapes me.

    After seeing that article, I presented it at work. We now use it to keep the logging facility and services separate from each other, so a break in to one service doesn't compromise the others or the logs.

    It works pretty slick.
  • by Glorat ( 414139 ) on Saturday January 19, 2002 @05:56PM (#2869757)
    Cool! Not only are you allowed to run Linux on your computer for FREE but you are allowed to run 1000 copies of Linux on your computer for FREE!!

    Now, 1000 copies of Windows on a machine would cost... $100,000? Nehehe. Linux rocks =P
  • Windows License? (Score:2, Insightful)

    by russianspy ( 523929 )
    I can't remember my windows days all that well, but doesn't the Microsoft Windows license apply to a single computer??? Wouldn't that mean you can run as many copies of windows, as long as they are on the same computer, as you want?
    Who knows? Maybe Micro$$oft did shoot themselves in a foot?
    • I don't remember the EULA that well; but I believe most licenses (in particular; Sun's) define "machine" by "cpu" (prolly among other standards). So, since you're running one copy in multiple "machines" (albeit virtual); you would be in deep doggy-doo should the Legal Team find out.
    • by Dr_Marvin_Monroe ( 550052 ) on Saturday January 19, 2002 @06:06PM (#2869799)
      Consider the possibilities.....

      Multiple BSOD's running at the same time!

      Here are some points to be considered.....

      When I say "OK" and reboot, does this start another instance of Windows, or just jump me to the other blue screen?

      Could one BSOD cause a another BSOD?

      What exactly would the effect of a "Virtual BSOD" be?

      Inquiring minds want to know......
    • An interesting question.

      Microsoft and Intel have been squabbling [theinquirer.net] over this very issue recently.

      • The Inquirer's take on this doesn't make any sense to me. Won't MS love HyperThreading because it will force people to buy 4-CPU licenses for 2-CPU machines? Or maybe customers will avoid the issue by disabling HyperThreading in the BIOS. Or maybe MS will release a patch for Windows that recognizes the difference between physical and logical CPUs. It doesn't seem like a huge problem.
    • Nope. Read one of those licenses again. It's lawyers started thinking about this possibility long ago.
    • Re:Windows License? (Score:3, Interesting)

      by russianspy ( 523929 )
      Allright. I'm replying to my own message... Hmmm....

      Here are some quotes from Windows XP EULA

      * Installation and use. You may install, use, access, display and run one copy of the Product on a single computer, such as a workstation, terminal or other device ("Workstation Computer"). The Product may not be used by more than two (2) processors at any one time on any single Workstation Computer.

      I am trying to figure out what that means in this case. You can install, use, access, etc one copy of this product on a single computer... Assuming you could set up the VM's to READ from the same install of the software, but WRITE to different dirs - that part should be allright (hey! I'm not saying it would be EASY, but it's doable - Unix does something similar when forking). The other sentence would limit the user to two versions running at the same time (I assume as many as you'd like could be LOADED in memory - ready to be used). I don't know of many hardware that could run multiple copies of windowsXP at the same time (well.. just one - I think it's running Unix though), but with the advances in servers/computers a large company could reduce the windows licensing costs by half!
      • Here are some quotes from Windows XP EULA

        Here is my signature on the Windows XP EULA... Oh, that's right, I never signed it. For that reason, and the reason that the contract lacks consideration (they don't give me any right that I don't already have), it is not an enforcible contract.

  • Linux VM Systems (Score:2, Interesting)

    by SkewlD00d ( 314017 )
    e-genera [egenera.com] has some neat dynamically reconfigurable computers that amount to a single-rack, virtualized server farm that can run a customized version of SMPed Linux or Win2k/XP.

  • by CDWert ( 450988 ) on Saturday January 19, 2002 @06:23PM (#2869865) Homepage
    If youre hosting, you cant beat this solution

    Folks over at Solucorp [solucorp.qc.ca]

    Have made kernel patch and utilites to make this almost painless, as well as some precompiled kernels, (I would laways roll my own but ..)

    This as I said kicks for hosting, its not just a chroot, and its not like the jail on BSD, its....well different.

    This isnt somethign youre going to do on your desktop machine , its going to allow you to span resources, this is COMPLETLEY different from VMWare etc, for all the yahoos that are gonna say this has been around forveer.

    After SEVERLY abusing our test server to hell an back starting 2-1 we are going to be offering hosting in this enviroment , we have clients that want their own playground but dont want the maintenece, some have semi-secure data theyre just no comfortable on a shared solution and cant quite justify a dedicated box, were already slated for 10 clients and with their current traffic and traffic times, they will all play very nicley on the same machine

    P.S. LOAD up on the ram , and make sure to use SCSI , Low ram and Ide will work but start to bog under load, remeber you have 10 different Linux installations trying to access the disk at once.....
    • Where can we get that hosting? How much does it cost? What is included (IP, bandwidth, etc)?
      • We dont do commodity hosting, we only host existing clients, or clients we have done development for.

        I am considering putting up another box, for people, a sort of develoment enviroment that we would maintain for these existing clients that want a sandbox aside from their production enviroment, I could possibly hast you there.

        Bandwith is limited on that line, it is quite expensive in our area. 10 gigs a month transffer and 5 gigs HD space, on a 1.7 ghz box with 1 gig ram. You get one IP address, all yours :) , RH 7.2 all current with 2.4.17 (probably rmap-11c tool, ill see)For now this is a limit of the vserver utilities, Backups of your VM root are done from the Root, server that has NO net access. Hosting like this is as I said expensive, but our clients pay for my administration, 300 a month email me if interested.
      • I've got one of these accounts at webpipe.net. $35/month. 1 static IP. 20GB/month.
  • The ad (Score:1, Interesting)

    by Anonymous Coward
    Remeber the ad for this? It was hilious

    A panicking manager type leads police detectives into what appears to be an empty server room. "It's the crime of the century!" the balding, middle-aged, middle manger exclaims over cheesy adventure-movie background music. "Everything's gone!"

    "What was stolen?" asks one of the cops.
    "Everything," the pointy-haired boss answers, "payroll, R&D, customer records ..."

    Of course, our hero, a scruffy-looking geek boy, saves the day. He points to a mainframe in the back of the room, and says, "We moved everything onto that one. It's going to save us a bundle. I sent out an email ... "
  • IO throughput (Score:2, Interesting)

    by Anonymous Coward
    But how do you assure decent IO in a virtualized machine? I'd imagine it would be pretty poor with the disk head skipping all over the place. I'm also curious if the processor cache would hold up well.

    The holy grail seems to me to be cheap processors and disks hooked up via infiniband.
    • I assume that the multiple VMs do not map directly to the hardware it runs on.

      The user mode software is probably directly mapped and context switched in/out just like any other multitasking OS. The kernel mode drivers may just be gateways communicating with the host VM manager.

      The OS on the VM uses virtual generic interfaces for the harddisks, networks, ttys, etc. Those generic interfaces talk to the VM manager to be mapped to the actual hardware. The I/O calls that are pending are probably optimized by the VM manager.

      I assume this is how it is done. I could be wrong.
    • What about network IO? How do you get decent throughput numbers on your VMs when everyone is trying to stuff IP down one wire? Even Gigabit Ethernet would crumplt under 500 slashdot type sites. Even if you get it out of the machine, do you have problems getting it out onto the Internet?

      What about failures? What happens when the HD/case fan/power supply/memory fails? Ok, ok, I guess this is heavy duty IBM mainframe stuff so it probably has lots of redundency built-in.

      Isn't there some reasons to have servers located across the (US|world)?
  • One big crash (Score:3, Interesting)

    by XBL ( 305578 ) on Saturday January 19, 2002 @06:59PM (#2869978)
    The article talks about how hundreds, even thousands of OSes can run on one machine. Well, what if the underlying VM architecture, or even the hardware itself crashes?

    Now you have hundreds, even thousands of customers mad at you... and all their stuff is on just one machine. Yikes!
    • Re:One big crash (Score:4, Informative)

      by Webmonger ( 24302 ) on Saturday January 19, 2002 @07:42PM (#2870129) Homepage
      The theoretical customer downtime doesn't change.

      First, the non-VM scenario: let's say in a given period, there's a 1:3 chance that a box will go down, and you have 1 customer upset. If you have three customers, the odds are 1:1 that one of the machines will go down. Over three periods, three customers will experience downtime.

      Okay, VM now: There's still a 1:3 chance that a box will go down, but if you have 3 customers, three customers will be upset if it happens. Over three periods, the odds of the machine going down are 1:1, so over three periods, three customers will experience downtime.

      It reduces the odds and raises the stakes in equal proportion. Of course, dealing with three upset customers may be more than 3x as difficult as dealing with 1 upset customer 3 times.

      This achitecture has huge advantages when it comes to making backups, since the host OS can access and back up all the partitions in one swell foop. And with the cost savings, you could afford to get a second, identically-configured box. So there are plus sides, too. I guess VM giveth and VM taketh away. . .
      • Okay, a little math here. If in one period there's a 33% chance of downtime, over three periods there's a 70% chance of downtime. That's because there's a 67% chance of no downtime in a period, and to combine those chances over the three periods you multiply: .67*.67*.67 = .30, i.e., a 30% chance of no downtime, or a 70% chance of downtime.

    • to tag onto the other guy

      (and work with me on this :)

      say the MTBF for your HD is 5 years

      5 machines

      the HD in one of those machines will fail every year (eventually)

      So one machine ends up being more reliable than multiple.

      Plus you can invest in redundancy instead of multiplicity.

      Mirror the machine & disks and you're getting on the way to bullet proof

      (until the cleaner plugs in the hoover)

      I've been on Commerical hosting machines where one can browse the files of the other users usefully chmoded 644

      esp. fun for sniffing db passwords in data driven websites
  • isn't this just user-mode linux [sourceforge.net]?
  • by sconeu ( 64226 ) on Saturday January 19, 2002 @07:16PM (#2870034) Homepage Journal
    Did Intel fix the x86 self-virtualization problem with the Pentium and laters? I know that the '386 and '486 couldn't fully virtualize themselves, because it was possible for non-supervisor code to look at certain flags.

    A 680x0 (x >= 1) could fully virtualize itself, because the condition codes could be accessed separately from the status register (MOV.B D0, CCR as opposed to MOV.W, D0, SR).

    Just curious. Oh, and I think the article got it wrong. They said VM has been around for 20+ years, I believe it's closer to 30+. Any old JCL'ers out there?
    • I don't think Intel has solved the problem; that's why VMware is so expensive.
    • I don't know much about the definition of a virtual machine, but given the example you gave of the MC68K series instruction set, I am wondering:

      The first instruction you illustrate is the MOVE from CCR (condition code register), the syntax being MOVE CCR, Size=(Word). The description of this command is "The content of the status register is moved to the destination location. The source operand is a word, but only the low order byte contains the condition codes. The upper byte is all zeros. Condition codes are not affected
      This is a priviledged 68010+ instruction

      The equivalent for the 68K is MOVE from SR, Size=(Word), Condition codes not affected.

      As far as I can see, the fact that you access the CCR or the SR for the condition codes do not affect the condition codes nor the state that the processor is in (supervisor or normal).
      • It's been a while since I've done 68030 ASM, but I'm pretty sure CCR access was a MOV.B, not priviliged, and SR access was MOV.W, priviliged.
      • by SVDave ( 231875 ) on Saturday January 19, 2002 @10:37PM (#2870715)

        As far as I can see, the fact that you access the CCR or the SR for the condition codes do not affect the condition codes nor the state that the processor is in (supervisor or normal).

        Writing was never a problem. Reading the condition codes was the problem.

        In order to support virtualization, one must be able to trick a program that is running in user mode into thinking that it is running in supervisor mode. For example, a virtualized Linux kernel needs to run in user mode (so that, for example, you can trap any attempts it makes to change the MMU registers; you don't want it to change the _real_ MMU registers, just what it _thinks_ are the real MMU registers). On an M68000, this was not possible, because the opcode used to read the condition codes ("MOVE SR,<ea>") was a user-level opcode. Thus a program could always determine its true run level.

        On the MC68010 and later, "MOVE SR,<ea>" was made supervisor-only. So what does this mean? On a non-virtualized OS, if supervisor-level code does a "MOVE SR,<ea>", it returns the true result. On a virtualized OS, the virtual OS is running in user mode, so the "MOVE SR,<ea>" traps. The virtual machine underneath gets the condition codes, sets the "Supervisor" bit to 1, stores it in the specified destination (the "effective address"), and returns from the trap. To the virtual OS, it looks like the "MOVE SR,<ea>" executed as expected.
    • First used VM (yes, with JCL--you use the blue cards for that) in 1976-77. So it's at least 25 years old. VM/CMS...on a TTY...what an improvement over submitting card decks.
      • Oh my God! I used the yellow cards! Since when does the color of the card have an effect on the holes punched in it? btw...i first used JCL on an IBM 370/125 running DOS in the 70s, and i'm still coding JCL on an OS/390 box.
  • iSeries. (Formerly known as the AS/400).

    Up to 31 Linux partitions using the 32 or 64 bit PowerPC kernel, concurrently. Run it on anything from a $20000 model 270 up to the biggest 24 processor machine IBM sells. Available from SuSE, TurboLinux, and RedHat.
  • I plan to provide "Virtual colocation" based on
    UML and (alternatively for people who don't want Linux) VMware for 30$/mo in February.

    Physical hardware will be dual 1.6Ghz Athlon MP.

    If you are interested in being a beta customer, please contact me.

    -alex
  • Can someone explain the practical difference between this and *BSD's jail() environment? On a side note, why *doesn't* Linux support jail()?
    • Re:jail()? (Score:1, Informative)

      by Anonymous Coward
      quite a lot really. This is a seperate OS entirely which you can give the user root access too. Even if they decide to rm -rf / all that will happen is their own virtual machine will wipe itself...the box will stay up and so will all the other vm's. I'm still undecided as to whether its useful or just a gimmick to have a box setup with 100+ VM's on it. Running windows in a vmware on my slackware desktop to test webpages is useful but 1000 linux servers on one boxen.....I'm not so sure.
      • Re:jail()? (Score:4, Informative)

        by Dwonis ( 52652 ) on Sunday January 20, 2002 @11:33PM (#2874626)
        you can give the user root access too. Even if they decide to rm -rf / all that will happen is their own virtual machine will wipe itself...the box will stay up and so will all the other vm's.

        I was under the impression that jail(2) [gsp.com] did that, too.

    • One of the main things is that root is just as effective as it normally is. The root user has total control of its kernel. Including the IP stack. On the flip size, the hosting OS determines how many resources are allocated to each kernel, so if a process goes wild in a kernel, it won't affect processes in other kernels. And you can't use jail() for testing out new kernels.
  • The first time I knowingly and deliberately used VM was at NCAR, on the front-end machines to the Cray-1 in 1983.

    Each user had a VM, with a specific amount of disk, CPU, and memory allocated. Your copy and even choice of operating system -- MVS, CMS -- ran on that virtual machine. So, like they say, it's been around 20 years or more. I say "knowingly and deliberately" because from 76-82, I'd used VM/CMS on our university's IBM 360, which also used VM -- but student users were barred from actually interacting with VM, so it was just there, use it. (CMS stands for "Conversation Monitoring System" -- scary!)

    Back then, when I had a choice (i.e. had an application that didn't require the Cray!), I preferred the far less structured environment of our 4.2 BSD Vax 11/750.

    For a mainframe, multiuser or server environment where you need control over everything, and records of everything -- VM the ticket. For your desktop, it's a bit much, really. To turn your desktop into a server, hmmm. Not a bad idea to run VM on it, and run various services in their own virtual machines. A bit more secure than a chroot, since even a buffer overflow bug wouldn't be able to get at the other processes -- they're running in a completely different address space and controlled by, well, a different operating system --or at least an entirely different instance of the same operating system configured differently.

    But VM itself is hardly news. Plus ca change, plus ca change pas.

  • by Skapare ( 16644 ) on Sunday January 20, 2002 @01:53AM (#2871242) Homepage
    "We moved everything onto that one. It's going to save us a bundle. I sent out an email ... "

    Apparently the email didn't get delivered.

  • The article a little bit skimps on details, bunching VMware and other things in same category.

    VMware, plex86 and bochs are in one category: Real virtualization solutions, allowing you to run any operating system. The level of security these tools provide is very high (guest OS shares nothing with host OS. All access is controlled by virtualization software).

    Vmware works (surprisingly) pretty damn good, I haven't had an issue with it behaving any differently from a real OS running on same hardware. Of course, its a commercial solution with associated problems (no source, can't embed, pricey, etc). Its very fast, and reasonable on resources.

    Plex86 is same idea as vmware, only Free.
    Right now, though, plex86 is in state of disrepair, because lead developer has been laid off from Mandrake, and codebase is in flux. You'll have much more luck with Jan-1-2001 snapshots if you want to actually boot up any OS. Don't know how fast it is, never got it to boot up enough to run tests stably. ;)

    Bochs is even lower-level approach to virtualization: it can emulate x86 on any processor. Of course, its dog slow and eats lots of memory (Expect 100x hit on performance).

    Other solutions (swsoft, ensim, linux virtual server(LVS)) are a lot closer to jail() system call of FreeBSD. With these, you are running one kernel for all "environments". Security is provided by other means ("root" in the jail has a lot of restrictions on it, such as use of IP addresses, etc).

    With many of these solutions, you will run in certain incompatibility problems (root not able to things which it should be able to do, but restricted in jail). Transparency is an issue: for example, even though you don't see other jail's processes, there's still a single PID space, and you can tell which PIDs are running by forking 60000 times and recording which PIDS you get and which ones you don't. Also, user doesn't have full control over its environment, for ex, you can't have your own inittab, etc.

    However, these solutions don't have any overhead, very resource-nonintensive (you can run 50 jails on one host with almost no performance impact).

    Level of security these solutions provide is very questionable: if there's a jail check missing _anywhere_ in kernel where root access is verified, it will lead to a host compromise.

    Note: Of the above mentioned solutions, I only worked with LVS (www.linuxvirtualserver.org), and its the only one that is GPL'd.

    User-mode-linux (UML) occupies space in between: It doesn't virtualize the processor, but it has a separate kernel running for each VM, for excellent transparency, and reduced risk: As UML itself runs as non-root, even if a bug in UML implementation is found that would allow to make system call to host kernel, it would still at worst result in single-user compromise on the host. (Unlike LVS/jail where it would lead to root host compromise).

    The way it works is following: UML is essentially a "port" of linux to linux. (I.E. linux that doesn't run on bare metal, but uses host's services to implement linux). It traps system calls by application and executes them itself.

    Currently performance of UML is spotty (each syscall by application results in 3 context switches on host), but its being worked on at amazing pace. (Thanks Jeff)

    Summary:
    a) if you need to be able to run 10+ 'guest' environments on a host, look at LVS or jail.
    b) if you need to run non-windows guest environments, vmware is your answer.
    c) If you need to run 1-10 guest environments, with good security and you have memory to spare, look at UML. Its performance is likely to improve soon.

    I plan on providing a "virtual colo" service based on UML for linux-oriented people and vmware for people who want to run Windows on their 'machine'. The idea is to provide service to people who outgrew traditional virtual hosting environments, but not quite ready yet (or don't want to pay) to have their own dedicated server. Pricing will be around 30$/mo.
  • by Anonymous Coward
    on this discussion a lot has been said about VMWARE. i just wish to quickly poit out that VMWARE new licence is redicolously restrictive basically prohibiting any VMware machine to act as a SERVER for any service. Read it yourself if you dont believe it.

    The basica idea behind it was to prevent peopel from buying the ""cheap"" 300 USD version and doing virtual hosting but in reality that licence states more than that.

    SIncerely
    Giovanni Tummarello
    www.Wup.it [www.wup.it]

E = MC ** 2 +- 3db

Working...