Tải bản đầy đủ (.pdf) (78 trang)

nghiên cứu công nghệ cân bằng tải (load balancing) ứng dụng vào triển khai cân bằng tải cho các webserver lớn trong doanh nghiệp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.94 MB, 78 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-------------------------------------

TRẦN THỊ NỤ

NGHIÊN CỨU CÔNG NGHỆ CÂN BẰNG TẢI (LOAD BALANCING)
ỨNG DỤNG VÀO TRIỂN KHAI CÂN BẰNG TẢI CHO CÁC
WEBSERVER LỚN TRONG DOANH NGHIỆP

LUẬN VĂN THẠC SĨ KỸ THUẬT VIỄN THÔNG

Hà Nội – Năm 2015


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-------------------------------------

TRẦN THỊ NỤ

Chuyên ngành: Kỹ thuật Viễn Thông

NGHIÊN CỨU CÔNG NGHỆ CÂN BẰNG TẢI (LOAD BALANCING)
ỨNG DỤNG VÀO TRIỂN KHAI CÂN BẰNG TẢI CHO CÁC
WEBSERVER LỚN TRONG DOANH NGHIỆP

LUẬN VĂN THẠC SĨ KỸ THUẬT VIỄN THÔNG

NGƢỜI HƢỚNG DẪN KHOA HỌC:
PGS.TS. PHẠM NGỌC NAM



Hà Nội – Năm 2015


Mục lục

MỤC LỤC

MỤC LỤC ...................................................................................................................1
LỜI CAM ĐOAN .......................................................................................................4
LỜI CẢM ƠN .............................................................................................................5
DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT ........................................6
DANH MỤC BẢNG BIỂU ........................................................................................7
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ .....................................................................8
MỞ ĐẦU ...................................................................................................................10
CHƢƠNG 1 – TỔNG QUAN VỀ WEB-SERVER LOAD BALANCING VỚI
KHẢ NĂNG MỞ RỘNG ..........................................................................................11
1.1. Kiến trúc web với khả năng mở rộng ..........................................................11
1.1.1.

Khả năng mở rộng .............................................................................11

1.1.2.

Hiệu năng...........................................................................................12

1.1.3.

Khả năng có sẵn ................................................................................12


1.1.4.

Tính đáp ứng......................................................................................12

1.1.5.

Downtime impact ..............................................................................13

1.2. Giải pháp load balancing cho kiến trúc web với khả năng mở rộng ...........13
1.2.1.

Cân bằng tải cho webserver...............................................................13

1.2.2.

Lợi ích của giải pháp Load Balancing ...............................................16

1.3. Các phƣơng pháp triển khai Load Balancing ..............................................19
1.3.1.

Cân bằng tải bằng phần cứng ............................................................19

1.3.2.

Load balancing bằng phần mềm........................................................23

1


Mục lục


1.4. Kết Luận ......................................................................................................23
CHƢƠNG 2 – CÂN BẰNG TẢI WEB SERVER BẰNG PHẦN MỀM .................24
2.1. Thuật toán cân bằng tải tĩnh (Static LB) .....................................................24
2.1.1.

Thuật toán DNS Round Robin ..........................................................24

2.1.2.

Thuật toán Weighted Round Robin ...................................................26

2.2. Thuật toán cân bằng tải động (Dynamic LB) ..............................................26
2.2.1.

Thuật toán Dynamic Round Robin (DRR) ........................................26

2.2.2.

Thuật toán Fastest ..............................................................................27

2.2.3.

Thuật toán Least Connections (LC) ..................................................27

2.2.4.

Thuật toán Observed .........................................................................30

2.2.5.


Thuật toán Predictive.........................................................................31

2.2.6.

Thuật toán Least Bandwidth (LBw) ..................................................31

2.3. Kết luận........................................................................................................33
CHƢƠNG 3 – CÀI ĐẶT VÀ MÔ PHỎNG CÂN BẰNG TẢI WEB-SERVER VỚI
CITRIX NETSCALER .............................................................................................35
3.1. Bài toán mô phỏng đặt ra.............................................................................35
3.1.1.

Mục đích mô phỏng ...........................................................................35

3.1.2.

Mô hình mô phỏng ............................................................................35

3.1.3.

Kết quả cần đạt đƣợc .........................................................................37

3.2. Giới thiệu về Citrix Netscaler ......................................................................38
3.2.1.

Khả năng ứng dụng của Citrix Netscaler ..........................................38

3.2.2.


Các tính năng chính của Citrix Netscaler ..........................................38

3.2.3.

Các dịch vụ NetScaler hỗ trợ [8] .......................................................41

3.3. Cài đặt Citrix NetScaler ...............................................................................42
3.3.1.

Cài đặt VMWare Worsktation 10 ......................................................43

2


Mục lục

3.3.2.

Cài đặt tool VMWare ovf tool ...........................................................43

3.3.3.

Cài đặt Citrix NetScaler NSVPX-ESX-10.5-55.8 [6],[11] ...............43

3.4. Cài đặt Webserver .......................................................................................45
3.5. Thực hiện mô phỏng Loadbalacing .............................................................46
3.5.1.

Setup Loadbalacing trên Netscaler ....................................................46


