On Oct 14, 2014, at 11:36 AM, raja sekhar <[email protected]> wrote:
> 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”*
>
>
Would be great if you could contribute/correct the docs at:
http://docs.cloudstack.apache.org
You can fork on github and submit a pull request.
thanks
>
> *Regards,*
>
> *Rajasekhar.*
>
> On Wed, Sep 24, 2014 at 5:33 PM, Rajani Karuturi <[email protected]> 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 <
>> [email protected]> 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:[email protected]]
>>> Sent: Wednesday, September 24, 2014 3:30 PM
>>> To: [email protected]
>>> 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 <
>>> [email protected]> 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:[email protected]]
>>>> Sent: Thursday, September 18, 2014 6:08 PM
>>>> To: [email protected]
>>>> 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 <
>>>> [email protected]> 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
>>>>>
>>>>
>>>
>>