banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Chạy HA cho Apache + AJP + Postgresql  XML
  [Question]   Chạy HA cho Apache + AJP + Postgresql 26/11/2012 13:52:18 (+0700) | #1 | 271320
tonnuchimse
Member

[Minus]    0    [Plus]
Joined: 31/07/2008 17:51:17
Messages: 16
Offline
[Profile] [PM]
Hi all,
Cty em hiện đang có 1 máy chủ chạy ứng dụng AJP và sử dụng Apache làm Proxy với cơ sở dữ liệu là Postgresql.
Apache làm nhiệm vụ wwwect các request từ ngoài vào và chuyển tới ajp
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/

Giờ bên em có thêm 01 máy chủ tương tự như vậy với yêu cầu chạy HA cho cả ứng dụng và cơ sở dữ liệu.
Phần HA em thấy có mấy vấn đề sau:
  • Nếu sử dụng Load Balancing thì có vẻ thiếu 1 máy nữa để làm đầu mối tiếp nhận các request.
  • Nếu sử dụng Cluster thì thế nào? Em cũng chưa hiểu rõ lắm về Cluster

Ngoài ra nếu chạy HA cho database thì có cơ chế chạy Master/Slave không? Cơ chế đồng bộ như thế nào?
Em cũng không hiểu rõ lắm về Linux nên hỏi các bác giải pháp tốt nhất cho vấn đề này với.
Thanks all
[Up] [Print Copy]
  [Question]   Chạy HA cho Apache + AJP + Postgresql 26/11/2012 19:17:30 (+0700) | #2 | 271339
IT0405
Member

[Minus]    0    [Plus]
Joined: 06/07/2012 07:40:28
Messages: 33
Offline
[Profile] [PM]
Load Balancing hay Cluster còn phụ thuộc vào trong system của bạn dùng làm gì, phục vụ cho những đối tượng nào. Ví dụ như dùng phục vụ chủ yếu cho việc đọc, thường có nguy cơ bị tấn công DDoS thì nên đầu tư vào trong cơ sỡ hạ tầng và Load Balancing, nói chung là phần front-end bởi vì cản từ ngoài và cản ngay từ đầu thì vẫn tối ưu hơn. Còn nếu ngược lại system của bạn có nhu cầu với dữ liệu động nhiều, xử lý nhiều và ít gặp những vấn đề liên quan DDoS thì nên chú trọng vào cơ sỡ hạ tầng và nên sử dụng Cluster. Còn nếu phục vụ nhiều, bị ddos nhiều, dữ liệu thay đổi nhiều thì phải làm tốt tất cả mọi thứ.
Dạo này có nhiều vụ hài quá, toàn gặp võ sĩ mồm.
[Up] [Print Copy]
  [Question]   Chạy HA cho Apache + AJP + Postgresql 26/11/2012 21:45:38 (+0700) | #3 | 271347
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

tonnuchimse wrote:
Hi all,
Cty em hiện đang có 1 máy chủ chạy ứng dụng AJP và sử dụng Apache làm Proxy với cơ sở dữ liệu là Postgresql.
Apache làm nhiệm vụ wwwect các request từ ngoài vào và chuyển tới ajp
Code:
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/

Giờ bên em có thêm 01 máy chủ tương tự như vậy với yêu cầu chạy HA cho cả ứng dụng và cơ sở dữ liệu.
Phần HA em thấy có mấy vấn đề sau:
- Nếu sử dụng Load Balancing thì có vẻ thiếu 1 máy nữa để làm đầu mối tiếp nhận các request.
 

Dùng Apache tiếp nhận luôn được không? Domain sẽ trỏ vào cả 2 servers theo kiểu round robin.

tonnuchimse wrote:

Nếu sử dụng Cluster thì thế nào? Em cũng chưa hiểu rõ lắm về Cluster
 

Ý bạn là cluster cho cái gì: web server hay database?

tonnuchimse wrote:

Ngoài ra nếu chạy HA cho database thì có cơ chế chạy Master/Slave không? Cơ chế đồng bộ như thế nào?
 

