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

Thiết kế bộ phân tải cho các cụm máy chủ trang web lớn đảm bảo khả năng nhanh chóng mở rộng hệ thống

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.35 MB, 94 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Họ và tên tác giả luận văn
KIỀU THÀNH CHUNG

TÊN ĐỀ TÀI LUẬN VĂN
Thiết kế bộ phân tải
Cho các cụm máy chủ trang Web lớn
Đảm bảo khả năng nhanh chóng mở rộng hệ thống
Chuyên ngành : CÔNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC
TIẾN SĨ : NGUYỄN KHANH VĂN

Hà Nội – Năm 2010


MỤC LỤC
MỤC LỤC .................................................................................................................................. 3
DANH MỤC HÌNH VẼ MINH HỌA ........................................................................................ 5
DANH MỤC CÁC BẢNG MINH HỌA.................................................................................... 5
LỜI CAM ĐOAN ....................................................................................................................... 6
PHẦN MỞ ĐẦU ........................................................................................................................ 7
1. Lý do chọn đề tài: ............................................................................................................... 7
2. Lịch sử nghiên cứu: ............................................................................................................ 9
3. Mục tiêu chính: ................................................................................................................. 10
4. Sơ lược luận văn ............................................................................................................... 11
5. Phương pháp nghiên cứu .................................................................................................. 11


PHẦN NỘI DUNG................................................................................................................... 12
CHƯƠNG I: CÂN BẰNG TẢI LƯU LƯỢNG WEB.............................................................. 12
1.1. Giới thiệu ....................................................................................................................... 12
1.2. Phân loại cân bằng tải .................................................................................................... 13
1.3. Khả năng mở rộng – Scalability .................................................................................... 15
1.4. Cân bằng tải không nhận biết nội dung. ........................................................................ 16
1.4.1. Chuyển tiếp lớp 2.....................................................................................................17
1.4.2. Chuyển tiếp lớp 3.....................................................................................................18
1.4.3. Các chính sách phân phối yêu cầu không nhận biết nội dung .................................21
1.5. Cân bằng tải nhận biết nội dung .................................................................................... 22
1.5.1. Kiến trúc hai chiều...................................................................................................24
1.5.1.1. Ràng buộc kết nối TCP - TCP Connection Binding........................................ 24
1.5.1.2. Ghép nối TCP - TCP Splicing ......................................................................... 26
1.5.1.3. Các luồng chuyển hướng - Redirect Flows...................................................... 26
1.5.2. Kiến trúc một chiều..................................................................................................27
1.5.2.1. Chuyển giao TCP - TCP Hand-Off.................................................................. 27
1.5.2.2. Di trú trạng thái TCP của gói tin tới bộ lọc gói tin .......................................... 29
1.5.2.3. Nhân bản Socket – Socket Clonning ............................................................... 30
1.5.2.4. Ràng buộc kết nối một chiều - One-way Connection Binding ........................ 32
1.5.2.5. Tái thiết TCP – TCP Rebuilding...................................................................... 32
1.5.3. Các chính sách phân phối yêu cầu nhận biết nội dung ............................................33
1.5.3.1. Các giải pháp nhận biết địa phương ................................................................ 33
1.5.3.2. Các giải pháp không nhận biết địa phương ..................................................... 37
1.6. Tổng kết chương I.......................................................................................................... 40
CHƯƠNG II: ĐIỀU KHIỂN TRUY NHẬP VÀ BURSTINESS TRONG HỆ THỐNG WEB44
2.1. Giới thiệu ....................................................................................................................... 44
2.2. Các ảnh hưởng của lưu lượng đối với Web Server........................................................ 45
2.3. Tính truyền loạt (Burstiness) trên Internet..................................................................... 46
2.3.1. Phát hiện tính truyền loạt dựa trên lưu lượng mạng ................................................46
2.3.2. Phát hiện tính truyền loạt dựa trên giao thức TCP...................................................47

2.3.3. Phát hiện tính truyền loạt trong cơ sở dữ liệu..........................................................48

3


2.3.4. Phát hiện tính truyền loạt theo số lần phục vụ.........................................................48
2.4. Các chính sách điều khiển truy nhập ............................................................................. 48
2.4.1. Các chính sách lập lịch nhận biết chất lượng dịch vụ (QoS)...................................48
2.4.2. Các chính sách điều khiển truy nhập cổ điển...........................................................49
2.4.3. Các chính sách truy nhập thương mại điện tử .........................................................49
2.4.4. Các chính sách truy nhập dựa trên cụm Web ..........................................................51
2.4.5. Các chính cách khác. ...............................................................................................52
2.5. Tổng kết ......................................................................................................................... 54
CHƯƠNG III: PHÁT HIỆN VÀ GIÁM SÁT BURSTINESS ................................................. 58
3.1. Giới thiệu ....................................................................................................................... 58
3.2. Giám sát Khe thời gian .................................................................................................. 60
3.3. Các yếu tố Burstiness..................................................................................................... 61
3.3.1. BF1...........................................................................................................................62
3.3.2. BF2...........................................................................................................................63
3.3.3. BF3...........................................................................................................................64
3.3.4. BF4...........................................................................................................................66
3.3.5. BF5...........................................................................................................................66
3.3.6. BF6...........................................................................................................................67
3.4. Lập khe thời gian thích nghi .......................................................................................... 68
CHƯƠNG IV: THUẬT TOÁN CÂN BẰNG TẢI VÀ ĐIỀU KHIỂN TRUY NHẬP ............ 71
4.1. Giới thiệu ....................................................................................................................... 72
4.2. Tối thiểu hóa chi phí ...................................................................................................... 73
4.3. Tổng quan về thuật toán................................................................................................. 75
4.3.1. Kiến trúc hệ thống....................................................................................................75
4.3.2. Nhận biết chất lượng dịch vụ (QoS) ........................................................................76

