Tải bản đầy đủ (.doc) (27 trang)

HỆ THỐNG CÂN BẰNG TẢI SERVER

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 (529.26 KB, 27 trang )

CHƯƠNG 1:
TỔNG QUAN VỀ HỆ THỐNG CÂN BẰNG TẢI SERVER
1.1 Tại sao phải xây dựng hệ thống cân bằng tải?
Trong thời đại bùng nổ của công nghệ thông tin hiện 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ơ quan nhà nước. Thậm chí ở một số đơn vị, chẳng hạn như các công ty hàng
không hoặc các ngân hàng lớn, mạng máy tính có thể ví như hệ thần kinh điều khiển
hoạt động của toàn 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 cơ quan này có thể làm tê liệt các
hoạt động chính của đơn vị, và thiệt hại khó có thể lường trước được.
Chúng ta đều biết các máy chủ là trái tim của của mạng máy tính, nếu máy chủ
mạng hỏng, hoạt động của hệ thống sẽ bị ngưng trệ. Điều đáng tiếc là dù các hãng sản
xuất đã cố gắng làm mọi cách để nâng cao chất lượng của thiết bị, nhưng những hỏng
hóc đối với các thiết bị mạng nói chung và các máy chủ nói riêng là điều không thể
tránh khỏi. Do vậy, 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ủ mạng. 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 giải quyết được các vấn đề đặt ra của các 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 - Giải pháp cân bằng tải. Có rất nhiều hãng đưa ra
giải pháp cân bằng tải như Cisco, Coyote Point, Sun Microsystems... với rất nhiều tính
nǎng phong phú. Tuy nhiên, về cơ bản, 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. Một kỹ thuật cân bằng tải điển hình là RRDNS
(Round Robin DNS). Với giải pháp này, nếu một server trong nhóm bị lỗi, RRDNS sẽ
vẫn tiếp tục gửi tải cho server đó cho đến khi người quản trị mạng phát hiện ra lỗi và
tách server này ra khỏi danh sách địa chỉ DNS. Điều này sẽ gây ra sự đứt quãng dịch vụ.
Sau những phát triển, từ các thuật toán cân bằng tải tĩnh như Round Robin, Weighted
Round Robin đến các thuật toán cân bằng tải động như Least Connection, Weighted
Least Connection, Optimized Weighted Round Robin và Optimized Weighted Least
Connection, kỹ thuật cân bằng tải hiện nay nhờ sự kết hợp các thuật toán trên ngày càng
trở nên hoàn thiện mặc dù nhược điểm vốn có như tạo điểm lỗi đơn và vấn đề nút cổ


