Podcast: The Return of User-Mode Linux
[url=http://www.virtual-strategy.com/]Virtual Strategy Magazine[/url] speaks with Jeff Dike, author and maintainer of User-Mode Linux and Christopher Aker, president of Linode, a hosting company that offers virtual machines running on UML.
I’ll provide a transcript in the next few days for those that requested it.
> Article: http://www.virtual-strategy.com/article/articleview/1874/1/64/
Well, I read the entire article, and it wasn’t as informative as I thought it would be.
Well, I read the entire article, and it wasn’t as informative as I thought it would be.
True, the "article" is merely a table of contents of the audiofile.
For those of us who don’t follow dev-lists, the audiofile (MP3, 17mins, 8MB) provides a nice summary of where UML (User Mode Linux) is at, where it’s about to go, and what we can look forward to at Linode.com ("the largest implementation of UML"). Recommended.
[b][edit: Note that this post is about 6 months old; sorry, should have mentioned when I bumped it. The stuff below represents the situation at that time too.][/b]
I just went ahead and made a transcript of the podcast – it’s pretty complete, except for the bits marked [i][?][/i], which I unfortunately couldn’t make out properly. Those are rare though. 😀 Hope it helps people!
[b]BRIAN:[/b] You’re listening to the Virtual Strategy Magazine podcast. I’m Brian Ducharme, and I’m here with Jeff Dike, author and maintainer of User-Mode Linux – and later on in the show, we’re gonna have Christopher Aker, president of Linode, who uses and built their entire business around UML. How’re you doing today, Jeff?
[b]JEFF:[/b] I’m good, how are you?
[b]B:[/b] Great. It’s good to talk to a New Hampshire native.
[b]J:[/b] *chuckles* I’m actually a Connecticut native. I’ve lived in New Hampshire for quite a while.
[b]B:[/b] Alright. Can you tell us a little bit about UML? Not too many of our readers have probably heard of UML, and if they have, have maybe forgotten about it, so if you can kind of remind us about, y’know, how it works, and what it is and where it’s at?
[b]J:[/b] UML is Linux that runs on top of Linux. I took a Linux kernel and by doing a port – not to a hardware architecture but to a software architecture – I ported it to the Linux system call interface, so that you have the Linux kernel running inside a Linux process. And in reality, it turns out to be instead of Linux, Linux processes. But it behaves just as though it’s a real Linux box although its hardware is a little bit, uh, virtual.
[b]J:[/b] It otherwise behaves exactly like a normal Linux system.
[b]B:[/b] So to the end user, they have no idea whether they’re running on a virtual machine or a full installation of Linux?
[b]J:[/b] Yeah. As long as they don’t look too closely. If you do things like look at your device names you’ll see that some things are strange.
[b]J:[/b] But that’s about the only indication you’ll have that you’re running on a virtual machine.
[b]B:[/b] And when did you start the UML project?
[b]J:[/b] Erm, late ’98, early ’99. I started thinking about it late in 1998, I had working code released to lkml in June of 1999.
[b]B:[/b] And I understand you’re now working for Intel?
[b]J:[/b] Yeah, I’ve been at Intel for about two and a half years now.
[b]B:[/b] So what do you do at Intel?
[b]J:[/b] Intel pays me to work on UML. It’s basically my job.
[b]B:[/b] *chuckles* That’s a good thing to get paid for, right?
[b]J:[/b] Yeah, I like it.
[b]B:[/b] Maybe you can tell me what some of the– you know, what are the use cases for UML? It’s Linux-only…
[b]J:[/b] Right, it’s Linux-only. By definition, it’s a Linux client. It works – for now – only on Linux as a host, but it has been mostly ported at one point to Windows. The port was never maintained, though it was never merged, but it is definitely a possibility. The use cases… you already mentioned one. Linode is the largest UML-based hosting operation that I’m aware of. There are a good number of people using it [i][Ed: UML][/i] for kernel development, for [i][?][/i] development, network protocol development… it’s pretty close to ideal. There are also people using it to emulate embedded platforms before they have hardware. You write some simple device drivers usually, and you can emulate the platforms that you’re going to be building before the hardware’s even close to available – so that means you can work on the software-side things in parallel with the hardware being developed.
[b]B:[/b] Maybe you can talk about— what’s the… if you had to compare it to Xen…
[b]B:[/b] …how would you compare UML to Xen, and, y’know, where do you see UML fitting into the picture? I know you’ve been developing VT enhancements for UML.
[b]J:[/b] Right. Xen is a very different design. It’s a small hypervisor that runs full operating systems on top of it. So you’ve got the Xen hypervisor, and then you run Xen guests on top of it, be it Windows or Linux or whatever. The Linux world, I think, is not going in that direction, so that’s gonna be a problem for Xen in the medium future, probably. The Linux world wants the Linux kernel, Linux, to be a hypervisor, so when you’re running a virtual server, we’re gonna see that Linux is running on the hardware, not some little hypervisor thingy. So it’s a matter of mismatch of technical directions between Xen and where the Linux world is going. And specifically with respect to the Intel VT extensions…
[b]J:[/b] …virtualisation extensions… this new thing called kvm, for Kernel Virtual Machine, looks like how the Linux world is gonna interact with VT. I don’t know know exactly how to pronounce the name, but Avi Kivity is really… he posted kvm some time in fall; late summer, early fall, I guess, and people looked at it and it really looks… it’s a very clean, simple way of getting access to the functionality, and so it looks like a very nice way of accessing that stuff.
[b]B:[/b] So you think that’ll become adopted by the Linux world faster than Xen, or…?
[b]J:[/b] Um, I would guess so. It’s early days right now but kvm is in 2.6.20, and the distros will have to follow that. They’re gonna have to ship… distros are gonna ship 2.6.20 at some point, it’s gonna come with kvm, and so the distributions have a decision to make. Are they gonna continue with Xen, or are they going to follow the Linux kernel world, with the kvm-based approach?
[b]B:[/b] I did see some confusion on some of the comments that people had – they were saying that, y’know, Xen is already in the kernel, but it’s not in the kernel…
[b]B:[/b] …it’s included in the distros, but not…
[b]J:[/b] The distros have it, and it’s causing them some pain as well. Dave Jones is the Fedora kernel maintainer, he’s made noises about throwing Xen out of Fedora. Which would cause… well, some difficulties later, further down the road.
[b]B:[/b] So you see that the development is gonna continue with… you’re gonna continue developing UML… and I guess, what’s your plans for the future with UML?
[b]J:[/b] Um, right now I’ve got SMP stuff going into the tree. It’s– getting SMP going is my current project. By which I mean supporting guests with multiple virtual processors, regardless of how many physical processors are on the host.
[b]J:[/b] Then it’s kvm, and I’ve got the UML side of that already done, it was done by a couple Intel engineers in Russia. And then the host side of it is very nicely taken care of by kvm. It looks almost trivial to write a little program… what you have to do is write a little process that controls what happens whenever the virtual VT context traps out for one reason or another. Your process gets control back and has to decide what to do, and then once it’s done it, it continues the virtual context. And that looks almost trivial for UML. So that’ll be the next project, to get that going, and then there’s the… for people who are not blessed with VT-capable hardware…
[b]J:[/b] …erm, there’s the container stuff which UML can also take advantage of to greatly improve its efficiency.
[b]B:[/b] By "containers"… would that be similar to Solaris containers?
[b]J:[/b] Solaris zones, as far as I’m aware, are an all-or-nothing proposition. You create a zone and it’s essentially a new copy of the operating system, and it boots up, and you have a new copy of the same OS that you’re running on the kernel… sorry, on the host… and you [i][?][/i] virtual hardware, and you do whatever you need to inside it. The container stuff that is going into the kernel is much more… [i]? la carte[/i] than that. You can choose to "jail", or containerise, a process or set of processes with respect to, let’s say, memory.
[b]J:[/b] But they’re unrestricted in every other way. Or you can restrict their access to the filesystem, like a chroot is essentially a container, except we hadn’t called it that before the containers came along. You can choose to put it in a filesystem jail, and a network jail, but leave them unrestricted in every other way – or you can just jail them totally; restrict access to all the resources, in which case you get something like a Solaris zone.
[b]B:[/b] Well, it was a pleasure speaking with you.
[b]J:[/b] You too.
[b]B:[/b] Alright, take care. And now I have with me Christopher Aker, founder of Linode. How are you doing today?
[b]CHRIS[/b]: Good, how are you?
[b]B:[/b] Erm, could you tell us a little about your company, Linode?
[b]C:[/b] Sure. I started working on Linode shortly after resigning from a position at a company that does online continuing education credits for the healthcare industry, and, uh, I was ready to have a go of my own company, and left the company before I had any idea what I was going to do. But prior to that job, I had actually started a side business doing simple shared webhosting. I had about 50 clients, mostly friends of mine, but I had developed a small control panel and billing system for that business. And after quitting the healthcare job, I needed to find work, and discovered User-Mode Linux, and the rest is history.
[b]B:[/b] So it’s been pretty profitable for you?
[b]C:[/b] Yeah, it’s been a great venture, and I have to say much of the success of User-Mode Linux is its fantastic technology.
[b]B:[/b] We’ve just heard from Jeff talking about User-Mode Linux and how it works… what made you decide to go the User-Mode Linux route?
[b]C:[/b] Well, when I first started out doing this – this is probably over 4 years ago – there really weren’t many virtualisation technologies out there. And, I don’t know, User-Mode Linux is just… it hit the spot for me, I guess. It worked, it was mature, it didn’t crash, and it was something I saw that we could use to build a successful business off of.
[b]B:[/b] A lot of our viewers probably don’t know this, but actually Virtual Strategy Magazine was one of your first customers…
[b]B:[/b] …well, I wouldn’t say first, but… we were an early adopter of User-Mode Linux and we still to this day are running on Linode.
[b]C:[/b] Right. Yeah, Linode.com itself, the webserver itself runs on top of a Linode, and obviously we use User-Mode Linux for our virtualisation technology.
[b]B:[/b] Can you maybe tell us a little about some of the tools that you built to allow your customers to be able to control their Linode remotely?
[b]C:[/b] Sure. I developed the Linode Platform Manager, and it’s a web-based control panel that allows you to deploy Linux distributions, control configuration profiles – and that involves which virtual disk images are attached to which device node, the kernel that you select to boot into, booting, shutting down, and also out-of-band console access through LISH, the LInode SHell.
[b]B:[/b] And you offer quite a few different distributions that are just drag-and-drop, start it up, and you get your full installation.
[b]C:[/b] Right. Yeah, we’ve been looking at potentially offering… I guess the term is "virtual appliances", that are preconfigured. So we’ll have, like, a LAMP stack, maybe we’ll offer a kind of web hosting control panel pre-installed into the distribution, that kind of thing.
[b]B:[/b] That’s great.
[b]C:[/b] But right now they’re all pretty much just bare bones, and you need to go in and install whatever you want to.
[b]B:[/b] Mmhmm. Are there any plans to move to a different platform, or are you pretty happy with staying where you are with User-Mode Linux?
[b]C:[/b] Well, we’re pretty happy with UML. We actually reworked our entire infrastructure to support Xen, so our implementation of Xen is complete, and most of our host machines could be converted to Xen with just a reboot of the host server. But our Xen beta test hasn’t had the success that we hoped for, and in my opinion – at least with our experience – it isn’t production-ready, or at least isn’t, or wasn’t at the time we pulled in the last Xen revision, which was about 3 months ago.
[b]B:[/b] What’s been some of the pitfalls that you’ve come across with trying to implement Xen?
[b]C:[/b] Well, two things really. One of them is stability – which I’m sure that the Xen guys are working hard on improving. And the other thing was just the lack of finite resource control, specifically disk I/O. It makes it incredibly easy for one virtual server on a host to basically monopolise the disk and prevent other virtual machines on the host from accessing the disk. Now, some of that can be cleared up with a CFQ scheduler, the Completely Fair Queueing scheduler, but it still doesn’t do it to the point that we would need; that I would feel comfortable in deploying Xen.
[b]B:[/b] So, um, what are your plans for the future? Are you looking to continue to expand?
[b]C:[/b] Yeah, in fact, tomorrow we’re deploying servers at a new datacenter in Atlanta, so that’ll be the third datacenter for us. We currently have a datacenter that we’re using in Dallas, Texas, and also one in Fremont, California, so we’ll have… kind of the East coast, Central, and then the West coast handled. All of our new machines that we’ve been deploying have the hardware virtualisation support, so kvm is something that we’re looking at, and Jeff has mentioned that he’s going to make User-Mode Linux a plugin for kvm, which should remove most of the overhead that exists in User-Mode Linux today, and I think it’s also noteworthy that Jeff has been working on SMP support for UML, which will further improve User-Mode Linux’s performance.
[b]B:[/b] Right, and that’ll allow you to do multiple processor— or…?
[b]C:[/b] Yes. Right, guests will have multiple, I guess virtual CPUs, but they’ll be able to utilise CPUs on the host or [i][?][/i] on the host as well – ‘cuz right now, it’s single-threaded.
[b]B:[/b] Well, I want to thank you for taking the time to speak with us today, and maybe you can tell us a little bit more about where they can find out more information about Linode, if they want to open up their own account?
[b]C:[/b] Sure, right. Well, thanks for having me, Brian. If you’re interested, you can check out Linode at [url=https://www.linode.com/]Linode.com[/url] – that’s L-I-N-O-D-E dot com.
[b]B:[/b] Great. You’ve been listening to the Virtual Strategy Magazine podcast. Check us out on the Web at [url=http://www.virtual-strategy.com/]www.virtual-strategy.com[/url].