4.3.3. Các tham số sử dụng trong thuật toán......................................................................76
4.4. Dự báo thông lượng ....................................................................................................... 78
4.4.1. P1: Dựa trên quá trình lọc........................................................................................78
4.4.2. P2: Dựa trên tính burstiness.....................................................................................79
4.4.3. P3: Dựa trên bộ lọc và tính truyền loạt ....................................................................80
4.4.4. P4: Dựa trên bình phương trung bình nhỏ nhất .......................................................80
4.4.5. P5: NLMS – Dựa trên bình phương trung bình nhỏ nhất thông thường..................81
4.4.6. Các kết quả dự đoán thông lượng ............................................................................81
4.5. Phân bổ tài nguyên......................................................................................................... 82
4.6. Kỹ thuật cân bằng tải ..................................................................................................... 85
PHẦN KẾT LUẬN & HƯỚNG PHÁT TRIỂN....................................................................... 86
1. Kết luận............................................................................................................................. 86
2. Hướng phát triển ............................................................................................................... 88
TÀI LIỆU THAM KHẢO ........................................................................................................ 90
Tài liệu tiếng Anh ................................................................................................................. 90
Tài liệu tiếng Việt ................................................................................................................. 91
DANH MỤC CÁC TỪ VIẾT TẮT .......................................................................................... 92

4


DANH MỤC HÌNH VẼ MINH HỌA
Hình 1.1: Tổ chức các giải pháp cân bằng tải web. .................................................................. 14
Hình 1.2: Ví dụ về thực thi chuyển tiếp layer-2. ...................................................................... 17
Hình 1.3: Thực thi chuyển tiếp layer-3 trong kiến trúc hai chiều (two-ways).......................... 19
Hình 1.4. Thiết lập kết nối TCP khi sử dụng NAT và IPTun. .................................................. 20
Hình 1.5: Cân bằng tải theo kiến trúc 2 chiều layer-7. ............................................................. 22
Hình 1.6: Các kỹ thuật cân bằng tải Layer-7 trong kiến trúc hai chiều: ................................... 25
Hình 1.7: Chuyển giao TCP và Di trú trạng thái TCP của gói tin. ........................................... 28
Hình 1.8: Socket Cloning và TCP Rebuilding trong kiến trúc một chiều ................................ 31

Hình 3.1: Dự kiến tỷ lệ giám sát sau các lần quan sát khác nhau............................................. 61
Hình 3.2. Tỉ lệ đến và các yếu tố Burstiness............................................................................. 65
Hình 3.3: Giám sát theo lập khe thời gian thích nghi và một số khe sử dụng BF1. ................. 70
Hình 4.1: Các dự đoán thông lượng.......................................................................................... 82

DANH MỤC CÁC BẢNG MINH HỌA

Bảng 2.1. Các giải pháp cân bằng tải không nhận biết nội dung.............................................. 16
Bảng 2.2: Các giải pháp cân bằng tải nhận biết nội dung......................................................... 23
Bảng 2.3: Các đặc điểm chính sách phân phối yêu cầu nhận biết nội dung ............................. 43
Bảng 3.1: Các đặc điểm chính của các chính sách điều khiển truy nhập ................................. 57

5


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, không sao chép của
ai. Nội dung của luận văn có tham khảo các thông tin được đăng tải trên các bài báo,
trang web theo danh mục tài liệu tham khảo của luận văn.
Tôi xin chân thành cảm ơn Tiến sĩ Nguyễn Khanh Văn đã hướng dẫn tôi thực hiện
đề tài này. Mọi góp ý, bổ sung về nội dung cũng như hình thức của đề tài này xin gửi
về địa chỉ email:
Tôi xin chân thành cảm ơn tới các giảng viên trong Viện Công nghệ thông tin đã
nhiệt tình hướng dẫn giúp đỡ tôi trong thời gian học tập, nghiên cứu tại Trường Đại
học Bách khoa Hà nội!
Tôi cũng xin chân thành cảm ơn Trung tâm Công nghệ - Công ty Cổ phần Đầu tư
phát triển công nghệ VTC đã giúp đỡ tôi trong quá trình tìm hiểu, nghiên cứu công
trình này.
Tôi xin chân thành cảm ơn!

Tác giả luận văn

Kiều Thành Chung

6


PHẦN MỞ ĐẦU
1. Lý do chọn đề tài:
Một trong những đặc thù nổi bật của cuộc cách mạng thông tin đang diễn ra hiện
này là sự phát triển vũ bão của Internet với các ứng dụng phong phú dựa trên nền Web.
Hiện tại thế giới đã chứng kiến những dịch vụ thông tin nền Web với số lượng người
sử dụng khổng lồ tính bằng hàng triệu, ví dụ như Google, Facebook, Youtube, …
Đương nhiên, việc làm sao đáp ứng được số lượng người dùng đồng thời lớn như thế là
cơ sở của nhiều vấn đề kỹ thuật nóng bỏng nhất hiện nay. Cung cấp dịch vụ cho 1 tập
thể đã nghiên cứu rõ ràng (một doanh nghiệp chẳng hạn) có thể là một việc quen thuộc
trong quá khứ, nhưng cung cấp dịch vụ cho toàn bộ công chúng, trong đó số người sử
dụng đồng thời có thể lớn không lường trước được, là một thách thức mới: làm sao để
đảm bảo không xảy ra tắc nghẽn và tối ưu hiệu quả hệ thống.
Để đáp ứng được số lượng người dùng đồng thời cao, đương nhiên tài nguyên
tính toán (số lượng máy chủ) phải lớn, nhưng không phải cứ đầu tư nhiều vào thiết bị là
giải quyết được vấn đề. Ở đây ta cần nhấn mạnh đến tính hiệu quả trong việc tổ chức
sử dụng các thiết bị: nếu không có các giải pháp hợp lý, xử lý thông minh, các thiết bị
tốn kém vẫn không hoạt động đúng công suất, gây lãng phí lớn và tắc nghẽn vẫn xảy
ra. Yếu tố hệ thống thường được biết đến với tên gọi “khả năng mở rộng hệ thống”,
hay nói tắt “khả mở” (scalability). Với việc thiết kế hệ thống kém, những điểm ách tắc
(bottleneck) cố hữu làm hệ thống khó mở rộng khả năng đáp ứng nhu cầu người dùng,
dù được tăng cường số lượng máy chủ lớn. Đây là hiện tượng xảy ra khá phổ biến ở
Việt nam, khi các mạng xã hội nhỏ lẻ, các dịch vụ game-online mở ra khá tự phát,
không được đầu tư kỹ về thiết kế. Ban đầu các doanh nghiệp này nhanh chóng phát