3.5.2.

Cấu hình thuật toán Load Balancing .................................................50

3.5.4.

Thiết lập hai web-server trên 2 máy chủ ...........................................53

3.6. Kết quả mô phỏng........................................................................................54
3.6.1.

Mô phỏng theo thuật toán RR ...........................................................54

3.6.2.

Mô phỏng theo thuật toán LeastConnection .....................................57

3.7. Đánh giá kết quả mô phỏng .........................................................................60
3.8. Kết luận........................................................................................................62
KẾT LUẬN ...............................................................................................................63
TÀI LIỆU THAM KHẢO .........................................................................................65
PHỤ LỤC ..................................................................................................................66
I. Cài đặt NetScaler NSVPX-ESX-10.5-55.8.....................................................66
II.

Cài đặt Web-server ......................................................................................73

III.

Code trang web server 1 demo ....................................................................74


IV.

Code trang web server 2 demo ....................................................................75

3


Lời cam đoan

LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc ai
công bố trong bất kỳ công trình nào khác.
Tác giả
TRẦN THỊ NỤ

4


Lời cảm ơn

LỜI CẢM ƠN
Để hoàn thành đƣợc luận văn này, em đã đƣợc học hỏi những kiến thức vô
cùng quý báu từ các thầy, cô giáo trong trƣờng Đại học Bách Khoa Hà Nội trong
suốt năm năm học đại học và hơn một năm học cao học vừa qua. Em vô cùng biết
ơn sự dạy dỗ, chỉ bảo tận tình của các thầy, các cô trong thời gian học tập và nghiên
cứu tại trƣờng.
Em đặc biệt bày tỏ lòng biết ơn tới thầy PGS.TS Phạm Ngọc Nam – Viện
Điện Tử Viễn Thông – Trƣờng Đại Học Bách Khoa Hà Nội đã chỉ bảo và định

hƣớng cho em nghiên cứu đề tài này. Thầy đã cho em những lời khuyên bổ ích và
quý báu trong suốt quá trình hoàn thành luận văn.
Do hạn chế về thời gian, tài liệu và trình độ bản thân, bài luận văn của em
không thể tránh khỏi những thiếu sót, rất mong các thầy cô góp ý và củng cố đề bài
luận văn đƣợc hoàn thiện hơn.
Em xin chân thành cảm ơn!

5


Danh mục các ký hiệu và chữ viết tắt

DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT

Từ viết tắt

Nghĩa tiếng Anh

Nghĩa tiếng việt

ADC
DB

Application Delivery Control
Database

Điều khiển phân phối ứng dụng
Cơ sở dữ liệu

DMZ


Demilitarized Zone

Một vùng mạng trung lập giữa mạng
nội bộ và mạng internet

DNS

Domain Name System

Hệ thống tên miền

DNSRR

DNS Round Robin

Thuật toán quay vòng DNS

FIPS

Tiêu chuẩn xử lý thông tin liên bang

FTP
HSM
HTTP
IPv4
ISP

Federal
Information

Processing Standard
File Transfer Protocol
Hardware Security Module
Hyper Text Transfer Protocol
Internet Protocol version 4
Internet Service Provider

LB

Load balancing

Cân bằng tải

LBw
LC
RTSP

Thuật toán bang thông ít nhất
Thuật toán kết nối ít nhất
Giao thức tạo luồng thời gian thực

SSL
TCP
WAN

Least Bandwidth
Least Connections
Real
Time
Streaming

Protocol
Secure Sockets Layer
Transfer Control Protocol
Wide Area Network

WRR

Weighted Round Robin

Thuật toán RR có gắn trọng số

6

Giao thức truyền tập tin
Mô đun bảo mật phần cứng
Giao thức truyền tải siêu văn bản
Phiên bản thứ 4 của giao thức mạng
Nhà cung cấp dịch vụ internet

Giao thức bảo mật
Giao thức điều khiển giao vận
Mạng đô thị


Danh mục bảng biểu

DANH MỤC BẢNG BIỂU

Bảng 1- 1. So sánh scale out và scale up ..................................................................15
Bảng 1- 2. So sánh hệ thống có cân bằng tải và hệ thống thông thường .................17


Bảng 2- 1. Thuật toán Least Connections .................................................................29
Bảng 2- 2. Thuật toán Least Bandwidth ...................................................................32

Bảng 3- 1. Log monitor chạy cân bằng tải thuật toán LeastConnection ..................60

7


Danh mục các hình vẽ, đồ thị

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1- 1. Mô hình cân bằng tải web-server ............................................................16
Hình 1- 2. So sánh hệ thống có cân bằng tải và hệ thống thông thường ..................17
Hình 1- 3.Mô hình giải pháp high availability và load balancing cho website........20
Hình 1- 4. Mô hình Load balancing 6 server ............................................................22

