High availability on remote site

2013-08-15 Thread Olivier Nicole
Hi,

I have been assigned to offer HA on a 3 tiers architecture.

Data storage tier will be MySQL, so replication is easy.

HA should be implemented only on the Data storage tier, Active/Active,
but one of the sites is remote!

When everything is working, each application accesses the local MySQL
tier, but when the local MySQL becomes unavailable, it should be able
to automatically move to the other database server.

I have no access to the application, so I cannot modify it to test if
local MySQL is working. So I should have an HA mechanism that enforces
changing the IP address on the database server.

If both servers are installed at different places, with different
addresses, would there be a way beside establishing an IP tunnel/VPN
between both places to have all machines in a single subnet?

An image is here http://www.cs.ait.ac.th/~on/HA.gif

I am really bothered by the IP tunnel, but that's the only way I see to keep HA.

Any idea welcome.

best regards,

Olivier
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: High availability on remote site

2013-08-15 Thread Matthew Seaman
On 15/08/2013 12:19, Olivier Nicole wrote:
 I have been assigned to offer HA on a 3 tiers architecture.
 
 Data storage tier will be MySQL, so replication is easy.
 
 HA should be implemented only on the Data storage tier, Active/Active,
 but one of the sites is remote!
 
 When everything is working, each application accesses the local MySQL
 tier, but when the local MySQL becomes unavailable, it should be able
 to automatically move to the other database server.
 
 I have no access to the application, so I cannot modify it to test if
 local MySQL is working. So I should have an HA mechanism that enforces
 changing the IP address on the database server.
 
 If both servers are installed at different places, with different
 addresses, would there be a way beside establishing an IP tunnel/VPN
 between both places to have all machines in a single subnet?
 
 An image is here http://www.cs.ait.ac.th/~on/HA.gif
 
 I am really bothered by the IP tunnel, but that's the only way I see to keep 
 HA.
 
 Any idea welcome.

Depending on the technology use in you middle layer, it may be quite
simple.  Some application languages, eg Java allow you to specify a
list of servers in a DB connection string.  The server names will be
tried in order until a successful connection is made.

Other languages may provide a similar facility, or it should be pretty
easy to code up with minimal intervention in your codebase required.

Cheers,

Matthew
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: High availability on remote site

2013-08-15 Thread Mark Felder
On Thu, 15 Aug 2013 18:19:35 +0700
Olivier Nicole olivier.nic...@cs.ait.ac.th wrote:

 Hi,
 
 I have been assigned to offer HA on a 3 tiers architecture.
 
 Data storage tier will be MySQL, so replication is easy.


Keep in mind that MySQL replication has plenty of its own issues. It
does not replicate every SQL command to the slave. Guaranteeing that
data on both servers is identical is also a very tricky process. You
might want to first browse through the sections here to get an idea:

http://dev.mysql.com/doc/refman/5.5/en/replication-features.html

 
 HA should be implemented only on the Data storage tier, Active/Active,
 but one of the sites is remote!
 
 When everything is working, each application accesses the local MySQL
 tier, but when the local MySQL becomes unavailable, it should be able
 to automatically move to the other database server.
 
 I have no access to the application, so I cannot modify it to test if
 local MySQL is working. So I should have an HA mechanism that enforces
 changing the IP address on the database server.


This is easy. Use HAProxy. It can test to see if your local MySQL
instance is up and running and if it detects it is not it will
automatically pass connections to the remote site's MySQL server.
 
 If both servers are installed at different places, with different
 addresses, would there be a way beside establishing an IP tunnel/VPN
 between both places to have all machines in a single subnet?
 

This seems unnecessary. Why do you need them to be on the same subnet?

 An image is here http://www.cs.ait.ac.th/~on/HA.gif
 
 I am really bothered by the IP tunnel, but that's the only way I see to keep 
 HA.


Hopefully I've answered this question for you and you see that you
shouldn't need these to be on the same subnet. 
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: High availability on remote site

2013-08-15 Thread Frank Leonhardt

On 15/08/2013 13:18, Mark Felder wrote:

On Thu, 15 Aug 2013 18:19:35 +0700
Olivier Nicole olivier.nic...@cs.ait.ac.th wrote:


Hi,

I have been assigned to offer HA on a 3 tiers architecture.

Data storage tier will be MySQL, so replication is easy.


Keep in mind that MySQL replication has plenty of its own issues. It
does not replicate every SQL command to the slave. Guaranteeing that
data on both servers is identical is also a very tricky process. You
might want to first browse through the sections here to get an idea:

http://dev.mysql.com/doc/refman/5.5/en/replication-features.html

  

HA should be implemented only on the Data storage tier, Active/Active,
but one of the sites is remote!

When everything is working, each application accesses the local MySQL
tier, but when the local MySQL becomes unavailable, it should be able
to automatically move to the other database server.

I have no access to the application, so I cannot modify it to test if
local MySQL is working. So I should have an HA mechanism that enforces
changing the IP address on the database server.


This is easy. Use HAProxy. It can test to see if your local MySQL
instance is up and running and if it detects it is not it will
automatically pass connections to the remote site's MySQL server.
  

If both servers are installed at different places, with different
addresses, would there be a way beside establishing an IP tunnel/VPN
between both places to have all machines in a single subnet?


This seems unnecessary. Why do you need them to be on the same subnet?


An image is here http://www.cs.ait.ac.th/~on/HA.gif

I am really bothered by the IP tunnel, but that's the only way I see to keep HA.


Hopefully I've answered this question for you and you see that you
shouldn't need these to be on the same subnet.
___



WHS, especially regarding the built-in replication of a mySQL database 
being problematic. I tried this a few years ago and decided it wasn't 
worth the candle (for my needs). It came down to the application 
software needing to be sensitive to the situation - to understand it 
needed to use a backup server, and to treat it as read-only. The 
implication is that mySQL could be some kind of distributed cluster 
until you got to it in detail. Or perhaps I was missing a point 
somewhere. If you get a perfect cluster going please do tell me know how.


Incidentally, in the end I just used rsync - much less fuss but only 
good as a backup, really (which is what I really wanted).


Regards, Frank.

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org