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

Prepare the following software packages before installation:
  • ISO (H76C, Expert Mode minimum requirement).
    Note:
    • Versions before ZStack ZStone 4.2.0 require management node components including ZSHA2 (dual-management node mode) and MySQL.
    • You can use Rufus (recommended) or UltraISO to burn the ISO image to a USB drive. For Rufus instructions, see Quick Installation Guide USB burning section.
  • Enterprise Edition Toolkit: Contact technical support.
  • Dual-Management Node HA Suite: Contact technical support.
  • ZStack ZStone software package: Contact technical support.

Check Hardware Requirements

For default deployment scenarios, your server hardware must meet these minimum 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

This section describes the installation modes for ZStack ZStone. You can deploy ZStack ZStone in the following ways:
  • Default deployment: Use this mode when deploying in an existing environment.
  • Hyper-converged deployment: When deploying ZStack Cube hyper-converged environment, ZStack ZStone comes pre-installed and requires no separate deployment.

Default Deployment

  1. Prepare your environment.
    The ZStack ZStone management service depends on management node services. Follow these steps:
    1. Deploy two in management nodes with HA configuration.
      Note: These dual management nodes will also serve as ZStack ZStone management nodes.
    2. Deploy one in compute node or expert mode.
      Note: This node will function as a ZStack ZStone storage server node along with the dual management nodes.
  2. Download the ZStack ZStone software package to any management node.
  3. Extract the installation package.
    # Check the obtained installation package
    [root@localhost ~]# ls
    ZStone-x86_64-installer-5.5.0.tar.gz
    # Decompress the installation package
    [root@localhost ~]# tar xf ZStone-x86_64-installer-5.5.0.tar.gz
  4. Navigate to the zstone-installer directory after extraction.
    [root@localhost ~]# cd zstone-installer
  5. Open and edit the install.conf configuration file.
    [root@localhost zstone-installer]# vim install.conf
    # Leave first manager IP if only one manager
    zstone_vip=  //Enter the management VIP for the storage cluster. For a single management node, enter its IP address. For dual management nodes, enter the VIP address.
    # ZStone Manager hosts list
    zstone_management_host_ip=  //Enter the IP addresses of the management nodes. If you have dual management nodes, separate the IP addresses with English commas.
    zstone_managerment_host_port=  //Enter the SSH port of the management node.
    #password: ["password1","password2"]
    zstone_management_host_rootpw=["password"]  //Enter the root password for the management node.
                        
    # MySQL info
    zstone_db=zstone
    zstone_db_user=root
    zstone_db_port=3306
    zstone_db_password=zstack.mysql.password
                        
    # Log level: trace, debug, info, warning, error, fatal, panic
    log_level=debug
                        
    # PostgreSQL info
    zstone_temporal_db_port=5432
                        
    #zstone account
    zstone_account_name=admin
    zstone_account_password=password
                        
    #zbs
    zbs_install=false  //Set this to true if you need to install high-performance block storage.
  6. Run the following command to install the software package after saving your configuration.
    [root@localhost zstone-installer]# ./install.sh
  7. After successful installation, you'll receive the ZStack ZStone UI access URL.

Hyper-Converged Deployment

When you deploy the hyper-converged environment, it includes ZStack ZStone distributed storage by default. You don't need to install it separately.

Quick Start

Cluster Initialization

When you first log in to ZStack ZStone, open Chrome 49 or later and enter the URL http://management_node_ip:4000. Use the default username admin and initial password password. The system interface will guide you through the basic initialization setup for the ZStack ZStone distributed storage platform.
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.

Set the following parameters:
  • 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 Hardware > Server. 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.
  • 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.
Figure 1. Basic configurations


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.
Figure 2. Environment configurations


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.
Figure 3. Network configurations


Step Four: Confirm

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

Figure 4. Confirm


Step Five: Install

Check the server deployment progress. If you exit this page during installation, the process continues in the background. You can check the process via the operation log at any time.
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.
Figure 5. Install


Scan Hard Disks

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

Figure 1. Scan hard disks


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/sdX command 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.
  • 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 Storage Resource > Data Disk. On the Data Disk page, click Create Data Disk.

Set the following parameters:
  • 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.
Figure 1. Create a data disk


Create a Storage Pool

On the main menu of ZStack ZStone, choose Storage Resource > Storage Pool. On the Storage Pool page, click Create Storage Pool.

You can create three types of storage pools:
  • Block Storage Pool
  • Object Storage Pool
  • File Storage Pool

Create a Block Storage Pool

Set the following parameters:
  • 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.
Figure 1. Create a Block Storage Pool


Create an Object Storage Pool

Set the following parameters:
  • 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:
    1. Data Pool: Stores data.
    2. Index Pool: Stores the index information of stored objects.
    3. 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).
    • 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.
Figure 2. Create an Object Storage Pool