Hình 2- 1. Cân bằng tải bằng DNS ...........................................................................25
Hình 2- 2. Thuật toán Weighted Round Robin ..........................................................26
Hình 2- 3. Thuật toán Least Connections .................................................................28
Hình 2- 4. Cân bằng tải Least Bandwidth ................................................................32
Hình 3- 1. Mô hình Load balacing cơ bản ................................................................36
Hình 3- 2. Topology vật lý load balancing cơ bản ...................................................37
Hình 3- 3. Cấu hình thông số IPv4, Netmark, và gate way cho Netscaler ...............44
Hình 3- 4. Khởi động thành công Netscaler .............................................................44
Hình 3- 5. Bật máy chủ .............................................................................................46
Hình 3- 6. Enable tính năng LB ................................................................................47
Hình 3- 7. Tạo service và xem thông số service vừa tạo ..........................................49
Hình 3- 8. Show bindings Service .............................................................................50

Hình 3- 9. Web-server 1 ............................................................................................54
Hình 3- 10. Web-server 2 ..........................................................................................54
Hình 3- 11. Log monitor khi chưa có kết nối từ client tới server ............................55
Hình 3- 12. Chạy cân bằng tải thuật toán RoundRobin............................................56
Hình 3- 13. Log monitor chạy cân bằng tải thuật toán RoundRobin .......................57
Hình 3- 14. Logmonitor chạy cân bằng tải thuật toán LeastConnection .................59
Hình 3- 15. Dung lượng trang web và lượng truy cập với công nghệ ảo hóa của
Citrix..........................................................................................................................61

8


Danh mục các hình vẽ, đồ thị

Hình 3- 16. Khả năng xử lý của Netscaler Loadbalancing ......................................61
Hình I- 1. Đường dẫn download Netscaler ...............................................................66
Hình I- 2. Download Netscaler .................................................................................67
Hình I- 3. Thực hiện cài đặt Netscaler ......................................................................67
Hình I- 4. Import gói cài vào Vmware ......................................................................68
Hình I- 5. Màn hình import xong gói cài ..................................................................69
Hình I- 6. Upgrate version virtual mechine cho Netscaler .......................................69
Hình I- 7. Quá trình chuyển đổi file .ovf sang file .vmx ............................................71
Hình I- 8. Power on virtual machine Netscaler ........................................................72
Hình II- 1. Cài đặt windowsXP trên Vmware ...........................................................73
Hình II- 2. Cài đặt Xampp trên windowsXP .............................................................74

9


Mở đầu


MỞ ĐẦU
Ngày nay, khi nhu cầu truy cập mạng bùng nổ kéo theo nhu cầu ứng dụng
Internet vào công việc của các doanh nghiệp ngày càng cao và khả năng sở hữu
nhiều đƣờng truyền Internet cũng khá dễ dàng tăng lên. Các dịch vụ ngày càng đƣợc
phát triển mở rộng, không ngừng tăng lên về số lƣợng cũng nhƣ chất lƣợng để đáp
ứng nhu cầu kinh doanh của doanh nghiệp. Nhƣng bên cạnh đó, các server cung cấp
dịch vụ này cũng theo đó mà trở nên quá tải, băng thông đƣờng truyền cũng bị quá
tải. Vì vậy, việc bảo đảm sự ổn định về tốc độ cũng nhƣ tính liên tục của kết nối
Internet là điều hết sức cần thiết cho doanh nghiệp.
Tuy nhiên, vấn đề nâng cấp băng thông luôn là bài toán về chi phí kinh
doanh có hiệu quả hay không đối với các doanh nghiệp. Việc lựa chọn một server
đơn lẻ có cấu hình cực mạnh để đáp ứng nhu cầu giải quyết vấn đề quá tải của
server sẽ kéo theo chi phí đầu tƣ rất lớn.
Giải pháp hiệu quả đƣợc đƣa ra là sử dụng một nhóm server cùng thực hiện
một chức nǎng dƣới sự điều khiển của một công cụ phân phối tải – Giải pháp cân
bằng tải cho hệ thống máy server (Load Balancing). Việc giải quyết vấn đề đƣờng
truyền bị quá tải, không chỉ đơn giản là nâng cao tốc độ hay băng thông đƣờng
truyền mà còn phải chú trọng đến việc tránh các rủi ro về sự cố trên đƣờng truyền,
giải pháp Load Balancing cho đƣờng truyền là giải pháp tối ƣu cho vấn đề này. Vì
vậy em đã chọn đề tài: “Nghiên cứu công nghệ cân bằng tải (Load Balancing)
ứng dụng vào triển khai cân bằng tải cho các webserver lớn trong doanh
nghiệp” làm đề tài luận văn tốt nghiệp của mình.
Luận văn sẽ đƣa ra những cái nhìn tổng quan về kiến trúc web-server lớn
cần có tính sẵn sàng và khả năng mở rộng nhƣ thế nào cũng nhƣ đƣa ra những thuật
toán cân bằng tải mà các công nghệ cân bằng tải đã và đang đƣợc sử dụng. Cuối
cùng, luận văn sẽ đi sâu phân tích, cài đặt mô phỏng bài toán cân bằng tải cho webserver cụ thể với một vài thuật toán cân bằng tải cụ thể.

10



Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

CHƢƠNG 1 – TỔNG QUAN VỀ WEB-SERVER LOAD BALANCING VỚI
KHẢ NĂNG MỞ RỘNG
Chƣơng 1 sẽ đƣa ta đến những cái nhìn tổng quan về web-server với khả năng
mở rộng với những vấn đề xung quanh nó nhƣ hiệu năng, tính có sẵn, khả năng đáp
ứng. Tiếp sau đó là tổng quan cho giải pháp load balancing cho những kiến trúc
web này.
1.1.

