Tải bản đầy đủ (.docx) (76 trang)

Tìm hiểu về cân bằng tải cho WebServer

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.73 MB, 76 trang )

Tìm hiểu về cân bằng tải cho WebServer
MỤC LỤC
DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ
DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Từ đầy đủ Giải thích
ARP Address Resolution Protocol Giao thức phân giải địa chỉ
CDN Content Delivery Network Mạng lưới phân phối nội dung
CPU Central Processing Unit Bộ trung tâm xử lý
DAO Data Access Object Đối tượng truy cập dữ liệu
DB Database Cơ sở dữ liệu
1
Tìm hiểu về cân bằng tải cho WebServer
DNS Domain Name System Hệ thống tên miền
DRR Dynamic Round Robin Thuật toán động luân chuyển vòng
FTP File Transfer Protocol Giao thức truyền tập tin
GSLB Global Server Load Balancing Cân bằng tải server toàn cầu
HA High Availability Tính sẵn sàng cao của server
HTML Hypertext Markup Language Ngôn ngữ đánh dấu siêu văn bản
HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản
ID Identification Mã xác định/ định danh
IGMP Internet Group Management
Protocol
Giao thức quản lý nhóm internet
IIS Internet Information Services Dịch vụ thông tin trên internet
IP Internet Protocol Địa chỉ của máy tính kết nối mạng
ISA Internet Security and
Acceleration
Phần mềm bảo mật và tăng tốc
Internet
ISP Internet Service Provider Nhà cung cấp dịch vụ Internet
NLB Network Load Balancing Cân bằng tải cho mạng


LAN Local Access Network Mạng máy tính cục bộ
LB Load Balancing Cân bằng tải
LC Least Connections Thuật toán số kết nối ít nhất
MAC Media Access Control Địa chỉ vật lý của card mạng
NAT Network Address Translate Giao tiếp máy tính trong mạng ra
ngoài internet
OSI Open Systems Interconnection Mô hình tham chiếu kết nối các hệ
thống mở
RDBM Open Systems Interconnection Kết nối các hệ thống mở
RR Round Robin Thuật toán Luân chuyển vòng
RRDNS Round Robin Domain Name
System
Luân chuyển vòng dựa trên hệ
thống tên miền
SAN Storage Area Network Vùng lưu trữ thông tin, dữ liệu
SLB Server Load Balancing Máy chủ cân bằng tải
SMTP Simple Mail Transfer Potocol Giao thức truyền thư tín điện tử
SSL Secure Sockets Layer Giao thức bảo mật thông tin mạng
TCP Transmission Control Protocol Giao thức điều khiển truyền vận
TTL Time To Live Thời gian sống
URL Uniform Resource Locator Địa chỉ web/ liên kết mạng
VIP Virtual Internet Protocol Địa chỉ truy cập ảo
WRR Weighted Round Robin Thuật toán luân chuyển vòng dựa
trên khả năng xử lý của các server
2
Tìm hiểu về cân bằng tải cho WebServer
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. Lý do chọn đề tài
Ngày nay, với sự phát triển của dịch vụ web, số lượng website ngày càng nhiều
đem đến cho người dùng rất nhiều sự lựa chọn. Để tồn tại và phát triển, website của

các tổ chức, doanh nghiệp phải giữ được người dùng hiện tại và tăng thêm số lượng
người dùng mới. Để làm được điều này, các doanh nghiệp phải đảm bảo cho hệ thống
của mình hoạt động tốt nhất và phục vụ được các nhu cầu của người dùng truy cập với
số lượng lớn, do đó yêu cầu lắp đặt thêm nhiều server mới cũng như yêu cầu cân bằng
tải cho các server thực sự là nhu cầu cấp thiết. Đứng trước sự cạnh tranh về giá thành,
việc phát triển và xây dựng các phương pháp cân bằng tải trở nên vô cùng hữu ích.
Từ thực tế trên em quyết định chọn đề tài “Tìm hiểu về cân bằng tải Webserver”
nhằm tìm hiểu các nguyên lý hoạt động cũng như các thuật toán cân bằng tải để xây
dựng một nền tảng vững chắc về vấn đề cân bằng tải cho webserver, từ đó góp phần
thúc đẩy quá trình xây dựng nên một bộ cân bằng tải hoạt động hiệu quả có khả năng
đáp ứng nhu cầu cho các webserver thúc đẩy quá trình xây dựng nên một bộ cân bằng
tải hoạt động hiệu quả, có khả năng đáp ứng nhu cầu của các webserver.
1.2. Đối tượng và khách thể nghiên cứu
- Tìm hiểu tổng quan về web server
- Tìm hiểu các kỹ thuật cân bằng tải cho web server
- Tìm hiểu các thuật toán cân bằng tải
- Triển khai cài đặt hệ thống web server và thực hiện cân bằng tải hệ thống.
1.3. Mục đích nghiên cứu
- Giải thích được các kỹ thuật cân bằng tải Webserver
3
Tìm hiểu về cân bằng tải cho WebServer
- Phân tích được các thuật toán cân bằng tải cho Webserver
- Cài đặt được hệ thống Webserver
- Triển khai cài đặt được hệ thống cân bằng tải cho Webserver
1.4. Nội dung thực hiện
- Tìm hiểu về kiến trúc web với khả năng mở rộng
- Tìm hiểu các kỹ thuật cân bằng tải webserver
- Tìm hiểu các thuật toán cân bằng tải
- Triển khai cài đặt hệ thống webserver
- Cài đặt hệ thống cân bằng tải cho webserver

1.5. Phương pháp tiếp cận
- Cách tiếp cận: Nghiên cứu kỹ thuật cân bằng tải trên nền tảng công nghệ khác nhau
như Windows, Linux.
- Sử dụng phương pháp nghiên cứu:
 Phương pháp lý luận: Tham khảo tài liệu trên sách báo, trên mạng internet, đặc