chai do sử dụng bộ điều phối tập trung (centralized dispatcher) vẫn còn. Ngoài khả nǎng
áp dụng với Web server, kỹ thuật này còn có thể áp dụng với các hệ server ứng dụng
khác. SLB không chỉ làm nhiệm vụ phân phối tải cho các server mà còn còn cung cấp cơ
chế đảm bảo hệ thống server luôn khả dụng trước các client. SLB 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ờ đó 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.
1.1.1.So sánh hệ thống cân bằng tải và hệ thống thông thường
Kịch bản A Kịch bản B
Tính sẵn sàng cao Có Không
Tính mở rộng Có Không
Ứng dụng Xử lý đa nhiệm Xử lý nhanh đơn nhiệm
Ưu điểm của cân bằng tải
• Tính mở rộng: thêm hoặc bỏ bớt server một cách dễ dàng
• Tính sẵn sàng cao do hệ thống dùng nhiều Server Vì vậy 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ụ
• 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 server khác lại đang “nhàn rỗi”.
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…
1.2.Các giải pháp chia tải trên thế giới
Việc chia tải có thể thực hiện bằng nhiều phương cách, hình thức khác nhau, với
các công nghệ khác nhau hoặc kết hợp chúng lại:
1.2.1. Chia tải bằng phần mềm cài trên các máy chủ
Kết hợp nhiều server một cách chặt chẽ tạo thành một server ảo (virtual server).
Các hệ điều hành cho máy chủ thế hệ mới của các hãng Microsoft, IBM, HP... hầu hết
đều cung cấp khả năng này, một số hãng phần mềm khác như Veritas(Symantec) cũng
cung cấp giải pháp theo hướng này. Các giải pháp thuộc nhóm này có ưu điểm là quen
thuộc với những nhà quản trị chuyên nghiệp, có thể chia sẻ được nhiều tài nguyên trong
hệ thống, theo dõi được trạng thái của các máy chủ trong nhóm để chia tải hợp lý. Tuy
nhiên, do sử dụng phần mềm trên server, tính phức tạp cao nên khả năng mở rộng của
giải pháp này bị hạn chế, phức tạp khi triển khai cũng như khắc phục khi xảy ra sự cố,
có rào cản về tính tương thích, khó có được những tính năng tăng tốc và bảo mật cho
ứng dụng.
1.2.2. Chia tải nhờ proxy
Nhóm này thường tận dụng khả năng chia tải sẵn có trên phần mềm proxy như
ISA Proxy của Microsoft hay Squid phần mềm mã nguồn mở cài trên máy phổ dụng.
Proxy này sẽ thực hiện nhiệm vụ chia tải trên các server sao cho hợp lý. Giải pháp này
vì hoạt động ở mức ứng dụng nên có khả năng caching (là công nghệ lưu trữ cục bộ dữ
liệu được truy cập với tần suất cao) và khả năng firewall ở tầng ứng dụng. Vì sử dụng
máy phổ dụng nên giải pháp này có ưu điểm là chi phí thấp, khả năng mở rộng tốt vì cài
đặt trên một máy độc lập, dễ quản trị. Tuy nhiên, cũng vì chỉ hoạt động ở mức ứng dụng
nên hiệu năng không cao, vì sử dụng máy phổ dụng nên không được tối ưu, dễ tồn tại
nhiều lỗi hệ thống, vì cài đặt trên một máy độc lập nên việc theo dõi trạng thái của các
máy chủ gặp khó khăn. Nhược điểm lớn nhất của các giải pháp dòng này thường có tính
ổn định kém, hiệu năng thấp, dễ mắc lỗi. Đây là điều không thể chấp nhận được đối với
các hệ thống đòi hỏi tính sẵn sàng cao như ngân hàng, tài chính.
1.2.3. Chia tải nhờ thiết bị chia kết nối
Nhóm này thường sử dụng các mođun cắm thêm trên các thiết bị chuyên dụng như