Kiến trúc web với khả năng mở rộng

Một website với khả năng mở rộng nghĩa là khi số lƣợng ngƣời dùng tăng lên
trong một khoảng nhất định, website vẫn đáp ứng đƣợc nhu cầu, thêm nữa, website
có khả năng dễ dàng nâng cấp lên để phù hợp với tình hình mới. Tại thời điểm ban
đầu, các website với khả năng mở rộng lớn thƣờng đƣợc thiết kế để phục vụ hàng
chục triệu yêu cầu mỗi ngày, sau đó, sẽ đƣợc nâng cấp để phục vụ thêm, nếu nhƣ có
nhu cầu. Để phục vụ đƣợc hàng chục triệu lƣợt truy cập mỗi ngày, website cần phải
đáp ứng đƣợc yêu cầu về khả năng mở rộng (Scalability), về hiệu năng
(Performance), tính đáp ứng (Responsiveness), tính sẵn có cao (High Availability),
tránh đƣợc thời gian chết của hệ thống(downtime impact), khả năng bảo trì tốt và
đƣợc xây dựng với giá thành tốt nhất. Sau đây, ngƣời viết luận văn (NVLV) xin
trình bày về các khái niệm này.
1.1.1. Khả năng mở rộng
Khả năng mở rộng là khả năng của một ứng dụng có thể hỗ trợ đƣợc số lƣợng
ngƣời ngày một tăng. Nếu nó cần 10ms để một ứng dụng có thể đáp trả cho một yêu
cầu thì khoảng thời gian sẽ là bao lâu để nó đáp trả đến 10.000 yêu cầu cùng một
lúc? Khả năng mở rộng là vô hạn sẽ cho phép nó đáp trả các yêu cầu này chỉ trong
khảng 10ms.

Nhƣ vậy, khả năng mở rộng là đơn vị đo sự kết hợp của các kệ số, đó là số
lƣợng ngƣời dùng đồng thời mà một cụm server có thể hỗ trợ và thời gian cụm
server cần để xử lý một yêu cầu. [4]

11


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

Thiết kế website với khả năng mở rộng cao là yêu cầu sống còn với hầu hết
các công ty dịch vụ web cũng nhƣ các doanh nghiệp hiện nay, để tồn tại và phát
triển, một website cần phải đáp ứng đƣợc yêu cầu của ngƣời dùng trong thời gian
mà họ mong muốn.
1.1.2. Hiệu năng
Là khả năng mà hệ thống sử dụng tài nguyên của nó một cách tốt nhất. Tính
thực hiện đƣợc đo bằng lƣợng công việc có ích mà hệ thống thực hiện đƣợc với một
nguồn tài nguyên nhất định, chẳng hạn nhƣ nếu hai server có cấu hình giống nhau,
server nào có thể phục vụ đƣợc nhiều ngƣời dùng hơn (ngƣời dùng chạy các ứng
dụng tƣơng đƣơng) thì máy đó có tính thực hiện cao hơn.
1.1.3. Khả năng có sẵn
Khả năng có sẵn cao có thể đƣợc hiểu là tình trạng dƣ thừa. Nếu một máy chủ
không thể quản lý một yêu cầu thì các máy chủ khác trong cluster đó có quản lý nó
hay không?
Trong một hệ thống có khả năng có sẵn cao, nếu một web server bị lỗi hoặc
đang bận thì một webserver khác sẽ tiếp quản ngay để xử lý yêu cầu. Nghĩa là nếu
ngƣời dùng đang làm việc với một webserver bị lỗi, toàn bộ thông tin trong phiên
làm việc của ngƣời đó sẽ đƣợc chuyển qua cho một server khác đảm nhiệm. [3]
Nhƣ vậy, trong bất cứ trƣờng hợp nào, ngƣời dùng truy cập vào các dịch vụ
của hệ thống đều đƣợc đáp ứng, chính vì vậy mà ngƣời dùng luôn cảm thấy đƣợc
phục vụ tốt nhất.

1.1.4. Tính đáp ứng
Tính đáp ứng ở đây có thể hiểu là khả năng phục vụ ngƣời dùng của hệ thống,
làm sao để hệ thống có thể phục vụ ngƣời dùng tại mọi thời điểm, và thời gian cho
đáp ứng đó là bao nhiêu.
Hệ thống gửi response về càng nhanh thì đáp ứng của nó càng cao, ngƣợc lại,
nếu thời gian trì hoãn (delay) càng lớn, sẽ khiến ngƣời dùng thất vọng, và dẫn tới
việc họ tin là trang web đang bị hỏng, điều này rất có hại vì nếu ngƣời dùng mất

12


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

