Product Architecture
System Architecture
With the industry-leading performance, reliability, and manageability, ZStack ZStone supports storage resource pools with capacities in the tens of PB or more for large enterprises and carriers.
- High Cloud Integration: Block storage provides RBD cloud computing interfaces to integrate with various virtualization and cloud-native platforms, serving as a cloud foundation. Object storage offers full compatibility with cloud-native environments, supporting deployment across private clouds, public clouds, hybrid multi-clouds, and edge environments to deliver a seamless, consistent data experience.
- Comprehensive Monitoring: An independent monitoring system provides real-time, end-to-end oversight from hardware to networking, allowing you promptly assess storage performance and ensure data security.
- Low Hardware Dependency: Software-defined storage reduces vendor lock-in by supporting resource pooling across standard x86 servers, legacy servers, and domestic IT innovation servers.
- High Performance: SSD devices serve as cache to accelerate backend HDDs with their low latency and high IOPS. Therefore, the performance and capacity of ZStack ZStone scale linearly with server count.
- High Reliability: Technologies like replication and EC ensure data integrity during server failures, while strong consistency writes guarantee data consistency.

Hardware Device Layer
- Hard Disks: Compatible with mainstream enterprise-grade SATA SSDs, NVMe SSDs, and SATA HDDs.
- Networking: Compatible with mainstream 1G, 10G, and 25G NICs and switches.
Platform Layer
ZStack ZStone resolves the limitations of consistent hashing in storage services through its fault domain algorithm. In essence, the fault domain algorithm enhances the original hashing method by incorporating physical deployment logic and cluster status parameters. This minimizes data migration volume during cluster data relocation by considering the actual physical deployment. For example, based on the input physical logic topology, the fault domain algorithm can selectively perform intra-server migration or migration within the same rack or core switch, significantly reducing resource overhead caused by migration. Simultaneously, data distribution based on cluster state ensures full compatibility with different storage devices.
Data Layer
- Write Data: For write operations, system data is first written to the SSD write cache. The I/O request is immediately acknowledged once all replica write caches succeed. The cached data are evenly distributed across the data disks on each server. Concurrently, the system periodically flushes the write I/O data buffered in the SSD cache to the hard disks in batches. A flush is also triggered before the scheduled cycle if the cache utilization exceeds a predefined threshold.
- Read Data: For read operations, ZStack ZStone uses a multi-level Cache mechanism combining RAM Cache and SSD Cache, reducing access frequency to HDDs for hot data while improving the storage cluster’s read performance.
- Data Flush Policy: Flushing refers to writing data from the SSD cache to the backend hard disk via the cache component. After flushing to the disk, the data originally residing on the SSD remains available for read hits and does not immediately expire. That data is only reclaimed if the cache module identifies it as infrequently accessed cold data.

-
Supports management of multiple storage pools within the same platform.
-
Supports custom storage pool data redundancy types, including replication and erasure coding.
- Supports custom topologies and multi-level fault domains, including server, rack, and data center.
- Supports custom storage pool recovery QoS policies for data reconstruction scenarios.
- Supports unified management of native storage volumes and third-party storage volumes.
Interface Layer
- Block Storage: Provides virtual volume devices to operating systems (OS), the Cloud, and databases via the RBD interface.
- Object Storage: Provides S3 unstructured data storage services to third-party applications via the S3 interface.
Business Layer
ZStack ZStone supports integration with upper-layer services through block storage and object storage interfaces.
- Virtualization Cloud Platforms: Supports integration with ZStack Cloud, ZStack Cube and others.
- Cloud-Native Platforms: Supports integration with ZStack Zaku, ZStack Edge, ZStack RDS and others via CSI plugins.
- Third-Party Applications: Supports integration with applications requiring unstructured data storage via the S3 interface, such as video surveillance, medical imaging, and backup and archiving.
Core Components
ZStack ZStone distributed storage system follows a master-slave architecture, consisting of multiple Masters and Nodes. The entire system can be divided into a control plane and numerous Nodes managed by the plane.

Distributed Scheduling Component
The distributed scheduling component is a common distributed system component. Functioning as a task engine, it leverages the persistence and communication capabilities provided by ZStack ZStone to implement workflow orchestration, client and server architecture, state management and other functionalities. This component centrally manages business tasks within ZStack ZStone, providing the orchestration and scheduling of workflows and handling the collection and distribution of distributed tasks.
zstone-master
The zstone-master component is one of the most critical components of ZStack ZStone, enabling the platform’s full API capabilities. Installed on management nodes, this component provides RESTful API interfaces for platform management, along with security verification functions such as authentication and authorization, license services, and access control. It also manages the operational capabilities of the ZStack ZStone cluster.
- Supports HA mode.
- Decoupled from the data plane, supporting separate deployment.
- Provides standard RESTful API documentation based on Swagger.
zstone-ui
The zstone-ui component is built on the React.JS framework using a micro-frontend architecture. Deployed on an Nginx server, it provides a Web interface for user access and login. By invoking RESTful API interfaces, it enables resource management within ZStack ZStone through the Web interface. The micro-frontend architecture facilitates easier integration with other virtualization cloud platforms and cloud-native platforms, achieving seamless access to the ZStack ZStone management page.
zstnlet
The zstnlet component is installed on compute nodes, primarily responsible for communicating with management nodes and executing tasks scheduled to that compute node. The zstnlet component employs the gRPC-based communication protocol to enhance efficiency and stability while avoid security risks and vulnerabilities.
The zstnlet component schedules and manages various compute resources, including servers, hard disks, data disks, storage pools, and data volumes. It also handles lifecycle management for other services on the compute node, such as server startup/shutdown and data node bring-up.
zstnctl
The zstnctl component is an independent management tool within the ZStack ZStone distributed storage platform, primarily used by operations personnel for underlying maintenance work.
- Storage Cluster Management Tool: Supports management of storage cluster services
and configurations, including:
- Configuration management: Batch deployment of configurations across the cluster.
- Monitoring Node Service Management: Batch start and stop of monitoring services.
- Management Node Service Management: Batch start and stop of management services.
- Object Storage Gateway Service Management: Batch start and stop of object storage gateway services.
- Cluster Cleanup Tool: One-click cleanup of the current cluster.
- Object Storage Cleanup Tool: Supports one-click cleanup of all related resources in object storage, including object users, storage buckets, and object storage system resource pools.
- Cluster Cache Configuration Tool: Supports batch modification of cache configurations within the cluster.
zstnadm
The zstnadm component is the service management tool of ZStack ZStone, primarily responsible for cross-version upgrades and in-version upgrades of ZStack ZStone services.
zstone-alertmanager
The zstone-alertmanager component primarily provides alert messages for ZStack ZStone. Installed on the management nodes, this component integrates with Prometheus to generate and push alert messages to the relevant ZStack ZStone API interfaces upon detecting any abnormal monitoring metrics that satisfy predefined alert rules.
zstone-pushgateway
The zstone-pushgateway component is installed on management nodes and primarily aggregates monitoring metrics from all servers in ZStack ZStone for collection by Prometheus. Prometheus accesses the HTTP interface provided by the zstone-pushgateway component to obtain monitoring data.