biệt là các diễn đàn công nghệ, đọc dịch tài liệu tiếng anh và xử lý thông tin.
 Phương pháp thực nghiệm: Dựa vào lý thuyết để áp dụng vào triển khai xây
dựng hệ thống và đánh giá kết quả thực nghiệm nhiều lần nhằm xây dựng hệ
thống đáp ứng yêu cầu hiệu quả.
 Phương pháp chuyên gia: Nhờ sự giúp đỡ của các thầy cô giáo có kiến thức
chuyên môn để nhận xét, đánh giá, đóng góp ý kiến cho đề tài hoàn thiện hơn.
4
Tìm hiểu về cân bằng tải cho WebServer
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về WebServer
2.1.1 Khái niệm về WebServer
Web Server là máy chủ được cài đặt phần mềm phục vụ Web, đôi khi người ta
cũng gọi chính phần mềm đó là Web Server. Tất cả các Web Server đều hiểu và chạy
được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu file
chuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp, *.aspx ; Apache dành
cho *.php ; Sun Java System Web Server dành cho *.jsp
Máy Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ
thông tin như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng với
những thông tin liên quan khác như (các mã Script, các chương trình, và các file
Multimedia).
Web Server có khả năng gửi đến máy khách những trang Web thông qua môi
trường Internet (hoặc Intranet) qua giao thức HTTP - giao thức được thiết kế để gửi
các file đến trình duyệt Web (Web Browser), và các giao thức khác.
Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một
Domain Name. Giả sử khi bạn đánh vào thanh Address trên trình duyệt của người

dùng một dòng sau đó gõ phím Enter sẽ gửi một yêu cầu đến một
Server có Domain Name là www.abc.com. Server này sẽ tìm trang Web có tên là
index.htm rồi gửi nó đến trình duyệt của người dùng truy cập.
2.1.2 Sơ lược về giao thức HTTP
Giao thức HTTP (Hipertext Transfer Protocol – Giao thức truyền tải siêu văn
bản) là giao thức giao tiếp theo kiểu truy vấn - trả lời (request-response) giữa khách-
chủ (client-server) được sử dụng phổ biến trên internet. Cũng nên biết là trên internet
ngoài HTTP ta còn có rất nhiều giao thức khác như FTP (File Transfer Protocol - Giao
thức truyền tập tin), SMTP (Simple Mail Transfer Protocol - Giao thức truyền tải thư
5
Tìm hiểu về cân bằng tải cho WebServer
tín đơn giản) World Wide Web được xây dựng dưa trên nền tảng giao thức HTTP và
công nghệ HTML (Hipertext Markup Language: Ngôn ngữ đánh dấu siêu văn bản).
HTTP được ứng dụng trong các phần mềm máy chủ Web và trong các trình duyệt
Web để trao đổi thông tin giữa máy chủ Web và máy khách Web trên môi trường
mạng.
Một HTTP khách (HTTP client), chẳng hạn một trình duyệt web (web browser),
dùng HTTP để truy vấn một tài liệu HTML, khi nhận được trả lời từ HTTP chủ (HTTP
server), chẳng hạn máy chủ Apache (Apache HTTP server: httpd), nó sẽ định dạng
(format) rồi hiển thị tài liệu này cho người dùng. HTTP được sử dụng để truyền tải
không chỉ HTML, tuy nhiên HTML là ngôn ngữ giao tiếp (lingua franca) của web và
ứng dụng web.
Truy vấn HTTP: Một truy vấn HTTP (HTTP request) bao gồm một phương thức
truy vấn (request method), URL truy vấn (request URL), phần đầu (header) và phần
thân (body) truy vấn; phần thân có thể rỗng. Trong đó phương thức là một lệnh chỉ rõ
loại truy vấn, HTTP định nghĩa các phương thức truy vấn sau:
- GET: phương thức hay dùng nhất để lấy tài nguyên (resource) từ URL truy vấn.
Khi truy vấn dùng phương thức này, các tham số (parameter) được nối thẳng vào
URL. Phương thức GET này không có phần thân hay phần thân trống rỗng.
- HEAD: lấy phần đầu (header) của truy vấn, tức thông tin về tài nguyên.

- POST: gửi dữ liệu với độ dài không giới hạn tới máy chủ web (web server). Khác
với phương thức GET, phương thức POST dùng phần thân của câu truy vấn để
gửi dữ liệu đến máy chủ web.
- PUT: thay thế hoặc thêm tài nguyên vào máy chủ web theo URL cung cấp.
- DELETE: xoá tài nguyên ở máy chủ web định vị bởi URL.
- OPTIONS: trả về các phương thức HTTP server cung cấp cho 1 URL xác định.
- TRACE: trả về thông tin truy vấn mà máy chủ nhận được. Phương thức này cho
phép theo dõi một truy vấn để xem có những thay đổi hay thêm thắt nào nếu có
do những máy chủ trung gian (intermediate server) thực hiện.
Trả lời HTTP: Một trả lời HTTP bao gồm một mã kết quả (result code) hay mã trạng
thái (status code), phần đầu (header) và phần thân (body).
Giống như những phần mềm khác, Web Server Software cũng chỉ là một ứng
dụng phần mềm. Nó được cài đặt và chạy trên máy tính dùng làm Web Server, nhờ có
6
Tìm hiểu về cân bằng tải cho WebServer
chương trình này mà người sử dụng có thể truy cập đến các thông tin của trang Web từ
một máy tính khác ở trên mạng (Internet, Intranet).
Web Server Software còn có thể được tích hợp với cơ sở dữ liệu (Database), hay
điều khiển việc kết nối vào cơ sở dữ liệu để có thể truy cập và kết xuất thông tin từ cơ
sở dữ liệu lên các trang Web và truyền tải chúng đến người dùng.
Server phải hoạt động liên tục để phục vụ cho việc cung cấp thông tin trực tuyến.
Vị trí đặt server đóng vai trò quan trọng trong chất lượng và tốc độ lưu chuyển thông
tin từ server và máy tính truy cập.
2.2 Các khái niệm về 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
nhanh chóng trong một khoảng thời gian nhất định, website vẫn đáp ứng được nhu
cầu, hơn nữa website có khả năng dễ dàng nâng cấp lên để phù hợp với 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. Dưới đây là các khái niệm về kiến trúc web với khả năng mở rộng:
2.2.1 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 vô
hạn sẽ cho phép nó đáp trả các yêu cầu này chỉ trong khoảng 10ms. Như vậy, khả năng
mở rộng là đơn vị đo sự kết hợp của các hệ 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.
Thiết kế website với khả năng mở rộng cao là yêu cầu sống còn đối với hầu hết các
công ti dịch vụ web hiện nay, để tồn tại và phát triển một website cần phải đáp ứng
được các yêu cầu của người dùng trong thời gian mà họ mong muốn.
2.2.2 Hiệu năng
7
Tìm hiểu về cân bằng tải cho WebServer
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 đối với một
nguồn tài nguyên nhất định, chẳng hạn như nếu 2 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.
2.2.3 Khả năng có sẵn cao
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 cụm cluster đó có quản lý
được hay không? Trong một hệ thống có khả năng có sẵn cao, nếu một trang
webserver bị lỗi thì một webserver khá trong cụm cluster sẽ tiếp quản ngay để xử lý
yêu cầu. Nghĩa là, nếu như người dùng đang làm việc với một server mà server đó 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. 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ụ nhu cầu tốt nhất.