niềm tin, họ sẽ không quay trở lại trang web đó nữa. Chẳng hạn nhƣ khi ngƣời dùng
truy cập vào một trang web, nếu phải họ phải chờ quá lâu, họ sẽ chuyển qua làm
công việc khác, đôi khi họ quên mất là mình đang truy cập vào một dịch vụ web và
họ đóng luôn trình duyệt, hoặc họ quay trở lại sau một thời gian khá lâu, điều này
rất không tốt vì hệ thống mà họ truy cập vẫn hoạt đồng và lƣu giữ session mà không
phục vụ cho ai cả, đó là một sự lãng phí lớn. [3]
Ở đây cần phải hiểu rằng, tính đáp ứng và tính thực hiện độc lập với nhau, một
hệ thống có hiệu năng tốt vẫn có thể đáp ứng rất tệ.
1.1.5. Downtime impact
Downtime impact Là một vấn đề mà tất cả các hệ thống đều gặp phải, đó là
thời gian mà hệ thống bị “chết”, khi mà một số các chức năng chính bị down, đây là
vấn đề có tính tuần hoàn đối với các nhà phát triển hệ thống.
Một hệ thống tốt sẽ giúp ngƣời dùng truy cập nhanh, làm họ cảm thấy hài
lòng, dẫn đến số lƣợng ngƣời dùng tăng lên, và khi số lƣợng ngƣời dùng tăng lên,
hệ thống sẽ lại bị tắc nghẽn, và nhà quản trị sẽ phải đối phó với vấn đề nó, giải
quyết nó nhằm tạo ra hệ thống hoạt động tốt hơn, cứ nhƣ vậy, vòng quay lại tiếp
tục.

Điều quan trọng là một hệ thống tốt cần phải kéo thời gian chu kỳ này lên,
nghĩa là làm sao cho hệ thống hoạt động đƣợc tốt nhất trong một thời gian dài trƣớc
khi cần phải nâng cấp, cũng nhƣ làm sao để xây dựng đƣợc một hệ thống có khả
năng mở rộng lớn.
Cùng với các đòi hỏi này, hệ thống cũng cần phải có thể dễ dàng bảo trì và
giá thành vừa phải. Xây dựng một hệ thống web nhƣ vậy sẽ gặp rất nhiều vấn đề
khó khăn, sau đây, NVLV xin trình bày ra những vấn đề quan trọng nhất trong việc
thiết kế một trang web có khả năng mở rộng và đáp ứng tính sẵn sàng mà bất cứ nhà
phát triển hệ thống web nào cũng phải giải quyết, đó là cân bằng tải cho application
servers.
1.2.

Giải pháp load balancing cho kiến trúc web với khả năng mở rộng

1.2.1. Cân bằng tải cho webserver

13


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

Một trang web phục vụ hàng triệu lƣợt ngƣời truy cập mỗi ngày thì điều
quan trọng đầu tiên là phải có một hệ thống server đủ mạnh, khi ngƣời dùng tăng
lên theo thời gian, hệ thống máy chủ cũng phải đƣợc nâng cấp, mở rộng. Có 2 sự
lựa chọn ở đây: Mở rộng theo chiều ngang (Scale out) và mở rộng theo chiều dọc
(Scale up).
1.2.1.1.

Mở rộng theo chiều dọc


Mở rộng theo chiều dọc nghĩa là, khi số lƣợng ngƣời dùng tăng lên, nhà phát
triển sẽ nâng cấp server của mình bằng cách tăng cấu hình của máy server, hệ thống
vẫn chỉ có một server với cấu hình ngày càng mạnh hơn (tăng số lƣợng chip, tăng
dung lƣợng RAM,…).
Sử dụng phƣơng pháp này, ngƣời quản trị hệ thống sẽ không phải quan tâm
đến vấn đề cân bằng tải cho cụm server, hệ thống hoạt động rất tốt khi số lƣợng
ngƣời dùng vừa phải. Tuy vậy, phƣơng pháp này sẽ dẫn đến nhiều vấn đề, đầu tiên
là giá thành, nhìn vào bảng so sánh giá ở trang dƣới, sử dụng một server sẽ tốn kém
hơn rất nhiều so với nhiều servers, một vấn đề nữa cũng quan trọng không kém là
vấn đề về downtime impact, vì chỉ có một server nên nó trở thành SPOF(Single
Point Of Failure-Một điểm trong hệ thống mà nếu nó ngừng hoạt động, toàn bộ hệ
thống sẽ bị tê liệt), nếu nhƣ server này bị chết, ngay lập tức toàn bộ hệ thống sẽ
chết. Phƣơng pháp này còn dẫn đến giới hạn cho hệ thống, vì đến một mức nào đó
hệ thống sẽ không thể phục vụ đƣợc nhiều yêu cầu hơn nữa, vì một hệ thống tổng
thể còn phụ thuộc vào nhiều yếu tố nhƣ bandwidth hay khả năng vào ra của file trên
đĩa cứng.
Ví dụ sau đây sẽ cho thấy rõ điều đó, giả sử với một site video, băng thông
để xem đƣợc 1 clip ở dạng chất lƣợng trung bình sẽ vào khoảng 512kb/s 
0,5mb/s. Vậy đƣờng truyền 100mb sẽ cho phép tối đa 200 ngƣời dùng xem đồng
thời. Điều gì sẽ xảy ra nếu muốn có hơn số ngƣời dùng đó?
Ngƣời ta có thể tăng băng thông cho đƣờng truyền lên 1 gigabit nhƣng đây
sẽ rơi vào tình trạng của scale up và gặp giới hạn. Ngoài ra, tốc độ đọc đĩa cứng chỉ
vào khoảng 400mb/s nên dù cho nó tăng tốc đƣờng truyền lên thì server vẫn không

