Modified: openmeetings/trunk/singlewebapp/docs/team-list.html URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/docs/team-list.html?rev=1453158&r1=1453157&r2=1453158&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/docs/team-list.html (original) +++ openmeetings/trunk/singlewebapp/docs/team-list.html Wed Mar 6 04:09:29 2013 @@ -385,9 +385,9 @@ limitations under the License. currentLocation = "Configuration"; currentLink = "/FFMPEGVersionSwitch.html".substr(1, "/FFMPEGVersionSwitch.html".length); } - else if (document.location.href.indexOf("/ClusteringManual.html") > 0) { + else if (document.location.href.indexOf("/Clustering.html") > 0) { currentLocation = "Configuration"; - currentLink = "/ClusteringManual.html".substr(1, "/ClusteringManual.html".length); + currentLink = "/Clustering.html".substr(1, "/Clustering.html".length); } else if (document.location.href.indexOf("/GetVersionInfo.html") > 0) { currentLocation = "Configuration"; @@ -618,7 +618,7 @@ limitations under the License. <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a> <br/> <b>Clustering</b><br/> - <a href="./ClusteringManual.html">Clustering (Manual)</a> + <a href="./Clustering.html">Clustering</a> <br/> <b>Misc</b><br/> <a href="./GetVersionInfo.html">Get version info</a>
Modified: openmeetings/trunk/singlewebapp/docs/themes-and-branding.html URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/docs/themes-and-branding.html?rev=1453158&r1=1453157&r2=1453158&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/docs/themes-and-branding.html (original) +++ openmeetings/trunk/singlewebapp/docs/themes-and-branding.html Wed Mar 6 04:09:29 2013 @@ -385,9 +385,9 @@ limitations under the License. currentLocation = "Configuration"; currentLink = "/FFMPEGVersionSwitch.html".substr(1, "/FFMPEGVersionSwitch.html".length); } - else if (document.location.href.indexOf("/ClusteringManual.html") > 0) { + else if (document.location.href.indexOf("/Clustering.html") > 0) { currentLocation = "Configuration"; - currentLink = "/ClusteringManual.html".substr(1, "/ClusteringManual.html".length); + currentLink = "/Clustering.html".substr(1, "/Clustering.html".length); } else if (document.location.href.indexOf("/GetVersionInfo.html") > 0) { currentLocation = "Configuration"; @@ -618,7 +618,7 @@ limitations under the License. <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a> <br/> <b>Clustering</b><br/> - <a href="./ClusteringManual.html">Clustering (Manual)</a> + <a href="./Clustering.html">Clustering</a> <br/> <b>Misc</b><br/> <a href="./GetVersionInfo.html">Get version info</a> Modified: openmeetings/trunk/singlewebapp/docs/voip-sip-integration.html URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/docs/voip-sip-integration.html?rev=1453158&r1=1453157&r2=1453158&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/docs/voip-sip-integration.html (original) +++ openmeetings/trunk/singlewebapp/docs/voip-sip-integration.html Wed Mar 6 04:09:29 2013 @@ -385,9 +385,9 @@ limitations under the License. currentLocation = "Configuration"; currentLink = "/FFMPEGVersionSwitch.html".substr(1, "/FFMPEGVersionSwitch.html".length); } - else if (document.location.href.indexOf("/ClusteringManual.html") > 0) { + else if (document.location.href.indexOf("/Clustering.html") > 0) { currentLocation = "Configuration"; - currentLink = "/ClusteringManual.html".substr(1, "/ClusteringManual.html".length); + currentLink = "/Clustering.html".substr(1, "/Clustering.html".length); } else if (document.location.href.indexOf("/GetVersionInfo.html") > 0) { currentLocation = "Configuration"; @@ -618,7 +618,7 @@ limitations under the License. <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a> <br/> <b>Clustering</b><br/> - <a href="./ClusteringManual.html">Clustering (Manual)</a> + <a href="./Clustering.html">Clustering</a> <br/> <b>Misc</b><br/> <a href="./GetVersionInfo.html">Get version info</a> Copied: openmeetings/trunk/singlewebapp/xdocs/Clustering.xml (from r1452709, openmeetings/trunk/singlewebapp/xdocs/ClusteringManual.xml) URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/xdocs/Clustering.xml?p2=openmeetings/trunk/singlewebapp/xdocs/Clustering.xml&p1=openmeetings/trunk/singlewebapp/xdocs/ClusteringManual.xml&r1=1452709&r2=1453158&rev=1453158&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/xdocs/ClusteringManual.xml (original) +++ openmeetings/trunk/singlewebapp/xdocs/Clustering.xml Wed Mar 6 04:09:29 2013 @@ -14,7 +14,7 @@ --> <document> <properties> - <title>Clustering (Manual)</title> + <title>Clustering</title> <author email="[email protected]"> OpenMeetings Team </author> @@ -23,16 +23,9 @@ <body> <section name="Description"> <p> - You require OpenMeetings Version 2.1 or later for the manual clustering. - </p> - <p>Manual balancing supposes that each room and user belongs to - particular OpenMeetings server in the cluster.</p> - <p>One database is used for all the OpenMeetings servers, so there is - one user table and one conference room table there. Room and User tables has - additional field named âserverâ â OpenMeetings server on which the - conferences in this room would happen is stored there.</p> - <p>Certain folders should be shared between all servers to allow access - to the files/recording</p> + OpenMeetings 2.1 or later is required to use clustering. One database is used for all OpenMeetings + servers, so all database tables are shared across OM instances. Certain folders should be shared + between all servers to allow access to the files/recording.</p> </section> <section name="Configuration"> <ul> @@ -46,22 +39,100 @@ Schedulers to drop user sessions as outdated) </li> <li>All servers should be configured to use the same DB</li> - <li>Servers should be added in Administration->Servers section + <li>Servers should be added in Administration -> Servers section</li> + </ul> + </section> + <section name="Database"> + All servers should be configured to use the same database. It can be on the server or on the one node + of the cluster. + <ul> + <li>Add users who can connect to the database remotely</li> + <li>Update <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml</tt> + set correct server address, login and password. Also add the following section: + <div class="xmlcode"><property name="openjpa.RemoteCommitProvider" value="tcp(Addresses=10.1.1.1;10.1.1.2)" /></div> + Instead of the 10.1.1.1 and 10.1.1.2 set semicolon separated IPs of all nodes of the cluster. + </li> + </ul> + </section> + <section name="File systems"> + If files and recordings using the same physical folders the files and recordings will be available for + each node. You can do this using Samba or NFS, for example. For using NFS do the following: + <ul> + <li>Install NFS to the data server. In the file <tt>/etc/exports</tt> add the following lines: + <div class="xmlcode"> + /opt/red5/webapps/openmeetings/upload 10.1.1.2(rw,sync,no_subtree_check,no_root_squash)<br/> + /opt/red5/webapps/openmeetings/streams 10.1.1.2(rw,sync,no_subtree_check,no_root_squash) + </div> + Here 10.1.1.2 - is node ip for NFS remote access. Add these lines for all nodes except node with + folders. + </li> + <li> + Install NFS common tools to other nodes. In the file <tt>/etc/fstab</tt> do the following: + <div class="xmlcode"> + 10.1.1.1:/opt/red5/webapps/openmeetings/upload/<br/> + /opt/red5/webapps/openmeetings/upload nfs timeo=50,hard,intr<br/> + 10.1.1.1:/opt/red5/webapps/openmeetings/streams/<br/> + /opt/red5/webapps/openmeetings/streams nfs timeo=50,hard,intr + </div> + Here 10.1.1.1 â data server ip. And run the command: + <div class="xmlcode"> + mount -a + </div> + </li> + </ul> + </section> + <section name="OM nodes configuration"> + In the file <tt>/opt/red5/webapps/openmeetings/WEB-NF/openmeetings-applicationContext.xml</tt>: + <ul> + <li> + For each node uncomment line: + <div class="xmlcode"> + <!-- Need to be uncommented and set to the real ID if in cluster mode--><br/> + <property name="serverId" value="1" /> + </div> + and input the unique value for each node. </li> - <li>Servers should be assigned to the Users/Rooms in the - Administration->Users and Administration->Conference Rooms sections - correspondingly + <li> + Replace <tt><ref bean="openmeetings.HashMapStore" /> <!-- Memory based session cache by default --></tt><br/> + with <tt><ref bean="openmeetings.DatabaseStore" /></tt> + (Currently commented out with following comment: <tt>"The following section should be used in clustering mode"</tt>) </li> + </ul> + </section> + <section name="Configuring cluster in Administration"> + Run red5 on each node. Login to the system as admin. + <ul> + <li>Go to the <tt>Administration -> Users</tt> and create Webservice user (only access via SOAP).</li> <li> - Consider all servers are installed into - <div class="xmlcode">/opt/red5</div> - then the folders - <div class="xmlcode">/opt/red5/webapps/openmeetings/upload</div> - and - <div class="xmlcode">/opt/red5/webapps/openmeetings/streams</div> - should be mounted to the same physical folders (using SAMBA or NFS) + Go to the <tt>Administration -> Servers</tt> and add all cluster nodes with the following settings: + <div class="xmlcode"> + Server Name = node name;<br/> + Active = check the checkbox. If the checkbox is checked it means node is active and you can use this node;<br/> + Server Address = node ip;<br/> + HTTP Port = 5080 - port for http part of Openmeetings;<br/> + User (SOAP Access) = login of Webservice user from the previous step;<br/> + Password = password of Webservise user;<br/> + Webapp path = openmeetings - path where OM installed on this node, it would be better if this path will be the same for all nodes;<br/> + Protocol = http. + </div> + </li> + </ul> + <img src="images/cluster1.png" alt="" width="852" height="603" /> + </section> + <section name="Ensure everything works as expected"> + <ul> + <li>Set up the cluster and loggin with two users, go to the same room (also check before room + entering that the status page with the room list shows the correct number of participants before + entering the room). Both users should be in the same room. + </li> + <li>Do the same with only two users but go to _different_ rooms. The calculation should send + both users to different servers, cause based on the calculation two different rooms on a cluster + with two nodes should go exactly one room for each node. You can now loggin really to node1 + and node2 of your cluster while those users are loggedin and go to <tt>Administration > Connections</tt> + and check in the column "servers" where they are located. They should be on different server. </li> </ul> + <img src="images/cluster2.png" alt="" width="852" height="603" /> </section> </body> </document> \ No newline at end of file Added: openmeetings/trunk/singlewebapp/xdocs/images/cluster1.png URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/xdocs/images/cluster1.png?rev=1453158&view=auto ============================================================================== Binary file - no diff available. Propchange: openmeetings/trunk/singlewebapp/xdocs/images/cluster1.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: openmeetings/trunk/singlewebapp/xdocs/images/cluster2.png URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/xdocs/images/cluster2.png?rev=1453158&view=auto ============================================================================== Binary file - no diff available. Propchange: openmeetings/trunk/singlewebapp/xdocs/images/cluster2.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Modified: openmeetings/trunk/singlewebapp/xdocs/stylesheets/project.xml URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/xdocs/stylesheets/project.xml?rev=1453158&r1=1453157&r2=1453158&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/xdocs/stylesheets/project.xml (original) +++ openmeetings/trunk/singlewebapp/xdocs/stylesheets/project.xml Wed Mar 6 04:09:29 2013 @@ -119,7 +119,7 @@ <subitem name="FFMPEG Version Switch" href="/FFMPEGVersionSwitch.html" /> </item> <item name="Clustering" > - <subitem name="Clustering (Manual)" href="/ClusteringManual.html" /> + <subitem name="Clustering" href="/Clustering.html" /> </item> <item name="Misc" > <subitem name="Get version info" href="/GetVersionInfo.html" /> Modified: openmeetings/trunk/singlewebapp/xdocs/stylesheets/site.vsl URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/xdocs/stylesheets/site.vsl?rev=1453158&r1=1453157&r2=1453158&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/xdocs/stylesheets/site.vsl (original) +++ openmeetings/trunk/singlewebapp/xdocs/stylesheets/site.vsl Wed Mar 6 04:09:29 2013 @@ -148,7 +148,7 @@ limitations under the License. #if ($value.getAttributeValue("align")) #set ($align=$value.getAttributeValue("align")) #end -<img src="$relativePath$value.getAttributeValue("src")" width="$!width" height="$!height" align="$!align"> +<img src="$relativePath/$value.getAttributeValue("src")" width="$!width" height="$!height" align="$!align"> #end #macro ( source $value)
