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...
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.
Basically the same idea as Galaxy. Check it out for ideas.... http://www.openvms.compaq.com/availability/galaxy. html
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.
HIV Crosses Species Barrier... into Muppets
Can anyone tell me how this is different than User Mode Linux?
Opus: the Swiss army knife of audio codec
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.
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.
Two common uses for a cluster:
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
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.
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
With IP aliasing it's not a problem; one card could service multiple servers, each with their own (set of) IPs.
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/
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.
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.
Yes, but a little more general purpose. See
the FAQ entry
here
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?
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.
No doubt you could use mount --bind to get that, of course having 5x mounts for each vserver is gonna start looking ugly
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.
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.
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