Bộ định tuyến (Router) hay hay bộ chuyển mạch (Switch) để chia tải theo luồng, thường
hoạt động từ layer 4 trở xuống. Vì sử dụng thiết bị chuyên dụng nên có hiệu năng cao,
tính ổn định cao, khả năng mở rộng tốt hơn nhưng khó phát triển được tính năng bảo
mật phức tạp như giải pháp proxy, thường thuật toán chia tải rất đơn giản như DNS
round-robin (đây là thuật toán chia tải phổ biến nhất và đơn giản, tuy nhiên cứng nhắc
và hiệu quả thấp. Với thuật toán này các yêu cầu về IP của một tên miền ứng với nhiều
server sẽ được biên dịch thành địa chỉ IP của các server đó theo thứ tự quay vòng.
Nhóm này có khả năng chia tải động kém, không theo dõi được trạng thái của máy chủ,
xử lý kết nối ở mức ứng dụng rất kém, dễ gây lỗi ứng dụng và giá thành cao. Cách thức
này cũng hoàn toàn không phù hợp đối với các hệ thống yêu cầu tính chuẩn xác của các
hoạt động giao dịch như tài chính, ngân hàng.
Như vậy, giải pháp có khả năng theo dõi trạng thái ứng dụng tốt thì mở rộng, tăng
tốc, bảo mật kém(GP dùng phần mềm). Giải pháp mở rộng, tăng tốc, bảo mật tốt, thì
theo dõi trạng thái ứng dụng kém, không ổn định, hiệu năng thấp(GP sử dụng proxy),
giải pháp hiệu năng cao, ổn định, mở rộng tốt thì kém thông minh, dễ gây lỗi ứng dụng,
tăng tốc kém(GP chia tải nhờ thiết bị chia kết nối). Trong khi đó, tất cả các yêu cầu về
hiệu năng cao, ổn định, mở rộng tốt, tăng tốc tốt và bảo mật là rất quan trọng đối với các
hoạt động của ngân hàng, chứng khoán và các nhà cung cấp dịch vụ. GP sẵn có của các
hãng chỉ đáp ứng được một phần trong các yêu cầu trên như Module CSS của Cisco,
ISA của Microsoft, hay Netscaler của Citrix)
Như vậy yêu cầu thực tế đặt ra là phải xây dựng được một hệ thống hoàn chỉnh có
khả năng quản trị lưu lượng, có khả năng kiểm soát, điều khiển và tối ưu hóa lưu lượng
mạng chạy qua nó. SLB là một giải pháp có thể giải quyết được hầu hết các yêu cầu đặt
ra ở trên với một sự tối ưu cao nhất.
1.3. Các thành phần của SLB
1.3.1. Chức năng của các thành phần trong SLB
Một giải pháp cân bằng tải phải (Server Load Balancer) có những chức năng sau đây:
• Can thiệp vào luồng dữ liệu mạng tới một điểm đích.
• Chia luồng dữ liệu đó thành các yêu cầu đơn lẻ và quyết định máy chủ nào sẽ xử
lý những yêu cầu đó.

• Duy trì việc theo dõi các máy chủ đang hoạt động, đảm bảo rằng các máy chủ
này vẫn đang đáp ứng các yêu cầu đến. Nếu máy chủ nào không hoạt động đúng
chức năng, máy chủ đó bắt buộc phải đưa ra khỏi danh sách xoay vòng.
• Cung cấp sự đa dạng bằng việc tận dụng nhiều hơn một đơn vị trong các tình
huống fail-over (fail-over là khả năng tự động chuyển qua các thiết bị dự phòng
khi gặp tình huống hỏng hóc hoặc trục trặc. Việc thực thi này được thực hiện
mà không có sự can thiệp của con người cũng như không có bất sự cảnh báo
nào).
• Cung cấp sự phân phối dự trên sự hiểu biết về nội dung ví dụ như đọc URL, can
thiệp vào cookies hoặc truyền XML.
Server Load Balancers: Load Balancer là một thiết bị phân phối tải giữa các máy tính
với nhau và các máy tính này sẽ xuất hiện chỉ như một máy tính duy nhất. Phần dưới
đây sẽ thảo luận chi tiết hơn về các thành phần của các thiết bị SLB.
VIPs: Virtual IP (VIP): là một dạng thể hiện của của cân bằng tải. Mỗi VIP sử dụng
một địa chỉ công khai IP. Bên cạnh đó, một cổng TCP hay UDP sẽ đi kèm với một VIP
như cổng TCP 80 được dành cho luồng dữ liệu của web. Một VIP sẽ có ít nhất một máy
chủ thực sự được gán địa chỉ IP đó và máy chủ này sẽ làm nhiệm vụ phân phối luồng dữ
liệu được chuyển đến. Thường thường thì sẽ có vài máy chủ và VIP sẽ dàn đều luồng
dữ liệu đến cho các máy chủ bằng cách sử dụng các metric hoặc các phương thức được
mô tả trong phần “Active - Active Scenario” sau đây.
Các máy chủ (Servers): Máy chủ chạy một dịch vụ được chia sẻ tải giữa các dịch vụ
khác. Máy chủ thường được ám chỉ tới các máy chủ HTTP, mặc dù các máy chủ khác
hoặc ngay cả những dịch vụ khác có liên quan. Một máy chủ thường có một địa chỉ IP
và một cổng TCP/UDP gắn liền với nó và không có địa chỉ IP công khai (điều này còn
phụ thuộc vào topo của mạng).
Nhóm (Groups): Dùng để chỉ một nhóm các máy chủ được cân bằng tải. Các thuật ngữ
như “farm” hoặc “server farm” có cùng một ý nghĩa với thuật ngữ này.
Cấp độ người dùng truy nhập (User - Access Levels): Là một nhóm các quyền được
gán cho một người dùng nào đó khi đăng nhập vào một thiết bị cân bằng tải. Không chỉ
những nhà cung cấp thiết bị khác nhau cung cấp những cấp độ truy nhập khác nhau, mà

