Skip to content
Marcio Silva edited this page Mar 9, 2017 · 1 revision

Workloads

WQ1: I see that CBTOOL can run a variety of different benchmarks/workloads. Will CBTOOL install these applications (e.g., Hadoop, MySQL, DB2, WebSphere) on the VMs automatically for me?

WA1: No. CBTOOL assumes that the application binaries are already installed on the image. It will configure and start the applications automatically (as explained [here] (https://github.com/maugustosilva/cbtool/wiki/DOC:-Virtual-Application-Deployment)) but you will have to perform the initial install. Some (but not all) workloads do have an automated installer, which can be invoked with ~/cbtool/install --wks <workload type>. Not however, that you still have to:

a) boot a VM

b) run the installer

c) run ~/cbtool/scripts/common/cb_prepare_for_capture.sh

d) capture the VM

e) add the VM back into the [VM_TEMPLATES] section of your [private configuration file] (https://github.com/maugustosilva/cbtool/wiki/FAQ-S#wiki-sq2).

Back


WQ2: I know that the Virtual Application Submitters can continuously deploy Virtual Applications with a certain arrival rate. What I want is to deploy a bunch of Virtual Applications at once (i.e., "bulk arrival"). Can I do that with CBTOOL?

WQ2: Yes. On the CLI, just type aiattach <vapp type> async=N (where N is the number of Virtual Applications)

Back


WQ3: Can I use CBTOOL to just deploy a Virtual Application, without generating load after it is started?

WQ3: Yes. On the CLI, just type cldalter ai_defaults dont_start_load_manager=true. After this, any VApp deployed with aiattach (vapp type) will just be deployed, without generating any application load.

Back


WQ4: I have a Virtual Application Submitter (VAppS) (Application Instance Deployment Request Submitter (AIDRS)) and just want to have it immediately stopping the deployment of new Virtual Application instances, while still removing the ones already created, once their lifetime expires. How can I do it?

WA4: Instead of removing the Virtual Application Submitter, which would result on Virtual Application instances created by this particular VAppS dangling perpetually (since no process is left to make sure that each individual VApp by deployed by this Virtual Application Submitter is removed when their lifetime expires), the VAppS can be put on the "stopped" state. On CBTOOL's CLI, type the command statealter VAppS_NAME stopped. To resume normal operation on the Virtual Application Submitter, use the command statealter VAppS_NAME attached.

Back


WQ5: Can I set SLA targets for Virtual Application provisioning time and performance?

WA5: Yes, CBTOOL now has rudimentary support for SLA tracking. Great care was taken to make sure that this new capability is non-intrusive to users that prefer to have their SLA tracking done from the outside. Two kinds of SLA tracking are possible, provisioning and runtime.

If a VM is deployed with the attribute "sla_provisioning_target" set, then CBTOOL will calculate, at the end of the provisioning, if the total time taken to provision is smaller than the specified value, adding a new attribute - "sla_provisioning" - with values "ok" or "violated" to the VM. In addition to it, it will also add the VM to a "view" (i.e., a list of objects that share a common attribute) that can be queried at any time.

Example for SLA provisioning:

  • CLI: aiattach open_daytrader default default none none none mysql_sla_provisioning_target=50,geronimo_sla_provisioning_target=50,client_daytrader_sla_provisioning=50 (where the parameters default default none none none are kept as defaults).
  • API: apiconn.appattach(<CLOUDNAME>, "open_daytrader", temp_attr_list = "mysql_sla_provisioning_target=50,geronimo_sla_provisioning_target=50,client_daytrader_sla_provisioning=50")

These commands will instruct CBTOOL to automatically check if the total provisioning time for each VM role on this Virtual Application type does not exceed 50 seconds, and then place each VM on a list of VMs with violated or fulfilled SLA provisioning.

These VM lists automatically compiled (also known as "views" internally by CBTOOL) can be accessed by the command viewshow.

A list of VMs who violated the provisioning SLA can be obtained with viewshow vm sla_provisioning violated, while a list of VMs who fulfilled the SLA can be with obtained with viewshow vm sla_provisioning ok. The API equivalent of these commands is api.viewshow("TESTSIMCLOUD", "VM", "SLA_PROVISIONING", "OK").

Example for SLA runtime:

  • CLI: aiattach iperf default default none none none sla_runtime_target_bandwidth=1000-gt (where the parameters default default none none none are kept as defaults).
  • API: apiconn.appattach(<CLOUDNAME>, "iperf", temp_attr_list = "sla_runtime_target_bandwidth=1000-gt")

This will instruct CBTOOL to automatically check if the reported application bandwidth is smaller than 1000 (that is controlled by "gt" or "greater than" and "lt" or "less than"), and then place the VM on a list of VMs with violated or fulfilled the SLA runtime.

A list of VMs who violated the SLA can be obtained with viewshow vm sla_runtime violated, while a list of VMs who fulfilled the SLA can be with viewshow vm sla_runtime ok. The API equivalent of these commands is api.viewshow("TESTSIMCLOUD", "VM", "SLA_RUNTIME", "OK").

IMPORTANT : Please note that method of setting SLA parameters dynamically is an alternative that avoids the need for changes directly your [private configuration file] (https://github.com/maugustosilva/cbtool/wiki/FAQ-S#wiki-sq2). It is the recommended method for the setting of SLA, and is presented in a more complete form here.

Back


WQ6: Can I "scale-out" (i.e., increase the number of VMs) an already deployed Virtual Application instance?

WA6: Yes, CBTOOL has the CLI command (and API call) "airesize" to this end. For instance, the command airesize TESTCLOUD ai_1 hadoopslave +1 would add one additional Hadoop slave node (VM) to the already running VApp ai_1. Conversely, a Hadoop slave node (VM) could be removed with airesize TESTCLOUD ai_1 hadoopslave -1. Please note that, while the airesize command could be applied to any Virtual Application type, it is basically intended to be used with "scale-out" workloads (Vapp types), such as Hadoop and HPCC.

Back


WQ7: Can I attach data volumes to individual VM instances while deploying Virtual Applications?

WA7: Yes, provided that your Cloud (and Cloud Adapter) supports additional data volumes. Using the the Virtual Application type "cassandra_ycsb" as an example, add the following section on your [private configuration file] (https://github.com/maugustosilva/cbtool/wiki/FAQ-S#wiki-sq2):

[AI_TEMPLATES : CASSANDRA_YCSB]
YCSB_CLOUD_VV = 10
SEED_CLOUD_VV = 10

This will instruct CB to create (and attach) a 10 GB Virtual Volume for each VM with the role the role "seed" or "ycsb" while deploying a new "cassandra_ycsb" VApp.

IMPORTANT : keep in mind that this parameter can be changed in any of the 3 ways discussed here and here (i.e., by changing the [private configuration file] (https://github.com/maugustosilva/cbtool/wiki/FAQ-S#wiki-sq2), by issuing the CLI/API typealter <vapp type> <parameter> <value> or by dynamically overriding the parameters during an aiattach CLI/API call).

Back


WQ8: Can I deploy a VM to act as load balancer between two application tiers in a given Virtual Application instance?

WA8: Yes, but only for Virtual Application types where the inclusion of a "Load Balancer" instance is applicable. First, check if the parameter load_balancer_supported is True for the considered VApp type, through the use of the command typeshow. For instance typeshow open_daytrader will show that this VApp type does support a load balancer instance. In this is the case, just add a section to you [private configuration file] (https://github.com/maugustosilva/cbtool/wiki/FAQ-S#wiki-sq2):

[AI_TEMPLATES : OPEN_DAYTRADER]
LOAD_BALANCER = $True

IMPORTANT : keep in mind that this parameter can be changed in any of the 3 ways discussed here and here (i.e., by changing the [private configuration file] (https://github.com/maugustosilva/cbtool/wiki/FAQ-S#wiki-sq2), by issuing the CLI/API typealter <vapp type> <parameter> <value> or by dynamically overriding the parameters during an aiattach CLI/API call).

Back

Clone this wiki locally