Read-only archive. Login and posting are unavailable.
View Full Version : High availability cho webserver + db server
ngocnghechvt
24-07-2013, 17:08
Chào mọi người,
Em có 1 thắc mắc về vấn đề high availability cho webserver + db server. Theo ít kiến thức em biết hiện nay có 2 cách:
1. Dùng cloud VPS:
_ Ưu: khi cần có thể upgrade HW thoải mái, chết HW là điều ko thể.
_ Nhược: nghe 1 vài DC nói hiệu năng của SAN không được tốt lắm, nếu làm webserver còn được chứ db server thì thua :sosad:. và thực tế khi em dùng 1 số công cụ benchmark có sẵn trên centOS thì nó thậm chí còn chậm hơn 1HDD chạy độc lập nói chi đến RAID 10 :pudency:
2. Dùng nhiều server vật lý.
_ Ưu: performance tốt, đặc biệt là I/O.
_ Nhược:
+ vẫn có khả năng chết do 1 server vật lý die mainboard, CPU, nguồn...(die nguồn thì UPS cg ko làm dc gì) tuy linh kiện server dc sinh ra để chạy 24/24 so với desktop.
+ chi phí ban đầu cao
+ muốn có dc HA thì quá nhiều cách config -> rối (xem bên dưới)
Bàn về vấn đề HA cho server vật lý thì theo mọi người cách nào tốt nhất:
1. Config tất cả service (webserver/proxy backend server (Servlet, .NET..), db server) như nhau lên 2 server (clone). Khi cái này fail thì vào domain control chuyển sang IP của server kia.
Yêu cầu: 2 db server phải sync với nhau, cần 2 server.
Vấn đề: downtime vẫn có.
2. cài proxy/webserver lên 1 server vật lý/cloud VPS khác, 2 cái còn lại clone y chang, chỉ có backend server & db server.
Yêu cầu: 2 db vẫn phải sync với nhau, cần 3 server
Vấn đề: downtime = 0 do webserver/proxy lo load balancing, HA. Nhưng điều gì xảy ra nếu webserver/proxy này die
3. Theo cách 2 thì để cải thiện performance thì có thể tách backend server + db server riêng ra nhưng tổng số server tăng lên -> vấn đề kinh phí.
Mời mọi người vào "đả thông kinh mạch giúp" :sogood:
ngocnghechvt
25-07-2013, 09:24
up, hóng cao nhân :shame:
hensynki
25-07-2013, 09:32
3/ cách này thì sao:
-2 server vật lý. ảo hóa . nhiều máy ảo trên 1 server vật lý.
-mỗi server vật lý sẽ bao gồm các vm role như topology của bác: proxy, webserver, db. ..v.v..
-Như vậy mỗi role sẽ có ít nhất 2 vm.
-proxy thì cấu hình keepalive,HAProxy v.v..
-webserver thì ko cần cấu hình HA. chỉ cần proxy trỏ loadbalance về.
-DB: quan trọng. phải có cluster sync live với nhau. các công nghệ DB hiện giờ đều hỗ trợ, opensource (Posgresql, MySQL...) hay mua (MS SQL, oracle..).
-------------
Như cấu hình trên thì hệ thống bạn sẽ no-single-point-of-failure.
f22_raptor
25-07-2013, 11:18
1. Config tất cả service (webserver/proxy backend server (Servlet, .NET..), db server) như nhau lên 2 server (clone). Khi cái này fail thì vào domain control chuyển sang IP của server kia.
Yêu cầu: 2 db server phải sync với nhau, cần 2 server.
Vấn đề: downtime vẫn có.
Nếu chạy cluster, đâu cần phải chỉnh IP gì nhỉ, tự động hết rùi mà? Nó có 1 cái virtual ip để chạy chung giữa 2 server rùi :nosebleed:
//thêm nữa, server giờ, đều có 2 psu mà, chết 1 con còn 1 con, chạy thả cửa ^"^
//switch còn có 2 nguồn nữa nói chi server ^^
it.thuongnguyen
25-07-2013, 16:37
3/ cách này thì sao:
-2 server vật lý. ảo hóa . nhiều máy ảo trên 1 server vật lý.
-mỗi server vật lý sẽ bao gồm các vm role như topology của bác: proxy, webserver, db. ..v.v..
-Như vậy mỗi role sẽ có ít nhất 2 vm.
-proxy thì cấu hình keepalive,HAProxy v.v..
-webserver thì ko cần cấu hình HA. chỉ cần proxy trỏ loadbalance về.
-DB: quan trọng. phải có cluster sync live với nhau. các công nghệ DB hiện giờ đều hỗ trợ, opensource (Posgresql, MySQL...) hay mua (MS SQL, oracle..).
-------------
Như cấu hình trên thì hệ thống bạn sẽ no-single-point-of-failure.
Vote cho cách này !
Nhiều tiền nhưng mà đã làm HA và LB thì bắt buộc phải chấp nhận :byebye:
ledainam
25-07-2013, 16:38
Nếu chơi hàng Linux thì nghiên cứu DRBD nhé.
Chơi cái đó đảm bảo bao nhiêu node cũng được, không cần chơi SAN.
ngocnghechvt
25-07-2013, 20:17
3/ cách này thì sao:
-2 server vật lý. ảo hóa . nhiều máy ảo trên 1 server vật lý.
-mỗi server vật lý sẽ bao gồm các vm role như topology của bác: proxy, webserver, db. ..v.v..
-Như vậy mỗi role sẽ có ít nhất 2 vm.
-proxy thì cấu hình keepalive,HAProxy v.v..
-webserver thì ko cần cấu hình HA. chỉ cần proxy trỏ loadbalance về.
-DB: quan trọng. phải có cluster sync live với nhau. các công nghệ DB hiện giờ đều hỗ trợ, opensource (Posgresql, MySQL...) hay mua (MS SQL, oracle..).
-------------
Như cấu hình trên thì hệ thống bạn sẽ no-single-point-of-failure.
Vote cho cách này !
Nhiều tiền nhưng mà đã làm HA và LB thì bắt buộc phải chấp nhận :byebye:
Cho em hỏi ý 2 bác phải vầy ko?
http://vozforums.com/attachment.php?attachmentid=635878&stc=1&d=1374758035
(Xanh vs đỏ là 2 server vật lý khác nhau, service cùng màu thì chung server vật lý, em có đánh dấu link kết nối, bác nào review giúp)
Nhưng làm sao 2 proxy nói chuyện dc với nhau nhỉ, em nghĩ nó chỉ nói chuyện được với nhiều webs/backend server thôi. :nosebleed:
Em dùng nginx
Em ko rành công nghệ ảo hóa lắm, nếu triển khai thật thì dùng cái nào nhỉ :D
hensynki
26-07-2013, 11:39
- Bỏ đường số 8&9 đi.
- Thêm đường alive giữa 2 con proxy để cho bọn nó thấy đc status của nhau.
f22_raptor
30-07-2013, 08:09
Cho em hỏi ý 2 bác phải vầy ko?
http://vozforums.com/attachment.php?attachmentid=635878&stc=1&d=1374758035
(Xanh vs đỏ là 2 server vật lý khác nhau, service cùng màu thì chung server vật lý, em có đánh dấu link kết nối, bác nào review giúp)
Nhưng làm sao 2 proxy nói chuyện dc với nhau nhỉ, em nghĩ nó chỉ nói chuyện được với nhiều webs/backend server thôi. :nosebleed:
Em dùng nginx
Em ko rành công nghệ ảo hóa lắm, nếu triển khai thật thì dùng cái nào nhỉ :D
Có cần phải thêm SAN sau 2 db server ko bác? ^^
it.thuongnguyen
30-07-2013, 10:25
Có cần phải thêm SAN sau 2 db server ko bác? ^^
Có ! Vì 2 host là 2 con VMware (con xanh và con đỏ). SAN nhiều tiền dùng iSCSI cho rẻ
ledainam
30-07-2013, 14:37
Có ! Vì 2 host là 2 con VMware (con xanh và con đỏ). SAN nhiều tiền dùng iSCSI cho rẻ
dùng DRBD không cần SAN nhé. Cũng không cần Proxy như trên luôn.
bamboovn1
30-07-2013, 14:48
Đã là VPS thì server của bạn chạy trên máy ảo, bạn mua bao nhiêu CPU, RAM, HDD and bandwidth thì người ta cấp cho bạn bấy nhiêu, nếu thiếu thì cứ nâng cấp, việc này chỉ tốn vài giây chứ không giống như dùng physical server như trước kia và bên provider cũng cung cấp sẵn cho bạn HA and FT luôn rồi (mình nghĩ cái này là option và có charge phí nhưng rẽ hơn bạn build rất nhiêu)
Mình chưa dùng dịch VPS của bên ngoài nhưng theo mình nghĩ thì bên cung cấp VPS có chức năng điều chỉnh IO theo yêu cầu nếu Client yêu cầu, đó là nét đặc trưng của VPS mà? Và chọn provider nào cũng rất quan trọng vì server và SAN của họ tốt thì chạy mới ngon. Mình không biết bên provider có cho mình biết cấu hình phần cứng của họ không nữa? bác nào đã dùng VPS rồi thì cho chút ý kiến.
Những điều mình nói chỉ là y kiến và hiểu biết cá nhân, công ty mình dùng hệ thống ảo hóa riêng, không dùng bên ngoài nên không biết của người ta như thế nào.
it.thuongnguyen
30-07-2013, 15:32
dùng DRBD (http://www.clusterdb.com/mysql-cluster/mysql-now-provides-support-for-drbd/)không cần SAN nhé. Cũng không cần Proxy như trên luôn.
Đồng ý phương án này ! mà chưa làm kiểu này bao giờ. Vì có SAN sẵn :sosad:
http://www.clusterdb.com/wp-content/uploads/2012/08/MySQL-DRBD-Stack.png
it.thuongnguyen
30-07-2013, 15:34
dùng DRBD không cần SAN nhé. Cũng không cần Proxy như trên luôn.
Đã là VPS thì server của bạn chạy trên máy ảo, bạn mua bao nhiêu CPU, RAM, HDD and bandwidth thì người ta cấp cho bạn bấy nhiêu, nếu thiếu thì cứ nâng cấp, việc này chỉ tốn vài giây chứ không giống như dùng physical server như trước kia và bên provider cũng cung cấp sẵn cho bạn HA and FT luôn rồi (mình nghĩ cái này là option và có charge phí nhưng rẽ hơn bạn build rất nhiêu)
Mình chưa dùng dịch VPS của bên ngoài nhưng theo mình nghĩ thì bên cung cấp VPS có chức năng điều chỉnh IO theo yêu cầu nếu Client yêu cầu, đó là nét đặc trưng của VPS mà? Và chọn provider nào cũng rất quan trọng vì server và SAN của họ tốt thì chạy mới ngon. Mình không biết bên provider có cho mình biết cấu hình phần cứng của họ không nữa? bác nào đã dùng VPS rồi thì cho chút ý kiến.
Những điều mình nói chỉ là y kiến và hiểu biết cá nhân, công ty mình dùng hệ thống ảo hóa riêng, không dùng bên ngoài nên không biết của người ta như thế nào.
Cái này em nghĩ là bác chủ muốn build tại gia bác ạ, chứ đi thuê thì giải pháp sẽ khác. Đa phần là các provider làm cho mình luôn rùi. Trừ khi bác đi thuê nguyên tủ thì mới phải làm
f22_raptor
30-07-2013, 19:06
Có ! Vì 2 host là 2 con VMware (con xanh và con đỏ). SAN nhiều tiền dùng iSCSI cho rẻ
Hix mới nhắc con SAN exp400 từ 2007 die hết cả 2 controller a và b T__T
2 db server chạy cluster thì ko sao nhưng 1 con thì chết card raid
May cái data ko sao ...
HA cho webserver, db server cho đã nhưng nếu ko có kế hoạch dự phòng cho trường hợp SAN teo thì cũng tiêu hết luôn
:sosad::sosad::sosad:
Hồi xưa đi học ông thầy có kể 1 câu chuyện cho sinh viên nghe ( trong đó có mình ) là thầy có 1 anh học trò củ rất là giỏi nhưng 1 ngày anh ta đi lang thang trước cổng trường, thầy dạy xong ra về thấy anh ta lang thang nên gọi đi uống cà phê, anh bạn này nói anh ta đã bị cty xa thải. Anh này trước đó nói với thầy đang làm tại cty nước ngoài và lương tầm 1k usd ( lúc 2007 ). Lý do bị đuổi là mất dữ liệu do không kiểm soát ( không có tác động từ end user ), cty anh ta có hệ thống HA, backup . Hỏi tại sao anh ta lại bị đuổi vì mất dữ liệu? Mời vozer chém :) , gợi ý là nó gần giống như #15
bamboovn1
30-07-2013, 22:37
Hồi xưa đi học ông thầy có kể 1 câu chuyện cho sinh viên nghe ( trong đó có mình ) là thầy có 1 anh học trò củ rất là giỏi nhưng 1 ngày anh ta đi lang thang trước cổng trường, thầy dạy xong ra về thấy anh ta lang thang nên gọi đi uống cà phê, anh bạn này nói anh ta đã bị cty xa thải. Anh này trước đó nói với thầy đang làm tại cty nước ngoài và lương tầm 1k usd ( lúc 2007 ). Lý do bị đuổi là mất dữ liệu do không kiểm soát ( không có tác động từ end user ), cty anh ta có hệ thống HA, backup . Hỏi tại sao anh ta lại bị đuổi vì mất dữ liệu? Mời vozer chém :) , gợi ý là nó gần giống như #15
khổ nhỉ? tui làm mà ai khen thì tui nhận, có bị lỗi gì thì tui chỉ hết cho sếp, staff sướng chổ ấy :)
hensynki
30-07-2013, 23:47
Hix mới nhắc con SAN exp400 từ 2007 die hết cả 2 controller a và b T__T
2 db server chạy cluster thì ko sao nhưng 1 con thì chết card raid
May cái data ko sao ...
HA cho webserver, db server cho đã nhưng nếu ko có kế hoạch dự phòng cho trường hợp SAN teo thì cũng tiêu hết luôn
:sosad::sosad::sosad:
- SAN luôn có dual-controller/chassis.
- Cty nào dữ dữ thì trang bị luôn dual-chassis.
-Theo mô hình HA SQL 2012 always-on, thì cặp DB ko share-storage nữa, thay vào đó là replicate luôn. Tức là sẽ sync 2 LUN db-storage.
it.thuongnguyen
31-07-2013, 08:11
khổ nhỉ? tui làm mà ai khen thì tui nhận, có bị lỗi gì thì tui chỉ hết cho sếp, staff sướng chổ ấy :)
:) :) i like ... kịt kịt
- SAN luôn có dual-controller/chassis.
- Cty nào dữ dữ thì trang bị luôn dual-chassis.
-Theo mô hình HA SQL 2012 always-on, thì cặp DB ko share-storage nữa, thay vào đó là replicate luôn. Tức là sẽ sync 2 LUN db-storage.
dual-controller thì nhiều nhưng Dual chassis thì ít. Em bị 1 lần die 1 controller và 1 lần die PSU. May là nó die 1 cái nên sự việc không có gì để bàn.
Hix mới nhắc con SAN exp400 từ 2007 die hết cả 2 controller a và b T__T
2 db server chạy cluster thì ko sao nhưng 1 con thì chết card raid
May cái data ko sao ...
HA cho webserver, db server cho đã nhưng nếu ko có kế hoạch dự phòng cho trường hợp SAN teo thì cũng tiêu hết luôn
:sosad::sosad::sosad:
Qua những câu chuyện của các bác em thấy việc dự phòng, backup cho hệ thống là cực kỳ quan trọng. Nhất là cái database ... cái này mà tèo chỉ có nước đi bụi.
Theo em nghỉ nếu làm HA thì nên đầu tư cho nó đầy đủ cho cả WEB Server và DB server. Hầu hết các ứng dụng sau này đều chạy trên nền WEB cả.
f22_raptor
31-07-2013, 11:02
- SAN luôn có dual-controller/chassis.
- Cty nào dữ dữ thì trang bị luôn dual-chassis.
-Theo mô hình HA SQL 2012 always-on, thì cặp DB ko share-storage nữa, thay vào đó là replicate luôn. Tức là sẽ sync 2 LUN db-storage.
:) :) i like ... kịt kịt
dual-controller thì nhiều nhưng Dual chassis thì ít. Em bị 1 lần die 1 controller và 1 lần die PSU. May là nó die 1 cái nên sự việc không có gì để bàn.
Qua những câu chuyện của các bác em thấy việc dự phòng, backup cho hệ thống là cực kỳ quan trọng. Nhất là cái database ... cái này mà tèo chỉ có nước đi bụi.
Theo em nghỉ nếu làm HA thì nên đầu tư cho nó đầy đủ cho cả WEB Server và DB server. Hầu hết các ứng dụng sau này đều chạy trên nền WEB cả.
Nhục cái là con SAN đó chết 2 controller a và b của chính nó luôn :sosad:
Data bên em thì ko lo lắm vì ngoài 2 SAN ra còn có 2 HP tape backup
Xui ở đây là SAN cho db bị chết 2 controller luôn
SAN cho 2 con web thì lại ko sao :go:
Die PSU thì bên em thay hoài, core 6500 thay nguồn 2700w cũng nhiều
Knight123456
31-07-2013, 11:17
Em thấy mô hình này cũng khá tốt bảo đảm HA lẫn HP. Mô hình này em từng làm khi còn đi học:
_2 server loadbalancing ( 1 chạy 1 backup - có chế độ tự động chạy con backup khi còn chính chết ).
_2 web server ( nhận xử lý request từ còn LB - xử lý xong trả về cho user luôn )
_2 DB server ( 1 chính 1 backup ).
Mô hình này hồi đó em build trên linux.
http://www.linuxvirtualserver.org/VS-DRouting.gif
Em thấy cứ chơi mỗi con là 1 server vât lý riêng là hay nhất.:byebye:
f22_raptor
01-08-2013, 10:19
Đây là hệ thống server trong CoreRoom của bên mình làm
http://vozforums.com/attachment.php?attachmentid=637050&stc=1&d=1375327172
Các server đều 1 cặp chạy cluster
hensynki
01-08-2013, 11:26
Đây là hệ thống server trong CoreRoom của bên mình làm
http://vozforums.com/attachment.php?attachmentid=637050&stc=1&d=1375327172
Các server đều 1 cặp chạy cluster
thanks for share :)
bác làm bên cảng hàng không TSN à ?
bamboovn1
01-08-2013, 11:51
Đây là hệ thống server trong CoreRoom của bên mình làm
Các server đều 1 cặp chạy cluster
DAS dùng SCSI thì cũng lâu lắm rồi nhỉ?
f22_raptor
01-08-2013, 13:12
Hệ thống này đầu tư từ cuối 2005 đầu 2006, chạy thử nghiệm sau đó đưa vào hoạt động chính thức là 2007 cho đến hiện nay :)
SAN IBM exp400 thế hệ cũ, chỉ có SCSI, ko như SAN mới 3950 đang dùng, vừa iSCSI vừa có FC :chaymau:
@hen: đúng rùi bác :sweat:
it.thuongnguyen
01-08-2013, 13:32
Hệ thống này đầu tư từ cuối 2005 đầu 2006, chạy thử nghiệm sau đó đưa vào hoạt động chính thức là 2007 cho đến hiện nay :)
SAN IBM exp400 thế hệ cũ, chỉ có SCSI, ko như SAN mới 3950 đang dùng, vừa iSCSI vừa có FC :chaymau:
@hen: đúng rùi bác :sweat:
Thanks for share nhé bác !! :chaymau:
MCITP-EA
02-08-2013, 22:54
System admin khủng , bái sư các thánh nhé :sexy:
it.thuongnguyen
03-08-2013, 07:57
System admin khủng , bái sư các thánh nhé :sexy:
Theo ngu ý của em thì đó chỉ là 1 phần nhỏ trong hệ thống của bác ấy thôi !
MCITP-EA
03-08-2013, 18:33
Có bác nào nhận em làm đệ tử hông
prescolt
03-08-2013, 19:45
dùng DRBD không cần SAN nhé. Cũng không cần Proxy như trên luôn.
DRBD nghe qua thì cũng hay, được cái deploy ,vận hành cực kỳ phức tạp, co incident xử lí mà ko am hiêu OS với file system thì mất data như chơi
hensynki
05-08-2013, 22:58
DRBD nghe qua thì cũng hay, được cái deploy ,vận hành cực kỳ phức tạp, co incident xử lí mà ko am hiêu OS với file system thì mất data như chơi
chú này làm ở VNG mà thấy cứ mon men nhảy việc hoài ta :D
lương bổng VNG ko tốt hả chú...:byebye:
prescolt
06-08-2013, 23:52
chú này làm ở VNG mà thấy cứ mon men nhảy việc hoài ta :D
lương bổng VNG ko tốt hả chú...:byebye:
lam gi co ta, truoc gio van chua co ý đinh này, hinh như ông nhầm ai đó thì phải:byebye:
vBulletin® v3.8.0, Copyright ©2000-2026, Jelsoft Enterprises Ltd.