2.2.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 đáp ứng là
bao lâu. Hệ thống gửi response về càng nhanh thì tính đá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 rằng trang web bị hỏng hay không hoạt động bình thường, điều này rất có
hại vì nếu đã mất đi niềm tin nơi người dùng thì chắc rằng 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 mà phải
chờ đợi quá lâu cho việc load dữ liệu, thông tin thì thay vào đó để không phải tốn mất
nhiều thời gian họ sẽ tìm một công việc khác để làm đôi khi họ quên mất rằng mình
đang truy cập vào một dịch vụ web và đóng luôn trình duyệt đó lại hoặc sẽ quay trở lại
sau một khoảng thời gian khá lâu. Điều này rất không tốt bởi trong hệ thống mà họ
truy cập vẫn hoạt động và lưu giữ phiên session mà không phục vụ cho bất cứ ai, đó
8
Tìm hiểu về cân bằng tải cho WebServer
chính là một sự lãng phí lớn. Tính đáp ứng và tính thực hiện là độc lập với nhau, một
hệ thống mạng dù có hiệu năng tốt nhưng vẫn có thể đáp ứng không đạt hiệu quả.
2.2.5 Downtime impact
Downtime impact (tác động của thời gian chết) 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à số lượng 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ị mạng sẽ phải đối phó với vấn đề đó, giải quyết nó
nhằm tạo ra hệ thống hoạt động được tốt nhất. đ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, sao cho hệ thống hoạt động tốt nhất trong 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 hệ thống tốt
nhất 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, không quá cao. Xây dựng một hệ thống web
như vậy sẽ gặp rất nhiều vấn đề khó, những vấn đề quan trọng nhất trong việc thiết kế

một website có khả năng mở rộ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 server, cân bằng tải cho database-
server, tổ chức lưu trữ dữ liệu trên đĩa cứng và cân bằng tải cho cache. [3], [4], [8]
2.3 Tổng quan về cân bằng tải
2.3.1 Khái niệm cân bằng tải
Cân bằng tải là một phương pháp phân phối khối lượng tải trên nhiều máy tính
hoặc một cụm máy tính để có thể sử dụng tối ưu các nguồn lực, tối đa hóa thông
lượng, giảm thời gian đáp ứng và tránh tình trạng quá tải trên máy chủ.
Sử dụng nhiều dịch vụ với cân bằng tải thay vì một dịch vụ duy nhất có thể làm
tăng độ tin cậy thông qua các máy dự phòng. Trong đó, cân bằng tải mạng là một kỹ
thuật nhằm mở rộng hiệu năng của các máy chủ ứng dụng, chẳng hạn như máy chủ
Web, nhờ phân phối các yêu cầu của máy khách cho các máy chủ trong nhóm. Khi đó,
các máy chủ đều nhận gói IP đến nhưng gói chỉ được xử lý bởi một máy chủ nhất
9
Tìm hiểu về cân bằng tải cho WebServer
định. Các máy chủ trong nhóm sẽ đồng thời đáp ứng các yêu cầu khác nhau của các
máy trạm. Với kỹ thuật cần bằng tải, quá trình xử lý và thời gian đáp ứng yêu cầu của
máy trạm sẽ nhanh hơn nhiều.
2.3.2 Chức năng và ưu điểm của cân bằng tải
Ngày nay, mạng máy tính đóng vai trò ngày càng quan trọng hơn trong hoạt động
của các doanh nghiệp, tổ chức cũng như các công ty lớn, mạng máy tính có vị trí rất
quan trọng trong việc điều khiển hoạt động của toàn bộ doanh nghiệp. Sự ngừng hoạt
động của mạng máy tính hay sự hoạt động kém hiệu quả của mạng máy tính trong
những doanh nghiệp này có thể làm gián đoạn, ảnh hưởng đến sự hoạt động và phát
triển của doanh nghiệp và thiệt hại khó có thể lường trước được. Nhất là đối với những
công ty cần phải giao dịch liên tục, trao đổi thông tin nhanh chóng với khách hàng truy
cập. Vấn đề đặt ra là cần có một giải pháp để đảm bảo cho hệ thống vẫn hoạt động tốt
ngay cả khi có sự cố xảy ra đối với máy chủ. 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 này sẽ kéo theo chi phí đầu tư rất lớn và không thể
giải quyết được các vấn đề đặt ra của tổ chức. 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, đó chính là giải pháp cân bằng tải cho máy chủ.
Có rất nhiều hãng đưa ra giải pháp cân bằng tải đó là các thiết bị mạng như
Cisco, Coyote Point, Sun Microsystem… với rất nhiều tính năng phong phú. Tuy
nhiên, về cơ bản thì nguyên tắc cân bằng tải vẫn xuất phát từ những quan điểm kỹ
thuật khá tương đồng. Do vậy, Load Balancing không chỉ làm nhiệm vụ phân phối tải
cho các server mà còn cung cấp cơ chế đảm bảo hệ thống server luôn khả dụng trước
các client. Server Load Balancing không có yêu cầu đặc biệt gì về phần cứng, bất cứ
máy tính nào hợp chuẩn đều có thể được sử dụng làm server. Chi phí triển khai nhờ đó
mà giảm đáng kể. Kiến trúc phần mềm phân tán của SLB cho phép cung cấp hiệu năng
và tính khả dụng của kỹ thuật này ở mức cao nhất.
10
Tìm hiểu về cân bằng tải cho WebServer
Mô hình so sánh hệ thống cân bằng tải và hệ thống thông thường:
Hình 2.1: Mô hình so sánh hệ thống cân bằng tải và hệ thống thông thường
Cân bằng tải có các chức năng sau:
- Chặn lưu lượng mạng (như lưu lượng web) đến một trang web. Bản thân thiết
bị cân bằng tải có thể là một Proxy hay một Firewall tầng ứng dụng
(Application Layer), nó sẽ là đối tượng đầu tiên nhận các yêu cầu trước khi chia
tải nên chức năng này được coi như là thiết yếu của một hệ thống cân bằng tải.
- Tách các lưu lượng thành các yêu cầu riêng biệt và quyết định máy chủ nào
nhận các yêu cầu đó, đây là chức năng quan trọng của cân bằng tải. tùy vào các
thuật toán khác nhau mà sẽ có các cách thức khác nhau để phân chia tải vào các
máy chủ.
- Duy trì một cơ chế ở những máy chủ đang sẵn sàng, giữa hệ thống cân bằng tải
và các máy chủ luôn luôn phải có liên lạc với nhau để biết máy chủ có đang
hoạt động hay không.
- Cung cấp khả năng dự phòng bằng cách sử dụng nhiều kịch bản fail-over.
11
Tìm hiểu về cân bằng tải cho WebServer