14


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

thể phục vụ nhiều hơn nữa. Nhƣ vậy, sử dụng scale up không thể giải quyết đƣợc

vấn đề này.
1.2.1.2.

Mở rộng theo chiều ngang

Giải pháp thứ hai là lắp nhiều server song song, và chúng hoạt động thành
một cụm (Cluster). Theo ví dụ ở trên, cứ lắp thêm một server lại có khả năng đáp
ứng cho 200 ngƣời dùng nữa, và càng nhiều server thì khả năng mở rộng lại càng
lớn. Thêm nữa, sử dụng phƣơng pháp này còn giảm đƣợc chi phí. Vì vậy thì điểm
yếu giải pháp này là gì? Đó chính là vấn đề cân bằng tải, để cứ mối server sẽ thêm
đƣợc 200 ngƣời dùng, hệ thống phải đƣợc cân bằng tải một cách tốt nhất, làm sao
để tải đƣợc phân bố đều đặn vào trong các máy server? Các server phải đƣợc nối
với nhau nhƣ thế nào đều là những bài toán khó. Bảng 1.1 dƣới đây sẽ cho chúng ta
thấy ƣu và nhƣợc điểm của từng phƣơng pháp:
Bảng 1- 1. So sánh scale out và scale up
Ƣu điểm

Một server cực mạnh

Nhiều server nhỏ

-

Dễ dàng thực hiện

-

-

Hệ thống hoạt động -


Phục vụ đƣợc lƣợng

hiệu quả

user lớn nếu giải quyết

Giảm thiểu chi phí

tốt bài toán cân bằng
Nhƣợc điểm

Chị phí rất đắt(đặc biệt -

Phát sinh nhiều vấn đề:

khi số lƣợng ngƣời

cân bằng tải, quản lý

dùng tăng cao)

session, cần thiết phải

-

Có giới hạn nhất định

có Load Balancer


-

Downtime problems

-

Nhƣ vậy, rõ ràng rằng sự lựa chọn một server chỉ phù hợp cho các hệ thống
đòi hỏi sự ổn định cao, với số lƣợng ngƣời dùng tăng lên hàng năm là không nhiều
và có tiềm lực mạnh về kinh tế nhƣ các hệ thống chứng khoán, ngân hàng,… còn
đối với các mạng xã hội hay các trang chia sẻ video trực tuyến thì sự lựa chọn nhiều
server hoạt động song song là hiệu quả. Khi sử dụng phƣơng pháp sacle out, yêu

15


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

cầu từ phía ngƣời dùng sẽ đƣợc chuyển vào một trong các servers này xử lý, từ đó,
xuất hiện bài toán cân bằng tải (load balancing - LB) cho cluster này.
Nhà phát triển hệ thống phải làm sao để các server hoạt động cân bằng, nghĩa
là các server đƣợc phục vụ một lƣợng yêu cầu phù hợp, tránh không để bất cứ
server nào bị quá tải(overload), đồng thời tận dụng đƣợc hết tài nguyên hệ thống, để
phục vụ đƣợc lƣợng truy cập lớn nhất.
Nhƣ đã đề cập ở phần mở đầu, để cân bằng tải cho hệ thống web-servers cần
phải xây dựng một bộ gọi là bộ cân bằng tải(load balancer). Bộ cân bằng tải này
đƣợc đặt trƣớc cluster, nhận request từ phía ngƣời dùng, xử lý các yêu cầu này và
chuyển hƣớng chúng đến máy server phù hợp.

Hình 1- 1. Mô hình cân bằng tải web-server
1.2.2. Lợi ích của giải pháp Load Balancing

a) So sánh hệ thống có cân bằng tải và hệ thống thông thƣờng

16


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

Hình 1- 2.So sánh hệ thống có cân bằng tải và hệ thống thông thường
Bảng 1- 2. So sánh hệ thống có cân bằng tải và hệ thống thông thường
Tính năng

Hệ thống có LB

Hệ thống thông thƣờng

Tính sẵn sàng cao



Không

Tính mở rộng



Không

Tính xử lý ứng dụng

Xử lý đa nhiệm


Xử lý đơn nhiệm

b) Những tổ chức nào cần có giải pháp cân bằng tải
-

Các doanh nghiệp

-

Nhà cung cấp dịch vụ ISP

-

Trung tâm xử lý dữ liệu

-

Chính phủ

-

Phòng thí nghiệm

-

Trƣờng đại học, viện nghiên cứu,…
c) Lợi ích của Load Balancing
Server Load Balancing (máy chủ cân bằng tải) là một quá trình phân phối các


yêu cầu dịch vụ trên một nhóm các máy chủ. Server Load Balancing (máy chủ cân

17


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

bằng tải) ngày càng trở nên quan trọng trong hệ thống cơ sở hạ tầng mạng trong
doanh nghiệp:
-

Tăng cƣờng khả năng mở rộng: Thêm hoặc bớt server một cách dễ
dàng

-