triển với một lượng người sử dụng (NSD) không lớn nào đó, nhưng cũng sẽ nhanh
chóng đạt đến điểm tới hạn (khoảng cỡ trăm nghìn NSD) không thể vượt quá nếu
không có cải tổ kỹ thuật triệt để.

7


Câu chuyện về sự ra đời và phát triển của các mạng xã hội quen biết trên thế giới
cho chúng ta những bài học, những dẫn chứng tốt về việc đảm bảo tính khả mở, tức là
nhanh chóng mở rộng dich vụ. Mạng xã hội xuất hiện lần đầu tiên năm 1995 với sự ra
đời của trang Classmate với mục đích kết nối bạn học, tiếp theo là sự xuất hiện của
SixDegrees vào năm 1997 với mục đích giao lưu kết bạn dựa theo sở thích. Các mạng
này tuy nhiên chưa có tính thu hút mạnh do giới hạn bởi công nghệ Internet lúc đó.
Năm 2002, Friendster trở thành một trào lưu mới tại Hoa Kỳ với hàng triệu thành viên
ghi danh. Tuy nhiên sự phát triển quá nhanh này cũng là con dao hai lưỡi: server của
Friendster thường bị quá tải mỗi ngày, gây bất bình cho rất nhiều thành viên. Năm
2004, MySpace ra đời với các tính năng như phim ảnh (embedded video) và nhanh
chóng thu hút hàng chục ngàn thành viên mới mỗi ngày, các thành viên cũ của
Friendster cũng lũ lượt chuyển qua MySpace và trong vòng một năm, MySpace trở
thành mạng xã hội đầu tiên có nhiều lượt xem hơn cả Google và được tập đoàn News
Corporation mua lại với giá 580 triệu USD. Năm 2006, sự ra đời của Facebook đánh
dấu bước ngoặt mới cho hệ thống mạng xã hội trực tuyến với nền tảng lập trình
"Facebook Platform" cho phép thành viên tạo ra những công cụ (apps) mới cho cá nhân
mình cũng như các thành viên khác dùng. Facebook Platform nhanh chóng gặt hái
được thành công vược bậc, mang lại hàng trăm tính năng mới cho Facebook và đóng
góp không nhỏ cho con số trung bình 19 phút mà các thành viên bỏ ra trên trang này
mỗi ngày.
Để đáp ứng đảm bảo khả năng mở rộng (scalability), một bộ phận hệ thống chủ
chốt không thể thiếu được trong các dịch vụ web lớn là hệ thống tự động phân tải
(Load-balancer). Đây là thiết bị và phần mềm làm nhiệm vụ đón yêu cầu của tất cả

NSD rồi “phân việc” cho một trong số các máy chủ (server) xủ lý thông tin cụ thể. Để
đảm bảo tối ưu hiệu quả sử dụng của toàn bộ hệ thống các máy chủ, bộ phận phân tải
phải làm việc “công minh” và khéo léo, tìm giao việc cho “người” vừa đang nhẹ tải
nhất vừa đúng “chuyên môn”. Tức là, bộ phận phân tải cần phải vừa luôn nắm vững

8


tình hình của các máy chủ, vừa nhanh chóng nắm được bản chất của dòng các yêu cầu
xử lý đang được gửi đến liên tục.
Luận văn cao học này đặt mục tiêu nghiên cứu tìm hiểu sâu các kỹ thuật cơ bản
trong thiết kế các hệ phân tải đảm bảo khả năng mở rộng hệ thống (scalability) của
các dịch vụ mạng với số lượng NSD lớn. Cụ thể hơn, luận văn sẽ tìm hiểu và tổng hợp
có hệ thống các phương pháp phân tải phong phú đã được biết tới lâu này, trong thực tế
cũng như trong những nghiên cứu lý thuyết mới nhất. Luận văn cũng đưa ra các phân
tích so sánh dựa vào đặc điểm riêng của hoàn cảnh sử dụng của các phương pháp phổ
biến. Đây là một lĩnh vực kỹ thuật còn được biết tới chưa nhiều ở Việt nam, nên tác giả
hy vọng sẽ tìm thấy những phân tích kỹ thuật và khuyến nghị sử dụng hợp lý, mới mẻ
cho các nhà xây dựng và cung cấp dịch vụ lớn trong nước. Một trong những mục tiêu
cụ thể là tìm và áp dụng những kỹ thuật tiên tiến và hợp lý nhất cho các hệ thống dịch
vụ game-online đang được cung cấp bởi tổng công ty VTC, môi trường công tác của
tác giả.

2. Lịch sử nghiên cứu:
Việc sử dụng Internet tại tất cả các lĩnh vực của đời sống đã và đang phát triển rất
đáng kể trong thập kỷ qua. Internet đã thực sự trở thành một công cụ cần thiết cho cuộc
sống của nhân loại và hiển nhiên rằng nó đã không ngừng phát triển như nó vẫn có thể
được cải thiện trong nhiều khía cạnh kiến trúc của nó.
Khi hệ thống cơ sở hạ tầng mạng chưa đạt được những thành tựu nhất định, ví dụ
như tốc độ truyền qua đường Dial up chậm, số lượng web ít, số lượng server phục vụ

web ít, chủ yếu là các trang web tĩnh,…thì vấn đề tải trong hệ thống mạng chưa được
quan tâm. Tuy nhiên, khi cơ sở hạ tầng mạng được nâng cấp, chất lượng và số lượng
web phát triển nhanh gây ra tắc nghẽn trên một số mạng nhất định.
Bước đầu trong lịch sử, người ta đã nghiên cứu các giải pháp cân bằng tải đơn
giản, chủ yếu phục vụ cho hệ thống web tĩnh và hệ thống máy chủ đồng bộ. Tuy nhiên,

9


khi công nghệ ứng dụng dựa trên web thay đổi, việc tìm kiếm hay đưa ra các giải pháp
cân bằng tải là cần thiết để đảm bảo đáp ứng sự đa dạng về nội dung, sự phát triển các
loại yêu cầu khác nhau, với thời đáp ứng các yêu cầu khác nhau.
Nhiều nhóm nghiên cứu trên toàn thế giới tiếp tục nghiên cứu Internet của họ
đang cố gắng tăng tốc độ giao thức truyền thông và nâng cao hiệu quả hoạt động ở cấp
độ ứng dụng web. Ngoài ra các ứng dụng mới đang được phát triển để được thực hiện
qua kết nối Internet như Voice Over Internet Protocol (VOIP) điện thoại, trò chơi trực
tuyến và các mạng xã hội.

