If you live in the world of data center architecture and operations strategy then you have witnessed the shift over the last several years to containers. As cloud and cloud-connected applications have become more mainstream containers are becoming the go-to option. A form of virtualization that focuses on the operating system rather than the physical server itself, containers are tightly tied to development and operations (DevOps) frameworks that allow developers and IT administrators to rapidly develop and deploy applications to their customers. We at Micron, as a leading memory and flash provider, have a keen interest in the changing dynamic of the IT industry and how these changes either impact, or are impacted by, storage technology.
Based on our own tests running applications in Docker container environments and available research*, the results show that, in most cases, containers introduce very little additional performance overhead when using persistent storage outside of the container. This tells me that, as we evaluate storage solutions for container deployments, we can use the results from past performance analysis of various bare-metal workloads to predict the performance of the same workload when using that same storage solution with containers.
Most persistent storage solutions will use either small deployments using server-local storage or larger, remote deployments that will use some form of remote, disaggregated SAN/NAS storage. While it is beyond this discussion to fully describe each of these options, I would refer you to the following from Network Computing and Computer Weekly that discuss this in detail. For this discussion, I will submit to you that SSDs will provide the most efficient, highest performance storage solution for your container solution regardless of scale.
With a broad availability of SSD interface types, endurance levels, performance and capacity options, SSDs can provide the flexibility to meet the performance and design criteria of your container deployment. In addition, you can use SSDs in a variety of storage solutions for containers including local server storage to host the containers themselves and any non-persistent or persistent storage that may be required as well as in a variety of hardware-based remote SAN/NAS solutions or the latest in software-defined storage (SDS) solutions, such as CEPH® or Microsoft™ Storage Spaces Direct, that can take advantage of NVMe® SSDs and RDMA networks to provide the lowest latency available for remote storage solutions.
If we take the research referenced above as accurate, then we can use existing performance data for various workloads and apply that to our expectations of the same workload running in a container. Our experience with Cassandra (Figure 1) running on bare metal servers can be a proxy for a containerized Cassandra solution using server-local storage. We have seen that both NVMe and SATA SSDs can provide dramatic performance increases for a solution with the same capacity based on 15K SAS HDDs depending on the workload profile and do so with less than 1/10th the power consumption. These performance advantages should translate to containerized implementations as well.
In addition, we ran a series of tests of MySQL® running in a container using a dedicated non-containerized CEPH® SDS cluster. Using an OLTP focused test that is similar to the TCP-C™ benchmark, we easily scaled to over 1 million transactions per minute using 10 instances of the MySQL database.
For large container deployments that have a need to leverage large amounts of persistent storage, SDS solutions such as Ceph (for Linux containers) or Storage Spaces Direct (for Windows containers) should be considered. Micron is doing a lot of work with both SDS solutions and can provide you with scalability and best practices guidance. You can see more details about our Ceph solutions as well as others by visiting our Micron Accelerated Reference Architecture portal.
For smaller container deployments or those where server-local storage is used, enterprise SATA and NVMe SSDs will meet, or exceed, your needs. Learn more about the advantages of Micron Enterprise SSDs for your solution here.
We have seen repeatedly that SSDs dramatically improve every workload we have tested in terms of IO performance, latency, and in many cases cost efficiency. SSDs provide incredible reliability and endurance advantages over HDDs. Continuously evolving SSD technology is removing the last vestiges of performance bottlenecks that are part of our HDD legacy resulting in ultra-high-performance advantages across all types of workloads, including containers. The low latency characteristics of solid-state storage provides the performance that on-demand containers and web services needs to service your users. If you are not considering SSD solutions for your container project, you are leaving a lot of performance on the table and reducing the value of containers as an efficient compute platform that allows you to do more with less.*http://storageconference.us/2017/Papers/PerformanceAnalysisOfContainerizedApplications.pdf; https://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C85257D2300681E7B/$File/rc25482.pdf