In my last post I covered off Docker, and I touched on how containers have exploded in use over the last couple of years. One thing that I didn’t go into detail about is the underlying storage for these containers. In a lot of cases, these containers will get spun up and not have any persistent storage. Docker does allow for the use of persistent storage with its containers, but it can be a little limiting.
StorageOS has recognized this challenge and has developed a solution to the problem. Before I go too deep, let’s get a bit of background on the company. They are quite new, in the grand scheme of things, having just been founded in 2013, and are based out of London, UK. They are getting out and about a bit lately though, having a presence at both DockerCon US 2016 and TechCrunch Disrupt London 2015. Tech Field Day 12 marks their first time at a TFD event.
So, back to persistent storage and containers – how does StorageOS overcome this challenge? In the form of a software-only solution, StorageOS delivers block storage capabilities by using its own container. Basically, they aggregate storage from a variety of sources (disk or cloud), abstract it with their technology, and present it to the containers. The solution is currently fully integrated with Docker and Docker Swarm.
What kind of benefits can you expect?
Suppose you have a database running in a container running on Node A, and the node fails. Using a scheduler like Docker Swarm, Kubernetes, or Mesos, you can automatically bring it back up on a different node (e.g. Node B). Without any sort of persistent storage, that data would all be gone. With StorageOS however, that data is available to the various nodes, so when it is brought back up, things were just as you left them. Think of it almost like having an NFS share mounted on Server A, that server goes down, so now you mount it on Server B.
StorageOS runs in its own container, which weighs in at just 40 MB. Some of its features include block level replication, compression, and deduplication. This is starting to sound like enterprise storage, isn’t it? What I truly marvel at is how it can do all of this with less storage than my last printer driver required.
Taking a look at the dashboard shows a nice, clean interface. The storage admin side of me is happy :). The system also uses labels throughout as an easy way to figure out what each volume is and what is used for. In order to assign storage to a volume, though, it first must be pulled from a pool. This is where things get nice – pools consists of whatever storage chunks you put in there. You could, for example, have one pool that is spinning disk, another one comprised of SSD, and a third that is cloud storage.
Some other nice features that are baked into StorageOS include encryption for data that is at rest, as well as in motion. Along with that, containers are automatically placed as ‘close’ to the storage as possible with regards to the nodes it is running on.
As a self-professed container newbie, I’ll definitely be digesting a lot of knowledge going into this Tech Field Day. I have a basic understanding of what containers are, and how they work, but I have not had a chance to tinker with them in production. By the end of the event, I’ll either be incredibly confused or (hopefully) much more comfortable with containers.
Disclaimer: I was invited to participate in Tech Field Day as a delegate. All of my expenses, including food, transportation, and lodging are being covered by Gestalt IT. I did not receive any compensation to write this post, nor was I requested to write this post. Anything written above was on my own accord.