3. Mục tiêu chính:
Trên cơ sở nghiên cứu các giải pháp, mục tiêu của luận văn là đánh giá các giải
pháp cân bằng tải đã và đang sử dụng trong hệ thống Web. Nghiên cứu các yếu tố tác
động vào tải của hệ thống web. Qua đó, nghiên cứu cách giải quyết các bài toán tắc
nghẽn. Mục đích cuối cùng là dựa trên các đánh giá cụ thể các giải pháp cân bằng tải
nhằm tìm kiếm giải pháp thích hợp để áp dụng vào thực tiễn hệ thống Web hiện nay tại
Việt nam.
Đối tượng chính của luận văn chính là các giải pháp cân bằng tải. Đặc biệt là giải
pháp cân bằng tải nhận biết nội dung với sự phân tích đánh giá các yếu tố burstiness
thông qua việc thiết lập các khe thời gian thích ứng. Ngoài ra, luận văn cũng mô tả các
giải pháp khác như là các giải pháp cân bằng tải không nhận biết nội dung, các giải
pháp cân bằng tải nhận biết QoS. Thông qua các đối tượng đó, để đánh giá khả năng

đáp ứng và khả năng mở rộng của hệ thống Web khi số lượng người truy nhập tăng đột
biến hay quá lớn.
Do đối tượng nghiên cứu khá nhiều, nên phạm vi nghiên cứu khá lớn. Tuy nhiên,
trong khuôn khổ của luận văn này, phạm vi nghiên cứu là các hệ thống Web Game lớn
đã và đang triển khai tại Việt nam. Một trong số đó là Web Game Online của Tổng
công ty Truyền thông Đa phương tiện VTC.

10


4. Sơ lược luận văn
Để thực hiện mục tiêu trên, luận văn này sẽ được chia thành hai phần chính:
Phần nội dung gồm các chương
-

Chương 1: Khái niệm và phân loại cân bằng tải; Khả năng mở rộng Scalability;
Các kiến trúc ứng dụng cân bằng tải; Các chính sách phân phối yêu cầu;

-

Chương 2: Các ảnh hưởng của lưu lượng đối với máy chủ Web; Tính truyền loạt
– burstiness; Các chính sách điều khiển truy nhập;

-

Chương 3: Phát hiện và giám sát burstiness; Giám sát khe thời gian; Các yếu tố
burstiness; Lập khe thời gian thích nghi.

-


Chương 4: Thuật toán cân bằng tải và điều khiển truy nhập; Mục tiêu tối thiểu
hóa chi phí thực hiện; Tổng quan về thuật toán; Dự báo thông lượng; Phân bổ
tài nguyên; Kỹ thuật cân bằng tải.
Phần kết luận và hướng phát triển: gồm các kết luận và hướng phát triển nghiên

cứu lý thuyết cũng như định hướng ứng dụng.

5. Phương pháp nghiên cứu
Phương pháp nghiên cứu chủ yếu của luận văn là tổng hợp các nguồn tài liệu trên
Internet, tạp chí và một số tài liệu khác. Qua đó, đánh giá các giải pháp cân bằng tải
nhằm đưa ra giải pháp thích hợp mang tính ứng dụng đối với hệ thống web.

11


PHẦN NỘI DUNG
CHƯƠNG I: CÂN BẰNG TẢI LƯU LƯỢNG WEB
1.1. Giới thiệu
Lý do chính của sự phổ biến ngày càng tăng của các cụm máy chủ, còn gọi là máy
chủ farms, do thực tế là các ứng dụng web phải có khả năng chạy trên nhiều máy chủ
để chấp nhận một số lượng ngày càng cao của người sử dụng có nhu cầu nội dung
Web. Về bản chất, cân bằng tải là khả năng để làm cho một vài máy chủ cùng tham gia
vào các dịch vụ tương tự và làm việc cùng, vì năng lực của các máy chủ là hữu hạn.
Điều này liên quan tới những lợi ích quan trọng như khả năng mở rộng, tính sẵn có,
khả năng quản lý và tính bảo mật của các trang web.
Cân bằng tải cải thiện khả năng mở rộng của một ứng dụng hoặc cụm máy chủ
bằng cách phân phối tải trên nhiều máy chủ. Cân bằng tải cũng có thể hướng lưu lượng
truy nhập đến các máy chủ khác, nếu một máy chủ hoặc ứng dụng không hoạt động
(lỗi). Khả năng duy trì dịch vụ không bị ảnh hưởng trong một số kịch bản thất bại được
gọi là sẵn sàng. Khả năng quản lý được cải thiện bằng cân bằng tải theo nhiều cách cho

phép các quản trị mạng và quản trị máy chủ để di chuyển một ứng dụng từ một máy
chủ đến một máy chủ khác một cách dễ dàng. Cân bằng tải cung cấp các giải pháp cải
thiện an toàn bằng cách bảo vệ các cụm máy chủ với nhiều hình thức của tấn công từ
chối dịch vụ: Denial-of-Service (DoS).
Chương này được tổ chức như sau:
-

1.2. Phân loại cân bằng tải: sắp xếp các giải pháp cân bằng tải.

-

1.3. Khả năng mở rộng – scalability: tính mở rộng hệ thống trong giải pháp cân
bằng tải.

12


-

1.4. Cân bằng tải không nhận biết nội dung: giải pháp thực hiện cân bằng lưu
lượng nhưng không dựa trên nội dung cụ thể.

-

1.5. Cân bằng tải nhận biết nội dung: giải pháp thực hiện cân bằng lưu lượng
dựa trên nội dung cụ thể.

1.2. Phân loại cân bằng tải
• Cân bằng tải phụ thuộc vào nguyên tắc phân loại của các kiến trúc máy chủ web,
sự phân biệt được thực hiện theo cách tiếp cận local scale-out hay global scale-out. Sự

