Introduction
ZStack ZStone is a distributed storage software designed for modern infrastructure. You can deploy it on any standard server to build simple, reliable, and cost-efficient storage infrastructure quickly. This document explains how to install, deploy, and start using the ZStack ZStone distributed storage platform.
Installation
Preparation
Prepare Software Tools
- ZStack Cloud ISO (H76C, Expert Mode minimum requirement).
Note:
- Versions before ZStack ZStone 4.2.0 require ZStack Cloud management node components including ZSHA2 (dual-management node mode) and MySQL.
- You can use Rufus (recommended) or UltraISO to burn the ZStack Cloud ISO image to a USB drive. For Rufus instructions, see Quick Installation Guide USB burning section.
- ZStack Cloud Enterprise Edition Toolkit: Contact technical support.
- ZStack Cloud Dual-Management Node HA Suite: Contact technical support.
- ZStack ZStone software package: Contact technical support.
Check Hardware Requirements
| Device | Component | Recommended Configuration |
|---|---|---|
| Server | CPU | 2*Intel® Xeon® Silver 4314 (16C 2.4GHz) |
| Memory | 4*32GB DDR4, up to 3200 MT/s | |
| System Disk | 2*Intel S4510/S4520 480GB (RAID1) | |
| Cache Disk | 2*Intel S5610/S4620 960GB (JBOD) | |
| Data Disk | 2/4/8/12/16TB HDD (JBOD) | |
| NIC | 4*1Gb+2*10Gb | |
| RAID Card | Supports both JBOD and RAID1 | |
| Network Switch | / | Equipped with at least a 1 GB switch and a 10 GB switch |
Verify Network Requirements
- Management network: No restrictions.
- Storage public network: We recommend 10GbE network cards. For small-scale deployments, you can share this with the storage cluster network. For large-scale deployments (10+ nodes), configure this separately from the storage cluster network.
- Storage cluster network: We recommend 10GbE network cards with LACP Bond configuration.
Install ZStack ZStone
- Default deployment: Use this mode when deploying in an existing ZStack Cloud environment.
- Hyper-converged deployment: When deploying ZStack Cube hyper-converged environment, ZStack ZStone comes pre-installed and requires no separate deployment.
Default Deployment
- Prepare your environment. The ZStack ZStone management service depends on ZStack Cloud management node services. Follow these steps:
- Deploy two ZStack Cloud in management nodes with HA
configuration.
Note: These dual management nodes will also serve as
ZStack ZStone management
nodes. - Deploy one ZStack Cloud in compute node or expert
mode.
Note: This node will function as a ZStack ZStone storage server node along with the
dual management nodes.
- Deploy two ZStack Cloud in management nodes with HA
configuration.
- Download the ZStack ZStone software package to any management node.
- Extract the installation package.
# Check the obtained installation package [root@localhost ~]# ls ZStone-x86_64-installer-5.5.6.tar.gz # Decompress the installation package [root@localhost ~]# tar xf ZStone-x86_64-installer-5.5.6.tar.gz - Navigate to the zstone-installer directory after extraction.
[root@localhost ~]# cd zstone-installer - Open and edit the install.conf configuration file.
[root@localhost zstone-installer]# vim install.conf # Leave the management node IP if only one manager is deployed; enter the VIP for dual management nodes. zstone_vip= # ZStone Manager hosts list. Separate the IP addresses of dual management nodes with commas. zstone_managerment_host_ip= # Management node SSH port. The default is 22. zstone_managerment_host_port=22 # Management node root passwords. Format: ["password1","password2"] zstone_managerment_host_rootpw=["password"] # MySQL info zstone_db=zstone zstone_db_user=root zstone_db_port=3306 zstone_db_password=zstack.mysql.password # Indicates whether to perform a custom database installation. # If set to false, the default cloud database will be used. zstone_master_db_customed_use=false # Required. Specifies the database type: mariadb or greatsql. # Only effective when zstone_master_db_customed_use is set to true. zstone_master_customed_db=mariadb # virtual_router_id for keepalived, must be unique in the network, and must be the same for all hosts. # Range: 1-255 zstone_master_keepalived_virtual_router_id=230 # Required. Specifies the host management network interface. # Only effective when zstone_master_db_customed_use is set to true. zstone_master_vrrp_interface=ens3 # Log level: trace, debug, info, warning, error, fatal, panic log_level=info # Language used for alarms. The default is zh_CN. Options: en_US, zh_CN default_language=zh_CN # PostgreSQL info zstone_temporal_db_port=5432 # ZStone account zstone_account_name=admin zstone_account_password=password # Cloud VIP zstone_identify_server_ip= # The default is /zstack/v1. Change it if necessary. zstone_identify_url_prefix= # ZCF License Server info # zstone_license_server_type can be set to zs or ls. Empty is reserved for upgrade compatibility; new installations default to ls. zstone_license_server_type=ls # An empty host defaults to zstone_vip; an empty port defaults to 18201. zstone_license_server_host= zstone_license_server_port= # An empty protocol is auto-detected by type: ls uses https, and zs uses http. zstone_license_server_protocol= # LS quota type: Auto, Host, or Capacity. Auto first uses Host and falls back to Capacity. # An empty value is treated as Auto by ZStone for upgrade compatibility. zstone_license_server_quota_type= # LS offline protection max days. The range is 0-15, and the default is 7. zstone_license_server_max_offline_days=7 # LS HTTPS CA file path zstone_license_server_ca_path=/opt/zstone/license/ls_ca.pem # Built-in LS certificate SAN zstone_license_server_tls_server_name=license.server.zstack.org # Global site access key zstone_license_server_site_access_key=zstack-license-site-global-access-key # ZBS # Set this to true to install high-performance block storage. zbs_install=false # ZBS ChunkServer storage engine: fs (filesystem, for testing) or block (raw block device, recommended for production). chunkserver_backend=block - Run the following command to install the software package after saving your
configuration.
[root@localhost zstone-installer]# ./install.sh - After successful installation, you'll receive the ZStack ZStone UI access URL.
Hyper-Converged Deployment
When you deploy the ZStack Cube hyper-converged environment, it includes ZStack ZStone distributed storage by default. You don't need to install it separately.
Quick Start
Cluster Initialization
Note:
- If the page fails to load, verify that both the management service and UI service are running properly.
- The system will time out after 2 hours of inactivity and log you out automatically.
Create a Cluster
On the ZStack ZStone guide page, click Start Initialization to enter the Cluster Initialization interface.
- Name: Enter a name for the cluster.
Naming rules: 1-128 characters long. The name can contain lowercase letters (a-z), numbers (0-9), periods (.), or hyphens (-). Avoid starting with a hyphen or a number as well as ending with a hyphen.
- Admin IP CIDR: Enter the CIDR of the management network which manages and configures storage clusters.
- Public IP CIDR: Enter the CIDR of the public cluster network which is used for access between block storage gateway and the storage pool, the communication between monitoring roles, and the communication between data disks and block storage gateways.
- Cluster IP CIDR: Enter the CIDR of the cluster internal
network which monitors data disks across cluster servers and synchronizes
replicas.
Note: In a small-scale configuration scenario, you can reuse the
public IP. In a large-scale configuration scenario, for example, with more
than 10 servers, we recommend that you deploy a cluster IP separately from
the public IP. - Time Sync Server IP: Enter the IP address of the time server.
Note:
- The time server ensures clock synchronization across cluster nodes to maintain system health.
- We recommend placing the time server on the same CIDR as the management network.
Add a Server
On the main menu of ZStack ZStone, choose . On the Server page, click Add Server.
Adding a general purpose storage server involves five steps. Set the following parameters to complete the server configurations.
Step One: Basic Configurations
- Server IP Address: Enter the server IP address. You can specify either a single IP address or IP address range. We support adding multiple servers in bulk.
- Type: Select server type. Two server types are
supported:
- Storage Server:
- Provides storage pools with hard disks that can be used as data disks.
- Supports five roles: Management, Monitor, Block Storage Gateway, Object Storage Gateway, and File Storage Gateway.
- Storage Gateway Server:
- Hosts various interfaces and clients. The system only manages the server gateways and does not manage hard disks on the server.
- Supports only one role: Block Storage Gateway.
- Storage Server:
- Role: Configure the role of servers. Five roles are
supported:
- Admin Role (Management):
- Responsible for the collection and management of the runtime status of the cluster and manages the distributed storage cluster as the management node in multiple ways, such as GUI and API.
- We recommend that you deploy at least 2 admin roles to meet the high availability requirement.
- Monitor Role:
- Responsible for monitoring the cluster storage data and maintaining overall status of the cluster, including metadata such as data mapping and cluster authentication.
- We recommend that you deploy an odd number of monitor roles (3+2*N, N≥0) to meet the high availability requirement.
- Block Storage Gateway:
- Responsible for the access between the server and the storage cluster through Block interface.
- By default, this role is selected for a storage server.
- By default, this role is selected for a gateway server. And a storage gateway server only supports this role.
- Object Storage Gateway:
- Responsible for the access between the server and the storage cluster through Object interface.
- To use object storage service, you need to select this role.
- On an object storage gateway server, you can turn on the object gateway to provide the S3 protocol and gateway services.
- File Storage Gateway:
- To use file storage service, you need to select this role.
- On a file storage gateway server, you can create a file gateway to provide file storage access protocols such as SMB and NFS.
Note:
- When you add a server for the first time, three roles including Management, Monitor, and Block Storage Gateway, are selected by default. The Block Storage Gateway role can be deselected, while Management and Monitor roles are required.
- For subsequent server additions, you can add storage servers without roles.
- Deploy at least three storage servers with Management, Monitor, and Block Storage Gateway roles in a cluster.
- Admin Role (Management):

