Canonical
on 15 June 2020
With more than 1.5 million global customers – including Sainsburys and Michelin – OVHcloud is Europe’s largest cloud computing provider, and the third largest web hosting company in the world. It goes without saying that storage is mission critical for an organisation like OVHcloud, but finding a solution that was compatible with their existing software environment was a challenge until they discovered LXD.
The systemd challenge
OVHcloud offers a wide range of cloud-based services, and two of them – Public Cloud Block Storage, and Cloud Disk Array – rely on Ceph. About a year and a half ago, the company set its sights on creating a next-generation Ceph solution with all flash storage. However, this kind of solution would require newer versions of Ceph – versions that OVHcloud’s existing software environment could not support.
Filip Dorosz, DevOps Engineer at OVHcloud, explains: “We quickly realised that it would be impossible to run newer Ceph releases on our legacy software because they required systemd, and we didn’t run systemd at all: neither inside the containers nor on the hosts.”
OVHcloud effectively uses containers as lightweight VMs and, at the time, it utilised Docker as an entry point. But this was an unusual use case for Docker, and not one that it was well-suited for in the long-term. It became clear that the company needed a new solution, with systemd support, that was designed for running a complete operating system within a container.
Search for solutions
“We initially considered packaging Ceph ourselves and removing systemd,” continues Filip Dorosz. “But that would have been a lot of work for minimal value, and we would have lost the benefit of community-tested Ceph packages.”
Next, OVHcloud evaluated LXC. First launched as an open source project back in 2008, LXC has long been a staple for operating-system-level virtualisation. Since the company already used LXC as its Docker backend, it seemed like a natural choice; and it offered all the features that OVHcloud needed. The downside was ease-of-use. With LXC, OVHcloud would have had to code all of the container-related automation itself, which would have been an immense undertaking.
This is where LXD came in.
Founded and led by Canonical, LXD builds on top of LXC to deliver an enhanced, more intuitive user experience that represents the next step in system container management. It offers all the same capabilities as LXC, while enabling users to manage containers over the network through a REST API using a single command line. And just like LXC, it is free, open source software.
“I installed Ubuntu on my developer servers and then installed LXD,” says Filip Dorosz. “In just a few hours, I successfully set up a Ceph cluster running Mimic inside LXD containers. It was that easy.”
LXD at scale
LXD had emerged as the ideal solution, and now all that remained was to industrialise it for use on the enterprise scale. OVHcloud’s key requirement was a Puppet module for LXD so that it could manage containers via the host. At the time, there was no such module, so OVHcloud decided to build one itself – and it has recently open sourced the module on GitHub.
The company is now moving to production with the new solution, enabling the switch to all flash storage with no HDDs.
Filip Dorosz concludes: “Our plan is to migrate our entire legacy infrastructure – more than 50PB spanning 2,000 dedicated servers – to the LXD-based solution.”
To learn more about LXD, or to try it for yourself, visit linuxcontainers.org.