Top Banner
Clustering Alfresco Michael Farman Director of Product Management www.alfresco.com View the recorded webinar here: http:// tinyurl .com/alfresco-clus
13

High Availability Clustering With Alfresco

May 16, 2015

Download

Technology

http://tinyurl.com/689svq <-- view the recorded webinar. alfresco has been designed from ground up to support enterprise scale, mission critical applications.
In this Webinar we will cover how Alfresco can be deployed to deliver high-availability applications within your organization.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: High Availability Clustering With Alfresco

Clustering Alfresco

Michael FarmanDirector of Product Management

www.alfresco.com

View the recorded webinar here:http://tinyurl.com/alfresco-cluster

Page 2: High Availability Clustering With Alfresco

Alfresco Server Components

● Vertical Scalability● Note: 1.5GB JVM Limit on 32 bit

● Multiple Points of Failure● Application Server● Content and Index Storage● Database

Database

MySQL

Alfresco Server

Tomcat

EHCache

Index &Content Store

HTTP/CIFS/NFS/WebDAV/FTPClients

View the recorded webinar here:http://tinyurl.com/alfresco-cluster

Page 3: High Availability Clustering With Alfresco

What needs to be clustered?

● EHCache● Single Configuration File Rename

● Index● Note: Each server must have its

own index● Single Configuration File● Only for recovery

● Content● 2 Config Files

• Define Content Store Locations

• Declare the Stores

• Set Replication Type

● Database● Native Database Clustering

Database

MySQL

Production A

Tomcat

EHCache

Index &Content Store

HTTP/CIFS/NFS/WebDAV/FTPClients

View the recorded webinar here:http://tinyurl.com/alfresco-cluster

Page 4: High Availability Clustering With Alfresco

Content ClusteringReplicating Content Stores

● Used to synchronise content between content stores

● Inbound● On Read● ‘Pulls’ content from secondary

store to primary store

● Outbound● On Write● ‘Push’ content from primary

store to secondary store● Synchronous (Transactional)

or Asynchronous

SecondaryContent Store

PrimaryContent

PrimaryContent

ReplicatingContent Store

ReplicatingContent StoreA

A

A

A

View the recorded webinar here:http://tinyurl.com/alfresco-cluster

Page 5: High Availability Clustering With Alfresco

Replicating Content Stores In Action

SecondaryContent Store

PrimaryContent

PrimaryContent

Production A Production B

A1. Write A4. Request Content ‘A’

5. Not Found in Primary

6. Requested from Secondary

A7. Copy stored in Primary

A

A2. ‘A’ written to Primary

A

3. ‘A’ copied to secondary(sync/async)

ReplicatingContent Store

8. ‘A’ DeliveredSubsequent Requests Served from B Primary Store

A

ReplicatingContent Store

Note: Production A and B Do not knowanything about each other

Allows additional servers to be added withoutreconfiguring A or B

Note: Production A and B Do not knowanything about each other

Allows additional servers to be added withoutreconfiguring A or B

Inbound Outbound

Page 6: High Availability Clustering With Alfresco

Clustered Server -Shared DB and Content

√ Horizontal Scalability

X Multiple Points of Failure● Content Storage*● Database

● Note: Each server needs it’s own local index

Production A

Tomcat

EHCache

Database

MySQL

Production B

Tomcat

EHCache

Content Store

IndexIndex

HTTP/CIFS/WebDAV/FTPClients

Load BalancerLoad Balancer

* Could be on highly available disk such a SAN storage

View the recorded webinar here:http://tinyurl.com/alfresco-cluster

Page 7: High Availability Clustering With Alfresco

Clustered Server -Shared Database

√ Horizontal Scalability

X Single Point of Failure● Database

● Replicating Content Store

● In and Outbound Replication

● No need to change config for existing servers when adding additional servers

Database

MySQL

Production B

Tomcat

EHCache

SecondaryContent Store

Index*Index*PrimaryContent

PrimaryContent

Production A

Tomcat

EHCache

ReplicatingContent Store

ReplicatingContent Store

• Index recovery component not shown

Used to synchronise indexes when necessary e.g. After server restart

HTTP/CIFS/WebDAV/FTPClients

Load BalancerLoad Balancer

Page 8: High Availability Clustering With Alfresco

Database ClusteringMaster - Slave

● Use Native DB Clustering Capabilities

● Specifics Database (and O/S) Dependent

● Master – Slave● Master acts as

primary● Slave as backup● Bring slave online on

master failure• Scripts • O/S Level Clustering

● Note: Use DB connection pool to avoid Alfresco server restartsDatabase Clustering

<- Failover ->

DB Master

MySQL

DB Slave

MySQL

JDBC

View the recorded webinar here:http://tinyurl.com/alfresco-cluster

Page 9: High Availability Clustering With Alfresco

Database ClusteringMaster - Master

Database Clustering

<- Replication ->

DB Master

MySQL

DB Master

MySQL

JDBC JDBC

● Use Native DB Clustering Capabilities

● Specifics Database (and O/S) Dependent

● Master – Master● Can be used for

distributed deployment

● Network performance may be a factor

View the recorded webinar here:http://tinyurl.com/alfresco-cluster

Page 10: High Availability Clustering With Alfresco

Configuring a 2 Server ClusterQuick Start Guide

● Server A1. Standard Install2. Configure A’s Primary and the Secondary Store Locations

● custom-repository.properties

3. Enable Index Tracking● index.tracking.cronExpression in custom-repository.properties

4. Enable Content Replication between these locations● replicating-content-services-context.xml

● Define the Shared Content Store● Define in/outbound replication between the stores

5. Enable Index Tracking1. custom-repository.properties2. index.tracking.cronExpression=0/2 * * * * ? (default entry is 2099 i.e. never)

6. Enable● ehcache-custom.xml - Rename the sample

7. Startup

● Server B1. Copy A’s Install2. Configure B’s Primary Content Store – Only required if stores path different

● repository.properties● Note: Secondary Store Location – Same as A

3. Startup with Full Index Recovery – custom-repository.properties

Page 11: High Availability Clustering With Alfresco

Tips & Troubleshooting

● Starting the server without an index:● custom-repository.properties● system.bootstrap.config_check.strict=false

● Always use a fully qualified path to your content and index store locations

● custom-repository.properties • dir.root=c:\mystorage

● Rebuilding indexes● You cannot copy indexes from a running server● Shutdown and copy or use server generated backup copy

● System Clocks must be in sync on all servers● 1 second by default

View the recorded webinar here:http://tinyurl.com/alfresco-cluster

Page 12: High Availability Clustering With Alfresco

More Information

● Content Community – www.alfresco.com● Alfresco High Availability and Clustering Guide

● http://wiki.alfresco.com/wiki/High_Availability_Configuration

View the recorded webinar here:http://tinyurl.com/alfresco-cluster

Page 13: High Availability Clustering With Alfresco

View the recorded webinar:

http://tinyurl.com/alfresco-cluster