- Cung cấp khả năng nhận thức nội dung phân tán bằng cách đọc URL, chặn
cookie và biên dịch, đây được coi là một trong những tiêu chí chia tải của hệ
thống cân bằng tải.
- Chuyển mạch cache trong suốt (transparent cache switching): giúp chuyển
hướng lưu lượng một cách “trong suốt” đến các caches, góp phần tăng thời gian
đáp ứng và hiệu năng của hệ thống.
Ưu điểm của hệ thống cân bằng tải:
- Tính mở rộng: thêm hoặc bỏ bớt đi server một cách dễ dàng
- Tính sãn sàng cao do hệ thống dùng nhiều Server, bảo dưỡng hệ thống server
mà không cần tắt các dịch vụ.
- Tăng tính bảo mật cho hệ thống mạng do người dùng tương tác gián tiếp với
các server cung cấp dịch vụ.
- Có thể tách các ứng dụng khỏi server.
- Làm việc được với nhiều hệ điều hành, hiệu suất cao
- Server được nhóm lại thực hiện đa nhiệm vụ tốt hơn.
- Tất cả server đều hoạt động đúng công suất không có tình trạng một server làm
việc quá tải trong khi các server khác lại đang “nhàn rỗi”.
Những tổ chức cần có giải pháp cân bằng tải:
- Các doanh nghiệp, tổ chức có quy mô lớn
- 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 …[5],[8],[9]
2.4 Các vấn đề về xây dựng bộ cân bằng tải
2.3.1 Cân bằng tải cho Application Server
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 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ó hai sự lựa chọn là mở rộng
theo chiều ngang (scale out) và mở rộng theo chiều dọc (scale up).

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 một 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ác server, hệ thống hoạt động rất tốt khi số lượng người
dùng vừa phải. Tuy nhiên, phương pháp này cũng có một số vấn đề hạn chế về giá
12
Tìm hiểu về cân bằng tải cho WebServer
thành, 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 rất quan trọng đó là vấn đề downtime impact, vì chỉ có một server nên nó sẽ
trở thành SPOF (single point of failure), nếu như server này bị chết, thì ngay lập tức
toàn bộ hệ thống sẽ ngừng hoạt động. Phương pháp này còn dẫn đến giới hạn cho hệ
thống, bởi đến một mức nào đó hệ thống tổng thể còn phụ thuộc vào nhiều yếu tố như
bandwith 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 một clip ở dạng chất lượng trung bình sẽ vào khoảng 512kb/s đến 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. Nếu
muốn có hơn số lượng người dùng đó, có thể tăng băng thông cho đường truyền lên
1gigabit nhưng 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ù có tăng tốc độ đường truyền thì server vẫn
không thể đáp ứng và phục vụ được nhiều hơn nữa. Như vậy sử dụng scale up không
thể giải quyết vấn đề này.
Giải pháp thứ hai là scale out: lắp nhiều server song song và chúng hoạt động
thành một 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, hơn nữa
chi phí cũng được giảm thiểu. Tuy nhiên khó khăn của phương pháp này là vấn đề cân
bằng tải sao cho tải được phân phối đề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ó. Sau đây là bảng so sánh
ưu điểm và nhược điểm của từng phương pháp:
Bảng 2.1: So sánh giữa Scale down và Scale up