Nâng cao hiệu suất.

-

Tính sẵn sàng cao và khắc phục sự cố cao: hệ thống có nhiều server nên
hệ thống có tính dự phòng

-

Tính quản lý: Theo dõi và quản lý tập trung hệ thống server, bảo dƣỡng
hệ thống server mà không cần tắt các dịch vụ

-


Làm việc đƣợc với nhiều hệ điều hành

Nhiều ứng dụng chuyên sâu có quy mô lớn, vì vậy đòi hỏi các máy chủ phải
có sự cân bằng tải cho nhau mới có thể chạy tốt các ứng dụng nhƣ vậy. Cả doanh
nghiệp và nhà cung cấp dịch vụ cần sự linh hoạt để triển khai thêm các máy chủ
một cách nhanh chóng để đáp ứng đƣợc nhu cầu xử lý công việc trong doanh
nghiệp. Server Load Balancing làm cho nhiều máy chủ xuất hiện nhƣ là một máy
chủ duy nhất, một dịch vụ đơn ảo, phân phối các yêu cầu ngƣời sử dụng trong các
máy chủ.
Hãy tƣợng tƣợng máy chủ xử lý 1 yêu cầu của client mất khoảng 3s, vậy sẽ
nhƣ thế nào nếu có khoảng 10.000 yêu cầu đƣợc gửi đến đồng thời tới một máy
chủ? Load Balancing sẽ chịu trách nhiệm phân phối 10.000 yêu cầu này cho một
nhóm máy chủ cùng xử lý.
Mỗi máy chủ sẽ nhận đƣợc số lƣợng yêu cầu dựa vào khả năng xử lý của nó
vào thời điểm đó. Qua đó giúp việc xử lý các yêu cầu đồng thời của nhiều client
đƣợc nhanh chóng và không gây nên hiện tƣợng quá tải cho một máy chủ riêng biệt.
Lợi ích thứ ba của cân bằng tải máy chủ là khả năng cải thiện tính sẵn sàng
ứng dụng. Nếu một ứng dụng hoặc máy chủ không thành công, cân bằng tải có thể
tự động phân phối lại yêu cầu dịch vụ ngƣời dùng cuối đến các máy chủ khác trong
một nhóm xử lý. Khi một máy chủ nào trong nhóm có vấn đề thì các session đang

18


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

đƣợc nó xử lý sẽ tự động chuyển qua cho các máy chủ khác thực hiện mà client
không bị mất session.
Ngoài ra việc xây dựng mô hình load balancing giúp cho công tác bảo trì của
nhân viên kỹ thuật thuận lợi hơn, họ có thể tiến hành bào trì từng bƣớc mà không

gây gián đoán đến dịch vụ của mình.
1.3.

Các phƣơng pháp triển khai Load Balancing

Có 2 phƣơng pháp cơ bản để triển khai load balancing cho web server là cân
bằng tải bằng phần cứng và cân bằng tải bằng phần mềm.
1.3.1. Cân bằng tải bằng phần cứng
1.3.1.1.

Sử dụng các bộ cân bằng tải bằng phần cứng

Về kỹ thuật, hệ thống sẽ bao gồm các hệ thống con:
a) Web server
Đây là hệ thống public, phục vụ cho mục đích marketing, quảng bá đƣa hình ảnh
hoạt động, sản phẩm của công ty đến với mọi ngƣời.
Hệ thống này, về kỹ thuật, cho phép tất cả ngƣời dùng Internet đều có thể tìm
kiếm thông tin, trao đổi thông tin với website của bạn. Do vậy, cần phải đảm bảo về
tốc độ truy cập, tính ổn định.
b) Database Server
Hệ thống Database chung để Web server access vào lấy dữ liệu và hiển thị nội
dung trên website.
Đây là hệ thống chứa mọi thông tin cho hoạt động cả Public và nội bộ công ty. Do
vậy, hệ thống DB phải đủ mạnh, ổn định và an toàn dữ liệu.
c) Proxy server (Load Balancing)
Đây là hệ thống chuyển tiếp thông tin và kiểm soát thông tin, tạo sự an toàn cho
server web, database server.
Chức năng Load Balancing (LB) cho các web server sẽ đƣợc cài đặt trên máy
chủ Proxy này.


19


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

1.3.1.2.

Mô hình giải pháp high availability và load balancing cho
website

Mô hình kết nối:

Hình 1- 3.Mô hình giải pháp high availability và load balancing cho website
-

Ba IP PUBLIC trong đó:
o IP WAN 1 : Sẽ đƣợc gán cho LB1
o IP WAN 2 : Gán cho LB2
o IP WAN 3 : Sử dụng cho Virtual IP (Ngƣời dùng sẽ truy cập đến các
Webserver thông qua địa chỉ này)

-

Bốn Server trong đó:
o Hai Server đóng vai trò control việc load balancing: Mỗi Server cần
có 2 Interface.Vì là nơi chuyển traffic chính nên yêu cầu throughput
cho network traffic cao. Khả năng throughput này dựa trên CPU và
RAM.

20



Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

