Slashdot Mirror


One-Machine Linux Cluster

An AC wrote: Forget Beowulf ? clusters, Jacques Gelinas has made available a kernel patch to enable many virtual servers running on the same machine, even the same kernel. Read his original message posted to the Linux kernel list." Imagine what this will mean for hosting companies...

21 of 260 comments (clear)

  1. don't forget user mode linux by Anonymous Coward · · Score: 1, Informative

    Here is another project that just turns the kernel into another runnable process. You need to have a filesystem for it to mount and run with (available at the site) and from there you can have it run just about everything you can under the main host (within reason). It can be totally isolated, networked, and/or use its own hostfs to read directly from the host system's directory tree.

  2. Basically Like OpenVMS' Galaxy? by inhalent · · Score: 4, Informative

    Basically the same idea as Galaxy. Check it out for ideas.... http://www.openvms.compaq.com/availability/galaxy. html

  3. Re:Machines.. by morcheeba · · Score: 2, Informative

    check out mosix -- it looks like the simplest way to combine the two transparently. I haven't used it, but it looks easy. This would be helpful for some tasks more than others (ie. povray or orher intesive math, but not quake), and of course, things that are multi-process (the same requirement needed for SMP). There was a ./ article about this a while ago.

  4. User Mode Linux? by jmv · · Score: 4, Informative

    Can anyone tell me how this is different than User Mode Linux?

    1. Re:User Mode Linux? by dispari · · Score: 4, Informative

      User Mode Linux is basically a VM. It uses virtual devices for hardware multiplexing. Read the "Alternative technolgoies/Virtual Machines" and "Alternative technologies/Limitations of those technologies" for why this is a different (and better in some instances) solution.

      The vunify tool has significance when differentiating between VM's and this.

  5. Actually this is kind of an old idea by Ghostx13 · · Score: 3, Informative

    Hostpro, now Interland has this sort of thing for freeBSD. It used to be called vserver. The new improved version is called Freedom. It's been out for years.

  6. Re:Beaowulf not the target audience by justin.warren · · Score: 2, Informative
    Just to clarify a little, Sun E10/15k's are not directly comparable in the way multiple servers run in the same chassis. If you were to combine all of the system boards in an E10/15k and then run virtual servers in a single copy of Solaris (I'm not aware of anything that allows you to do this) then it would be comparable.

    The way most E10/15 installations are used is to split the chassis, which supplies redundant power, management bus (JTAG) and a centreplane configuration for data and address buses, among several system boards. Each combination of system boards is used to run a completely separate OS installation. Even the data and address busses are physically separated from each other, rather than logically as in the article or an S390. It is a very rare error that will take the entire chassis down, providing superior uptimes. For the article, if there was a data or address bus error for one virtual machine, all of them would be affected, since it's the same physical hardware. This is not the case for an E10/15k.

    You could, theoretically, split one chassis into lots of system boards and run lots of Solaris instances in a cluster, but that wouldn't be nearly as powerful as putting all the boards into a dirty big SMP Solaris instance. Solaris SMP is pretty darn cool, IMHO.

    --
    Just because you're paranoid doesn't mean they're NOT after you.
  7. Re:Machines.. by psamuels · · Score: 2, Informative

    Two common uses for a cluster:


    • computing - there are two common approaches:
      • have a parallel-computing library which your applications already use (PVM and MPI are the two popular APIs for such libraries), and configure it to share the load over your cluster. I think this is what Beowulf does.
      • sometimes used for 3d rendering - have a compute-intensive server program that can do any fraction of the total work (say, render frames x through y) running on each machine and a controller program which hands out and collects work to do. This is also how seti@home works.

    • serving - as in web, database, etc. Have multiple server processes, one on each machine, and they are basically independent of each other. (How to coordinate database updates between multiple database servers is left as an exercise to your DB vendor.) To get clients to use "any available machine" when they think they're pointed at a single box, you can either use a proxy server or round-robin DNS.

    To answer your question, a web server can use either proxying or round-robin DNS without any special support from the main web server software. Of course, you have to have the proxy / DNS server running correctly. (Also, you obviously have to have either a shared or a synced filestore for your actual web site.)

    --
    "How can you claim that you are anti-crack, while still writing a window manager?" — Metacity README
  8. Re:Pointless? by ThatComputerGuy · · Score: 2, Informative

    Even if this was to be used to "simulate" a cluster, even that would be fairly useful to some people. If you want to learn to write programs optimized for clustered systems, yet don't have enough capital to be able to access one easily, what can you do?

    Well, for one, you can now setup a virtual cluster to test out your apps...

    --
    XML is like violence. If it doesn't solve the problem, use more.
  9. Re:This is... by psamuels · · Score: 2, Informative
    EXACTLY what the FreeBSD jail() call does...

    And you can do most of the same in Linux, with good old-fashioned chroot plus capabilities. No need for a separate system call.


    Restricting to a specific IP address is a nice touch, and one thing Linux capabilities can't do, but it seems rather application-specific. It only allows one IP alias to the jailed process, and doesn't seem to cover any non-IPv4 addressing. And WTF do you have to specify a hostname? The kernel needs this information? (Or does the (2) in jail(2) not actually mean it's a syscall, like it doesn't in AIX?)


    I'm also not sure if Linux capabilities are fine-grained enough to keep root from escaping a chroot without totally crippling it - but then again, jail() seems pretty crippling too. A virtual host server really shouldn't need root privs, other than bind-to-low-ports, and Linux capabilities do have that granularity.

    --
    "How can you claim that you are anti-crack, while still writing a window manager?" — Metacity README
  10. Re:binding 2 servers to the same port? by mlanett · · Score: 2, Informative

    With IP aliasing it's not a problem; one card could service multiple servers, each with their own (set of) IPs.

  11. Re:Beaowulf not the target audience by Xanni · · Score: 3, Informative

    Like most Slashdot posters, you obviously didn't read the documentation before posting. On an 8-processor machine, this patch will give you 8 processors for each virtual server; it does /not/ implement CPU partitioning and explains the difference in the documentation.

    Also the main server can see all the files in the virtual servers since it isn't chrooted.

    --
    http://www.glasswings.com/
  12. Re:Very Useful by btellier · · Score: 2, Informative
    What I hate is having to run some third party app for a client (even in a Linux environment) that *might* affect the whole machine.

    If this is your problem you're not running the right apps. For modern production machines the problem is usually running Exchange/Sendmail instead of Qmail or MSDNS instead of DJBDNS (OK, maybe i'm partial to DJ Bernstein's apps). The only thing you might overload on is web servers, and if you're running Apache you've got such good code behind you that your CPU is probably the bottleneck.

    The answer for production servers is not "seperation between clients" but rather choosing apps which are efficient. Name any app likely to be run on a high traffic machine and I can give you a specific UN*X app which will do it with very little waste.

  13. Re:Very Useful by lewp · · Score: 1, Informative

    Notice how he said "for a client." Clients, in the hosting business especially, tend to ask for things you know it isn't in anyone's best interest to provide. Unfortunately, sometimes keeping their business means going against your better judgement.

    That said, the company I work for has a product that does something along the same lines, with FreeBSD instead of Linux. Everyone agrees it is much nicer than the normal shared environments we've dealt with.

    --
    Game... blouses.
  14. Re:*BSD Jail? by Anonymous Coward · · Score: 2, Informative

    Yes, but a little more general purpose. See
    the FAQ entry
    here

  15. It's not the processing power by KMSelf · · Score: 4, Informative

    It's the control over it.

    Mainframes have insane amounts of control over user processes (a Linux image essentially becomes same), as well as the ability to allocate more resources, fewer, provide fine-grained process accounting, shut down processes, migrate them elsewhere (part of the IBM dataceter Linux concept is the ability to migrate nodes around the country as needed).

    What a mainframe doesn't have to offfer is insane amounts of processor power or memory. Disk, and disk I/O are quite another matter -- the amount of aggregate bandwidth a z390 has to offer is impressive.

    PC-based virtualization clearly has some advantages, through not all of those offered by a mainframe. A rack of virtualized PCs probably does offer a higher processor density than the equivalent mainframe, however.

    --

    What part of "gestalt" don't you understand?

  16. Re:kernel dev? by FrankBough · · Score: 2, Informative

    No, it's a single kernel running compartmentalised. If you introduce a development kernel driver and it crashes, all the virtual machines go down with it.

  17. Re:*This* is why open source works by Stinger · · Score: 2, Informative

    No doubt you could use mount --bind to get that, of course having 5x mounts for each vserver is gonna start looking ugly

  18. Re:*This* is why open source works by gregorio · · Score: 1, Informative

    Because he's got access to the source he's been able to do something novel with it in what appears to be an efficient and simple way...you couldn't do that with any of the closed source OSes out there today!

    You're being waaay too partial here: You can always accomplish any "normal" task if the OS provides you a good API or DDK.

  19. Not cluster, partition! by noz · · Score: 2, Informative

    Forget arguing about the definition of a 'cluster'. This is the technology that differentiates between PCs, servers, and mainframes.

    IBM and Unisys mainframes (perhaps others, I've worked with these) have hardware partitions where CPUs are divided up. Linux is there now too.

  20. Hardware isolation by TBone · · Score: 3, Informative

    Yes, the patch doesn't support hardware dedication. But my SUN background makes me ponder a line of thought.

    In Solaris, there are the psr* family of commands for processor administration. psradmin -f 0 will turn off processor 0. As long as this isn't physical powering down of processors, and simply instructions to the scheduler to disregard p0, you could, on the above vm, do something like:

    Prod: psradm -f 4,5,6,7
    Test: psradm -f 0,1,2,3,6,7
    Dev: psradm -f 0,1,2,3,4,5

    Leaving procs 0-3 for Prod, 4-5 for Test, and 6-7 for Dev.

    Along the same lines, at boot time you can explicitly state memory ranges to the kernel, if linux can't detect your memory right, or you have known bad memory you want to avoid. With the same thought, the Prod, Test, and Dev kernels can be brought up explicitly stating the 0-2G, 2-3G, and 3-4G ranges as usable memory addresses.

    You run into more problems when it comes to peripherals in the box, but how many serial ports do you really need? Just specify ttyS0 in the VM with the addresses of ttyS0,1,2 of the physical server.

    Am I smoking crack, or should I just stick with my much-more-hardware-flexible Sparc architecture :)

    --

    This space for rent. Call 1-800-STEAK4U