Description
Charm for installation and deployment of Veritas HyperScale Controller services. Refer README for more details
Overview
This charm includes the HyperScale Controller that is part of the Veritas™ HyperScale for OpenStack software for Canonical OpenStack.
Veritas HyperScale is a software-defined storage management solution for OpenStack-based virtualized cloud environments.
This charm is developed to support Veritas HyperScale deployment on Ubuntu Xenial and OpenStack Ocata releases. It is designed to be deployed with other OpenStack components, beginning with Ocata release.
The HyperScale Controller charm provides the following services:
- hyperscale-mq-controller
- hyperscale-mq-consumer
- hyperscale-api
- hyperscale-serengeti
Usage
This Veritas HyperScale charm requires the following components to be already deployed:
- cinder
- nova-cloud-controller
- openstack-dashboard
- keystone
- rabbitmq-server
- ceilometer
- zookeeper
- glance
- hacluster
Before deploying this charm, perform the following steps on the Juju controller node in your OpenStack configuration:
1) Enable management plugin for rabbitmq-server
juju config rabbitmq-server management_plugin=true
2) Change Dashboard HA Proxy timeouts
juju config openstack-dashboard haproxy-client-timeout="180000"
juju config openstack-dashboard haproxy-server-timeout="180000"
Note: These commands work on Juju 2.0. Check the Juju documentation if your Juju version is different.
Configuration
This charm does not support changing the default values of the configuration options.
The default settings should work for most deployments.
Deployment
Perform the following steps from the Juju controller node:
1) Download the HyperScale .deb packages tar file from the following link and save it to a temporary location: [downloadlocationlink]
2) Run the following command to deploy the HyperScale charm:
juju deploy hyperscale-controller --series=xenial --resource install="[path to hyperscale_packages.tar file]" --to [machine_ID]
Here, [machine_ID] is the Juju system where all other OpenStack components are deployed.
3) Configure the virtual IP address for the controller charm.
juju config hyperscale-controller vip="[virtual IP]"
Here, the [virtual IP] is a virtual IP address from the management network of the OpenStack nodes.
4) Verify that the virtual IP is added to the cluster configuration.
Perform the following steps:
a. Log on to the controller unit.
juju ssh [hyperscale controller unit]
b. Add the virtual IP to the configuration.
crm configure primitive res_hyperscale_vip ocf:heartbeat:IPaddr2 params ip="[virtual IP]" cidr_netmask="[mgmtnetworkprefix]" nic="[mgmtnetworkinterfacenameforhyperscalecontroller] " op monitor interval="30s"
c. Verify that the virtual IP is added.
sudo crm configure show
The parameter res_hyperscale_vip appears in the Pacemaker settings and the status shows as started.
The following ports are opened as part of this HyperScale charm deployment:
- 8753
- 3000
- 25826
Relations
- This charm requires relation with mysql, rabbimq-server, keystone, glance, zookeeper, and hacluster.
- Before adding these relations, ensure that you set the Keystone Admin password.
- Run the following commands to add the required relations:
juju add-relation hyperscale-controller rabbitmq-server:amqp
juju add-relation hyperscale-controller mysql:shared-db
juju add-relation hyperscale-controller keystone:identity-admin
juju add-relation hyperscale-controller zookeeper:zookeeper
juju add-relation hyperscale-controller glance:glance
juju add-relation hyperscale-controller hacluster (required only for HA of Controller)
High Availability / Clustering
Configure high availability for the HyperScale controller using the hacluster subordinate charm.
The hacluster charm provides an Active/Passive Pacemaker and Corosync cluster configuration for the hyperscale-controller charm.
When you deploy the HyperScale controller charm, it is automatically configured in a state that is ready for high availability.
HyperScale uses the virtual IP address (specified during deployment) as the high availability end point for the controller services.
You only need to add a minimum of three controller units for the HA configuration to take effect.
Perform the following steps:
1. Add controller units:
juju add-unit hyperscale-controller --to lxd:[machineID]
Repeat the command for each additional unit that you wish to add.
2. Modify the hacluster unit count parameter.
juju config hacluster cluster_count=[num]
Here, [num] is the total number of controller units that are deployed in the configuration.
For example, if you added two additional controller units after deploying the controller charm, the total number of units will be 3. (One unit created during charm deployment and two added later)
Contact Information
Author: Veritas Technologies LLC
Bugs:
Location:
Configuration
- vip_iface
- (string) Network interface on which to place the Virtual IP.
- eth0
- verbose
- (boolean) Enable debug logging.
- api_paste_config
- (string) Hyperscale configuration file
- /etc/hyperscale/api-paste.ini
- database
- (string) Hyperscale database name.
- HyperScale
- admin-port
- (int) Port the bind the Admin API server to.
- 35357
- vip_cidr
- (int) Netmask that will be used for the Virtual IP.
- 24
- config-file
- (string) Location of hyperscale configuration file
- /etc/hyperscale/hyperscale.conf
- use-syslog
- (boolean) Setting this to True will allow supporting services to log to syslog.
- vip
- (string) Virtual IP to use to front hyperscale in ha configuration
- hyperscale_api_listen_port
- (int) Port to bind the hyperscale API
- 8753
- ha-mcastport
- (int) Default multicast port number that will be used to communicate between HA Cluster nodes.
- 5490
- debug
- (boolean) Enable verbose logging.
- min-cluster-size
- (int) Minimum number of units expected to exist before charm will attempt to form a hyperscale cluster.
- ha-bindiface
- (string) Default network interface on which HA cluster will bind to communication with the other members of the HA Cluster.
- eth0
- database-user
- (string) Username used for connecting to the hyperscale database.
- hyperscale
- dns-ha
- (boolean) Use DNS HA with MAAS 2.0. Note if this is set do not set vip settings below.
- enable_telemetry
- (boolean) Enable telemetry for Hyperscale