Giải pháp Ưu điểm Nhược điểm
Một
server cực
mạnh
- Hệ thống đơn giản và dễ
dàng thực hiện
- Hoạt động hiệu quả khi số
lượng người dùng ở mức vừa
phải.
- Chi phí đầu tư server rất cao
- Không khắc phục được khi server
gặp phải sự cố
- Có giới hạn đối với số lượng người
dùng nhất định.
Nhiều
server nhỏ
- Giảm thiểu chi phí đầu tư
- Phục vụ được lượng user rất
lớn. đảm bảo đáp ứng yêu
- Cần thiết phải có công cụ load
balancing: sử dụng phần cứng hoặc
phần mềm.
13
Tìm hiểu về cân bằng tải cho WebServer
cầu từ phía người dùng
- Khắc phục tình trạng một
server gặp sự cố (giải pháp
dự phòng).
- Cấu hình cân bằng tải cho các server
khó khăn, phức tạp.

- Phát sinh nhiều vấn đề về việc phân
chia tải, quản lý session.
Về giá thành khi sử dụng hai phương pháp này:
Single Server
Multiple Server
Hình 2.2: Biểu đồ thể hiện giá thành của scale down và scale up
Như vậy, 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 không quá nhanh 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 khác 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ả nhất. Khi sử dụng phương pháp scale out, yêu cầu từ phía người dùng sẽ
được chuyển vào một trong các server này xử lý, từ đó xuất hiện bài toán cân bằng tải
(Load Balancing-LB) cho các server để chúng phục vụ được 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.
Mô hình tổng quát được miêu tả dưới đây:
14
Tìm hiểu về cân bằng tải cho WebServer
Hình 2.3: Mô hình cân bằng tải server
2.3.2 Mở rộng Database server
Bên cạnh các webserver, các database server cũng đóng vai trò vô cùng quan
trọng trong hệ thống web. Sự phát triển của website sẽ dẫn đến yêu cầu phải mở rộng
database server, chẳng hạn như lắp thêm server để phục vụ nhu cầu tại một địa điểm
đã có server từ trước hoặc lắp mới server ở các vùng khác nhau trên thế giới. Mở rộng
Database Server cũng có hai phương pháp là theo chiều ngang và theo chiều dọc.
Mở rộng theo chiều dọc: hệ thống Database Server sẽ được phân chia theo kiến
trúc SAN (Storage Area Network). Nó là một kiểu kiến trúc kết nối những thiết bị lưu
trữ máy tính từ xa để phục vụ theo cách mà những thiết bị đó được xem như là cục bộ
(local) đối với hệ điều hành. Như vậy, hệ thống lưu trữ chỉ được xem như một DB duy
nhất và hoạt động rất hiệu quả. Tuy nhiên vì giá thành của nó rất đắt nên nó không

được sử dụng rộng rãi mà chỉ được dùng trong các hệ thống lớn và quan trọng.
Hình 2.4: Mở rộng database server sử dụng kiến trúc SAN
15
Tìm hiểu về cân bằng tải cho WebServer
Mở rộng DB theo chiều ngang (scaling out), nghĩa là tăng số lượng các node Database
Server, như minh họa sau đây:
Hình 2.5: Mở rộng database theo chiều ngang
Có 2 lựa chọn để cài đặt theo phương pháp này:
- Shared nothing Cluster:
Mỗi database server sẽ chứa một bản sao của database (tất cả các DBserver giống
nhau). Không có dữ liệu được chia sẻ giữa các node, các file DB thực sự sẽ được chứa
trong SAN. Tuy nhiên, vấn đề ở đây là phải lựa chọn cơ chế sao bản (replication) phù
hợp vì các DB sẽ chứa cùng một bản sao hoàn chỉnh của cơ sở dữ liệu. Có rất nhiều
lựa chọn để tạo sao bản đó là lựa chọn giữa phương pháp Master – Slave và Multi –
Master, đồng bộ hay không đồng bộ và tạo sao bản ở mức nào của dữ liệu.
- Real Application Cluster (Shared storage cluster):
Trong phương pháp này, các nodes ở DB cùng chia sẻ một phần chung ở SAN, nhưng
file system phải được định dạng là clustered file system. Phương pháp này chỉ được
cung cấp bởi công ty Oracle do giá thành của nó rất cao. Hiện nay chỉ có các doanh
nghiệp lớn hoặc các tập đoàn mới triển khai được phương pháp này.
- Mô hình khuyên dùng: Dựa theo ưu-nhược điểm, mô hình Database mở rộng
nên dùng là:
- Master – Slave replication
16
Tìm hiểu về cân bằng tải cho WebServer
- Sao chép không đồng bộ
- Ghi dữ liệu tại DAO layer
Hình 2.6: Mô hình mở rộng database khuyên dùng
2.3.3 Tổ chức lưu trữ dữ liệu
Một website có hệ thống web-server và database server mạnh vẫn sẽ bị giới hạn

tốc độ truy cập nếu như khả năng lưu trữ và phân bổ dữ liệu của website đó không tốt.
Nếu như dữ liệu cần tải về lưu trữ quá xa người dùng, quá trình này sẽ chiếm nhiều
thời gian, có thể khiến cho người dùng không hài lòng.
Một kỹ thuật thường dùng là CDN (Content delivery network) hướng request đến
server gần người dùng nhất. Điều này có thể giảm các yêu cầu chạy qua trục backbone
chính, đồng thời giảm băng thông đi quốc tế. Một cách đơn giản nhất đó là bộ cân
bằng tải sẽ xác định IP của người dùng rồi xác định khu vực và hướng yêu cầu đến
server nằm tại data center gần nó nhất.
Ví dụ trước khi www.youtube.com đặt ở server Việt Nam, người dùng Việt Nam
xem các video ở youtube.com rất chậm, thường phải chờ tải từng phần, sự ngắt quãng
này khiến người dùng khó chịu. Nhưng sau khi server được đặt ở Việt Nam không còn
bị giật khi xem video, chính vì vậy mà youtube đã vượt hẳn lên so với trang web chỉ
chia sẻ video trực tuyến của Việt Nam.
Một ví dụ khác: khi người dùng truy cập vào website www.discovery.com (1),
origin server đầu tiên sẽ trả về trang chỉ mục index.html (2). Sau đó nó sẽ chuyển
hướng yêu cầu đến nhà cung cấp CDN (nhà cung cấp ở đây là Akamai) (3), nhà cung
17
Tìm hiểu về cân bằng tải cho WebServer
cấp CDN sẽ dùng thuật toán lựa chọn của họ để tìm kiếm server sao bản gần với người
dùng nhất (4) và sau đó trả về dữ liệu cho người dùng từ server này (5).
Hình 2.7: Ví dụ về mô hình CDN
Khi một website đã trở nên toàn cầu và có trung tâm dữ liệu (data center) tại
nhiều nơi khác nhau trên thế giới sẽ xảy ra vấn đề đồng bộ dữ liệu giữa các data center
này. Cần phải đảm bảo được dữ liệu mà người dùng muốn truy cập đến luôn có trên
server, xử lý điều này bằng cách: nếu dữ liệu đó là dữ liệu quan trọng, đơn giản là một
video có số lượt xem rất cao sẽ được sao lưu đến tất cả các data center trong hệ thống.
Còn nếu như đó là một video không được quan tâm nhiều thì có thể chỉ được lưu trên
server uploads lên và dữ liệu sẽ được tải về từ đây cho người dùng.
Một vấn đề nữa là khi số lượng truy cập vào website là rất nhiều và đa dạng, dữ
liệu phải liên tục vào ra tại ổ đĩa lưu trữ của website. Khác với web application khi

