[opensuse] Cluster and SuSE
I currently have an application that runs Oracle under one SuSE server and Java in-house code in another SuSE server. I was wondering if anybody can suggest a cluster solution so I can have my Java code duplicated in two+ SuSE servers. How about Oracle, can I cluster Oracle to run on two+ servers? I am trying to achieve not only higher availability but also put to work some hardware servers I have on the floor collecting dust. --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org
Am Donnerstag, 6. Juli 2006 21:37 schrieb Yu Safin:
I currently have an application that runs Oracle under one SuSE server and Java in-house code in another SuSE server. I was wondering if anybody can suggest a cluster solution so I can have my Java code duplicated in two+ SuSE servers. How about Oracle, can I cluster Oracle to run on two+ servers? I am trying to achieve not only higher availability but also put to work some hardware servers I have on the floor collecting dust.
Have a look at http://xenamo.sf.net . The cluster part may what you are looking for. We did it on Debian Sarge but it surely works on SUSE, too. Dani --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Yu Safin wrote:
I currently have an application that runs Oracle under one SuSE server and Java in-house code in another SuSE server. I was wondering if anybody can suggest a cluster solution so I can have my Java code duplicated in two+ SuSE servers.
What is that in-house Java application ? Running in a servlet container (e.g. Tomcat), an EJB container (e.g. JBoss), ... ? You should consider two things: 1) a cluster software to provide high availability of the cluster nodes themselves (most importantly: heartbeat checking between the nodes + migrating the cluster's IP address (the "VIP")) - I use heartbeat [1] for that, works nicely and necessary RPMs are shipped with SUSE Linux 2) cluster your Java application: you can do that with Tomcat and JBoss (and Weblogic, and Websphere, and Glassfish, and ...) [1] http://www.linux-ha.org/
How about Oracle, can I cluster Oracle to run on two+ servers? I am trying to achieve not only higher availability but also put to work some hardware servers I have on the floor collecting dust.
You _can_ cluster Oracle, but... you'll have to set up Oracle RAC, which
is both very complex *and* very expensive (different license fees).
cheers
- --
-o) Pascal Bleser http://linux01.gwdg.de/~pbleser/
/\\
On 7/22/06, Pascal Bleser
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Yu Safin wrote:
I currently have an application that runs Oracle under one SuSE server and Java in-house code in another SuSE server. I was wondering if anybody can suggest a cluster solution so I can have my Java code duplicated in two+ SuSE servers.
What is that in-house Java application ? Running in a servlet container (e.g. Tomcat), an EJB container (e.g. JBoss), ... ?
You should consider two things: 1) a cluster software to provide high availability of the cluster nodes themselves (most importantly: heartbeat checking between the nodes + migrating the cluster's IP address (the "VIP")) - I use heartbeat [1] for that, works nicely and necessary RPMs are shipped with SUSE Linux
2) cluster your Java application: you can do that with Tomcat and JBoss (and Weblogic, and Websphere, and Glassfish, and ...)
How about Oracle, can I cluster Oracle to run on two+ servers? I am trying to achieve not only higher availability but also put to work some hardware servers I have on the floor collecting dust.
You _can_ cluster Oracle, but... you'll have to set up Oracle RAC, which is both very complex *and* very expensive (different license fees).
cheers - -- -o) Pascal Bleser http://linux01.gwdg.de/~pbleser/ /\\
_\_v The more things change, the more they stay insane. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) iD8DBQFEwePEr3NMWliFcXcRAnzJAKCRy1uJNRPaGJeAoQLlUCe4GbZzMQCgqJBZ 2TZgNXjtdOVrxm9jOU7Gujo= =mFlu -----END PGP SIGNATURE-----
--------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org
The Java application is in a JAR that runs on a schedule (batch). is there anything similar to RAC in the open-source community? what would be missing with linux-ha compared to RAC? --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Yu Safin wrote:
On 7/22/06, Pascal Bleser
wrote: Yu Safin wrote:
I currently have an application that runs Oracle under one SuSE server and Java in-house code in another SuSE server. I was wondering if anybody can suggest a cluster solution so I can have my Java code duplicated in two+ SuSE servers.
What is that in-house Java application ? Running in a servlet container (e.g. Tomcat), an EJB container (e.g. JBoss), ... ?
You should consider two things: 1) a cluster software to provide high availability of the cluster nodes themselves (most importantly: heartbeat checking between the nodes + migrating the cluster's IP address (the "VIP")) - I use heartbeat [1] for that, works nicely and necessary RPMs are shipped with SUSE Linux
2) cluster your Java application: you can do that with Tomcat and JBoss (and Weblogic, and Websphere, and Glassfish, and ...)
How about Oracle, can I cluster Oracle to run on two+ servers? I am trying to achieve not only higher availability but also put to work some hardware servers I have on the floor collecting dust.
You _can_ cluster Oracle, but... you'll have to set up Oracle RAC, which is both very complex *and* very expensive (different license fees).
The Java application is in a JAR that runs on a schedule (batch).
(I'm afraid this is strongly drifting into off-topicness but well.. maybe it's of some interest to others as well ;)) How is remoting involved ? I mean, to cluster an application, you need to have actual points where you can load-balance incoming requests. If you want some help with this, you'll have to give a lot more details than just "runs on a schedule (batch)". Are there any clients ? If so, how do the clients trigger the batch ? Or is it just triggered e.g. by cron ? What are you looking for, High Availability or Load Balancing ? (or both ?) Hot standby or parallel processing ? If it's a plain Java application that does not run inside an EJB container (like Jboss) or Servlet container (like Tomcat), then it becomes more difficult to cluster. First off, you have to take care of the replication of the Jar yourself (i.e. if you deploy a new version of the jar, or modified configuration files, etc...). You can either do that "manually" (with rsync, for example) or with a shared filesystem. Shared filesystems are typically very complex and extremely expensive things (SCSI or FC attached disks that can do DLOCK). Except if you use a IP and software based solution such as nbd (network block device), drbd or similar solutions (that are less reliable than physically shared disks). OCFS2 (Oracle Cluster FileSystem v2) might be an option as well, haven't tried it myself though (btw, ocfs2 is included on SUSE Linux.. from 10.0 on, AFAICR): http://oss.oracle.com/projects/ocfs2/ http://www.eweek.com/article2/0,1895,1847510,00.asp (OCFS2 is not limited to Oracle RAC databases, it can be used as a software shared filesystem for virtually anything) Anyhow, I would say that a "manual" solution would be the best option as its cheap and your application is probably simple enough so you can handle it that way.
is there anything similar to RAC in the open-source community? what would be missing with linux-ha compared to RAC?
linux-ha has nothing to do with RAC.
Oracle RAC (Real Application Cluster) is an enterprise option of Oracle
9i and 10g (which, as already said, is *very* expensive).
The most important feature of RAC is that you can effectively have a HA
clustered Oracle database with several nodes.
You can even use every node independently (in parallel).
Oracle RAC knows that it runs in a cluster and that there are several
Oracle database nodes (and workers) that access the database (and shared
filesystem) at the same time. Hence, it has the (extremely complex)
necessary mechanisms to check which node owns a filesystem block,
whether it can write directly to disk or must send the data to the node
that owns the block, etc...
Sorry, totally beyond the scope of this list (I think we're quite
off-topic already ;)), would take half a day to explain the nitty gritty
of how Oracle RAC works.
Anyway, I guess it's not an option for you because it's very complex to
set up (even for seasoned Oracle admins), extremely expensive both
because of its licenses and because it requires high-performance (hence,
physical) shared disks (typically Fiber Channel + SAN or JBODs, JBODs
being the cheapest option, starting at 10K USD for the slowest ones).
AFAIK there's nothing comparable to RAC, neither opensource nor
proprietary/commercial.
What comes closest as opensource is MySQL Cluster [1] but I wouldn't bet
my business on it (yet ?). Dunno. I guess it has to mature a little -
it's not like Oracle didn't take several years to have a well-working RAC.
[1] http://www.mysql.com/products/database/cluster/
The cheapest and simplest option is to move the database on its own
cluster (of two nodes, for example), behind the application cluster.
Instead of having something like RAC that can do failover +
load-balancing at the same time, just set up a hot standby cluster,
where only one of the two database server nodes is active.
The other node is passive and will only be switched to when the first
node fails (that's "hot standby").
Use linux-ha (heartbeat) to monitor the database cluster nodes and
perform the takeover.
To keep the database on the passive node in sync, I would recommend
using MySQL with binary replication (master is the active node, slave is
the passive node) - it's very fast and simple to set up (the most
complex thing being the script to perform the slave->master switch when
doing the takeover).
Anyhow, SUSE Linux comes with all the software you'd need:
- - MySQL (including binary replication)
- - heartbeat for doing the cluster monitoring and resource failover
- - rsync to keep the application in sync on both application cluster nodes
- - drbd or nbd if you want cheap shared storage
Hope this helps, but I'm afraid HA clustering is a very complex topic.
The easiest solution to cluster an application is to have it running
inside e.g. Tomcat or JBoss as they take care of most of the ugly stuff
(but not of the database).
But if your application is batch-oriented and only driven by a
scheduling system (like cron, Quartz, ...), then Tomcat or JBoss are of
no help.
cheers
- --
-o) Pascal Bleser http://linux01.gwdg.de/~pbleser/
/\\
On Thursday 27 July 2006 01:10, Pascal Bleser wrote:
OCFS2 (Oracle Cluster FileSystem v2) might be an option as well, haven't tried it myself though (btw, ocfs2 is included on SUSE Linux.. from 10.0 on, AFAICR): http://oss.oracle.com/projects/ocfs2/ http://www.eweek.com/article2/0,1895,1847510,00.asp (OCFS2 is not limited to Oracle RAC databases, it can be used as a software shared filesystem for virtually anything)
It works well now. We have it in production on SLES9 with Oracle DB RAC 10gR2. It had some bugs that were causing us problems but they were resolved. --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org
On 7/27/06, Silviu Marin-Caea
On Thursday 27 July 2006 01:10, Pascal Bleser wrote:
OCFS2 (Oracle Cluster FileSystem v2) might be an option as well, haven't tried it myself though (btw, ocfs2 is included on SUSE Linux.. from 10.0 on, AFAICR): http://oss.oracle.com/projects/ocfs2/ http://www.eweek.com/article2/0,1895,1847510,00.asp (OCFS2 is not limited to Oracle RAC databases, it can be used as a software shared filesystem for virtually anything)
It works well now. We have it in production on SLES9 with Oracle DB RAC 10gR2. It had some bugs that were causing us problems but they were resolved.
--------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org
We have SUN and Oracle DB RAC 9i and we are thinking of converting over to Linux and Oracle DB RAC 9i. There are two nodes sharing the database. Before we convert, we need to test performance. I have been running benchmarks to compare performance without the RAC part yet (i.e. on a single node / no cluster). We also have another application that runs AIX and Oracle that we are porting to Linux and Oracle. I am finding that AIO (async I/O's) have a lot more daemons on aix than it does on Linux. I am also benchmarking this application. This is the Java one. Today, it does not have a fail over and no RAC involved. For both of these applications I would like to convert from Sun / Aix to Linux in an active/passive fail-over set up and skip RAC. The reason for this is that I run Linux for z-Series under z-VM on a mainframe. In this environment I don't need the advantage of the multiple workers in a cluster to be active since the hardware is the same and the processing power can be shifted automatically from the active to the passive. In my RAC 9i solution today when a node takes a dive, it affects only the transactions in progress in that node that failed. In an active/passive linux-ha solution without RAC, I am wondering if the fail-over would be automatic or if I would need to do some recovery from the transaction log. I will answer Pascal's questions in a different message. Thank you all for your time. It is a great learning experience and I hope I can share something new with this group. --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Yu Safin wrote:
On 7/22/06, Pascal Bleser
wrote: Yu Safin wrote:
I currently have an application that runs Oracle under one SuSE server and Java in-house code in another SuSE server. I was wondering if anybody can suggest a cluster solution so I can have my Java code duplicated in two+ SuSE servers.
What is that in-house Java application ? Running in a servlet container (e.g. Tomcat), an EJB container (e.g. JBoss), ... ?
You should consider two things: 1) a cluster software to provide high availability of the cluster nodes themselves (most importantly: heartbeat checking between the nodes + migrating the cluster's IP address (the "VIP")) - I use heartbeat [1] for that, works nicely and necessary RPMs are shipped with SUSE Linux
2) cluster your Java application: you can do that with Tomcat and JBoss (and Weblogic, and Websphere, and Glassfish, and ...)
How about Oracle, can I cluster Oracle to run on two+ servers? I am trying to achieve not only higher availability but also put to work some hardware servers I have on the floor collecting dust.
You _can_ cluster Oracle, but... you'll have to set up Oracle RAC, which is both very complex *and* very expensive (different license fees).
The Java application is in a JAR that runs on a schedule (batch).
(I'm afraid this is strongly drifting into off-topicness but well.. maybe it's of some interest to others as well ;)) Thank you for putting up with the incomplete information you have received so far.
How is remoting involved ? I mean, to cluster an application, you need to have actual points where you can load-balance incoming requests. My front-end is a WEB interface written in .NET. This has an interface to my scheduler that submits my Java batch processing. There will always be only one active in an active/passive fail-over type of set up.
If you want some help with this, you'll have to give a lot more details than just "runs on a schedule (batch)". I apologize for the frustration I might be causing you. I do greatly appreciate the questions and comments. I will write what I know towards the end of this note. Are there any clients ? If so, how do the clients trigger the batch ? Or is it just triggered e.g. by cron ? The clients trigger a scheduler via an interface (it is just like cron). The interface to this scheduler give us a change to decide when to schedule the request. The on-line user moves on to other
What are you looking for, High Availability or Load Balancing ? (or both ?) Hot standby or parallel processing ? I am looking at active/passive fail-over. I run under zVM on a
On 7/26/06, Pascal Bleser
If it's a plain Java application that does not run inside an EJB container (like Jboss) or Servlet container (like Tomcat), then it becomes more difficult to cluster.
First off, you have to take care of the replication of the Jar yourself (i.e. if you deploy a new version of the jar, or modified configuration files, etc...). You can either do that "manually" (with rsync, for example) or with a shared filesystem. I was thinking of using either unison or rsync. My biggest concern is
Shared filesystems are typically very complex and extremely expensive things (SCSI or FC attached disks that can do DLOCK). Except if you use a IP and software based solution such as nbd (network block device), drbd or similar solutions (that are less reliable than physically shared disks). both of my active/passive nodes are in the same server under a virtual machine. This is an almost fault tolerant hardware. Most of my downtime is caused by negligence or code failures (no hardware). The disk subsystem is EMC so it is the same for both nodes i.e. it is external to both nodes. OCFS2 (Oracle Cluster FileSystem v2) might be an option as well, haven't tried it myself though (btw, ocfs2 is included on SUSE Linux.. from 10.0 on, AFAICR): http://oss.oracle.com/projects/ocfs2/ http://www.eweek.com/article2/0,1895,1847510,00.asp (OCFS2 is not limited to Oracle RAC databases, it can be used as a software shared filesystem for virtually anything)
Anyhow, I would say that a "manual" solution would be the best option as its cheap and your application is probably simple enough so you can handle it that way. I heard the comment before "money is not an object". However, I am
I hear you. Unfortunately there is neither JBoss or Tomcat. It is a stand-alone JAR. the Oracle part of the application. trying to present all of the options so the decision makers can make an intelligent choice. I can go with one option RAC and I might get the money. Next time around a consulant or audit may show that it was no needed. I am trying to do my due diligence before asking the decision maker to take my recommendations.
is there anything similar to RAC in the open-source community? what would be missing with linux-ha compared to RAC?
linux-ha has nothing to do with RAC.
I thought they did. Both try to deal with the issue of a failing node, don't they?
Oracle RAC (Real Application Cluster) is an enterprise option of Oracle 9i and 10g (which, as already said, is *very* expensive). The most important feature of RAC is that you can effectively have a HA clustered Oracle database with several nodes. You can even use every node independently (in parallel). Oracle RAC knows that it runs in a cluster and that there are several Oracle database nodes (and workers) that access the database (and shared filesystem) at the same time. Hence, it has the (extremely complex) necessary mechanisms to check which node owns a filesystem block, whether it can write directly to disk or must send the data to the node that owns the block, etc... Sorry, totally beyond the scope of this list (I think we're quite off-topic already ;)), would take half a day to explain the nitty gritty of how Oracle RAC works.
I agree. We have Sun with Oracle and RAC. Before we jump both feet into the same configuration again, I am exploring my options. I am being asked to take an existing aix application without fail-over (no RAC either) and move it to Linux and to look into fail-over for high availability. I am going to a mainframe that is costing more than aix (may be) so money is not my motivator, RAS is more important.
Anyway, I guess it's not an option for you because it's very complex to set up (even for seasoned Oracle admins), extremely expensive both because of its licenses and because it requires high-performance (hence, physical) shared disks (typically Fiber Channel + SAN or JBODs, JBODs being the cheapest option, starting at 10K USD for the slowest ones).
AFAIK there's nothing comparable to RAC, neither opensource nor proprietary/commercial.
What comes closest as opensource is MySQL Cluster [1] but I wouldn't bet my business on it (yet ?). Dunno. I guess it has to mature a little - it's not like Oracle didn't take several years to have a well-working RAC. [1] http://www.mysql.com/products/database/cluster/
I agree. I have some MySQL just for proof of concepts. We go Oracle for the real systems.
The cheapest and simplest option is to move the database on its own cluster (of two nodes, for example), behind the application cluster. Instead of having something like RAC that can do failover + load-balancing at the same time, just set up a hot standby cluster, where only one of the two database server nodes is active.
The other node is passive and will only be switched to when the first node fails (that's "hot standby"). Use linux-ha (heartbeat) to monitor the database cluster nodes and perform the takeover. To keep the database on the passive node in sync, I would recommend using MySQL with binary replication (master is the active node, slave is the passive node) - it's very fast and simple to set up (the most complex thing being the script to perform the slave->master switch when doing the takeover). NO NO, I need to switch over and work with Oracle. This is non negotiable. how can I accomplish a fail-over from an active to a
YES YES YES, this is what I think I need to explore as an option to RAC. passive node automatically with just some quick log re-apply for the missing transactions. this is the key of this entire discussion, in my mind.
Anyhow, SUSE Linux comes with all the software you'd need: - - MySQL (including binary replication) - - heartbeat for doing the cluster monitoring and resource failover - - rsync to keep the application in sync on both application cluster nodes - - drbd or nbd if you want cheap shared storage
Hope this helps, but I'm afraid HA clustering is a very complex topic. The easiest solution to cluster an application is to have it running inside e.g. Tomcat or JBoss as they take care of most of the ugly stuff (but not of the database). But if your application is batch-oriented and only driven by a scheduling system (like cron, Quartz, ...), then Tomcat or JBoss are of no help.
cheers
OK, let me explain in more details. We receive data (massive) every quarter from a lot of Fortune 500 companies. This data is analyzed and processed into our Oracle database. Then, our customers (those same Fortune 500 companies) and internal people need to ensure compliace, completeness and some other things on the data. They go to our Web site and trigger the analysis they need to have done. When they do this action on the Web site. They are hitting .NET code that we wrote in-house. This .NET code will interface to our scheduler and will schedule the next run for this request (we check to make sure that the same is not done twice, that we are not running to many of them concurrently and so on). This scheduler (similar to cron) will trigger the next time this request starts to process. The request is handled by Java (JAR) that gets kicked into action in batch. It takes about 10 to 12 hours to do its job. It consist of 9 steps. Some of them take a lot of CPU (will take whatever it can get) and will process 400 Gbytes worth of data with massive deletes and massive inserts of 300 to 400 thousands rows at a time. I have seen our aix with 10 CPU's (1.6 GHz each) come to its knees at 2% idle for hours at time running this batch work. We can do only one request at a time as you can tell. If I am still not giving you the full picture, please let me know and I will elaborate.
- -- -o) Pascal Bleser http://linux01.gwdg.de/~pbleser/ /\\
_\_v The more things change, the more they stay insane. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) iD8DBQFEx+hLr3NMWliFcXcRAmk5AKCLd2LsUPYoa90L2t5dGqW9m+bqAACgpJ0A HFSbp/o5Iy0Zz5bKKCt/SfY= =2O2u -----END PGP SIGNATURE-----
--------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org
--------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org
participants (4)
-
Daniel Bertolo
-
Pascal Bleser
-
Silviu Marin-Caea
-
Yu Safin