hầu hết các dịch vụ cũng sẽ có những cách thức truy nhập rất khác nhau. Cách triển khai
phổ biến nhất là của Cisco, cung cấp truy nhập dựa trên tài khoản người dùng (cho phép
cả tài khoản superuser). Một phương thức phổ biến khác là cách thức truy cập cấp độ
người dùng được dùng trong các hệ thống Unix.
• Read-only: Cấp độ truy cập chỉ đọc (Read-only) không cho phép bất kỳ một
thay đổi nào được thực hiện. Một người dùng có quyền chỉ đọc chỉ có thể xem
các thiết đặt, các cấu hình, và nhiều thứ khác nữa nhưng không thể thực hiện
được bất kỳ một thay đổi nào cả. Một tài khoản như thế được sử dụng để xem
các thống kê hiệu suất hoạt động của thiết bị.Truy nhập chỉ đọc thường là cấp độ
truy cập đầu tiên của một người dùng khi đăng nhập vào hệ thống trước khi thay
đổi sang các chế độ với quyền truy cập cao hơn.
• Superuser: Superuser là cấp độ truy cập cho phép người dùng có đầy đủ quyền
điều khiển hệ thống. Superuser có thể thêm các tài khoản khác, xóa file, cấu hình
lại hệ thống với bất kỳ tham số nào.
• Các cấp độ khác: Rất nhiều sản phẩm cung cấp thêm một vài cấp độ người
dùng trung gian ở giữa hai cấp độ trên, có những quyền giới hạn trên hệ thống.
Giải pháp dự phòng (Redundancy)
Giải pháp dự phòng rất đơn giản: nếu một thiết bị gặp trục trặc, thiết bị đó sẽ
được thay thế bởi một thiết bị khác mà không hoặc gây ít ảnh hưởng nhất đến hoạt động
của toàn bộ hệ thống. Thiết bị được thay thế sẽ thực hiện những chức năng giống như
thiết bị bị thay thế. Hầu hết các thiết bị trên thị trường đều có khả năng này.
Có một vài cách để thực hiện khả năng này. Cách thông thường nhất là sử dụng
hai thiết bị. Một giao thức sẽ được sử dụng bởi một trong hai thiết bị để kiểm tra tình
trạng hoạt động của thiết bị còn lại. Trong một vài tình huống, cả hai thiết bị đều hoạt
động, đáp ứng các luồng dữ liệu đến. Trong một vài tình huống khác, sẽ chỉ có một thiết
bị hoạt động chính, thiết bị còn lại sẽ được sử dụng trong tình huống hỏng hóc hoặc trục
trặc.
Vai trò của việc dự phòng
Trong giải pháp dự phòng, tồn tại một quan hệ là active - standby. Một thiết bị,
hay còn gọi là thiết bị đang hoạt động thực hiện một vài hoặc đầy đủ các chức năng

