What role does container technology play in data center storage?
Container is one of the most popular topics in the VMworld 2015 Conference. VMware clearly shows that the container and Virtual Machine mashups will quickly enter the enterprise data center. IT organizations still need to defend security and data management needs, and even containerized applications are no exception. VMware has already delivered containers on the Virtual Machine side, and the related design has been successful. The virtualization and cloud management solutions have been extended for support (and I think they will eventually work together) containerized enterprise projects.
VMware's new vSphere integrated container (VIC) makes managing and ensuring the security of containers running on virtual machines (Virtual container hosts) almost the same as managing and ensuring the security of traditional virtual machines. As the first-class IT management object, VIC appears in VMware management tools and inherits many VM management functions provided by vSphere, including powerful security. This allows all VMware customers to smoothly adopt container technology.
However, we believe that the real turning point of the application container will be when the container goes beyond the simple stateless computing engine and processes persistent data directly. By that time, containers must be limited by the scope and scale.
What is in the container?
In short, the container encapsulates and isolates application code in the process, so that the Code considers itself exclusive to a machine and transfers all system service calls to the container host. Since containers are actually processes, many (possibly thousands) containers can easily share a single physical or virtual server.
Applications think they have a complete Operating System (like running in a virtual machine), but these applications are actually operating systems on the shared host. The isolation between applications is lower than that when running in a virtual machine, but the efficiency is higher (because each container does not run its own operating system ).
Container has some other advantages. Containers run in the user space, so the possibility of damage, obstruction, or kernel-level crash is very small. Containers can be quickly copied, usually cached, and easily adjusted. Containers can be built almost anywhere (such as a developer's MacBook) and run anywhere (such as Amazon Web Services ). This means that the container is stateless in its initial design and does not include the data to be protected or retained.
Initially, containers were designed to build microservices. The microservice architecture is ideal for applications designed to run on the cloud. These new applications are stateless because they do not store internal data and can be dynamically adjusted based on operational needs.
However, container application storage is still a tough issue. Applications running in the container can access the local operating system storage, but if the container is migrated (or cloned, copied, and so on) to another container host, the data on the current host will not be taken away. Therefore, stateless containers are not suitable for applications that require reliable and persistent data services. Microservices that keep data in cloud storage such as Amazon S3 run well at the microsession level, but most applications do not have.
Solution to storage problems
This means that containers will be only a small role in the future data center, only for developers or brand new cloud hosting microservice applications? We believe that the advantages of containers are extremely attractive, so that enterprise data centers cannot be ignored, and as you may have guessed, container data management products are standing out.
For example, floterhq's Flocker enables the container to mount a unique Flocker dataset and move it along with the container. Flocker partitions the dataset and mounts the shared block storage to all container hosts. With this solution, containers become "stateless" and can easily carry almost all applications, even databases such as MongoDB and MySQL.
Flocker 1.3 supports OpenStack Cinder block storage and comes soon from custom drivers from vendors such as EMC, NetApp, Hedvig, and Nexenta. At the VMworld conference, VMware announced its support for Flocker so that containers can use any storage mounted by vSphere. This also includes vSAN and third-party storage that supports Virtual volumes. The above scenarios are very interesting because they have added clear storage services, such as the storage QoS for each container.
In its limited stateless composition, containers and virtual machines perform their respective duties. Since containers directly support virtual storage, hypervisor vendors need to provide high value-added features. Since the data center in the future may be a mixture of virtual machines/container environments, there will be a large number of containers in the virtual machines (and support hybrid and DevOps-centric cloud operations ), therefore, hypervisor vendors have great opportunities to provide overall management solutions.
Containers are helping us build a more fluent, agile, but ultimately complex environment. This means that we need better security tools, more dynamic networks, and more adaptive storage. Make sure that we know how IT organizations adapt to and adopt container products, and what challenges exist when container technology is widely used.