PD2002 ZStack V3.8.0 Technical Whitepaper
PD2002 ZStack V3.8.0 Technical Whitepaper
Copyright Statement
Copyright © 2020 Shanghai Yunzhou Information and Technology Ltd. All rights reserved.
Without its written consent, any organization and any individual do not have the right to extract,
copy any part or all of, and are prohibited to disseminate the contents of this documentation in any
manner.
Trademark
Shanghai Yunzhou Information and Technology Ltd. reserves all rights to its trademarks, including
, but not limited to ZStack and other trademarks in connection with Shanghai Yunzhou Information
and Technology Ltd.
Notice
The products, services, or features that you purchased are all subject to the commercial contract
and terms of Shanghai Yunzhou Information and Technology Ltd., but any part or all of the
foregoing displayed in this documentation may not be in the scope of your purchase or use.
Unless there are additional conventions, Shanghai Yunzhou Information and Technology Ltd. will
not claim any implicit or explicit statement or warranty on the contents of this documentation.
In an event of product version upgrades or other reasons, the contents of this documentation will
be irregularly updated and released. Unless there are additional conventions, this documentat
ion, considered solely as a using manual, will not make any implicit or explicit warranty on all the
statements, information, or suggestions.
Issue: V3.8.0 I
Technical Whitepaper / Contents
Contents
Copyright Statement................................................................................ I
1 Product Overview................................................................................. 1
2 Product Profiles....................................................................................2
2.1 ZStack Functional Architecture........................................................................................ 2
2.2 ZStack Resource Model...................................................................................................5
3 Product Features................................................................................ 10
4 Product Highlights............................................................................. 52
Glossary................................................................................................ 54
II Issue: V3.8.0
Technical Whitepaper / 1 Product Overview
1 Product Overview
ZStack is the next-generation, open-source IaaS software designed mainly for future-oriented,
smart data centers. Additionally, it manipulates multiple data center resources of compute,
storage, and network by providing flexible and comprehensive APIs. You can quickly create your
own smart cloud data center by using ZStack, and set up flexible cloud application scenarios, such
as VDI, PaaS, and SaaS, on the stable ZStack.
Issue: V3.8.0 1
Technical Whitepaper / 2 Product Profiles
2 Product Profiles
ZStack helps enterprises better manage infrastructure resources, such as the compute, storage,
and network resources, in their data centers. The bottom layer of ZStack supports both KVM and
VMware virtualization technologies. In addition, ZStack supports various storage types, such as
DAS, NAS, SAN, and DFS. To be more specific, local storage, NFS storage, SAN storage, and
distributed block storage are supported. ZStack also supports various network models, such as
VLAN and VXLAN.
ZStack uses a message bus to communicate with the MariaDB database and different service
modules, providing diversified features such as VM instance management, host management,
storage management, network management, billing management, and real-time monitoring. That
is the core cloud engine of ZStack. In addition, ZStack provides Java SDKs and Python SDKs,
and allows you to schedule and manage resources by using RESTful APIs. With ZStack, you can
build a private cloud that is Simple, Strong, Scalable, and Smart.
2 Issue: V3.8.0
Technical Whitepaper / 2 Product Profiles
• ZStack uses a message bus to connect various services. When a service calls another
service, the source service sends a message to the destination service, registers a callback
function, and then returns back immediately. Once the destination service finishes the task,
it gives a feedback on the task result by triggering the callback function that was registered
by the source service. Asynchronous messages can be processed in parallel.
• Services in ZStack communicate with each other through asynchronous messages. Inside
services, the associated components and plugins are also called by using asynchronous
methods. These methods are consistent with that of calling asynchronous messages.
• Every plugin in ZStack has a corresponding agent. ZStack puts a callback URL in the HTTP
header of every request. Therefore, agents can send responses to the URL of the caller
when tasks are finished.
• Based on the asynchronous architecture, a single ZStack management node can process
tens of thousands of concurrent API requests per second, and simultaneously manage tens
of thousands of servers and hundreds of thousands of VM instances.
• In ZStack, requests sent by compute node agents, storage agents, network services,
console agent services, and configuration services can be processed without relying on
other requests. The sent requests contain all the required information, and related nodes do
not need to maintain and store any information.
• ZStack authenticates resources such as management nodes and compute nodes through
consistent hashing ring by using their UUIDs as the unique ID. Because of the consistent
hashing ring, a message sender does not need to know which service instance is about
to handle the message. Services do not need to maintain and exchange information about
what resources they are managing. All the services need to do is to handle the incoming
messages.
• Little information is shared among ZStack management nodes. Therefore, a minimum of two
management nodes can meet the requirements of high availability and scalability.
• The stateless service mechanism makes the system more robust. Restarting the server will
not lose any state information. This also simplifies the scaling out and scaling in of a data
center.
Issue: V3.8.0 3
Technical Whitepaper / 2 Product Profiles
• The consistent hashing algorithm guarantees all messages of the same resource are
always handled by the same service instance. In this way, messages are congregated to a
specified node, reducing the complexity of synchronization and concurrency.
• ZStack uses work queue to avoid lock contention. Serial tasks are stored in memory as
work queues. Work queues can process any operation of any resource in parallel to improve
system concurrency.
• The queue-based lock-free architecture enables tasks to run in parallel, thereby improving
the system performance.
• ZStack uses a message bus to isolate and control various services, such as VM instance
services, identity authentication services, snapshot services, volume services, network
services, and storage services. All microservices are enclosed in the same process of a
management node. These services communicate with each other through the message bus
. After all messages are sent to the message bus, the destination service is selected by the
consistent hashing ring for message forwarding.
• In ZStack, every plugin provides services independently. Any newly added plugin has no
impact on other existing plugins.
• ZStack concludes plugins into two patterns: strategy pattern and observer pattern. Strategy
pattern plugins will inherit parent-class interfaces and then perform specific implementations
. Observer pattern plugins will register a listener to monitor event changes of the internal
business logic in an application. Once an event is detected inside the application, the
observer pattern plugins will respond to this event automatically and execute a piece of
code to affect the corresponding business flow.
• ZStack supports horizontal expansion of plugins. The cloud can be quickly upgraded, and
the overall system architecture still remains robust.
4 Issue: V3.8.0
Technical Whitepaper / 2 Product Profiles
• ZStack clearly defines every workflow by using XML files. Every flow can be rolled back on
errors. A workflow can roll back all prior executed steps and clean up the garbage resources
during the execution when an error happens in a step.
• Every workflow can contain sub-flow to decouple the business logic further.
7. Tag System: extends the business logic and adds resource properties
• ZStack uses system tags and plugins to extend the original business logic.
• You can use tags to group your resources and search for resources with specific tags.
• Resources can join a cascade framework through a plugin. Joining or quitting the cascade
framework will not affect other resources.
• The cascading mechanism makes the configuration of ZStack more flexible and simple,
meeting the requirements of resource configuration changes.
• Being seamlessly integrated with Ansible (which is agentless), ZStack can automatically
install dependencies, configure physical resources, and deploy agents. This whole process
is transparent to users and requires no additional intervention. You can upgrade your agents
simply by reconnecting the agents.
• ZStack supports millions of query conditions, comprehensive query APIs, and any way of
condition combinations.
Issue: V3.8.0 5
Technical Whitepaper / 2 Product Profiles
• Zone: the largest resource scope defined in ZStack. A zone is a logical group of resources,
such as clusters, L2 networks, and primary storages.
• Host: also known as a compute node, is a physical server that provides VM instances with
compute, network, and storage resources.
• Primary storage: a storage system that stores disk files, including root volumes, data volumes
, root volume snapshots, data volume snapshots, and image caches, for VM instances. The
types of primary storage include local storage, NFS, Shared Mount Point, SharedBlock, and
Ceph.
6 Issue: V3.8.0
Technical Whitepaper / 2 Product Profiles
• Backup storage: a storage system that stores image templates. The types of backup storage
include ImageStore, SFTP, and Ceph.
• VXLAN pool: an underlay network in VXLAN. You can create multiple VXLAN overlay networks
(VXLAN) in a VXLAN pool. The overlay networks can operate on the same underlay network
device. The types of VXLAN pool include software SDN and hardware SDN.
• L2 network: a layer 2 broadcast domain used for layer 2 isolation. Generally, L2 networks
are identified by names of devices on the physical network. The types of L2 network include
L2NoVlanNetwork, L2VlanNetwork, VxlanNetwork, and HardwareVxlanNetwork.
• Instance offering: a specification of the VM instance CPU, memory, disk bandwidth, and
network bandwidth.
• Disk offering: a specification of a volume, which defines the size of a volume and how the
volume will be created.
• VM instance: a virtual machine instance running on a host. A VM instance has its own IP
address to access public network and run application services. VM instances are core
components of ZStack.
• Image: an image template used by a VM instance or volume. Image template includes root
volume images and data volume images. The types of root volume image include ISO and
Image, while the type of data volume image is Image.
• Root volume: the system disk where the VM instance operating system is installed.
• Data volume: the data disk that provides additional storage for a VM instance.
• Network service module: a module for providing network services. This resource is hidden in
the UI.
• Network service: provides various network services for VM instances, including VPC firewall,
security group, virtual IP (VIP), elastic IP (EIP), port forwarding, load balancing, IPsec tunnel,
and flow monitoring.
• VPC firewall: manages north-south traffic of the VPC network. You can manage the network
access policy by configuring rule sets and rules.
• Security group: provides L3 network firewall control over the VM instances, and controls TCP,
UDP, and ICMP data packets for effective filtering. You can use a security group to effectively
control specified VM instances on specified networks according to specified security rules.
Issue: V3.8.0 7
Technical Whitepaper / 2 Product Profiles
• Virtual router offering: an instance offering that defines the CPU, memory, virtual router (
vRouter) image, management network, and public network used by a vRouter (including
ordinary vRouter, VPC vRouter, and ARM vRouter).
• Virtual router (vRouter): a custom Linux VM instance that provides network services such as
DHCP, DNS, SNAT, route table, EIP, port forwarding, load balancing, and IPsec tunnel.
• VPC vRouter: a router created directly from vRouter offering. VPC vRouter, which has a
public network and a management network, is the core of VPC. VPC vRouter provides various
network services, including DHCP, DNS, SNAT, route table, EIP, port forwarding, load
balancing, IPsec tunnel, dynamic routing, multicast routing, VPC firewall, and Netflow.
• Parent-child: A resource can be the parent or child of another resource. For example, a host is
the child resource of cluster, while a host is the parent resource of VM instance.
• Sibling: Resources sharing the same parent resource are siblings. For example, clusters and
L2 networks are sibling resources because all of them are child resources of zone.
• Friend: Resources that do not have the above three relationships but still need to cooperate
with each other in some scenarios are friends. For example, primary storage and backup
storage are friends. Also, zone and backup storage are friends.
Note:
Relationship between primary storage and backup storage:
• When you create a VM instance, primary storage needs to download images of the VM
instance as caches from backup storage.
• When you create an image, primary storage needs to copy the root volume to backup
storage and save it as a template.
• UUID: the universally unique identifier. ZStack uses version 4 UUIDs to uniquely identify a
resource.
• Name: a human readable string that is used to identify resources. Names can be duplicated
and are usually required.
8 Issue: V3.8.0
Technical Whitepaper / 2 Product Profiles
• Description: also known as a brief introduction that is used to briefly describe a resource.
Description is usually optional.
• Creation date: the date and time when a resource was created.
• Last operation date: the date and time when a resource was updated last time.
Resources support full or partial Create, Read, Update, Delete (CRUD) operations.
• Delete: delete a resource. Due to the cascade framework provided by ZStack, if a parent
resource is deleted, its associated child resources and descendant resources will also be
deleted.
Issue: V3.8.0 9
Technical Whitepaper / 3 Product Features
3 Product Features
As a productionized private cloud, ZStack allows you to manage and schedule the compute,
storage, network, and other resources in your data center. By using ZStack, you can quickly
configure your private cloud environment, and create VM instances, allocate volumes, and
automatically configure the networks of the VM instances.
10 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 11
Technical Whitepaper / 3 Product Features
12 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 13
Technical Whitepaper / 3 Product Features
Encrypted
Allows you to store encrypted passwords for hosts.
password storing
14 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 15
Technical Whitepaper / 3 Product Features
Template-based
Creates VM instances based on system templates.
deployment
16 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Dynamically
Allows you to dynamically attach a NIC to or detach a
attaching or
NIC from a VM instance, and to set the default NIC.
detaching NIC
Issue: V3.8.0 17
Technical Whitepaper / 3 Product Features
Real-time update Allows you set QoS for the root volume and NIC of
of volume QoS a VM instance, avoiding that a single VM instance
and network QoS occupies too many resources.
18 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 19
Technical Whitepaper / 3 Product Features
20 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 21
Technical Whitepaper / 3 Product Features
22 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 23
Technical Whitepaper / 3 Product Features
24 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 25
Technical Whitepaper / 3 Product Features
26 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 27
Technical Whitepaper / 3 Product Features
28 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 29
Technical Whitepaper / 3 Product Features
30 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 31
Technical Whitepaper / 3 Product Features
32 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 33
Technical Whitepaper / 3 Product Features
34 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 35
Technical Whitepaper / 3 Product Features
Permission
Supports permission allocation of a user group to
allocation of
uniformly manipulate user permissions.
user group
Permission
Allows you to allocate permissions for users.
allocation of user
Account Allows you to change a VM owner and specify an
Changing VM owner
management account where the VM instance belongs.
36 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 37
Technical Whitepaper / 3 Product Features
38 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Encryption access Allows you to securely log in to the cloud via HTTPS.
Issue: V3.8.0 39
Technical Whitepaper / 3 Product Features
List information Exports VM and host main list information. You can
UI informatio
exporting with manage and edit parameters for a VM instance and a
n exporting
CSV format host offline in a graphical format.
40 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 41
Technical Whitepaper / 3 Product Features
The following table lists the features of ZStack Enterprise Management module.
42 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 43
Technical Whitepaper / 3 Product Features
44 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 45
Technical Whitepaper / 3 Product Features
The following table lists the features of ZStack BareMetal Management module.
46 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 47
Technical Whitepaper / 3 Product Features
48 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
The following table lists the features of ZStack Migration Service module.
Issue: V3.8.0 49
Technical Whitepaper / 3 Product Features
The following table lists the features of ZStack Rights Separation module.
50 Issue: V3.8.0
Technical Whitepaper / 3 Product Features
Issue: V3.8.0 51
Technical Whitepaper / 4 Product Highlights
4 Product Highlights
ZStack is the next-generation, private cloud IaaS software featuring Simple, Strong, Scalable and
Smart (4S).
1. Simple
• Easy installation and deployment: allows you to download installation packages from our
official website. You can install and deploy the cloud from scratch within just 30 minutes.
• Simple, practical operations: provides a thorough User Guide with ample help information, a
productive community, and standard APIs.
• Friendly UI: provides you with a well-designed, friendly user interface to realize powerful
features by performing simple operations.
2. Strong
• High concurrent API requests: A single ZStack management node can easily handle tens of
thousands of concurrent API call requests per second.
3. Scalable
• Large scale: Technically, a single management node can manage one to tens of thousands
of hosts and hundreds of thousands of VM instances.
52 Issue: V3.8.0
Technical Whitepaper / 4 Product Highlights
• Comprehensive API: ZStack provides a whole set of IaaS APIs. In this regard, you can
create brand-new, available zones across multiple geographical locations, modify network
configurations, and upgrade physical servers.
• Resource allocation based on your needs: Important resources such as VM instances and
cloud storages can be resized according to your demands. ZStack not only allows you to
modify online the CPU, memory, and other resources for a VM instance, but also allows you
to dynamically adjust its network bandwidth, disk bandwidth, and other resources for a VM
instance.
4. Smart
• Automatic O&M: In ZStack environment, all O&M operations can be managed by ZStack
APIs. By using the Ansible inventory, ZStack can realize full-automatic deployment and
upgrade as well as automatic detection and reconnection. If network jitters happen or hosts
restart, each management node can be automatically reconnected to the networks or the
hosts. Note that a ZStack scheduler allows you to start or stop VM instances on schedule,
and allows you to take VM snapshots on schedule with the round-robin policy.
• Online seamless upgrade: ZStack provides one-click seamless upgrade within 5 minutes.
You only need to upgrade and manipulate management nodes. After the cloud is upgraded
successfully and started, the compute node, storage node, and network node will be
automatically upgraded as well.
• Intelligent UI interaction: Compute resources are displayed in real time, which helps to avoid
misoperations.
• Real-time global monitoring: You can manage and control the current resource consumption
of the entire cloud. With the real-time monitoring, you can adjust your resources intelligently
to save IT software and hardware resources.
Issue: V3.8.0 53
Technical Whitepaper / Glossary
Glossary
Zone
A zone is a logical group of resources such as clusters, L2 networks, and primary storages. Zone
is the largest resource scope defined in ZStack.
Cluster
A cluster is a logical group of analogy hosts (compute nodes). Hosts in the same cluster must be
installed with the same operating system, have the same network configuration, and be able to
access the same primary storage. In a real data center, a cluster usually maps to a rack.
Management Node
A management node is a host with operating system installed to provide UI management and
cloud platform deployment.
Compute Node
A compute node is a physical server (also known as a host) that provides VM instances with
compute, network, and storage resources.
Primary Storage
A primary storage is a storage server used to store disk files in VM instances. Local storage, NFS,
Ceph, Shared Mount Point, and SharedBlock are supported.
Backup Storage
A backup storage is a storage server used to store image template files. ImageStore, SFTP
(Community Edition), and Ceph are supported. We recommend that you deploy backup storage
separately.
ImageStore
ImageStore is a type of backup storage. You can use ImageStore to create images for VM
instances that are in the running state and manage image version updates and release.
ImageStore allows you quickly upload, download, export images, and create image snapshots as
needed.
54 Issue: V3.8.0
Technical Whitepaper / Glossary
VM Instance
A VM instance is a virtual machine instance running on a host. A VM instance has its own IP
address to access public network and run application services.
Image
An image is an image template used by a VM instance or volume. Image templates include
system volume images and data volume images.
Volume
A volume can either be a data volume or a root volume. A volume provides storage to a VM
instance. A shared volume can be attached to one or more VM instances.
Instance Offering
An instance offering is a specification of the VM instance CPU and memory, and defines the host
allocator strategy, disk bandwidth, and network bandwidth.
Disk Offering
A disk offering is a specification of a volume, which defines the size of a volume and how the
volume will be created.
L2 Network
An L2 network is a layer 2 broadcast domain used for layer 2 isolation. Generally, L2 networks are
identified by names of devices on the physical network.
L3 Network
An L3 network is a collection of network configurations for VM instances, including the IP range,
gateway, and DNS.
Public Network
A public network is generally allocated with a public IP address by Network Information Center
(NIC) and can be connected to IP addresses on the Internet.
Private Network
A private network is the internal network that can be connected and accessed by VM instances.
Issue: V3.8.0 55
Technical Whitepaper / Glossary
L2NoVlanNetwork
L2NoVlanNetwork is a network type for creating an L2 network. If L2NoVlanNetwork is selected,
VLAN settings are not used for host connection.
L2VlanNetwork
L2VlanNetwork is a network type for creating an L2 network. If L2VlanNetwork is selected, VLAN
settings are used for host connection and need to be configured on the corresponding switches in
advance.
VXLAN Pool
A VXLAN pool is an underlay network in VXLAN. You can create multiple VXLAN overlay
networks (VXLAN) in a VXLAN pool. The overlay networks can operate on the same underlay
network device.
VXLAN
A VXLAN network is a L2 network encapsulated by using the VXLAN protocol. A VXLAN network
belongs to a VXLAN pool. Different VXLAN networks are isolated from each other on the L2
network.
vRouter
A vRouter is a custom Linux VM instance that provides various network services.
Security Group
A security group provides L3 network firewall control over the VM instances. It can be used to set
different security rules to filter IP addresses, network packet types, and the traffic flow of network
packets.
EIP
An elastic IP address (EIP) is a method to access a private network through a public network.
Snapshot
A snapshot is a point-in-time capture of data status in a disk. A snapshot can be either an
automatic snapshot or a manual snapshot.
56 Issue: V3.8.0