băng thông quá cao, có thể dùng một proxy server đứng trước phân tải, trong trường
hợp file sharing hay video sharing, như vậy sẽ khiến bộ cân bằng tải sẽ trở thành thắt
cổ chai. Vì ra vào dữ liệu tại bộ cân bằng tải chỉ có giới hạn nhất định, nếu vượt quá
giới hạn đó nó sẽ rơi vào tình trạng quá tải và bị “treo”. Cần phải có kỹ thuật
18
Tìm hiểu về cân bằng tải cho WebServer
partitioning giúp cho việc vào ra tại các thiết bị lưu trữ được giảm một cách tối ưu
hoặc là sử dụng bộ đệm cache một cách hiệu quả.
2.3.4 Sử dụng bộ nhớ Cache
Trong các hệ thống web, bộ nhớ cache lưu trữ các Web Content (sự kết hợp giữa
text, các hành động hoặc audio) nhằm tiết kiệm băng thông cũng như tăng tốc độ truy
xuất web.
Ví dụ khi người dùng A lần đầu tiên truy cập vào bộ nhớ
web cache sẽ nhận được yêu cầu này. Vì là lần đầu truy nhập vào hệ thống nên sẽ chưa
có trang này trong cache, bộ nhớ cache sẽ tìm kiếm trang này từ server gốc và lưu giữ
trang này trong bộ nhớ local, chẳng hạn như Ram hoặc đĩa, sau đó nó sẽ trả về trang
này cho người dùng. Sau đó người dùng B truy cập vào địa chỉ này, vì đã được lưu giữ
lại trong bộ nhớ cache nên ngay lập tức cache trả về trang web cho người dùng B. Vậy
B sẽ nhận được trả lời nhanh hơn A, đồng thời cũng sẽ tiết kiệm được băng thông khi
không phải truy cập vào server gốc để lấy trang web này.
Hình 2.8: Simple Cache
Các loại Caches và cách cài đặt:
Bộ nhớ cache có thể được dùng để tăng tốc độ đáp ứng yêu cầu của người dùng
hoặc dùng để tăng hiệu năng của web servers. Dựa trên khả năng đó, cache được phân
thành hai loại: tăng tốc người dùng (client acceleration) và tăng tốc server (server
acceleration).
19
Tìm hiểu về cân bằng tải cho WebServer
Triển vọng của client acceleration cache là khả năng đáp ứng người dùng nhanh
hơn và tiết kiệm băng thông mạng. Triển vọng của server acceleration là khả năng luân

chuyển web content nhanh hơn và giảm số lượng servers cần thiết, vì nguyên lý của
server acceleration là dựa trên một tiền đề mà qua đó sử dụng cache là phù hợp hơn
servers trong việc phục vụ các ngữ cảnh tĩnh (static content). Web Server sẽ giảm bớt
được yêu cầu phục vụ các ngữ cảnh tĩnh đã dược chỉ định cho cache và tập trung vào
phục vụ các ngữ cảnh động (dynamic web content).
Dựa trên lý thuyết cơ bản về caching, có 4 cách khác nhau để triển khai và sử
dụng cache:
- Forward Proxy dùng cho tăng tốc client
- Transparent Proxy dùng cho tăng tốc client
- Reverse Proxy dùng cho tăng tốc server
- Transparent Reverse Proxy dùng cho tăng tốc server
Cache được cài đặt như một forward proxy được dùng để tăng tốc truy nhập
internet cho client, trong khi cache được cài đặt như reverse proxy lại dùng để tăng tốc
truyền tải dữ liệu của server. Transparent proxy cũng thực thi nhiệm vụ như forward
proxy nhưng nó được cài đặt để client không biết nó tồn tại. Transparent reverse proxy
được cài đặt như reverse proxy và hoàn toàn trong suốt đối với servers. [9]
2.5 Các kỹ thuật cân bằng tải
Cân bằng tải webserver là phần quan trọng nhất trong quy trình xây dựng website theo
kiến trúc mở rộng. Một trang web được cân bằng tốt sẽ tránh được tình trạng tắc nghẽn
server, trả về yêu cầu của người dùng trong khoảng thời gian ngắn nhất. Có nhiều kỹ
thuật để thực hiện cân bằng tải cho server nhưng quan trọng nhất trong cân bằng tải
server chính là thiết kế và xây dựng bộ cân bằng tải. Bộ cân bằng tải này sẽ đứng trước
cluster server, nhận yêu cầu từ người dùng sau đó phân tải vào các server trong cluster
một cách phù hợp.
2.5.1 Kỹ thuật cân bằng tải server (Server Load Balancing - SLB)
Bộ cân bằng tải có nhiệm vụ kết nối giữa người dùng và server, do đó nó có thể
hoạt động như một proxy hoặc gateway. Một proxy có nhiệm vụ luân chuyển yêu cầu
và dữ liệu đáp trả giữa người dùng và server, trong khi đó một gateway chỉ có nhiệm
vụ tạo ra một kết nối hai đối tượng này và không làm gì thêm. Có thể sử dụng phần
20

