![]() |
![]() | |
Most applications can be placed under cluster control provided the basic guidelines are met:
Define start, stop, and status check (monitor) procedures.
Ability to restart in a known state.
Ability to store the required application data on shared storages, replicated storage or network storages.
Adherence to license requirements, host name dependencies and network address dependencies.
To enable SIC to control and monitor the application, the start, stop and monitor procedures must be defined.
The application must have a command to start it and all resources it may require, such as mounted file systems, IP addresses, etc. SIC brings up the required resources in the predefined order, then brings up the application using the defined start procedure. For example, to start an Oracle database, SIC first brings the required storage and file systems online, then the database instance. To start the instance, SIC must know which Oracle command to call, such as /etc/init.d/ora
The instance of the application must be capable of being stopped cleanly without leaving any Lock state, such as shared memory segments or semaphores. If an application cannot be stopped normally, the stop procedure may need to kill the application using a forceful method and to the cleanup. If the application stop procedure hangs, SIC will force the system to restart or halt to avoid the application to not able to failover.
The application must have a monitor procedure that determines if the specified application instance is healthy. For example, in a database environment, the monitoring application can connect to the database server and perform SQL commands to verify read and write to the database. End-to-end monitoring is a far more robust check of application health rather than checking of process is. In SIC, this is done by Service Monitoring Agents which is a modular interface that allow specific agents to work with the cluster engine, or it can be custom developed.
In case of the application crashed, and SIC has detected it has failed. SIC will restart the application, and the application should always get to a known state after restart.