Cloud-Native Storage: The Cornerstone of Cloud-Native Applications

Basic Concepts of Cloud-Native Storage

  • Application containerization
  • Service meshing
  • Declarative APIs
  • Elastically scalable operation
  • Automated DevOps
  • Fault tolerance and auto-recovery
  • Portable and platform-independent

Characteristics of Cloud-native Storage

(1) Availability

(2) Scalability

  • Increase the number of clients that can access the storage system (for example, the number of clients that can be concurrently mounted to a NAS volume);
  • Scale up the throughput and I/O performance of individual APIs; and
  • Expand the capacity of individual storage service instances, such as the scaling of a cloud disk.

(3) Performance

  • The maximum number of storage operations per second, or input/output operations per second (IOPS); and
  • The maximum storage read/write throughput per second, or throughput.

(4) Consistency

(5) Persistence

  • The level of system redundancy;
  • The durability of storage media (such as SSDs or HDDs); and
  • The ability to detect data corruption and use data protection features to rebuild or recover corrupted data.

Data Access Interface

Tiered Cloud-native Storage

(1) Orchestration and Operating System Layer

(2) Storage Topology Layer

(3) Data Protection Layer

  • Redundant Array of Independent Disks (RAID): This is a technology for distributing data across multiple disks while considering redundancy.
  • Erasure coding: Data is divided into multiple segments that are encoded and stored together with multiple redundant data sets to ensure data recoverability.
  • Replica: The data set is replicated across multiple servers so that multiple complete replicas of the data set are available.

(4) Data Services

(5) Physical Layer

Storage Orchestration

  • “Load” indicates application instances that consume underlying storage resources.
  • “Orchestration System” is a container orchestration system similar to Kubernetes that is used for application management and scheduling.
  • “Control Plane Interfaces” are the standard interfaces for scheduling and operating on the underlying storage resources of an orchestration system, such as Flexvolume in Kubernetes and CSI in container storage.
  • “Access Tools” are the third-party tools and frameworks that control plane interfaces depend on to operate and maintain storage resources.
  • The “Storage System” comprises the control plane and the data plane. The control plane exposes interfaces externally to enable the access to and egress of storage resources. The data plane provides data storage services.

Common Cloud-Native Storage Solutions

Public Cloud Storage

  • High reliability: Most cloud vendors provide services with high stability and outstanding data availability. For example, Alibaba Cloud’s Elastic Block Store (EBS) offers a 99.99999999% reliability, providing a strong and fundamental guarantee of data security.
  • High performance: Public clouds offer various levels of storage performance to suit different services, allowing them to meet the storage performance requirements of almost all applications. Alibaba Cloud’s EBS is capable of millions of IOPS, similar to the performance of access to local disks. Apsara File Storage NAS provides a maximum throughput of dozens of Gbit/s, enabling it to meet the rigorous performance requirements of data sharing scenarios. However, a CPFS high-performance concurrent file system can provide a throughput of up to one Tbit/s, enough to satisfy the storage requirements for extremely high-performance computing.
  • High scalability: Generally, public cloud storage services are capable of capacity scaling, which allows you to dynamically scale the capacity when an application requires more storage without affecting the application.
  • Robust security: Different cloud storage services provide data security protection mechanisms that use encryption technology, such as KMS or AES, to encrypt and store data. They also implement link encryption solutions from the client to services, so that data transmission is also encryption-protected.
  • Mature cloud-native storage interfaces: The cloud-native storage APIs are compatible with all types of storage, allowing the applications to seamlessly access different storage services. The CSI driver provided by Alibaba Cloud’s Container Service supports cloud disks, OSS, NAS, local disks, memory, LVM, and other storage types, allowing applications to seamlessly access any type of storage service.
  • Zero maintenance: Compared with user-created storage services, public cloud storage solutions save users the trouble of having to perform O&M.
  • Poor customization: As public cloud storage solutions need to satisfy the needs of all user scenarios, their capabilities are designed to meet general needs, rather than the personalized needs of specific users.

Commercial Cloud Storage

  • Robust security: Deployment in a private cloud can securely physically isolate data.
  • High reliability and high performance: Many cloud storage providers have dedicated years of work to storage technology and possess outstanding technical and O&M capabilities. Their commercial storage services can meet the performance and reliability requirements of most applications.
  • Cloud-native storage interfaces: The open-source projects launched by various storage service providers indicate that they already support or are starting to support cloud-native applications.
  • High cost: Most commercial storage services are very expensive.
  • Compatibility of cloud-native storage interfaces: Commercial cloud-native storage APIs are usually specific to only one storage type. Most users use a diversity of storage, but if they have to use various storage services at the same time, it is very difficult to achieve unified storage access.