khác biệt chính bao gồm các vị trí địa lý, nơi đặt các node máy chủ cư trú. Trong
phương pháp tiếp cận global scale-out, các nodes được đặt tại các địa điểm khác nhau
về địa lý, trong khi các node nằm cùng một vị trí trong kiến trúc local scale-out. Một ví
dụ về tổ chức global scale-out là mạng lưới phân phối nội dung (CDNs - Content
Distribution Networks). Kiến trúc local scale-out còn được gọi là các hệ thống web
phân tán cục bộ.
• Cân bằng tải phụ thuộc vào địa chỉ IP: Sự khác biệt có thể được thực hiện trong
nhóm này phụ thuộc vào các địa chỉ IP tường minh của hệ thống web hiển thị cho
khách hàng. Các node máy chủ web của hệ thống web phân tán Distributed Web
System hiển thị IP cho các khách hàng. Kiến trúc là hệ thống web dựa trên Cluster
Cluster-based Web System (or Web cluster) cho phép các ứng dụng của client có thể
nhìn thấy địa chỉ IP ảo của thiết bị front-end của hệ thống web .
• Cân bằng tải phụ thuộc vào nơi quyết định phân phối định tuyến yêu cầu tới một
máy chủ của một hệ thống web server phân tán cục bộ: dựa trên client (client-based),
dựa trên DNS (Domain Name System (DNS)-based), dựa trên bộ điều phối (dispatcherbased) and dựa trên máy chủ (server-based).

13


• Cân bằng tải phụ thuộc vào mức áp dụng: mức phần cứng (về cơ bản cho các
sản phẩm thương mại), mức phần mềm hệ thống, mức phần mềm trung gian (phần
mềm kết nối giữa client và databases) và mức phần mềm ứng dụng.
• Cân bằng tải cụm web, giải pháp cân bằng tải tùy thuộc vào lớp giao thức OSI
tại cân bằng tải, còn được gọi là bộ chuyển web hoặc thiết bị front-end.
• Cũng đề cập đến cân bằng tải cụm web, có một phân nhóm khác tùy thuộc vào
cách trả dữ liệu về của các đối tượng máy chủ tới khách hàng. Những phản hồi từ máy
chủ hoặc có thể đi qua các cân bằng tải (kiến trúc hai chiều – two ways), hoặc có thể
theo một đường thay thế trực tiếp cho client tránh đi qua bộ cân bằng tải (kiến trúc một
chiều – one way hay cân bằng tải máy chủ một chiều). Đó là vấn đề chọn đường khác
của lưu lượng luồng dữ liệu từ máy chủ tới client hơn là chuyển qua bộ cân bằng tải để

tránh một node cổ chai có thể xảy ra ngay trong bộ cân bằng tải.

Hình 1.1: Tổ chức các giải pháp cân bằng tải web.

14


1.3. Khả năng mở rộng – Scalability
Trong số tất cả những lý do cho việc sử dụng các giải pháp cân bằng tải, việc tập
trung vào khả năng mở rộng tương ứng với nhu cầu người dùng trên các dịch vụ Web
tiếp tục phát triển và hệ thống máy chủ Web ngày càng trở nên quá tải, chịu áp lực
càng ngày càng cao. Hơn nữa, hoạt động và hiệu năng của ứng dụng không dừng lại
trên một máy chủ đơn. Do đó, cân bằng tải tránh ràng buộc này bởi khả năng phát triển
số lượng các máy chủ lưu trữ ứng dụng.
Mặc dù cả năng lực mạng và năng lực của máy chủ đã được cải tiến trong những
năm gần đây và các kiến trúc mới đã được phát triển, tuy nhiên vẫn còn một số vấn đề
cần được giải quyết theo quan điểm của người sử dụng theo khía cạnh thời gian phản
hồi nhận được. Khi một máy chủ bị tắc nghẽn, thời gian phản hồi thu được bởi sự gia
tăng người sử dụng và điều này có thể dẫn đến một hoạt động mua bán trực tuyến bị
thất bại trên trang thương mại điện tử. Vì vậy thời gian đáp ứng tiếp tục thách thức hệ
thống máy chủ và nghiên cứu liên quan đến cụm máy chủ.
Luận văn này tập trung vào cơ sở hạ tầng hệ thống web như một thành phần được
kiểm soát trực tiếp của quản trị trang web trong một hệ thống mạng phân tán như
Internet. Các thành phần khác cấu thành mạng như các hệ thống như là DNS, các mạng
Backbone (mạng xương sống) và các router (bộ định tuyến) không được điều khiển bởi
một tổ chức duy nhất và vượt ra khỏi phạm vi của nghiên cứu này.
Kiến trúc hệ thống web, bao gồm một tập các máy chủ phân tán cục bộ và được
kết nối thông qua một mạng tốc độ cao. Kiến trúc này cung cấp một giao diện đơn để
truy xuất ra bên ngoài, do đó, nó có thể được xem như một Host đơn. Những người
dùng không biết tên và địa chỉ của các máy chủ hợp thành cấu trúc web, họ truy nhập

vào các ứng dụng được lưu trữ trong hệ thống mà chuyển các yêu cầu của họ tới địa chỉ
VIP (Virtual IP) tương ứng với thiết bị đóng vai trò như một thiết bị front-end của kiến

15


trúc Web. Loại kiến trúc này được đặt tên là hệ thống web dựa trên Cluster (Clusterbased Web System).

1.4. Cân bằng tải không nhận biết nội dung.
Các giải pháp cân bằng tải được đề cập đến trong phần này được gọi là cân bằng
tải không nhận biết nội dung vì bộ cân bằng tải không nhận biết thông tin của ứng dụng
chứa trong các yêu cầu gửi đến. Các bộ cân bằng tải thực hiện nội dung định tuyến mù
thường được nhắc tới như là các bộ cân bằng tải ở layer-4. Việc lựa chọn của máy chủ
đích tham dự các yêu cầu được thực hiện dựa trên những thông tin có trong các gói tin
TCP SYN ở bộ cân bằng tải. Lớp OSI, được sử dụng để chuyển tiếp các gói dữ liệu tới
đến các máy chủ đích, có thể là lớp liên kết hay lớp mạng.
Chuyển tiếp layer-2
Kiến trúc hai chiều
Kiến trúc một chiều

Chuyển tiếp layer-3
Network Address Traslation

Direct Routing

IP Tunneling