chính, trong khi đó thiết bị dự phòng sẽ đợi để thực hiện những chức năng này. Mối
quan hệ này cũng có thể được gọi là mối quan hệ master/slave.
Trong những tình huống nhất định, cả hai thiết bị sẽ là chủ (master) trong một vài
chức năng và làm phục vụ (slave) trong một vài chức năng khác nhằm phân tán tải.
Cũng trong một vài tình huống khác, cả hai thiết bị đều là chủ (master) của tất cả các
chức năng được chia sẻ giữa hai thiết bị. Quan hệ này còn được gọi là quan hệ active -
active.
Kịch bản Active - Standby (hoạt động - chờ)
Kịch bản dự phòng hoạt động - chờ là cách dễ nhất để thực hiện. Một thiết bị sẽ
nhận toàn bộ luồng dữ liệu đến, trong khi đó thiết bị còn lại sẽ chờ trong các tình huống
trục trặc.
Hình 2.1: Kịch bản Active – Standby
Nếu thiết bị đang hoạt động gặp trục trặc, một thiết bị kia sẽ xác định trục trặc và
nhận xử lý toàn bộ luồng dữ liệu đến.
Hình 2.2: Hoạt động của kịch bản Active - Standby
Kịch bản Active - Active
Có một vài biến thể của kịch bản này. Trong tất cả các trường hợp, cả hai thiết bị
đều chấp nhận xử lý luồng dữ liệu đến. Trong tình huống một trong hai thiết bị gặp trục
trặc thì thiết bị còn lại sẽ nhận thực thi luôn cả những chức năng của thiết bị gặp trục
trặc.
Trong một biến thể khác, VIPs được phân phối giữa hai thiết bị cân bằng tải
(Load Balancer - LB) để chia sẻ luồng dữ liệu đến. VIP 1 đến LB A, VIP 2 đến LB B.
Xem hình 2 - 3.
Hình 2.3: Kịch bản Active-Active
Trong một biến thể khác, cả hai VIPs sẽ đều trả lời trên cả hai LB với một giao
thức phá vỡ sự hạn chế rằng cả hai LB sẽ không có cùng một địa chỉ IP.
Hình 2.4: Hoạt động của kịch bản Active-Active
Trong tất cả các kịch bản active - active, nếu một LB gặp trục trặc, các VIP còn
lại sẽ tiếp tục trả lời trên LB còn lại. Những thiết bị còn lại sẽ thực thi hết tất cả các
chức năng. Hình 2-5.

1.3.2. Hoạt động của hệ thống cân bằng tải server
Ở phần trên đã tìm hiểu về các khái niệm và các thành phần cơ bản của hệ thống
cân bằng tải server. Phần tiếp theo này sẽ trình bày SLB hoạt động như thế nào nhìn trên
khía cạnh mạng. Mô hình SLB đơn giản được mô tả như ở hình dưới đây.
Hình 2.5: Hệ thống SLB đơn giản
SLB mở rộng hiệu nǎng của các server ứng dụng, chẳng hạn như Web server, nhờ
phân phối các yêu cầu của client cho các server trong nhóm (cluster). Các server (hay
còn gọi là host) đều nhận gói IP đến, nhưng gói chỉ được xử lý bởi một server nhất định.
Các host trong nhóm sẽ đồng thời đáp ứng các yêu cầu khác nhau của các client, cho dù
một client có thể đưa ra nhiều yêu cầu. Ví dụ, một trình duyệt Web cần rất nhiều hình
ảnh trên một trang Web được lưu trữ tại nhiều host khác nhau trong một nhóm server.
Với kỹ thuật cân bằng tải, quá trình xử lý và thời gian đáp ứng client sẽ nhanh hơn
nhiều.
Mỗi host trong nhóm có thể định ra mức tải mà nó sẽ xử lý hoặc tải có thể phân
phối một cách đồng đều giữa các host. Nhờ sử dụng việc phân phối tải này, mỗi server
sẽ lựa chọn và xử lý một phần tải của host. Tải do các client gửi đến được phân phối sao
cho mỗi server nhận được số lượng các yêu cầu theo đúng phần tải đã định của nó. Sự
cân bằng tải này có thể điều chỉnh động khi các host tham gia vào hoặc rời khỏi nhóm.
Đối với các ứng dụng như Web server, có rất nhiều client và thời gian mà các yêu cầu
của client tồn tại tương đối ngắn, khả nǎng của kỹ thuật này nhằm phân phối tải thông
qua ánh xạ thống kê sẽ giúp cân bằng một cách hiệu quả các tải và cung cấp khả nǎng
đáp ứng nhanh khi nhóm server có thay đổi.

×