上QQ阅读APP看书,第一时间看更新
Putting it all together
Now that you have understood the architecture and terminologies, we will take a look at the general steps that are followed:
- Horizon/Trove CLI requests a new database instance and passes the datastore name and version, along with the flavor ID and volume size as mandatory parameters. Optional parameters such as the configuration group, AZ, replica-of, and so on can also be passed.
- The Trove API requests Nova for an instance with the particular image and a Cinder volume of a specific size to be added to the instance.
- The Nova instance boots and follows these steps:
- The cloud-init scripts are run (like all other Nova instances).
- The configuration files (for example,
trove-guestagent.conf
) are copied down to the instance. - The guest agent is installed.
- The Trove API will also have sent the request to the task manager, which will then send the
prepare
call to the message bus topic. - After booting, the guest agent listens to the message bus for any activities for it to do, and once it finds a message for itself, it processes the
prepare
command and performs the following functions:- Installing the database distribution (if not already installed on the image)
- Creating the configuration file with the default configuration for the database engine (and any configuration from the configuration groups associated overriding the defaults)
- Starting the database engine and enabling auto-start
- Polling the database engine for availability (until the database engine is available or the timeout is reached)
- Reporting the status back to the Trove backend using the Trove conductor
- The Trove manager reports back to the API and the status of the machine is changed.