Bảng 2.1. Các giải pháp cân bằng tải không nhận biết nội dung
Tương ứng với bảng minh họa trên, phần này sẽ được phân thành các phần nhỏ
dưới đây:

-

Cân bằng tải chuyển tiếp lớp 2, sử dụng thiết bị front-end để chuyển tiếp các gói
dữ liệu đến các máy chủ.

-

Cân bẳng tải chuyển tiếp lớp 3, sử dụng thiết bị front-end để chuyển tiếp các gói
dữ liệu đến các máy chủ.

-

Các chính sách lập lịch áp dụng cho cân bằng tải không nhận biết nội dung

16


1.4.1. Chuyển tiếp lớp 2
Chuyển tiếp Layer-2 (hoặc chuyển tiếp Server Load Balancing (SLB)) là một giải
pháp đơn giản nhất đối với cân bằng tải và có thể được xem xét khi tất cả các giao diện
của các kiến trúc hệ thống web đều trong cùng một mạng LAN ảo (VLAN) và mạng
IP, bao gồm cả bộ định tuyến client. Không cần phải thay đổi topology của mạng, cũng
không cần xác định lại các bản đồ địa chỉ IP. Cần thiết một thiết bị cầu nối giữa bộ
định tuyến client-side và bộ định tuyến phía của máy chủ (server-side).
Về cơ bản, client thiết lập một kết nối TCP với máy chủ mà sẽ tham dự các yêu
cầu của nó thông qua VIP của trang web. Nhiệm vụ của thiết bị front-end, hoạt động
như bộ cân bằng tải, là để chọn những máy chủ và dịch địa chỉ đích Media Access
Control (MAC) mà không để lại dấu vết trên thiết bị trung gian trong truyền thông.

Hình 1.2: Ví dụ về thực thi chuyển tiếp layer-2.

Hình 1.2: ví dụ về chuyển tiếp layer-2, mô tả vai trò của bộ cân bằng tải mà đã ghi
lại các địa chỉ đích layer-2 đến địa chỉ MAC của máy chủ Web được lựa chọn và sau

17


đó chuyển tiếp yêu cầu đến tới máy chủ đó. Đảo ngược bản dịch được thực hiện khi
phản hồi được gửi lại cho web client. Bộ cân bằng tải không thay đổi địa chỉ IP của yêu
cầu gửi đến, vì tất cả các thiết bị trong mạng con IP (bộ cân bằng tải và các máy chủ)
chia sẻ cùng một địa chỉ IP. Do đó, không cần phải thay đổi các thông tin mạng của gói
tin và do đó, không cần phải tính toán kiểm tra lại IP, có nghĩa là chi phí thực hiện ít.
Điều quan trọng là phải vô hiệu giao thức chuyển đổi địa chỉ (ARP- Address
Resolution Protocol) khi sử dụng chuyển tiếp layer-2 để tránh khả năng xung đột bởi vì
cùng một địa chỉ IP được ấn định cho tất cả các node của hệ thống. Bộ cân bằng tải
layer-2 sử dụng địa chỉ MAC sẵn có trong thông tin của Data link layer để xác định các
cổng giao tiếp đầu ra cho gói tin đó.
Chuyển tiếp Layer-2 đã được sử dụng rộng rãi trong các giải pháp thương mại
trong phiên bản kiến trúc một chiều (one-way), và thường được đặt tên là chuyển mạch
layer-4 với chuyển tiếp gói tin layer-2 (layer-4 switching with layer-2 packet forward)
(L4/2) hoặc định truyến trực tiếp (DR-Direct Routing). Cùng địa chỉ IP được ấn định
cho tất cả các thiết bị của mạng con, các gói tin truy xuất có thể được gửi trực tiếp từ
máy chủ đến client mà không cần qua bộ cân bằng tải. Hình 1.4 cho thấy việc thiết lập
kết nối TCP với kỹ thuật DR.
Một số mẫu thử nghiệm triển khai đầu tiên của cân bằng tải L4/2 là ONE-IP và
LSMAC. Nortel Networks ứng dụng kỹ thuật này trong các bộ chuyển ứng dụng của
Nortel (Nortel Application Switches). Linux Virtual Server (LVS) là một giải pháp cân
bằng tải layer-4 mà được triển khai trong một dự án mã nguồn mở. Nó được cấu hình
hỗ trợ DR, và cũng như các kỹ thuật chuyển tiếp khác đề cập trong các phần kế tiếp.
1.4.2. Chuyển tiếp lớp 3
Chuyển tiếp Layer-3 (còn gọi là định tuyến SLB) khác với cầu nối SLB

(bridging SLB) trong đó router clientside có thể trong VLAN khác nhau và các mạng
con IP trong kiến trúc hệ thống web. Thực tế, trong trường hợp này, bộ cân bằng tải

18


của các kiến trúc hệ thống web có vai trò định tuyến hơn là vai trò cầu nối các khung
giữa máy khách và máy chủ. Hình 1.3 minh hoạ một ví dụ về chuyển tiếp layer-3 và
cho thấy rằng một bộ cân bằng tải layer-3 (de-encapsulates có thể hiểu là giải phóng
gói tin) giải phóng gói dữ liệu đến network layer để xác định nơi để gửi gói tin.

Hình 1.3: Thực thi chuyển tiếp layer-3 trong kiến trúc hai chiều (two-ways)
Hai kỹ thuật chuyển tiếp đã được thực hiện trong cụm web dựa trên bộ gửi
(dispatcher) với định tuyến layer-3: Dịch Địa chỉ Mạng (NAT Network Address
Translation (NAT) and IP Tunneling (IPTun)) và IP Tunneling (IPTun). NAT là kỹ
thuật đơn giản nhất và nó thực hiện viết lại các địa chỉ đích layer-3 của gói tin tới đến
địa chỉ IP của máy chủ thực sự được lựa chọn bởi bộ cân bằng tải.
Hình 1.3 biểu diễn thực hiện NAT. Trong khi NAT được thực hiện trong kiến trúc
2 chiều, IPTun được thực hiện trong kiến trúc một chiều. Điều này có nghĩa là phản hồi
từ các máy chủ web được chọn đi trực tiếp tới client. IPTun chứa các đóng gói của các

19


