FusionCompute

= Overview =

FusionCompute is a fully Huawei in-house developed computing virtualization software. FusionCompute provides the tuned high-performance and high reliabilities in VM instance provisioning, clustered resource pool management, and intelligent HA/FT scheduling.

Features
The overview of FusionCompute can be illustrated as below:

Virtual Computing

 * Server Virtualization Server virtualization enables physical server resources to be converted to logical resources. Using virtualization technology, one server can be divided into multiple separated virtual computing resources. CPU, memory, disks, and I/O resources become dynamically managed resource pools. In this way, resource utilization rate is enhanced, system management is simplified, and servers are integrated. In addition, hardware-assisted virtualization technology increases the virtualization efficiency and enhance VM security. Server virtualization involves the following features:
 * Bare Metal Architecture
 * CPU Virtualization
 * Memory Virtualization
 * Graphic Processing Unit (GPU) Passthrough
 * iNIC Passthrough
 * USB Passthrough
 * VM Resource Management Users can create VMs using a VM template or in a customized way, and manage cluster resources, including automatic and dynamic resource scheduling (such as load balancing and dynamic power saving), VM management (such as VM creating, deleting, starting, stopping, restarting, hibernating, and waking up), storage resource management (such as system volume, user volume, and shared volume management), VM security management (such as virtual local area network customization and security group selection). Users can also modify the VM quality of service (QoS), such as CPU QoS and memory QoS.
 * VM life cycle management
 * VM template
 * CPU QoS
 * Memory QoS
 * Dynamic resource overcommitment for VMs
 * VM statistics
 * Dynamic VM Resource Adjustment The FusionCompute supports VM resource dynamic adjustment, which allows users to dynamically adjust resource usage based on service load. VM resource adjustment includes:
 * Attaching virtual disks online/offline
 * Adding or deleting NICs offline
 * Adjusting the memory size online/offline
 * Adjusting the number of vCPUs online/offline
 * Distributed Resource Scheduling and Power Management The FusionCompute provides various virtual resource pools, such as computing resource pools, storage resource pools, virtual networks, and virtual firewalls. Resource scheduling is to intelligently schedule these virtual resources based on system load to balance the load on all resources. In this way, the system provides a high reliability and availability to users, improves the resource utilization of the data center. The FusionCompute supports the following scheduling modes:
 * Load balancing
 * Dynamic scheduling performed for energy saving
 * VM Live Migration In the FusionCompute, VMs can be migrated between hosts that share the same data stores. During the migration, services are not interrupted. This reduces the service interruption time by migrating VMs from the physical server to be maintained to another physical server and saving energies for the data center.

Virtual Storage

 * Virtual Image Management System The virtual image management system is a high-performance cluster file system that enables multiple VMs to gain access to an integrated storage pool to improve resource utilization efficiency. It is the basis for virtualizing multiple storage servers and provides the following services: live storage migration, storage resources dynamic scheduling, and high availability.
 * Virtual Storage Management Storage virtualization enables a storage device to be converted to a logical data store. A VM is stored as a set of files in a directory on a data store. A data store is a logical repository that is similar to a file system. It can combine storage devices of different types and provide a unified model to store VM files. The storage virtualization technology helps the system manage virtual infrastructure storage resources with high resource utilization and flexibility. Data stores support the following file system formats:
 * Virtual image management system
 * Network file system
 * Thin-Provisioning Virtual Storage Thin-provisioning virtual storage enables flexible, on-demand allocation of storage space, which improves storage utilization. This function allows more virtual memory space to be allocated than the physical memory available. The physical memory space is allocated only for the virtual memory space where data is recorded. The virtual memory space where no data is recorded does not occupy the physical memory space.
 * Storage device independent
 * Capacity monitoring
 * Disk space reclaiming
 * VM Snapshot Users can save the static data of a VM at a specific moment as a snapshot. The data includes information about all disks attached to the VM at the snapshot-taking moment. The snapshot can be used to restore the VM to the state it was in when the snapshot was taken. This function applies to data backup and disaster recovery to improve system security and availability.
 * Storage Live Migration This function enables disks on VMs to be migrated to other storage units when the VMs are running. The disks can be migrated between different storage devices or storage units on one storage device under virtual storage management. With this function enabled, storage resources of VMs can be dynamically adjusted, so that device can be maintained, and distributed resource scheduling (DRS) storage resources can be adjusted without service interruption. Only one disk can be migrated from or to a host at a time.

Virtual Network

 * Virtual NIC Each virtual network interface card (NIC) has an IP address and a MAC address. It has the same functions as a physical NIC on a network. The FusionCompute supports intelligent NICs (iNICs), and provides functions such as multiple queues, virtual swapping, quality of service (QoS), and uplink aggregation, which help improve NIC I/O performance of the system.
 * Bandwidth control based on a network plane
 * Bandwidth control based on a virtual NIC
 * Bandwidth control based on a port group member port
 * Elastic Virtual Switch A virtual switch brings a new virtual switching mode to the networks of the FusionCompute, providing virtual local area networks (VLANs), and functions such as Dynamic Host Configuration Protocol (DHCP) quarantine, and bandwidth limiting. In addition, its functions are expandable. Through a virtual switch, VMs on the same host can communicate with each other using the protocol a physical switch uses.
 * Network I/O Control The network QoS policy enables directional bandwidth configuration control.
 * DVS Each host connects to a distributed virtual switch (DVS), which functions as a physical switch. In the downstream direction, the DVS connects to VMs through a virtual port. In the upstream direction, it connects to the NIC on the host that provides the VM resources. Therefore, the host network can communicate with the VM network. In addition, the DVS allows the network configurations of VMs to retain unchanged when the VMs are migrated across hosts.

Topology
The figure below shows the logical nodes in the FusionCompute.



Modules

 * VRM: Virtual Resource Management. A node that implements centralized management of virtual resources, the core controller of FusionCompute.


 * CNA: Computing Node Agent. An agent deploys on each compute hosts to execute operations.


 * Host: A physical server that provides computing resources for the FusionCompute. Certain hosts can also provide storage resources.


 * Storage resources: Storage resources can be provided by storage area network (SAN) devices, network attached storage (NAS) devices, or local storage devices.


 * UVP: The hypervisor of Huawei FusionCompute based on SUSE.

= How FusionCompute works with Nova? =

The basic architecture can be shown as below:

Note

 * The package of nova-compute is deployed on the Huawei-CNA nodes.
 * Nova-scheduler will select the suitable compute-hosts based on the reported resource as usual.
 * Nova won't communicate with Huawei-VRM directly, the Huawei-FC Driver will be the bridge between them.
 * Glance will manage all images things.

Example
Let's give an example for creating an instance:

1. Nova API receives a request for creating. 2. Nova Scheduler chooses a suitable host based on configure as usual. 3. Nova Compute receives the request, gets IP/mac info from neutron, and calls the spawn on Huawei-FC Driver. 4. The Huawei-FC Driver sends the request to Huawei-VRM from the CNA node. 5. The Huawei-VRM chooses the last node, and starts to create instance on the compute node. 6. The Huawei-CNA will download image from Glance, prepare volume, build network, and finally start up the instance.

= Deployment of FusionCompute =

Please see the official website for deployment of Huawei FusionCompute. (Need registration)

= Configure OpenStack to work with FusionCompute =

Drafting

= Supported Functions =

Drafting

= Community =


 * Main Contributors
 * wingwj
 * Blueprints on Launchpad
 * https://blueprints.launchpad.net/nova/+spec/driver-for-huawei-fusioncompute