Step Two: Environment Configurations
- SSH Username: Enter the SSH username for the server. Default: root.
- SSH Password: Enter the SSH password. The system uses this password only for password-free login configurations and does not store the password.
- Port: Enter the server port number. Default port: 22.
- Server Name: (Optional) Specify a server
name.
Naming rules: 1-63 characters long. The name can contain lower-case letters (a-z), digits (0-9), periods (.), and hyphens (-). Avoid starting with a hyphen or number as well as ending with a hyphen.
Note:
- If you do not set a server name, ensure the server name-to-IP mapping is preconfigured in /etc/hosts file. The system uses the existing server name after server addition.
- If you set a new server name, it overwrites the existing name-to-IP mapping in /etc/hosts file.
- When you add servers in bulk, the names of these servers will end with a suffix, that is, the last part of their IP address (0-254), to distinguish these servers, for example, server-24.
- Time Sync Service: Choose to enable or disable the
time synchronization service.
If you enable this setting, the system synchronizes the newly-added server's clock with other servers in the cluster.
- Password-Free Login: If you enable this setting, the system configures password-free logins to the server with the SSH username and password.

Step Three: Network Configurations
- Admin IP: Sets the IP address the management network which manages and configures storage clusters. The default admin IP is the server IP address.
- Public IP: Sets the IP address of the public cluster network which facilitates interaction between block storage gateways and storage pools.
- Cluster IP: Sets the IP address of the cluster
internal network which monitors data disks across cluster servers and
synchronizes replicas.
Note: Skip setting Cluster IP when you add a storage
gateway server.

