As time flies, the goals for an universal storage control plane keep evolving.
- libstoragemanagement is a SMI-S based framework. It supports C and Python binding.
- OpenStack Cinder manages block storage on heterogeneous backends. It is mostly used for Virtual environment (Nova), although undercloud could also use some Cinder volumes.
- OpenStack Fuxi is a young project with an ambitious goal of storage management for Containers, VMs, and bare metal machines.
- Dell/EMC projects that are yet widely inter-operable.
- Virtualized backend by presenting a virtualized block storage based on a well formatted image encoding or API. The control plane and data plane are blurred because they are specified by the image format or the API.
- QCOW(2) from QEMU. Although it mostly targets VM storage, recent qemu-tcmu proposal and work make QEMU able to work with Container and bare metal as well.
- VAAI from VMWare. VM only?
- Container engines and orchestrators
- Kubernetes and Docker Volumes support Cloud, virtualized, and NAS: AWS, GCE, OpenStack, Azure, vSphere, Ceph, Gluster, iSCSI, NFS, Fibre Channel, Quobyte, Flocker, etc.
- Storage features such as provisioning, attach/detach, snapshot, quota, resize, protection are either implemented or in road map.
Recently I read several interesting research and analyst papers on Docker container security.
SCONE: Secure Containers using Intel SGX describes an implementation of putting Container in the secure enclave, without extensive footprint and performance loss.
Hardening Linux Container is a very comprehensive analysis of Containers, virtualization, and underlying technologies. I find it very rewarding to read it twice. So is the other white paper Abusing Privileged and Unprivileged Linux Containers.
So far all these are based on Docker Containers that runs on top of a general purpose OS (Linux). There are limitations and false claims.
What about running an unikernel in SGX? It is entirely possible, per Solo5. And what about the next step to make unikernel, running inside SGX, a new container runtime for Kubernetes, just like Docker, rkt, and hyper?
There are quite some good talks.
I wrote about hyper a while back. Now it is full fledged Hypernetes: run Docker image in VM, Neutron enabled, modified Cinder volume plugin. And it is Kubernetes outside! Folks at hyper did lots of hard work.
The talk itself got lots of attention. Dr. Zhang posted his slides. I must admit he did a good job walking through kubernetes in a very short time.
It is a well felt frustration across the industry that look-and-feel of multi-vendor storage is different and management frameworks (e.g. Cinder, Kubernetes and Mesos) have to take pain to abstract a common interface to deal with them.
Open SDS aims to end this by starting a cross vendor collaboration. It is interesting to see Huawei and Dell EMC were standing on the stage together.
I talked about the opportunities a converged QEMU and TCMU offers. Think about Cinder but without Nova to access storage. While there are efforts to make Cinder (and hypervisor storage) into bare metal and Container, QEMU+TCMU is probably one of the most promising framework.