gói IP trong khối tin IP với địa chỉ IP nguồn và địa chỉ IP đích xác định địa chỉ VIP của
hệ thống và địa chỉ IP của máy chủ mục tiêu tương ứng.

Hình 1.4. Thiết lập kết nối TCP khi sử dụng NAT và IPTun.
Giải pháp chuyển tiếp layer-3 dựa trên NAT được phân nhóm như là chuyển đổi
layer-4 với chuyển tiếp gói tin layer-3 (layer-4 switching with layer-3 packet

forwarding) (L4/3). Nhược điểm chính của cách tiếp cận này: bộ cân bằng tải có thể trở
thành node nghẽn cổ chai của hệ thống khi tải hệ thống tăng cao. Do phải tính lại IP
đối với mọi gói tin đi qua bộ cân bằng tải trong cả 2 chiều.
Phần lớn thiết bị thương mại chuyển mạch nhận biết nội dung hiện nay đang có
trên thị trường đều cung cấp chuyển tiếp NAT, ví dụ 11.500 CSS Series Chuyển mạch
dịch vụ nội dung của Cisco System, Inc, chuyển mạch layer4-7 ServerIron của Foundry
Networks và Nortel Layer 2/7 Gigabit Ethernet Module (GbESM) cho IBM Blade
Center. Các framework phần mềm của Linux, LVS, cũng được cấu hình để hỗ trợ NAT
và IPTun nhưng kỹ thuật hiệu quả nhất là DR. Microsoft cũng thực hiện kỹ thuật
chuyển tiếp layer-3 có tên Network Load Balancing (NLB) được tích hợp trong họ
Windows Server 2003.

20


1.4.3. Các chính sách phân phối yêu cầu không nhận biết nội dung
Cân bằng tải không nhận biết nội dung cho phép thiết bị front-end nhận biết về
các kết nối TCP giữa các client và server. Do đó, bộ cân bằng tải gửi đi các yêu cầu
theo địa chỉ IP và cổng TCP. Một số chính sách lập lịch cân bằng tải thường được sử
dụng trong bộ cân bằng tải không nhận biết nội dung. Một số ví dụ về các chính sách:
• Thuật toán Round Robin (RR): Các kết nối TCP được ấn định trên cơ sở RR,
với kết nối đầu tiên sẽ đến máy chủ 1, kết nối thứ hai đến server 2, .v.v. Các kết nối đó
được ấn định tuần tự đến các máy chủ, mỗi máy chủ nhận được cùng một số kết nối
qua thời gian một cách độc lập về tốc độ nhanh nhất có thể để xử lý chúng. Vì lý do
này, RR là một trong những phương pháp tốt nhất cho các máy chủ đồng bộ, trừ khi
được sử dụng với đơn vị máy chủ (per-server weghting) tải lớn, RR kém hiệu quả trong
các môi trường các máy chủ là không đồng bộ.
• Thuật toán RR có trọng số - Weighted Round Robin (WRR): lưu lượng sẽ được
ấn định cho các máy chủ theo khả năng cấu hình liên quan của chúng, trong trường hợp
mà các máy chủ là không đồng bộ (thường là phổ biến). Các quản trị viên xác định tỷ

lệ phần trăm của lưu lượng truy nhập để được dẫn đến từng máy chủ.
• Thuật toán kết nối ít nhất - Least Connection(LC): Các kết nối được gán cho
máy chủ với số lượng ít nhất các kết nối. Đây là một thuật toán lập lịch động mà nó
làm việc như bộ cân bằng tải cần đếm số lượng kết nối được thành lập giữa client và
với mỗi máy chủ web trong cluster.
• Thuật toán kết nối ít nhất có trọng số - Weighted Least-Connection (WLC):
Tương tự như LC, trong thuật toán này ngoài việc đếm số lượng kết nối, tải được ấn
định cho mỗi máy chủ liên quan. Các máy chủ với trọng số cao hơn sẽ nhận được một
tỷ lệ các kết nối lớn hơn các máy chủ còn lại.

21


• Thuật toán Tải ít nhất - Least Loaded (LL): Các bộ gửi (dispatcher) chỉ định yêu
cầu tiếp theo tới máy chủ có tải thấp nhất. Trong trường hợp này là một tác nhân (hay
công cụ nào đó) trên máy chủ giữ cân bằng tải được cập nhật hiệu năng và năng lực
của máy chủ. Các kết nối được ấn định cho các máy chủ có khả năng dư thừa nhất. Nó
cũng được gọi là thuật toán đường cơ sở.
• Thuật toán lựa chọn máy chủ ngẫu nhiên - Random Server Selection: Các kết
nối được ấn định thống nhất giữa các máy chủ nhưng không phải tuân một trình tự xác
định mà được chọn ngẫu nhiên.

1.5. Cân bằng tải nhận biết nội dung
Bộ cân bằng tải nhận biết nội dung làm việc tại lớp ứng dụng, nó nhận biết các
nội dung ứng dụng của các yêu cầu tới. Đầu tiên, kết nối TCP phải được thiết lập giữa
client và thiết bị front-end của hệ thống web, sau đó nhận được yêu cầu HyperText
Transfer Protocol (HTTP) và phân tích nội dung của nó (xem hình 1.5).

Hình 1.5: Cân bằng tải theo kiến trúc 2 chiều layer-7.


22


Điều này làm cho việc định tuyến nhận biết nội dung cụ thể hơn đối với các ứng
dụng có thể cung cấp các dịch vụ khác biệt, nhưng phức tạp hơn so với phương pháp
tiếp cận không nhận biết nội dung. Mặc dù một số giải pháp thương mại cân bằng tải
nhận biết nội dung đã được triển khai, tuy nhiên vẫn là chủ đề cần được nghiên cứu.
HTTP/1.1 cho phép các kết nối duy trì (keep-alive). Một số yêu cầu HTTP từ
client có thể đi qua cùng kết nối TCP. Làm giảm thời gian phản hồi, chi phí hoạt động
máy chủ và chi phí hoạt động mạng của HTTP. Để tận dụng những lợi ích này, một số
thay đổi giao thức TCP được phát triển để cho phép tính phân chia yêu cầu của HTTP
trong cân bằng tải nhận biết nội dung, thay vì tính phân chia kết nối. Những thay đổi
đó phụ thuộc vào kiến trúc một chiều hoặc kiến trúc hai chiều của web cluster.
Bảng 2.2 Tóm tắt các giải pháp có tính phân chia yêu cầu sử dụng HTTP/1.1.
HTTP/1.0

