Announcing ZStack v0.8
Hello everyone, I am Frank Zhang, the architect of ZStack. Today I am happy to announce that ZStack v0.8 is released. In this release, ZStack introduces four new features:
Local Primary Storage
Users can use local disks of hosts as primary storage.
Add through UI
- select the type to 'LocalStorage'
- 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
- select a VM and click button 'Action'
- click 'Attach L3 Network' on the drop-down menu
- select the L3 networks you want to attach
- 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
- select a VM and click button 'Action'
- click 'Detach L3 Network' on the drop-down menu
- select the L3 networks you want to detach
- 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
- select a VM and click button 'Action'
- click 'Change Instance Offering' on the drop-down menu
- select the instance offering you want to change
- click the button 'Change'
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
Cleanup browser cache after upgrading the UI
Yoy may need to clean up the browser cache after upgrading the UI, otherwise the new UI features may not be available.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/0.8.0/zstack-install-0.8.0.sh
wget --no-check-certificate https://download.zstack.org/releases/0.8/0.8.0/zstack-all-in-one-0.8.0.tgz
bash zstack-install-0.8.0.sh -u -f zstack-all-in-one-0.8.0.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.gzwget --no-check-certificate https://download.zstack.org/releases/0.8/0.8.0/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 runzstack-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 fixes
VM is not able to be created, if VROffering is not set to isDefault=true
Need add UpdateVirtualRouterInstanceOffering API to update vr offering
Delete L2 Failed: no matching network device was found
Delete VM's 2nd L3 won't stop VM
Delete normal account will delete private L3 VR (L3 is shared by admin)
Need set no live snapshot for CentOS 7
create volume template from snapshot failed when original volume is deleted in NFS ps
keep attach/detach nic might fail
If attach Nic failed in libvirt attach stage, the allocated ip will not return to database
Change VM Instance list UI: replace Hypervisor column to VmNic0 IP address
PS available capacity is not correct
Can't set fields=totalCapacity,availableCapacity,availablePhysicalCapacity for QueryPrimaryStorage
after iso installation, the root volume shows format 'raw' while the real format is qcow2
VM console connection will be timeout, if ManagementNode use iptables to reject port access
Delete VM's last L3 uuid wont' destroy VM
VR VM's volume size is not counted in Primary Storage space
UpdateL3Network should be able to update "system" attribution
Qcow Volume image size is full size, when creating from volume offering
[API Request] APIUpdateHostMsg is required to update Host's information
URL format hint is wrong for IscsiFileSystemBackendPrimaryStorage
[0.7-preview] Add Storage Reconnect Action on UI
Bug Report
If you find any bugs, please open a ticket on GitHub