Hi All, I got the solution for cloudstack database high availability.
Follow the steps to enable the database high availability in cloudstack. 1) Go to the path: *“/usr/share/cloudstack-management/webapps/client/WEB-INF/lib/”* Find the *“cloud-plugin-database-mysqlha-4.3.1.jar” *file. 2) Create the path: *“/usr/share/cloudstack-mysql-ha/lib/”* Copy the above file to this path. 3) Edit the file *“/etc/cloudstack/management/catalina.properties” * check the *“common.loader” *line looks like: *“common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,/usr/share/java/mysql-connector-java.jar,/usr/share/cloudstack-mysql-ha/lib/*.jar”* 4) Edit the file *“/etc/cloudstack/management/db.properties”* *db.ha.enabled=true* *db.cloud.slaves=<slave IP address>* *db.usage.slaves=<slave IP address>* 5) Restart the management server. *“Service cloudstack-management restart”* *Regards,* *Rajasekhar.* On Wed, Sep 24, 2014 at 5:33 PM, Rajani Karuturi <raj...@apache.org> wrote: > I dont know if they are readily available. probably you could check > jenkins.buildacloud.org > > You could build one from source using the procedure at > > http://cloudstack-installation.readthedocs.org/en/latest/building_from_source.html#building-non-oss > > > It also has some information about non-oss/no-redist packages. > > ~Rajani > > On Wed, Sep 24, 2014 at 5:11 PM, Venkata Suneel Babu Mallela < > sunee...@simplifydc.com> wrote: > > > This setup is installed using RPM package repository. Can you please > guide > > how to check this is a noredist build or not? And what is the use of it? > > > > There is no directory "cloudstack-mysql-ha" under /usr/share/. > > > > [root@cs01 share]# ls cloudstack-* > > cloudstack-bridge/ cloudstack-management/ > > cloudstack-common/ cloudstack-usage/ > > > > Thank you, > > Suneel Mallela. > > > > -----Original Message----- > > From: Rajani Karuturi [mailto:raj...@apache.org] > > Sent: Wednesday, September 24, 2014 3:30 PM > > To: users@cloudstack.apache.org > > Subject: Re: CloudStack DataBase HA Restoration Test > > > > Is this a noredist build? Did you verify that the mysql-ha jar exists at > > /usr/share/cloudstack-mysql-ha/lib/*jar? > > > > > > > > > > > > ~Rajani > > > > On Wed, Sep 24, 2014 at 12:06 PM, Venkata Suneel Babu Mallela < > > sunee...@simplifydc.com> wrote: > > > > > Hi Rajani, > > > > > > Thank you for your response. I was stuck with some work last week. > > > > > > I've reinstalled a new CloudStack4.4.0 and added below line to the > > > file "/etc/cloudstack/management/catalina.properties", > > > > > > > > > common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catali > > > na.home}/lib,${catalina.home}/lib/*.jar,/usr/share/java/mysql-connecto > > > r-java.jar,/usr/share/cloudstack-mysql-ha/lib/*jar > > > > > > Restarted the management service, but still getting http status 404 > > > error, the log is below. > > > > > > 2014-09-23 05:24:14,176 INFO > > > [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > > > (main:null) Loading module context [system] from URL > > > [jar:file:/usr/share/cloudstack-management/webapps/client/WEB-INF/lib/ > > > cloud-core-4.4.0.jar!/META-INF/cloudstack/system/spring-core-system-co > > > ntext-inheritable.xml] > > > 2014-09-23 05:24:14,176 INFO > > > [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > > > (main:null) Loading module context [system] from URL > > > [jar:file:/usr/share/cloudstack-management/webapps/client/WEB-INF/lib/ > > > cloud-framework-config-4.4.0.jar!/META-INF/cloudstack/system/spring-fr > > > amework-config-system-context-inheritable.xml] > > > 2014-09-23 05:24:14,176 INFO > > > [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > > > (main:null) Loading module context [system] from URL > > > [jar:file:/usr/share/cloudstack-management/webapps/client/WEB-INF/lib/ > > > cloud-plugin-network-contrail-4.4.0.jar!/META-INF/cloudstack/system/sp > > > ring-contrail-system-context-inheritable.xml] > > > 2014-09-23 05:24:14,176 INFO > > > [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > > > (main:null) Loading module context [system] from URL > > > [jar:file:/usr/share/cloudstack-management/webapps/client/WEB-INF/lib/ > > > cloud-core-4.4.0.jar!/META-INF/cloudstack/bootstrap/spring-bootstrap-c > > > ontext-inheritable.xml] > > > 2014-09-23 05:24:18,016 INFO [c.c.u.d.T.Transaction] (main:null) Is > > > Data Base High Availiability enabled? Ans : true > > > 2014-09-23 05:24:18,053 INFO [c.c.u.d.T.Transaction] (main:null) The > > > slaves configured for Cloud Data base is/are : 10.0.60.204 > > > 2014-09-23 05:24:18,130 ERROR [c.c.u.d.Merovingian2] (main:null) > > > Unable to get a new db connection > > > java.sql.SQLException: Invalid load balancing strategy > > > 'com.cloud.utils.db.StaticStrategy'. > > > at > com.mysql.jdbc.SQLError.createSQLException(SQLError.java:934) > > > at > com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931) > > > at com.mysql.jdbc.Util.loadExtensions(Util.java:588) > > > at > > > > > > com.mysql.jdbc.LoadBalancingConnectionProxy.<init>(LoadBalancingConnectionProxy.java:280) > > > at > > > > > > com.mysql.jdbc.FailoverConnectionProxy.<init>(FailoverConnectionProxy.java:66) > > > at > > > > > > com.mysql.jdbc.NonRegisteringDriver.connectFailover(NonRegisteringDriver.java:382) > > > at > > > > > > com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:301) > > > at java.sql.DriverManager.getConnection(DriverManager.java:571) > > > at java.sql.DriverManager.getConnection(DriverManager.java:215) > > > at > > > > > > org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:75) > > > at > > > > > > org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582) > > > at > > > > > > org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188) > > > at > > > > > > org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106) > > > at > > > > > > com.cloud.utils.db.TransactionLegacy.getStandaloneConnectionWithException(TransactionLegacy.java:205) > > > at com.cloud.utils.db.Merovingian2.<init>(Merovingian2.java:68) > > > at > > > com.cloud.utils.db.Merovingian2.createLockMaster(Merovingian2.java:80) > > > at > > > com.cloud.server.LockMasterListener.<init>(LockMasterListener.java:33) > > > at > > > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > > > Method) > > > at > > > > > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) > > > at > > > > > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > > > at > > java.lang.reflect.Constructor.newInstance(Constructor.java:526) > > > at > > > > org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148) > > > at > > > > > > org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:121) > > > at > > > > > > org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:280) > > > at > > > > > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1045) > > > at > > > > > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:949) > > > at > > > > > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487) > > > at > > > > > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) > > > at > > > > > > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) > > > at > > > > > > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) > > > at > > > > > > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) > > > at > > > > > > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) > > > at > > > > > > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628) > > > at > > > > > > org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) > > > at > > > > > > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) > > > at > > > > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContext(DefaultModuleDefinitionSet.java:145) > > > at > > > > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet$2.with(DefaultModuleDefinitionSet.java:122) > > > at > > > > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:245) > > > at > > > > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:250) > > > at > > > > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:233) > > > at > > > > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContexts(DefaultModuleDefinitionSet.java:117) > > > at > > > > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.load(DefaultModuleDefinitionSet.java:79) > > > at > > > > > > org.apache.cloudstack.spring.module.factory.ModuleBasedContextFactory.loadModules(ModuleBasedContextFactory.java:37) > > > at > > > > > > org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.init(CloudStackSpringContext.java:70) > > > at > > > > > > org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init>(CloudStackSpringContext.java:57) > > > at > > > > > > org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init>(CloudStackSpringContext.java:61) > > > at > > > > > > org.apache.cloudstack.spring.module.web.CloudStackContextLoaderListener.contextInitialized(CloudStackContextLoaderListener.java:52) > > > at > > > > > > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4210) > > > at > > > > org.apache.catalina.core.StandardContext.start(StandardContext.java:4709) > > > at > > > > > > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) > > > at > > > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) > > > at > > > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) > > > at > > > > > > org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041) > > > at > > > > > > org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964) > > > at > > > org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502) > > > at > > > org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) > > > at > > > > > > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) > > > at > > > > > > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) > > > at > > > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) > > > at > > > org.apache.catalina.core.StandardHost.start(StandardHost.java:722) > > > at > > > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) > > > at > > > org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) > > > at > > > > org.apache.catalina.core.StandardService.start(StandardService.java:516) > > > at > > > org.apache.catalina.core.StandardServer.start(StandardServer.java:710) > > > at > org.apache.catalina.startup.Catalina.start(Catalina.java:593) > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > at > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > at java.lang.reflect.Method.invoke(Method.java:606) > > > at > > org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) > > > at > > > org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) > > > Caused by: java.lang.ClassNotFoundException: > > > com.cloud.utils.db.StaticStrategy > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:366) > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:355) > > > at java.security.AccessController.doPrivileged(Native Method) > > > at java.net.URLClassLoader.findClass(URLClassLoader.java:354) > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:425) > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:358) > > > at java.lang.Class.forName0(Native Method) > > > ... 70 more > > > 2014-09-23 05:24:29,485 INFO [c.c.u.c.ComponentContext] (main:null) > > > Configuring > > > com.cloud.bridge.persist.dao.CloudStackAccountDaoImpl_EnhancerByCloudS > > > tack_901525bd > > > 2014-09-23 05:24:29,497 INFO [c.c.u.c.ComponentContext] (main:null) > > > Configuring > > > com.cloud.bridge.persist.dao.OfferingDaoImpl_EnhancerByCloudStack_251f > > > 9517 > > > 2014-09-23 05:24:29,497 INFO [c.c.u.c.ComponentContext] (main:null) > > > Configuring > > > com.cloud.bridge.persist.dao.SMetaDaoImpl_EnhancerByCloudStack_41c6850 > > > f > > > 2014-09-23 05:24:29,502 INFO [c.c.u.c.ComponentContext] (main:null) > > > Configuring > > > com.cloud.bridge.persist.dao.UserCredentialsDaoImpl_EnhancerByCloudSta > > > ck_e2c8502e > > > 2014-09-23 05:24:29,502 INFO [c.c.u.c.ComponentContext] (main:null) > > > Configuring > > > com.cloud.bridge.persist.dao.MultipartMetaDaoImpl_EnhancerByCloudStack > > > _292f07ce > > > 2014-09-23 05:24:29,502 INFO [c.c.u.c.ComponentContext] (main:null) > > > Configuring > > > com.cloud.bridge.persist.dao.CloudStackConfigurationDaoImpl_EnhancerBy > > > CloudStack_50fa97ec > > > > > > Thank you, > > > Suneel Mallela. > > > > > > -----Original Message----- > > > From: Rajani Karuturi [mailto:raj...@apache.org] > > > Sent: Thursday, September 18, 2014 6:08 PM > > > To: users@cloudstack.apache.org > > > Subject: Re: CloudStack DataBase HA Restoration Test > > > > > > Can you share the logs? > > > > > > you might be hitting the bug > > > https://issues.apache.org/jira/browse/CLOUDSTACK-6892 > > > The fix is in 4.4.1 branch. > > > As workaround, you can manually update catalina.properties as per the > > > changes in the fix [1] > > > > > > [1] > > > > > > https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=blobdiff;f= > > > client/tomcatconf/catalina.properties.in;h=282892bb763a74b3898c9402423 > > > 245670f69d546;hp=ce03ff6390b19e21d11c87c68adb7bd07a8c95eb;hb=539db08;h > > > pb=cc913cf0bb7e62b7a216e2de793336e61a49b485 > > > > > > ~Rajani > > > > > > On Thu, Sep 18, 2014 at 5:25 PM, Venkata Suneel Babu Mallela < > > > sunee...@simplifydc.com> wrote: > > > > > > > Hi All, > > > > > > > > I've configured CloudStack DataBase replication(Master-Slave) > > > > successfully and the setup is, > > > > > > > > Management Server - 10.0.0.10 > > > > DataBase_1(Master) - 10.0.0.11 > > > > DataBase_2(Slave) - 10.0.0.12 > > > > > > > > I want to test restoration process. I've followed the below link and > > > > edited the "/etc/cloudstack/management/db.properties" file, > > > > > > > > > > > > http://docs.cloudstack.apache.org/projects/cloudstack-administration > > > > /e > > > > n/4.4/reliability.html > > > > > > > > db.ha.enabled=true > > > > db.cloud.slaves=10.0.0.12 > > > > db.usage.slaves=10.0.0.12 > > > > > > > > But, I'm getting HTTP Status 404 error. > > > > > > > > Can anyone explain the step by step process to make slave as mater > > > > and master as slave in CloudStack point of view? > > > > > > > > I'm using ACS4.4.0. > > > > > > > > Thank you, > > > > Suneel Mallela > > > > > > > > > >