HTTP/1.1

TCP Splicing

TCP Connection Binding

Kiến trúc hai chiều
Redirect Flows
TCP Hand-off

Multi Connection TCP Hand-Off

TCP Connection Hop


One-Packet TCP State Migration to
Packet Filter

Kiến trúc một chiều
Socket Cloning

Multiple TCP Rebuilding

TCP Rebuilding

One-way Connectiong Binding

Bảng 2.2: Các giải pháp cân bằng tải nhận biết nội dung.

23


Với kiến trúc một chiều và kiến trúc hai chiều mô tả tác động TCP của chúng để
biết cách cân bằng tải được thực hiện. Do đó, phần này được chia thành các phần sau:
-

Kiến trúc hai chiều: cách trả dữ liệu phản hồi qua bộ cân bằng tải.

-

Kiến trúc một chiều: cách trả dữ liệu phản hồi trực tiếp tới client

-

Các chính sách cân bằng tải nhận biết nội dung.


1.5.1. Kiến trúc hai chiều
Phần này giới thiệu ba kỹ thuật định tuyến các yêu cầu từ bộ cân bằng tải cho máy
chủ web mục tiêu trong kiến trúc hai chiều, đó là: TCP Connection Binding, TCP
Splicing và Redirect Flows.
1.5.1.1. Ràng buộc kết nối TCP - TCP Connection Binding
Ràng buộc kết nối còn được gọi là “Cổng TCP – TCP GateWay”, hoặc Relaying
front-end hoặc Relaying with Packet Rewriting. Về cơ bản, ràng buộc kết nối duy trì
hai kết nối TCP: kết nối thứ nhất giữa client và bộ cân bằng tải và kết nối thứ hai giữa
bộ cân bằng tải và máy chủ Web.
Trước khi nhận được bất cứ yêu cầu nào, bộ cân bằng tải thiết lập một kết nối duy
trì với mỗi máy chủ web. Khi bộ cân bằng tải nhận được một yêu cầu từ một client,
một trong những kết nối TCP, đã được thiết lập trước đó, được sử dụng để chuyển các
yêu cầu cho máy chủ mục tiêu đã chọn.
Ưu điểm chính của đề xuất này là nó cho phép phân phối dựa trên nội dung theo
tính phân chia (granularity) các yêu cầu riêng lẻ vì các kết nối duy trì giữa bộ cân bằng
tải và các máy chủ back-end không phụ thuộc vào lưu lượng truy nhập tới.
Kỹ thuật TCP Connection Binding và TCP Splicing Binding, được thực hiện trên
nền tảng Java. Vấn đề chính của cách tiếp cận này là các gói tin cần phải được phân

24


tích thông tin trên lớp ứng dụng của chúng khi đi qua bộ cân bằng tải. Chi phí hoạt
động có thể giảm được bởi các kỹ thuật khác được mô tả dưới đây.
Hình 1.6 cho thấy thủ tục ràng buộc kết nối TCP, chi tiết số Initial Send Sequence
(ISS) của client và số Initial Receive Sequence (IRS) của bộ cân bằng tải được sử dụng
trong bắt tay ba bước của kết nối client với bộ cân bằng. Các số khác nhau, ISS2 và
IRS2, được sử dụng trong kết nối tiền chia (pre-forked) giữa bộ cân bằng tải và máy
chủ Web. Tất cả những con số này không cần phải có bất kỳ mối quan hệ nào với nhau

và bộ cân bằng tải chịu trách nhiệm về việc thay đổi ISS và số trường tiêu đề IRS TCP
phụ thuộc vào kết nối nào được sử dụng để truyền các gói tin.

Hình 1.6: Các kỹ thuật cân bằng tải Layer-7 trong kiến trúc hai chiều:
IBM Network Dispatcher là một ví dụ về một ràng buộc kết nối TCP, nhưng đã
được thương mại hóa từ một vài năm trước đây.

25


1.5.1.2. Ghép nối TCP - TCP Splicing
Kỹ thuật ghép nối tương tự như kỹ thuật ràng buộc kết nối TCP, nhưng hiệu suất
được cải thiện do kết nối TCP client và kết nối TCP máy chủ với bộ cân bằng tải được
ghép nối với nhau (tại tầng TCP) và tất cả công việc có thể được thực hiện trực tiếp do
hệ thống hoạt động chuyển tiếp dữ liệu ở mức IP. Hình 1.6 cũng cho thấy ví dụ về chi
tiết hóa ghép nối TCP ISS và số trường tiêu đề IRS TCP của cả hai kết nối.
Một số cải tiến khả năng chia tách điểm nối ghép trong các máy chủ web và gửi
phản hồi trực tiếp cho client. Điều này cho phép áp dụng kiến trúc một chiều khi sử
dụng giao thức TCP Splicing. Tái ghép nối kết nối TCP đã được thiết lập với máy chủ
để tham dự một yêu cầu đến (có thể thích hợp hơn) máy chủ mục tiêu khác, có tính
chia tách yêu cầu trong cân bằng tải thay vì tính chia tách kết nối TCP khi sử dụng giao
thức HTTP / 1.1.
Các kỹ thuật tương tự đối với TCP Splicing được triển khai ở một số giải pháp
thương mại nhận biết nội dung như CSS của Cisco 11500 Series Content Services
Switch, F5's BIG-IP, Foundry’s ServerIron layer 4-7 switches, Radware Ondemand
switchs và Nortel Layer 2/7 Gigabit Ethernet Module (GbESM) cho IBM Blade
Center. Ngoài ra, các framework của Linux đã được phát triển để hỗ trợ giao thức TCP
Splicing gọi là chuyển mạch Linux Layer7 (L7SW).
1.5.1.3. Các luồng chuyển hướng - Redirect Flows
Redirect Flows là kỹ thuật hai chiều, rất giống với các phương pháp tiếp cận TCP

Splicing nhưng dựa trên kiến trúc NAT.
Đó là một kỹ thuật độc quyền của Arrowpoint Communications Inc, một công ty
được mua lại bởi Cisco Systems Inc trong năm 2000.

26


×