Tìm hiểu về cân bằng tải cho WebServer
cứng hoặc phần mềm được cài đặt thêm một front server hoặc trên chính web server.
Thêm nữa, khi số lượng người dùng tăng lên, để tránh một điểm lỗi cần phải cài đặt 2
bộ cân bằng tải song song, hoạt động theo cơ chế active-active hoặc active-backup.
Các phần mềm cân bằng tải thường được cài đặt như một proxy. Để xây dựng một bộ
cân bằng tải phần mềm, các kỹ thuật cần phải chú trọng đó là kiểm tra trạng thái
server, lựa chọn server tốt nhất để gửi yêu cầu và kỹ thuật duy trì kết nối của người
dùng với một server trong suốt phiên làm việc của họ.
a) Kiểm tra trạng thái server
Để chọn được server phù hợp để gửi request, bộ cân bằng tải cần phải biết được
server nào đang có sẵn. Vì vậy, nó cần phải dùng biện pháp nào đó để kiểm tra trạng
thái của server, chẳng hạn như gửi lệnh ping, các yêu cầu, thử kết nối hay bất cứ
phương pháp nào mà người quản trị dùng. Kỹ thuật kiểm tra này thường được gọi là
“health checks”.
Một server bị down có thể trả lời lệnh ping nhưng không thể trả lời các kết nối
TCP, một server bị treo có khả năng trả lời kết nối TCP nhưng không thể trả lời các
yêu cầu HTTP. Khi một ứng dụng web nhiều lớp được kích hoạt, một số yêu cầu
HTTP có thể trả lời ngay lập tức trong khi số khác sẽ thất bại.
Chính vì thế, việc lựa chọn một phương pháp test phù hợp được chấp nhận bởi
ứng dụng web và bộ cân bằng tải là một công việc rất khó khăn. Một số test đôi khi
cần phải truy xuất dữ liệu database nhằm đảm bảo rằng toàn bộ quá trình của nó là
đúng. Hạn chế lớn nhất là những phương pháp kiểm tra này sẽ chiếm tài nguyên của
hệ thống như là CPU, threads,
Do đó, cân bằng thời gian kiểm tra chính là vấn đề khó nhất trong kỹ thuật lựa
chọn server. Khoảng thời gian kiểm tra giữa 2 lần test liên tiếp phải đủ dài để không
tốn quá nhiều tài nguyên của hệ thống và cũng cần đủ ngắn để nhanh chóng phát hiện
ra những server “chết”. Vì “health checks” là một trong những khía cạnh phức tạp nhất
của kỹ thuật cân bằng tải, nên thông thường sau một vài kiểm tra các nhà phát triển
ứng dụng sẽ thực thi một yêu cầu đặc biệt dành riêng cho bộ cân bằng tải, giúp cho nó
thực hiện một số kiểm tra nội bộ.

21
Tìm hiểu về cân bằng tải cho WebServer
Phần mềm cân bằng tải có khả năng cung cấp scripting, do đó nó đạt được độ linh
hoạt rất cao. Hơn nữa, nếu như một lần kiểm tra nào đó đòi hỏi phải chỉnh sửa code,
nó có thể thực hiện trong một khoảng thời gian ngắn.
b) Lựa chọn server tốt nhất
Việc lựa chọn server tốt nhất chính là phần chính của thuật toán cân bằng tải
được đề cập trong phần 2. Phương pháp dễ nhất và thường được sử dụng nhất trong
các hệ thống nhỏ là Round Robin, các server được lựa chọn quay vòng, tuy nhiên
phương pháp này có nhược điểm là 2 requests liên tục từ một người dùng sẽ vào 2
server khác nhau, thông tin giữa hai yêu cầu liên tiếp sẽ bị mất, như vậy sẽ không thể
tối ưu hóa được sử dụng tài nguyên. Đặc biệt là khi cần phải cài đặt kết nối cho các
phiên chạy, ví dụ như SSL key negociation- sẽ tốn rất nhiều thời gian.
Một cách khắc phục nhược điểm này là sử dụng một hàm băm theo địa chỉ IP,
như vậy requests từ cùng một địa chỉ IP sẽ chỉ vào một server duy nhất. Tuy vậy
phương pháp này đòi hỏi người dùng phải có IP tĩnh.
c) Kỹ thuật Session Persistence
Vấn đề cần giải quyết chính là làm sao để giữ cho các yêu cầu của một người
dùng được gửi vào một máy duy nhất trong suốt phiên làm việc của người đó. Tất cả
các yêu cầu của người dùng này cần phải được chuyển vào cùng một server. Nếu
server bị chết hoặc ngừng để bảo trì, cần phải có cơ chế để chuyển session của người
dùng này sang máy server khác. Đó chính là kỹ thuật Session Persistence.
Có một số giải pháp được đưa ra để tiếp cận kỹ thuật này, chẳng hạn như sử dụng
một respone HTTP 302 hay tạo ra liên kết giữa người dùng – server. Tuy vậy 2
phương pháp này đều có những hạn chế, sử dụng HTTP 302 sẽ khiến người dùng luôn
luôn tìm cách kết nối với một server duy nhất, kể cả khi server này đã “chết”. Dùng
cách tạo liên kết đòi hỏi user phải có IP tĩnh trong suốt phiên làm việc.
d) Cookie
Cookie - là một đối tượng được điều khiển bởi Web Server, trong kết quả trả về
cho người dùng web server sẽ chèn thêm một số thông tin. Những yêu cầu tiếp theo