User-created Storage Service

  • File storage: Available solutions include CephFS, GlusterFS, and NFS. The technical maturity of CephFS and GlusterFS requires further verification, and their capabilities are insufficient for high reliability and high performance scenarios. Although NFS is mature, its performance in user-created clusters cannot meet the needs of high-performance applications.
  • Block storage: Common block storage solutions, such as RBD and SAN, are relatively mature technologies and used by many companies in their own services. However, they are quite complex and require a dedicated team to support and maintain them.
  • High flexibility and can be matched to business needs: Users can choose among many open-source solutions and use the one most suitable for their business needs. Then, they can conduct secondary development on the native code to optimize the solution for their specific business scenarios.
  • Robust security: If a user-created storage service is used within a company, it can provide secure physical isolation.
  • Cloud-native storage interfaces: Almost all common open-source storage solutions can be implemented by using the cloud-native storage interfaces from the developer community. These interfaces allow users to further develop and optimize the solutions.
  • Weak performance: Most open-source storage solutions have weak native performance. Of course, the solutions can be optimized through architecture design, physical hardware upgrades, and secondary development.
  • Poor reliability: Open-source storage solutions are not comparable to commercial storage in terms of reliability, so they are more frequently used in data storage scenarios with low service level requirements.
  • A myriad of cloud-native storage plug-ins: Currently, there are many versions of open-source cloud-native storage driver available online, with widely varying quality. Some projects have bugs and have been left unmaintained for a long time. Therefore, uses must take time to identify appropriate plug-ins and fine-tune them.
  • Professional team support: Users are themselves responsible for operating and maintaining the user-created services. When they use less mature open-source solutions, they must create a team of highly skilled professionals to operate, maintain, and develop the storage system.

Local Storage

  • High performance: This solution supports higher IOPS and throughput relative to distributed storage.
  • Low price: Local disks can be directly provided through raw devices, which is a lower-cost solution than distributed storage with multiple replicas.
  • Poor data reliability: Data stored on local disks cannot be recovered after it is lost, so users must implement a high-availability data architecture on the application layer.
  • Poor flexibility: Data cannot be migrated to other nodes as on a cloud disk.

Open-source Container Storage

(1) Rook

  • Operator: This component is used to automatically launch the storage cluster and monitor the storage daemon to ensure the health of the storage cluster.
  • Agent: The agent component runs on each storage node and deploys a CSI/FlexVolume plug-in for integration with the Kubernetes volume control framework. The agent processes all storage operations, including mounting storage devices, loading storage volumes, and formatting file systems.
  • Discovers: This component detects storage devices attached to a storage node.

(2) OpenEBS

  • The data plane provides data storage for applications.
  • The control plane manages OpenEBS containers. This usually involves the functions of Container Orchestration software.

(3) Heketi

Advantages of Open-source Container Storage

  • The designs of the cloud-native storage solutions described in the proceeding sections consider the integration of storage and cloud-native orchestration systems and access to container data volumes.
  • These solutions can be integrated with cloud-native applications to support quota configurations, QoS speed limiting, ACL control, snapshots, and backup as well as facilitate flexible and convenient use of storage resources.
  • These solutions are open-source and have many active users in the developer community. Their abundant online resources and solutions make adoption simple and easy.

Disadvantages of Open-source Container Storage

  • These solutions are less mature and are still mostly used in internal test environments or with applications with low service level requirements. They are rarely used to store critical application data.
  • Poor performance: The preceding cloud-native storage solutions are outperformed by public cloud storage and commercial storage in terms of I/O performance, throughput, and latency, so they are rarely used in high-performance service scenarios.
  • High subsequent maintenance costs: Although these solutions are easy to deploy and adopt, they are difficult to troubleshoot if anything goes wrong during operation. These projects are still at an early stage of development and not ready to serve in production environments. When using any of these solutions, users need to establish a strong technical team to ensure they can deal with any problems.

Current Situation and Challenges

Agility Requirements

  • Improved efficiency in mounting and detaching cloud disks: The mounting and detaching of block devices must be flexibly performed on different nodes.
  • Improved self-recovery capabilities for storage devices: The storage services must be automatically recoverable to reduce human intervention.
  • Solutions must support the flexible configuration of volume sizes.

Monitoring Requirements

Performance Requirements

  • The performance of underlying storage services needs to be improved, which can be achieved by optimizing high-performance storage services such as CPFS and GPFS to meet business needs.
  • At the container orchestration layer, the storage scheduling capabilities need to be optimized, enabling adjacent storage access and distributed data storage to reduce the access pressure on individual volumes.

Shared Storage Isolation

Original Source:

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alibaba Cloud

Alibaba Cloud

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:https://www.alibabacloud.com