Đọc: http://www.postgresql.org/docs/9.1/static/high-availability.html

tonnuchimse wrote:

Em cũng không hiểu rõ lắm về Linux nên hỏi các bác giải pháp tốt nhất cho vấn đề này với.
 

Trên server 2 cũng cài các thứ tương tự như server 1.
- Trên Apache, cần chỉnh lại một chút để load balancing 2 backends: http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html
- Còn database, có thể cấu hình Master-Slave hoặc Master-Master (nhưng chạy kiểu Active-Passive, nghĩa là chỉ thao tác với 1 server thôi, nếu server đó chết thì virtual IP sẽ "nhảy" sang server còn lại).
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Chạy HA cho Apache + AJP + Postgresql 27/11/2012 08:22:17 (+0700) | #4 | 271356
tonnuchimse
Member

[Minus]    0    [Plus]
Joined: 31/07/2008 17:51:17
Messages: 16
Offline
[Profile] [PM]
Cám ơn các bác đã chỉ dẫn cho em.
Như em đã nói từ đầu, trước mắt em chỉ có 2 Server nên phải nghĩ tới phương án tốt nhất trong trường hợp này. Do ít server nên cũng không phân biệt back end với front end, tất cả cài trên 1 server
Mục đích đơn giản là giữ hệ thống luôn chạy khi 1 trong 2 server có vấn đề.
Về CSDL, em sẽ làm theo cách sử dụng Master/Slave và có đồng bộ như link ở trên
Về apache và ajp: nếu sử dụng mod_proxy_ajp làm load balancing thì ok. Tuy nhiên khi đó theo em hiểu apache sẽ không được HA.
Giả sử em thực hiện apache1 với load balancing cho ajp1 và ajp2, nếu apache1 chết thì thế nào? Có cách nào để thực hiện HA giữa apache1 và apache2 trong trường hợp này không? Khi đó, bắt buộc phải có virtualIP hay thế nào? Hay phải có thêm 1 thiết bị ở frontend làm nhiệm vụ virtualIP và trỏ đến 1 trong 2 apache server?
Mong các bác tiếp tục chỉ dẫn cho em
[Up] [Print Copy]
  [Question]   Chạy HA cho Apache + AJP + Postgresql 27/11/2012 08:42:17 (+0700) | #5 | 271357
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

tonnuchimse wrote:

Do ít server nên cũng không phân biệt back end với front end, tất cả cài trên 1 server
 

Cùng server thì vẫn phân biệt được như thường để khi nói chuyện cho dễ.

tonnuchimse wrote:

Mục đích đơn giản là giữ hệ thống luôn chạy khi 1 trong 2 server có vấn đề.
Về CSDL, em sẽ làm theo cách sử dụng Master/Slave và có đồng bộ như link ở trên
 

Bạn nhớ tính đến trường hợp Master chết nhé.

tonnuchimse wrote:

Về apache và ajp: nếu sử dụng mod_proxy_ajp làm load balancing thì ok. Tuy nhiên khi đó theo em hiểu apache sẽ không được HA.
Giả sử em thực hiện apache1 với load balancing cho ajp1 và ajp2, nếu apache1 chết thì thế nào? Có cách nào để thực hiện HA giữa apache1 và apache2 trong trường hợp này không?
 

Setup Apache2 nữa, cũng chia tải cho AJP1 và AJP2.

tonnuchimse wrote:

Khi đó, bắt buộc phải có virtualIP hay thế nào? Hay phải có thêm 1 thiết bị ở frontend làm nhiệm vụ virtualIP và trỏ đến 1 trong 2 apache server?
 

Virtual IP cũng được. Setup một WAN virtual IP (dùng Pacemaker, Keepalived, UCARP, ...) "gắn" vào server1 chẳng hạn, rồi trỏ domain vào virtual IP này. Nếu server1 chết thì virtual IP nhảy sang server2 và hệ thống vẫn hoạt động bình thường. Lúc này, 2 server chỉ chạy theo kiểu Active-Passive. Hoặc dùng DNS round robin như đã nói ở trên.
Let's build on a great foundation!
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|