July 10, 2013

How Joyent Uses OS Virtualization to Deliver its Manta Object Storage Platform

Isaac Lopez

The infrastructure service cloud provider, Joyent, has plunged deeper into the big data game with Manta, their own cloud object store and data services platform that they claim will serve to spur a wave of big data innovation in the cloud.

The recently announced Manta is described as a highly scalable, distributed object storage service with integrated compute.  We caught up with Joyent Senior Vice President of Engineering, Bryan Cantrill, who oversees the development of Joyent’s core platform, to talk about their latest step into the big data arena and where they are going with Manta.

Cantrill explained that Joyent differentiates themselves from competitors like Amazon and Rackspace through their fundamental approach to the entire stack. “In order to be able to innovate up-stack with cloud services, you need to own the entire stack of software, down to the hardware,” he said, noting that Joyent owns their own operating system, the hypervisor, and language runtime. This, he explained, allows them, with Manta, to attempt new ways to virtualize which he says others can’t provide.

“There is another way to virtualize, which is to do it not in terms of hardware, but in terms of the OS,” he explained. “Instead of giving a tenant a virtual microprocessor, you give them a virtual operating system that looks and feels and smells like its own machine, but it’s actually at a higher layer of abstraction.”

What this means, he says, is that the applications that run in a virtual OS actually run on the hardware with no intervening second operating system in the stack. Cantrill explains using a tenant who wants to spin up some infrastructure with a gigabyte of DRAM. In the hardware virtualized model, the hypervisor needs to take a gigabyte of DRAM and give that to the operating system that is sitting on top of the virtual hardware. “Now if you put your app on top of virtual hardware that only uses 500 megabytes of DRAM, there’s 500 megabytes left there that is simply lost to the sytem,” he says, explaining that the system has no real way of reclaiming it.

Cantrill says with hardware virtualization, this is true across the line for all the physical resources, including DRAM, CPU, the network, etc. “With hardware based virtualization, the hypervisor is forced into these really blunt, course decisions that really prohibit tenancy and performance.”

On the other hand, Cantrill explains that using an OS virtualized model – as Joyent does with its Manta service – you get the resources that you ask for because your processes are simply processes in the larger OS. “What that means is that tenancy is much higher with a much lighter weight abstraction,” says Cantrill. “You can get many more of them on the box and they can perform at a much higher level because they’re all on the hardware.”

While the downside is that the tenant is not able to pick their own operating system – they would need to execute with virtualized hardware to do that – the upside, says Cantrill, is a significant performance benefit because the user is able to run their applications directly on the hardware, where the data is.

“We’re the only cloud provider that owns our own operating system,” says Cantrill. “What OS level virtualization allows us to do uniquely is have an object storage service (Manta) in which you can put objects, and then when you with to actually compute upon thos objects, instead of needing to get the objects out of the service into transient compute (like you would with Amazon S3 and EC2), you can actually spin up a virtual OS instance on the data itself – on the storage node upon which the data lives – and then your compute can actually execute directly on the object.”

The use cases this model opens up are extensive, says Cantrill. “It’s one of the things that is so interesting about this technology,” he explains. “Every once in awhile you come up with a technology that unlocks so much that your customers actually start to tell you how they’re going to use it.”

“For us personally, I can tell you that the rubicon that we crossed is when we started to use Manta to implement Manta,” says Cantrill, explaining that there are a number of big data problems that they ran into as they implemented the object storage service, including metering. “We need to keep track of usage of the system, and the way that is historically done is by having big MapReduce clusters that run over logs. Within Manta, we can actually just pump those logs back into Manta and then run Manta jobs over the logs to meter the service – it was so much easier to do than the alternative.”

Log processing is one of the chief use cases that Cantrill says Manta is currently being used for. Transcoding multimedia is another, said Cantrill, who explained that with Manta, because the tenant doesn’t need to pull their images into transient compute, they can transcode them at rest and create new Manta objects as a result. “Transcoding in Manta is a one-liner,” says Cantrill.

Ultimately, Cantrill says Manta can be considered a big data cloud operating system – a claim which is becoming something of a trend – late last month we saw the preview release of Hadoop 2.0 which includes the YARN resource manager, which Arun Murthy says turns Hadoop from a single application system “to a multi-application operating system.” Cantrill takes umbrage with this.

“I don’t mean to sound pejorative towards Hadoop, but in terms of an operating system, there is a very ridged technical definition of what an operating system is, and I build one and they don’t,” he explained. “I’ve been doing kernel development for 20 years, and that’s the operating system. Everyone loves to call themselves an operating system, but ultimately if there is no kernel component to what you’re doing, then what you’re doing is an app.”

Cantrill says that this is an important distinction because he believes that the OS still has a ways to go in its development – going as far as calling it the nexus of innovation. “I’ve heard so many times over my career that OS development is dead, and not interesting – everything that you can do with the operating system has been done – and we’ve done so much interesting OS work after those points. It’s like the patent examiner in the 1890’s saying that everything has been invented.”

“I should be clear that Manta has got OS components for certain, but much of Manta is a distributed system on top of that operating system, so it’s really about the innovation in the operating system unlocking up-stack innovation and making sure that we work together as a team and make sure that if there’s something that we should do, we do it in the OS – we don’t try to work around it at a higher layer of software.”

Cantrill explains that this is the key difference between their approach and other multi-tenancy cloud operating system efforts. “They are actually working around or reinventing abstractions that should exist in the OS, or they’re working around abstractions that should exist in the OS,” he explains. “I think that what we’ve built can be said with a higher degree of confidence actually is a cloud operating system in that we are giving you the OS as the abstraction on your data.”

Related Items:

YARN to Spin Hadoop into Big Data Operating System 

The Art of Scheduling in Big Data Infrastructures Today 

Yahoo! Spinning Continuous Computing with YARN