Hello everyone, I am Frank Zhang, the architect of ZStack. Today I am happy to announce that ZStack v0.8 is in the release cycle. Today we release 0.8 RC2 for you test. In this release, ZStack introduces four new features:

Local Primary Storage

Users can use local disks of hosts as primary storage.

Add through UI

  1. select the type to 'LocalStorage'
  2. input the hosts' folder path.

Add through CLI

You can use AddLocalPrimaryStorage to add the local primary storage. For example:

AddLocalPrimaryStorage zoneUuid=15d546efe84a499caa36b2f6a95d6b81 name=local url=/home/volumes

URL

The local primary storage uses a folder to store VM volumes and images on hosts. When being attached to a cluster, the folder specified by the URL will be created on all hosts in the cluster if not existing.

Capacity

The total capacity and available capacity are summed from the corresponding capacity of each hosts. Unlike pool-based primary storage(e.g. NFS), you may encounter an allocation failure(not enough capacity) even if the total available capacity is bigger than the capacity you ask, because no host can solely provide that capacity. For example, say you have 2 hosts each of which has 10G available capacity, and you are creating a 15G volume; though the total available capacity is 20G, the case will fail because each host cannot provide the 15G capacity.

No live migration and limited volume attaching

Because local primary storage is not network shared storage, it's not possible to lively migrate a VM from one host to another until the storage migration feature is supported in future ZStack releases. Data volumes, whose states are Ready, can only be attached to VMs on the same host; that is to say, once a data volume is instantiated on a local storage, it can only be attached to VMs on the same host where it is instantiated.

Dynamically attaching/detaching L3 networks

Beginning at this version, users can dynamically attach/detach a L3 network to/from a VM.

Attach through UI

  1. select a VM and click button 'Action'
  2. click 'Attach L3 Network' on the drop-down menu

  1. select the L3 networks you want to attach
  2. click button 'Attach'

Attach through CLI

You can use AttachL3NetworkToVm to attach a L3 network to a VM. For example:

>>>AttachL3NetworkToVm l3NetworkUuid=d791a3f662ac48a99b9e998136eed2a1 vmInstanceUuid=15d546efe84a499caa36b2f6a95d6b81

Detach through UI

  1. select a VM and click button 'Action'
  2. click 'Detach L3 Network' on the drop-down menu

  1. select the L3 networks you want to detach
  2. click button 'Detach'

Detach through CLI

You can use DetachL3NetworkFromVm to detach a L3 network from a VM. For example:

>>>DetachL3NetworkFromVm vmNicUuid=d791a3f662ac48a99b9e998136eed2a1

VM Nic UUID

Instead of a L3 network UUID and a VM UUID, `the DetachL3NetworkFromVm` use the `vmNicUuid` as the parameter because it implies both VM UUID and L3 network UUID.

Identity Management

In this version, ZStack opens the identity management APIs which provide similar functions to AWS IAM. The details of the identity management system can be found in user manual -- identity chapter

Change the instance offering of the VM

In this version, users can change the instance offering of a VM.

Change through UI

Not implemented in RC2, will be available in the GA release

Change through CLI

You can use ChangeInstanceOffering to change the instance offering of a VM. For example:

>>>ChangeInstanceOffering vmInstanceUuid=f9837cfbde574a7ab512ab3283d8da60 instanceOfferingUuid=d791a3f662ac48a99b9e998136eed2a1

A stop/start is required

If you change the instance offering while the VM is running, you need to stop/start the VM to make the change takes effect.

Seamless Upgrade

Backup Database

Before performing any upgrade instructions, please backup the current database. This is very IMPORTANT! Though ZStack will automatically backup the current database during upgrade, we strongly recommend you to manually backup the database in case any error happens. You can backup the database following:
mysqldump -u root -proot_password --host mysql_ip --port mysql_port zstack > path_to_db_dump.sql

Upgrade by quick script

If you have only one management node, you can upgrade it by ZStack's installation script:

zstack-ctl stop_node
wget --no-check-certificate https://download.zstack.org/releases/0.8/rc2/zstack-install-0.8.0-rc2.sh
wget --no-check-certificate https://download.zstack.org/releases/0.8/rc2/zstack-all-in-one-0.8.0-rc2.tgz
bash zstack-install-0.8.0-rc2.sh -u -f zstack-all-in-one-0.8.0-rc2.tgz

Be patient for a few minutes, the script will upgrade the database, management node, zstack-cli, zstack-ctl and zstack-dashboard.

Upgrade by zstack-ctl

1. Upgrade the first management node

Perform below instructions on one of your management node:

mkdir -p zstack-0.8
cd zstack-0.8

Install zstack-ctl if you are using 0.6 version

wget --no-check-certificate https://download.zstack.org/releases/0.7/rc2/zstackctl-0.7.tar.gz /var/lib/zstack/virtualenv/zstackctl/bin/pip install --ignore-installed zstackctl-0.7.tar.gz
wget --no-check-certificate https://download.zstack.org/releases/0.8/rc2/zstack.war
zstack-ctl upgrade_management_node --war-file zstack.war

2. Upgrade the database

Make sure you have backup the current database following instructions on the top of this page. Then perform:

zstack-ctl upgrade_db

You can start the node now if you only have one management node

If you have only one management node, you can run
zstack-ctl start_node
to start the ZStack now. If you have other management nodes to upgrade, continue to perform following instructions.

3. Upgrade other management nodes

If you have management nodes running on remote machines, run below commands for each node

zstack-ctl upgrade_management_node --war-file path_to_the_war --host remote_host_ip

4. Upgrade UI

Stop UI

If you are using 0.6, stop the UI by /etc/init.d/zstack-dashboard stop; if 0.7, stop the UI by zstack-ctl stop_ui

Upgrade your UI on local machine by:

zstack-ctl install_ui

or

zstack-ctl install_ui --host remote_machine_ip

if the UI is installed on a remote machine.

5. Start management nodes

Now all your management nodes have been successfully upgraded to the 0.8 RC2. You can start them by zstack-ctl start_node and zstack-ctl start_node --host remote_host_ip

Agents will be automatically upgraded after starting management nodes

You don't need to bother with agent upgrade; they will be upgraded after management nodes reconnect them.

6. Start UI

Now you can start the UI by zstack-ctl start_ui on the local host or zstack-ctl start_ui --host remote_host_ip on the remote host.

Bug Report

If you find any bugs, please open a ticket on GitHub