o Hai Server đóng vai trò Website: Lƣu trữ thông tin website trên đây.
Trên hai Server ta có có thể setup mysql để làm database.
Cách thức hoạt động: Hai Server đảm nhận vai trò là LoadBalancer và
Firewall
Server Load Balancer:
-

LB1 Server đóng vai trò là active. Server còn lại giữ vai trò standby (LB2).

-

Khi bên ngoài truy cập đến website thông qua địa chỉ: IP WAN3 sẽ đƣợc
redirect theo đƣờng dẫn (mũi tên màu đen) đến server LB1 (Active). LB1 sẽ
tự động thực hiện nắm giữ việc load balancing tới 2 Web Server.

-

Khi Server LB1 không còn khả năng phục vụ, lúc này server LB2 sẽ đƣợc tự
động chuyển lên Active tiếp tục nắm giữ việc load balancing đến 2 Web
Server, đảm bảo cho việc truy cập đến website liên tục đối với ngƣời dùng
internet (đƣờng dẫn mũi tên màu đỏ).

-

Khi Server LB1 up lên lại, vai trò sẽ đƣợc tự động chuyển lại cho LB1.


-

Bằng cách này ta có thể đảm bảo độ sẵn sàng cao và cân bằng tải cho
website.

Server Firewall:
Các Web Server sẽ đƣợc đặt trong vùng DMZ đƣợc bảo vệ bởi LoadBalancer
(Nhờ vào Firewall đƣợc cài đặt trên Load Balancer)

21


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

Hình 1- 4.Mô hình Load balancing 6 server
Mô hình ở Hình 1-4 thích hợp cho trƣờng hợp dữ liệu trong database lớn và
yêu cầu bảo mật cao và Web Server thực thi Read và Write liên tục đến Database.
Với mô hình ở Hình 1-4:
-

Web Server và Database chạy độc lập trên mỗi Server vật lý.

-

Có thể triển khai cấu hình phần cứng thích hợp cho Web Server và Database
Server.

-

Đảm bảo Secure. Trƣờng hợp Hacker tấn công nắm quyền kiểm soát trên

Web Server thì nghĩa là vẫn còn phải thao tác kết nối đến Database Server
Việc Replicate giữa hai Database Server sẽ không ảnh hƣởng nhiều đến khả

năng hoạt động của Web Server (Do chạy độc lập). Tăng khả năng chịu tải của Web
Server (Do không phải share resource với database). Việc truy xuất dữ liệu chỉ
trong mạng LAN và không ảnh hƣởng đến hai Load Balancer.
Với mô hình trên, lƣợng request từ Internet sẽ đƣợc phân tải đến bốn Server.
Database trên mỗi Server sẽ đồng bộ với nhau. (Lên đến 4). Lúc này, do Load

22


Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng

Balancer phải chịu tải lên đến bốn Server. Vì vậy, yêu cầu cấu hình mạnh cho 2
máy LoadBalancer.
Ngoài ra hiện nay còn có những thiết bị phần cứng load balancer chuyên dụng
nhƣ F5 BigIP cho hiệu quả rất cao. Tuy nhiên, đi kèm với đó là chi phí bỏ ra cho
các thiết bị này cũng không hề nhỏ mà không phải công ty nào cũng có thể đâu tƣ
đƣợc.
1.3.2. Load balancing bằng phần mềm
Một thiết bị cân bằng tải bằng phần cứng giải quyết đƣợc những vấn đề lost
session nhờ vào cơ chế chuyển đổi dự phòng của nó (active-standby). Nhƣng cái giá
phải trả cho sự lựa chọn này là chi phí rất đắt đỏ. Một thiết bị Big-Ip 6800 của F5
Networks hay thiết bị của Citrix có giá lên tới gần hoặc bằng 50 nghìn USD. Vì
vậy, lựa chọn tối ƣu cho những công ty có tiềm lực kinh tế vừa và nhỏ là sử dụng
phần mềm load balancing với giá vừa phải hay sử dụng các phần mềm load
balancing mã nguồn mở.
Tuy nhiên vậy, giá của các phần mềm đƣợc cung cấp bởi F5 hay Citrix cũng vẫn
là một thách thức lớn đối với các nhà phát triển web và tất nhiên các phần mềm này

hoạt động rất hiệu quả và tƣơng thích nhiều môi trƣờng khác nhau.
Giải pháp phầm mềm thƣờng sử dụng hai thuật toán chính là thuật toán cân bằng
tải tĩnh (Static LB – DNS Round Robin) và thuật toán cân bằng tải động. Các thuật
toán này sẽ đƣợc trình bày kỹ hơn trong Chƣơng 2.
1.4.

Kết Luận

Server Load Balancing là một kỹ thuật mạnh mẽ để nâng cao tính sẵn sàng ứng
dụng và hiệu quả trong việc cung cấp dịch vụ, các nhà cung cấp dịch vụ web cung
cấp nội dung và mạng lƣới doanh nghiệp, thực hiện trọn vẹn nhƣng cũng có thể làm
tăng chi phí và độ phức tạp mạng. Bên cạnh những ƣu thế từ việc ứng dụng Server
Load Balancing và các thiết bị không dây, nó còn có hạn chế là nếu hoạt động ở tốc
độ cao cũng có thể tạo ra nghẽn cổ chai của riêng mình.

23


×