Step Four: Confirm
Review the information of the server to add. You can navigate back to modify configuration details if needed.

Step Five: Install
Note:
- You cannot exit the page when adding a server for the first time.
- Avoid refreshing the browser when adding a server for the first time.

Scan Hard Disks
On the main menu of ZStack ZStone, choose . On the Hard Disk page, click Scan and all hard disks on storage servers and their information will be displayed in the list.

Note:
- Healthy free disks can be used for cache partitioning (SSD recommended) or added as data disks. If you set cache partition, ensure that each partition has a minimum capacity of 50 GB.
- A scanned unknown disk implies that the disk contains unrecognized
partitions.
- For ZStack ZStone 4.2.0 and earlier versions,
run the
wipefs -af /dev/sdXcommand to manually clean up partitions before rescanning the disk. - For ZStack ZStone 4.2.0 and later versions, go to the Hard Disk page and click Initialize Hard Disk to clean up partitions directly.
- For ZStack ZStone 4.2.0 and earlier versions,
run the
- In some hardware environments, newly-added hard disks may not be detected. Reboot the server or contact official technical support for assistance.
Create a Data Disk
On the main menu of ZStack ZStone, choose . On the Data Disk page, click Create Data Disk.
- Select Hard Disk: Select the hard disk to add as a data
disk.
Note: You can add hard disks that are healthy, free, and of at least 25
GB size as data disks. - Cache Partition: Choose whether to set cache partition
for data disks.
- Auto Mode: If you select auto mode, the system automatically attaches cache partitions provided by servers to the selected hard disks.
- Manual Mode: If you select manual mode, you can manually select cache partitions for each hard disk that has been selected.
Note: If available cache partitions are insufficient for the selected hard
disks when you enable this parameter, part of the hard disks fail to be
added as data disks.