22
Tìm hiểu về cân bằng tải cho WebServer
của người dùng gửi đến server sẽ chứa thêm thông tin của cookie này, server sẽ đọc
các cookie và biết phải làm gì với các yêu cầu này.
Một cookie được định nghĩa bằng cặp tên = giá trị (name=value). Hình dưới đây
miêu tả hoạt động của cookie với cặp user =1, cho biết tên cookie là user và giá trị của
nó là 1. Bên phía người dùng, cookie được điều khiển bởi trình duyệt và “trong suốt”
đối với người dùng.
Hình 2.9: Cách làm việc của cookie user =1
Cách thức hoạt động của cookie là khi người dùng lần đầu tiên gửi yêu cầu đến
server, do không có cookie trong yêu cầu nên nó sẽ được phân tải đến server RS1 (1).
Server RS1 sẽ tạo và đặt cookie server=1 vào trong dữ liệu trả về cho người dùng (2).
Trình duyệt của người dùng sẽ nhận trả về, đọc thấy cookies và lưu trữ nó vào trong
đĩa cứng (3). Sau đó người dùng có thể đóng trình duyệt hoặc ngắt kết nối (giả sử rằng
trình duyệt của người dùng không tự động xóa cookie sau khi đóng). Một thời gian sau
người dùng kết nối lại và gửi yêu cầu đến bộ cân bằng tải. Sau khi kết nối được thiết
lập, trình duyệt người dùng sẽ gửi cookie server=1 như là một phần yêu cầu HTTP (4).
Bộ cân bằng tải sẽ đọc được cookie này và sẽ chuyển yêu cầu của người dùng vào
server RS1. Như vậy, người dùng sẽ luôn được kết nối vào server 1 cho đến khi nào
cookie còn tồn tại, cho dù người dùng có thể vào website từ các địa chỉ IP khác nhau.
23
Tìm hiểu về cân bằng tải cho WebServer
Hình 2.10: Cookie
Ưu điểm của phương pháp này là bộ cân bằng tải chỉ cần đọc cookie được tạo ra
từ phía web server và từ yêu cầu của người dùng. Tuy nhiên, trong phương pháp này
ứng dụng ở server phải tạo ra một cookie, điều này sẽ khiến nhà phát triển ứng dụng
phải thay đổi mã nguồn chương trình. Khi một server mới được lắp đặt, người quản trị
hệ thống phải sửa đổi hoặc đặt thêm thông số server vào file cấu hình của bộ cân bằng
tải. [1], [9]
2.5.2 Cân bằng tải cho server toàn cầu (GSLB)

Có 2 nhân tố chính thể hiện sự cần thiết của GSLB, đó là khả năng có sẵn cao và
thời gian đáp ứng.
Để đảm bảo tính có sẵn của cluster server, cần phải thực hiện kiểm tra “health checks”
đối với các server. Để bộ cân bằng tải không bị quá tải, có thể cài đặt nhiều bộ cân
bằng tải hoạt động theo chế độ active-active hoặc active-backup. Nếu như toàn bộ
trung tâm chứa dữ liệu các server và các bộ cân bằng tải không thể hoạt động vì một
vài sự cố xảy ra thì người dùng sẽ không thể truy cập vào website. Để tránh trường
hợp này xảy ra, có thể cài đặt website ở nhiều trung tâm dữ liệu khác nhau và sử dụng
GSLB để đồng bộ giữa các trung tâm, đảm bảo sự hoạt động của hệ thống.
Trong mạng Internet, có những yếu tố bất lợi mà chúng ta không thể giải quyết
một cách triệt để, một trong những yếu tố đó là “thời gian trễ của đường truyền
internet” (internet delay), chính là yếu tố quyết định đến thời gian đáp ứng của website
đối với người dùng. Thời gian đáp ứng người dùng phụ thuộc vào thời gian trễ của
người dùng (client-side delay), thời gian trễ của server (server-side delay) và thời gian
trễ của đường truyền internet. Do không thể kiểm soát được thời gian trễ của người
24
Tìm hiểu về cân bằng tải cho WebServer
dùng nên sử dụng phương pháp cài đặt hệ thống server để hạn chế được thời gian trễ
của đường truyền qua mạng.
a) Domain Name System
GSLB có thể đạt được bằng nhiều cách khác nhau nhưng cách được dùng nhiều
nhất là sử dụng Domain Name System (DNS). Khi người dùng truy cập vào website
nào đó thì tương ứng với nó là tên miền. Ví dụ như website www.utehy.edu.vn thì
“utehy.edu.vn” chính là tên miền (domain). Một tên miền có thể chứa nhiều tên miền
con chẳng hạn như “fit.utehy.edu.vn” được gọi là các vùng zones của tên miền chính.
Một name server lưu trữ thông tin về các tên miền và có trách nhiệm trả về tất cả các
chất vấn về không gian tên của các tên miền này. Một tên miền có thể được lưu trữ ở
nhiều DNS khác nhau nhưng sẽ có một DNS có thẩm quyền cao nhất (authoritative
DNS), DNS này sẽ có trách nhiệm cập nhật tất cả các thay đổi cho các DNS có thẩm
quyền thấp hơn.

Server tên miền cục bộ (local DNS) là name server được lưu trữ ở trong mạng
Lan của người dùng. Ví dụ khi client truy cập một tên miền như www.facebook.com,
local DNS sẽ chuyển tên miền này thành 1 địa chỉ IP theo một trình tự sau: đầu tiên nó
sẽ đi đến root name server (2), dữ liệu trả về là một danh sách các tên miền có đuôi
là .com (3). Sau đó Local DNS sẽ chuyển đến yêu cầu đến “.com name server” (4) và
name server này sẽ trả về IP của authoritative DNS của website facebook.com (5).
Local DNS gửi yêu cầu đến địa chỉ IP này (6) và nhận dữ liệu trả về cho trình duyệt và
được dùng để truy xuất dữ liệu (8,9).
25

×