...
class | tocc |
---|
Table of Contents |
---|
Introduction to Abiquo
...
services
The table below summarizes the most important services that are used by Abiquo profiles. A description of each service is provided below the table.
Please be aware that the services marked with are are optional. This is explained in each service description. These tables are for guidance only and because Abiquo is a distributed platform, the location of these services may vary in customized installations.
Table of Profiles and Services
Service | Monolithic | Distributed Server | Distributed RS | Distributed V2V | Abiquo KVM |
---|
DHCP Relay | Monitoring | NFS Repository | |
---|---|---|---|
abiquo-tomcat |
mysql |
redis |
rabbitmq-server |
v2v-diskmanager* |
mechadora |
nfs |
smb
dhcpd |
dhrelay
dhrelay | ||||||||
abiquo-aim |
abiquo-emmett |
abiquo-delorean |
kairosdb |
cassandra |
Notes on Profiles in the Table
Monolithic
Installation for a single-server Abiquo platform.
...
See Install a test environment for more information.
Distributed Install
Abiquo Server in Distributed Install with central Abiquo Server and API machine that coordinates Remote Services servers for each physical datacenter.
See
...
Distributed environment for more information.
Distributed RS
Remote Services Server in Distributed Install that manages resources for a physical data center and receives orders from the Distributed Install.
See
...
Distributed environment for more information.
...
class | landsc |
---|
...
abiquo-tomcat
What it does: It is a servlet container responsible for the management of Abiquo modules.
When it is required: When there are Abiquo modules on the server.
How to check its status:
Code Block # ps aux | grep tomcat
Example output:
...
Code Block root 18348 9.6 26.9 2457384 833320 ? Sl Feb29 782:38 /usr/java/default/bin/java -Djava.util.logging.config.file=/opt/abiquo/tomcat/conf/logging.properties -server -Xms1024m -Xmx1500m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -Djava.awt.headless=true - Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/abiquo/tomcat/endorsed - classpath /opt/abiquo/tomcat/bin/bootstrap.jar -Dcatalina.base=/opt/abiquo/tomcat -Dcatalina.home=/opt/abiquo/tomcat - Djava.io.tmpdir=/opt/abiquo/tomcat/temp org.apache.catalina.startup.Bootstrap start
How to start or stop it:
Code Block # service abiquo-tomcat start # service abiquo-tomcat stop # service abiquo-tomcat restart
mysqld
What it does: MySQL daemon that runs the MariaDB database that contains most of the information that Abiquo uses
When it is required: By default, it is installed on the Abiquo Server. It can be installed on a separate server or an already existing MySQL server.
How to check its status:
Code Block # service mysql status
How to start or stop it:
...
title | Caution! |
---|
...
Stopping the MySQL database server before the Abiquo Server may harm the environment and cause data loss.
Code Block # service mysql start # service mysql stop
redis
What it does: The Redis server manages event subscription on nodes and delivers it to Abiquo. The Monitor manager or VSM remote service detects state changes in the virtual systems. So for example, when you add a virtual machine, the VSM creates a monitor for that virtual machine, and when the virtual machine is powered on, the state change is detected and notified by the VSM.
Where is it required: On Remote Services servers that contain the Monitor Manager (VSM) Remote Service. Redis can also be installed on a separate server for the remote services. Redis is also installed on the Abiquo Server. In a monolithic configuration, Abiquo uses only one Redis instance.
How to check its status:
Code Block # redis-cli ping
Alternatively, type the following commands:
Code Block # redis-cli redis 127.0.0.1:6379> set mykey somevalue OK redis 127.0.0.1:6379> get mykey "somevalue"
How to start or stop it:
...
title | Caution |
---|
...
Always stop the Abiquo-tomcat services first before stopping Redis.
Code Block # redis start # redis-cli shutdown
rabbitmq-server
What it does: RabbitMQ is used for communications between Remote Services and the central Abiquo Server and its API
When it is required: On Abiquo main server installations
How to check its status:
...
title | Caution |
---|
...
Always stop the Abiquo-tomcat services first before stopping RabbitMQ.
Code Block # service rabbitmq-server status
How to start or stop it:
Code Block # service rabbitmq-server start # service rabbitmq-server stop
v2v-diskmanager
What it does: Script used for automating VM Template conversions to supported formats
When it is required: For disk format conversions. For performance reasons, it should be installed as a separate V2V Server.
How to check its status: This is not a daemon; it is a service initiated by Abiquo. So the best way to know if it is currently working on a conversion is using ps aux:
...
...
class | tinycode widecode |
---|
Code Block # ps aux | grep v2v root 32046 0.2 0.0 63892 1200 ? S 16:44 0:00 /bin/bash /usr/bin/v2v-diskmanager VMDK_STREAM_OPTIMIZED L29wdC92bV9yZXBvc2l0b3J5LzEvcnMuYmNuLmFiaXF1by5jb20vYWJpcG9ydDkwMDAvb3ZmLzcyL2ZpbGUtYnVpbGQtYm90 LXJoZWw1LWRpc2sxLnZtZGs= VMDK_FLAT L29wdC92bV9yZXBvc2l0b3J5LzEvcnMuYmNuLmFiaXF1by5jb20vYWJpcG9yd DkwMDAvb3ZmLzcyL2Zvcm1hdHMvZmlsZS1idWlsZC1ib3QtcmhlbDUtZGlzazEudm1kay1WTURLX0ZMQVQ= root 32095 0.0 0.0 61224 756 pts/1 R+ 16:44 0:00 grep v2
How to start or stop it: You will only need to stop it or to start it when there is an issue during conversions. For example, if you want to test why a conversion failed. You can check the /opt/abiquo/tomcat/logs/bpm-async.log to find the command issued by Abiquo:
...
class | tinycode widecode |
---|
...
Code Block 2012-03-23 16:44:07,142 DEBUG c.a.a.b.s.u.ExecUtils [ExecUtils.java:46] Executing OS command: v2v-diskmanager VMDK_STREAM_OPTIMIZED L29wdC92bV9yZXBvc2l0b3J5LzEvcnMuYmNuLmFiaXF1by5jb20vYWJpcG9ydDkwMDAvb3ZmLzcyL2ZpbGUtYnVpbGQtYm90LX JoZWw1LWRpc2sxLnZtZGs= VMDK_FLAT L29wdC92bV9yZXBvc2l0b3J5LzEvcnMuYmNuLmFiaXF1by5jb20vYWJpcG9ydDkwM DAvb3ZmLzcyL2Zvcm1hdHMvZmlsZS1idWlsZC1ib3QtcmhlbDUtZGlzazEudm1kay1WTURLX0ZMQVQ=
Copy a command found in the log and run it again to see more detail from the error message. For example:
...
...
Code Block $ v2v-diskmanager VMDK_STREAM_OPTIMIZED L29wdC92bV9yZXBvc2l0b3J5LzEvcnMuYmNuLmFiaXF1by5jb20vYWJpcG9 ydDkwMDAvb3ZmLzcyL2ZpbGUtYnVpbGQtYm90LXJoZWw1LWRpc2sxLnZtZGs= VMDK_FLAT L29wdC92bV9yZXBvc2l0b3J5LzE vcnMuYmNuLmFiaXF1by5jb20vYWJpcG9ydDkwMDAvb3ZmLzcyL2Zvcm1hdHMvZmlsZS1idWl sZC1ib3QtcmhlbDUtZGlzazEudm1kay1WTURLX0ZMQVQ=
To stop it, use the pkill command, or from the top application, pressing k to kill the process.
mechadora
What it does: Creates a persistent machine from a VM Template that will run on an iSCSI disk
When is required: This is a remote service that would usually be installed on V2V Servers.
How to check its status:
...
Code Block # ps aux | grep mechadora root 2521 0.0 0.0 63892 1160 ? S 18:05 0:00 /bin/bash /usr/bin/mechadora deploy 10.60.13.20 iqn.2008-03.com.abiquo.localhost.localdomain:8654e6ac-cb3f-4751-9600-4bc642c327c5 /opt/vm_repository/1/abiquo-repository.s3.amazonaws.com/ubuntu-11.04/formats/ubuntu-11.04.qcow2-RAW ip-10.60.13.20:3260-iscsi-iqn.2008-03.com.abiquo.localhost.localdomain:8654e6ac-cb3f-4751-9600- 4bc642c327c5-lun-1
How to start or stop it: The procedure is the same as for v2v-diskmanager.
nfs
What it does: It is the service that manages the NFS shares from our system when we export them. In Abiquo we use it to share the vm_repository
When it is required: Only when we are sharing our vm_repository, usually in small installations.
How to check its status:
Code Block # service nfs status
How to start or stop it: Use the service command.
Code Block # service nfs start # service nfs
...
smb
...
How to check its status:
...
...
stop
...
...
dhcpd
What it does: The daemon for the DHCP server. Assigns the IPs that the user selected in Abiquo to each virtual machine.
When it is required: On our Remote Services servers. It can also be installed separately and requires a trunk port connection to reach the hypervisors.
How to check its status:
Code Block # service dhcpd status
How to start or stop it:
Code Block # service dhcpd start # service dhcpd stop
dhrelay
What it does: It is the main component on DHCP Relay servers, see Abiquo DHCP documentation for more information.
When it is required: On DHCP Relay servers. See the documentation above.
How to check its status:
Code Block # service dhrelay status
How to start or stop it:
Code Block # service dhcpd start # service dhcpd stop
abiquo-aim
What it does: It is the link that communicates between Libvirt on KVM hypervisors and the Remote Services, in particular Redis.
When it is required: On KVM hypervisors
How to check its status:
Code Block # ps aux | grep abiquo-aim
If abiquo-aim is running, you will see a line like this:
Code Block root 2816 0.0 0.4 95528 2104 ? Ssl 13:26 0:00 /usr/sbin/abiquo-aim --config-file /etc/abiquo-aim.ini -d
How to start or stop it:
Code Block # service abiquo-aim start # service abiquo-aim stop
abiquo-emmett
What it does: It is part of the Watchtower monitoring module that interacts with the VSM and Abiquo API and the KairosDB to manage metrics and alarms.
When it is required: On the Abiquo Monitoring server
How to check its status:
Code Block # ps aux | grep abiquo-emmett
If abiquo-emmett is running, you will see a line like this:
Code Block XXX TODO
How to start or stop it:
NOTES ABOUT START / STOP ISSUESCode Block # service abiquo-emmett start # service abiquo-emmett stop
abiquo-delorean
What it does: It is part of the Watchtower monitoring module. It evaluates monitoring alarms and alerts
When it is required: On the Abiquo Monitoring server
How to check its status:
Code Block # ps aux | grep abiquo-delorean
If abiquo-delorean is running, you will see a line like this:
Code Block XXX TODO
How to start or stop it:
...
Make sure that you start KairosDB and Cassandra, and that they are running properly before you start Delorean
Code Block # service abiquo-delorean start # service abiquo-delorean stop
kairosdb
What it does: It is part of the Abiquo Monitoring system. It is a fast scalable time series database. Abiquo uses it to store metrics with the Cassandra NoSQL database.
Reference: http://kairosdb.github.io/docs/build/html/GettingStarted.html
When it is required: It is required for monitoring. By default it is installed on the Abiquo Monitoring server. In a larger installation it should be installed on a separate server.
How to check its status:
Code Block # ps aux | grep kairosdb
If kairosdb is running, you will see a line like this:
...
How to start or stop it:
...
Start KairosDB first before you start the other monitoring services
Code Block # ./kairosdb.sh start # ./kairosdb.sh stop
cassandra
What it does: It is part of the Abiquo Monitoring system. To quote its wiki: "Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store". Abiquo uses it to store metrics.
When it is required: It is required for monitoring. By default it is installed on the Abiquo Monitoring server. In a larger installation it should be installed on a separate server or even a cluster.
How to check its status:
Code Block # ps aux | grep cassandra
If Cassandra is running, you will see a line like this:
Code Block XXX TODO
How to start or stop it:
...
Remember to check if Cassandra is really dead or not!
Code Block # bin/cassandra # pkill -f CassandraDaemon
...