Create a Storage Pool
On the main menu of ZStack ZStone, choose . On the Storage Pool page, click Create Storage Pool.
- Block Storage Pool
- Object Storage Pool
- File Storage Pool
Create a Block Storage Pool
- Name: Set the name for the storage pool.
Naming rules: 1-1288 characters long. A name can contain Chinese characters, letters, digits, spaces, hyphens (-), underscores (_), periods (.), parenthesis (), colons (:), and plus signs (+).
- Type: Select Block Storage.
- Role: The default role is Data Pool and does not support modification.
- Data Security Policy:
- Type: The default type is Replicas and does not support modification.
- Replicas: Set the number of replicas for the
storage pool in the 2-6 value range.
Note: In production
environments, we recommend setting at least 3 replicas to ensure
data security. - Level: Select the level of the failure domain (Server/Rack/Room) according to your topology plan.
- Data Disk: Select data disks based on the topology canvas.
Note:
- Selected data disks must meet the redundancy level requirements.
- Select data disks of similar sizes if possible.

Create an Object Storage Pool
- Name: Set the name for the storage pool.
Naming rules: 1-128 characters long. A name can contain Chinese characters, letters, digits, spaces, hyphens (-), underscores (_), periods (.), parenthesis (), colons (:), and plus signs (+).
- Type: Select Object Storage.
- Role: Select the role of the storage pool (Data Pool,
Index Pool, and Compound Pool).
Note:
- Data Pool: Stores data.
- Index Pool: Stores the index information of stored objects.
- Compound Pool: Supports multi-purpose resuse and can be selected as an Index Pool or a Data Extra Pool in Storage Policy.
- Data Security Policy:
- Type: Select data redundancy type
(Replicas/EC).
- If you select Replicas, set the following parameters:
- Replicas: Set the number of replicas for the storage pool in the 2-6 value range.
Note:
- Storage pools with Index Pool or Compound Pool role only support one redundancy policy, that is, Replicas.
- In production environments, we recommend setting at least 3 replicas to ensure data security.
- If you select EC, set the following parameters:
- EC Policy: Set the EC policy
for storage (Recommended/Custom).
- Recommended: Select from six recommended values: 2+1, 4+2, 8+3, 4+2:1, 8+2:1, 16+2:1.
- Custom: Customize the
EC policy. Enter the number of data and parity
blocks.
Note: Positive integers only. Make sure
that the number of data blocks is greater than the
number of parity blocks, and parity blocks do not
exceed 4.
Note:
- An EC policy consists of data blocks and parity blocks. Data blocks indicate the number of data shards, while parity blocks indicate the number of parity shards generated through the algorithm. Taking the 4+2 EC policy on the server level as an example. This policy ensures data availability even when 2 servers fail.
- Disk Utilization is displayed in real time. The formula for calculating disk utilization: data blocks/(data blocks + parity blocks).
- EC Policy: Set the EC policy
for storage (Recommended/Custom).
- If you select Replicas, set the following parameters:
- Level: Select the level of the failure domain (Server/Rack/Room) according to your topology plan.
- Data Disk: Select data disks to add based on the
topology canvas.
Note:
- Selected data disks must meet the failure domain requirements of the data security policy.
- Select data disks of similar sizes if possible.
- Type: Select data redundancy type
(Replicas/EC).

