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

tìm hiểu kỹ thuật cân bằng tải file 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 (2.31 MB, 77 trang )

ĐỒ ÁN TỐT NGHIỆP
MỤC LỤC
1
ĐỒ ÁN TỐT NGHIỆP
LỜI CẢM ƠN
Lời đầu tiên, nhóm em muốn gửi lời cảm ơn chân thành nhất tới Ths.Trương Tiến
Vũ, người đã trực tiếp hướng dẫn và có những lời góp ý, cùng nhiều tài liệu bổ ích để đề
tài này được hoàn thành.
Em cũng xin chân thành cảm ơn các thầy cô giáo khoa công nghệ thông tin đã tạo
điều kiện học tập và nghiên cứu trong những năm học tập vừa qua. Xin chân thành cảm
ơn các bạn học cùng lớp đã có những lời động viên quý báu trong suốt thời gian thực
hiện đề tài này.
Lời cuối, nhóm muốn gửi lời biết ơn sâu sắc tới gia đình của từng thành viên. Gia
đình luôn là nguồn động viên tinh thần và cổ vũ lớn lao, là động lực giúp nhóm thành
công trong học tập, công việc và cuộc sống.
Đà Nẵng, ngày 10 tháng 1 năm 2013
2
ĐỒ ÁN TỐT NGHIỆP
DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT
SLB Server load blancing Cân bằng tải máy chủ
NLB Network load blancing Cân bằng tải mạng
DNS Domain Name System Hệ thống tên miền
DFS Distributed File System Phân phối hệ thống tập tin
DANH MỤC HÌNH VẼ
Hình Trang
Hình 1.1. Cách làm việc của Cookie user = 1 11
3
ĐỒ ÁN TỐT NGHIỆP
Hình 1.2. Cookie read 12
Hình 1.3. Cookie – insert 13
Hình 1.4. Bộ cân bằng tải chèn 1 Cookie 14


Hình 1.5. Bộ cân bằng tải ghi đè 1 Cookie 15
Hình 1.6. Cân bằng tải sử dụng phần cứng 16
Hình 1.7. Xử lý các yêu cầu kết nối tập trung 19
Hình 2.1. So sánh hệ thống cân bằng tải server và hệ thống thường 23
Hình 2.2. Kịch bản Active – Standby 28
Hình 2.3. Hoạt động của kịch bản Active - Standby 28
Hình 2.4. Kịch bản Active – Active 29
Hình 2.5. Hoạt động của kịch bản Active - Active 29
Hình 2.6. Hoạt động của kịch bản Active - Active 30
Hình 2.7. Hệ thống SLB đơn giản 35
Hình 2.8. Cấu trúc thư mục thật sự của 1 hệ thống DFS 37
MỞ ĐẦU
I. Lý do chọn đề tài
Công nghệ mạng và các hệ thống máy chủ ngày nay đã có những bước phát triển
vượt bậc. Nhờ đó đáp ứng được các ứng dụng thương mại rộng lớn như các giao dịch tài
chính, hệ thống cơ sở dữ liệu, hệ thống web server, file server, các ứng dụng truyền
media…. Các ứng dụng này coa tần suất sử dụng cao, yêu cầu hoạt động liên tục. Do vậy,
hệ thống mạng phải có khả năng mở rộng tối ưu để đáp ứng được một lượng lớn các yêu
4
ĐỒ ÁN TỐT NGHIỆP
cầu ngày càng tăng của người dùng mà không gây ra bất kỳ một độ trễ không mong
muốn nào.
Một trong những xu hướng lựa chọn hệ thống mạng ngày nay là phân tán sự tính
toán giữa các hệ thống vật lý khác nhau. Các hệ thống vật lý này có thể khác nhau về quy
mô và chức năng. Chúng thường bao gồm các máy trạm, các máy tính mini và các hệ
thống máy tính đa năng lớn. Các hệ thống này thường được gọi là các nút. Sự nghiên cứu
về hệ thống mạng phân tán bao gồm nhiều lĩnh vực như: Mạng truyền thông, hệ điều
hành phân tán, cơ sở dữ liệu phân tán, lý thuyết về các hệ thống song song và phân tán,
cấu trúc nội mạng, độ tin cậy và khả năng chịu lỗi, hệ thống phân tán trong thời gian
thực, khả năng gỡ lỗi phân tán và các ứng dụng phân tán. Như vậy hệ thống mạng phân

tán bao gồm mạng vật lý, các nút và các phần mềm điều khiển. Có 5 lý do để xây dựng
một hệ thống mạng phân tán, đó là: chia sẻ tài nguyên, cải tiến sự tối ưu, độ tin cậy, khả
năng truyền thông và độ khả mở. Một trong những vấn đề thú vị nhất của hệ thống mạng
phân tán là cải tiến sự tối ưu của hệ thống qua sự cân bằng tải giữa các nút hay các máy
chủ.
Với lý do trên, em đã lựa chọn đề tài: “Tìm hiểu kỹ thuật cân bằng tải File Server”.
Đây là một vấn đề khá quan trọng trong việc thiết kế các hệ thống mạng hiện nay, các
trung tâm tính toán hiệu năng cao và các trung tâm dữ liệu phục vụ cho các ứng dụng lớn.
II. Mục tiêu
Đề tài này sẽ giúp chúng ta biết được các quá trình cần thiết để có thể cân bằng tải
cho một hệ thống mạng. Giúp ta biết sâu hơn về khái niệm cũng như chức năng cân bằng
tải của File Server 2008.
III. Phạm vi nghiên cứu
Trong quá trình nghiên cứu và tìm hiêu làm đề tài. Có rất nhiều vấn đề về cân bằng tải
trên server và các ứng dụng triển khai trên đó, nhưng ở đề tài này chỉ nghiên cứu một
5
ĐỒ ÁN TỐT NGHIỆP
mảng nhỏ của hệ thống cân bằng tải đó là File Server, nghiên cứu tổng quan về khái niệm
cân bằng tải, các chứng năng chính và phân loại cân bằng tải và cuối cùng là triển khai
giải pháp cân bằng tải trên File Server 2008.
IV. Phương pháp nghiên cứu
Đọc kỹ và nắm bắt các yêu cầu của đồ án đề ra. Đi sâu trong việc tìm kiếm tài liệu và
trình bày một cách hợp lý, chăm chú lắng nghe và tiếp thu những ý kiến đóng góp của
giáo viên hướng dẫn và các thầy cô.
V. Ý nghĩa khoa học và thực tiễn của đề tài
Về mặt lý thuyết, đề tài là một cách tiếp cận trong vấn đề tìm hiểu các vấn đề trong
cân bằng tải trên File Server, tìm hiểu về Windows Server 2008.
Về mặt thực tiễn, đề tài sẽ góp phần nâng cao khả năng tổ chức và triển khai cân bằng
tải trên File Server 2008 vào một hệ thống mạng nội bộ.
CHƯƠNG I: TỔNG QUAN VỀ CÂN BẰNG TẢI

1.1. Giới thiệu cân bằng tải
1.1.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ủ. Là cơ chế định tuyến các gói
tin qua các đường có metric bằng nhau. Cân bằng tải dùng để chia sẻ dữ liệu truyền trên
mạng giúp cho việc truyền tải thông suốt, không bị nghẽn mạng do quá tải hay do một sự
cố nào đó. Hoặc khi có một máy server nào đó bị trục trặc thì sẽ có máy server khác thay
6
ĐỒ ÁN TỐT NGHIỆP
thế để giúp nhận dữ liệu thay thế cho server bị trục trặc đó, giúp cho việc truyền tải
không bị ngừng do máy server bị lỗi đó gây ra.
1.1.2. Lợi ích cân bằng tải
• Tăng khả năng đáp ứng, tránh tình trạng quá tải trên máy chủ, đảm bảo tính
linh hoạt và mở rộng cho hệ thống.
• Tăng độ tin cậy và khả năng dự phòng cho hệ thống: Sử dụng cân bằng tải giúp
tăng tính HA (High Availability) cho hệ thống, đồng thời đảm bảo cho người dùng
không bị gián đoạn dịch vụ khi xảy ra lỗi sự cố lỗi tại một điểm cung cấp dịch vụ.
• Tăng tính bảo mật cho hệ thống: Thông thường khi người dùng gửi yêu cầu dịch
vụ đến hệ thống, yêu cầu đó sẽ được xử lý trên bộ cân bằng tải, sau đó thành phần
cân bằng tải mới chuyển tiếp các yêu cầu cho các máy chủ bên trong. Quá trình trả
lời cho khách hàng cũng thông qua thành phần cân bằng tải, vì vậy mà người dùng
không thể biết được chính xác các máy chủ bên trong cũng như phương pháp phân
tải được sử dụng. Bằng cách này có thể ngăn chặn người dùng giao tiếp trực tiếp với
các máy chủ, ẩn các thông tin và cấu trúc mạng nội bộ, ngăn ngừa các cuộc tấn công
trên mạng hoặc các dịch vụ không liên quan đang hoạt động trên các cổng khác.
1.2. Kỹ thuật cân bằng tải
Như chúng ta đã biết, 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 cứng hoặc phần mềm được cài đặt trên 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 SPOF
[
1
]
, cần thiết phải
1[1] SPOF(Single point of failure): Một điểm trong hệ thống mà nếu nó ngừng hoạt động, toàn bộ hệ
thống sẽ bị tê liệt
7
ĐỒ ÁN TỐT NGHIỆP
cài đặt 2 bộ cân bằng tải song song, hoạt động theo cơ chế active-active hoặc active-
standby.
1.2.1. 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ị nghĩ là dùng được. 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 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à rất thú vị. Một số test đôi khi phải cần 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 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 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ộ.
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. Thêm nữa, nếu như một bài 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.
1.2.2. Lựa chọn server tốt nhất
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
8
ĐỒ ÁN TỐT NGHIỆP
điểm là 2 requests liên tục từ một người dùng sẽ vào 2 servers khác nhau, thông tin giữa 2
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ẽ rất tốn 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. Vậy thì cách khắc phục cho những hạn chế trên là
gì? Đó chính là các kỹ Persistence.
1.2.3. Kỹ thuật Session Persistence
Như đã đề cập ở trên, 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.
Vậy thì câu trả lời cuối cùng là gì? Đó chính là sử dụng cookie. Cookie là một đối
tượng được điều khiển bởi Web Servers. Trong kết quả trả về cho người dùng web
servers sẽ chèn thêm một số thông tin. Những yêu cầu tiếp theo 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.
1.2.4. Cookie
Một cookie được định nghĩa bằng cặp tên=giá trị (name=value). Hình 1.1 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.
9
ĐỒ ÁN TỐT NGHIỆP
Hình 1.1. Cách làm việc của cookie user=1
Trong thiết kế của bộ cân bằng tải, có 3 cách để sử dụng cookie: Cookie chỉ đọc
(Cookie-Read), bộ cân bằng tải chèn cookie nhằm chứng thực server (Cookie-Insert) và
ghi đè cookie (Cookie-Rewrite).
+ Cookie-Read
Cách thức hoạt động của cookie-read được mô tả trong hình 1.2 dưới đây. 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ề này, đọ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 của yêu cầu HTTP (4). Bộ cân bằng tải sẽ đọc được cookie này, và do đó 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.

10
ĐỒ ÁN TỐT NGHIỆP
Hình 1.2. Cookie read
Ưu điểm của phương pháp cookie-read là nó không đòi hỏi bộ cân bằng tải phải
làm việc nhiều, 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. Nhược điểm của phương pháp này là ứng dụng ở server phải tạo ra một
cookie, điều này không khó khăn lắm, nhưng nó 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.
+ Cookie-Insert
Phương pháp này được mô tả trong hình 1.3. Trong phương pháp này, ứng dụng ở
server sẽ không làm gì cả. Kịch bản diễn ra tương tự như cookie-read, nhưng ở đây, khi
server trả về dữ liệu cho người dùng (2), bộ cân bằng tải sẽ xem là server nào trả về dữ
liệu, và chèn vào đó một cookie chứa thông tin về server này, chẳng hạn như cookie
server=1 trong hình vẽ. Khi người dùng kết nối lần tiếp theo, bộ cân bằng tải sẽ đọc
thông tin về cookie này, và chuyển hướng yêu cầu của người dùng vào đúng server RS1.
11
ĐỒ ÁN TỐT NGHIỆP
Hình 1.3. Cookie-insert
Ưu điểm của phương pháp này là nó “trong suốt” đối với ứng dụng được cài đặt
trên server, hay nói cách khác ứng dụng server sẽ không cần phải tạo ra một cookie hay
không cần quan tâm xem cookie là gì. Khi 1 server được thêm mới hoặc xóa bỏ, hoặc khi
file cấu hình của bộ cân bằng tải bị thay đổi, người quản trị hệ thống sẽ không cần phải lo
lắng về việc cập nhập file cấu hình cho server. Nhược điểm của phương pháp này là có
thể gây ra quá tải ở bộ cân bằng tải. Chúng ta có thể thấy rõ số lượng công việc mà bộ
cân bằng tải phải làm khi chèn 1 cookie trong hình 1.4. Vì cần phải chèn dữ liệu nên gói
dữ liệu trả về phải được sao lại 1 phần, vì vậy tăng dung lượng bộ nhớ cần thiết ở phía bộ
cân bằng tải, thêm vào đó còn tăng dung lượng gói tin trả về cho người dùng, có thể
khiến gói tin bị chia đôi, dẫn đến mất dữ liệu.
.

12
ĐỒ ÁN TỐT NGHIỆP
Hình 1.4 Bộ cân bằng tải chèn một cookie
+ Cookie-Rewrite
Phương pháp cookie-read không đòi hỏi bộ cân bằng tải phải làm quá nhiều việc
như cookie-insert, trong khi đó cookie-insert lại không yêu cầu ứng dụng phía server phải
tạo cookie còn cookie-read lại cần. Cần phải có một phương pháp dung hòa ưu và nhược
điểm của 2 phương pháp trên. Đó chính là phương pháp ghi đè cookie.
Nhược điểm lớn nhất trong cookie-insert là cần phải có một bộ nhớ phức tạp, và
thêm nữa có thể khiến gói tin bị chia thành 2 (do dung lượng vượt quá giá trị lớn nhất của
gói tin được chấp nhận ở Ethernet) và dẫn đến mất dữ liệu. Chuyện gì sẽ xảy ra nếu như
chúng ta tạo một chỗ trống ở gói tin để lưu giá trị cookie, và bộ cân bằng tải chỉ cần đặt
vào đó giá trị cần thiết. Trong phương pháp ghi đè cookie, được mô tả như hình 1.5 ở
dưới, ứng dụng sẽ chèn vào gói tin trả về một cookie server=XXX. Tất cả những gì bộ
cân bằng tải phải làm là tìm kiếm đoạn server=XXX này và thay “XXX” bằng giá trị ID
của server, chẳng hạn như server=001.
13
ĐỒ ÁN TỐT NGHIỆP
Hình 1.5 Bộ cân bằng tải ghi đè một cookie
Ưu điểm của phương pháp này là tránh cho bộ cân bằng tải làm việc quá mức và
tránh cho gói tin bị chia nhỏ. Bên cạnh đó nó cũng khắc phục được nhược điểm của
phương pháp cookie-read. Nó là phương pháp tốt nhất trong 3 phương pháp đã được đề
cập ở trên và thường được chọn để dùng trong các bộ cân bằng tải.
1.2.5. Cân bằng tải sử dụng phần cứng
Bộ cân bằng tải bằng phần cứng sẽ thể hiện một địa chỉ IP ảo đối với mạng bên
ngoài, địa chỉ này bản đồ hóa đến các địa chỉ của mỗi máy trong một cluster. Chính vì
vậy toàn bộ các máy tính trong cluster sẽ chỉ được xem như là một máy duy nhất đối với
thế giới bên ngoài. Bộ cân bằng tải sử dụng phần cứng thường hoạt động ở tầng mạng và
hoạt động dựa trên sự định tuyến, sử dụng một trong các phương pháp: Định tuyến trực
tiếp (direct routing), tunnelling, IP address translation (NAT).

Khi một request đến bộ cân bằng tải, nó sẽ ghi lại header của request để trỏ đến
các máy khác trong cluster. Nếu một máy nào đó bị gỡ bỏ từ cluster thì request sẽ không
chạy một cách rủi ro việc “hit” vào máy server đã chết này, vì tất cả các máy server khác
trong cluster xuất hiện đều có cùng địa chỉ IP. Địa chỉ này duy trì giống nhau thậm chí
nếu một nút nào đó trong cluster bị hỏng. Khi một đáp trả được trả về, client sẽ xem đáp
trả đang đến từ bộ cân bằng tải phần cứng. Hay nói theo cách khác thì người dùng sẽ xử
lý với một máy tính đó là bộ cân bằng tải sử dụng phần cứng.
14
ĐỒ ÁN TỐT NGHIỆP
Hình 1.6 Cân bằng tải sử dụng phần cứng
Ưu điểm của phương pháp này là:
• Mối quan hệ giữa các máy chủ. Bộ cân bằng tải phần cứng đọc cookie hoặc các
URL đang được đọc trên mỗi một request bởi máy khách. Dựa trên các thông tin này, nó
có thể ghi lại các thông tin header và gửi request đến nút thích hợp trong cluster, nơi
session của nó được duy trì.
Các bộ cân bằng tải này có thể cung cấp mối quan hệ giữa các máy server trong
truyền thông HTTP, nhưng không thông qua kênh an toàn như HTTPS. Trong kênh an
toàn, các thông báo được mã hóa SSL và có thể tránh bộ cân bằng tải đọc các thông tin
session.
• Khả năng có sẵn cao thông qua hệ thống tự động chuyển đổi dự phòng. Việc
chuyển đổi dự phòng xảy ra khi một nút trong cluster không thể xử lý một request và
chuyển hướng nó đến một nút khác. Có hai kiểu tự động chuyển đổi dự phòng:
15
ĐỒ ÁN TỐT NGHIỆP
 Yêu cầu mức chuyển đổi dự phòng. Khi một nút trong cluster không thể xử lý một
request (thường là vì bị hỏng) thì nó sẽ chuyển request này sang một nút khác.
 Chuyển đổi dự phòng session một cách trong suốt. Khi một lời triệu gọi thất bại,
nó sẽ được định tuyến một cách trong suốt đến một nút khác trong cluster để hoàn
tất công việc.
Bộ cân bằng kiểu này cung cấp chuyển đổi dự phòng mức request; tức là khi nó

phát hiện có một nút nào đó bị sự cố thì bộ cân bằng này sẽ chuyển hướng tất cả các
request theo sau được gửi đến nút này sang một nút tích cực khác trong cluster. Mặc dù
vậy, bất kỳ một thông tin session nào trên nút chết sẽ bị mất khi các request được chuyển
hướng đến một nút mới.
Chuyển đổi dự phòng session trong suốt yêu cầu một số kiến thức về sự thực thi
cho một quá trình trong một nút, vì bộ cân bằng tải phần cứng chỉ có thể phát hiện các
vấn đề mức mạng, không có lỗi. Để thực thi một cách trong suốt về vấn đề chuyển đổi dự
phòng, các nút trong cluster phải kết hợp với các nút khác và có vùng bộ nhớ chia sẻ hoặc
cơ sở dữ liệu chung để lưu tất cả các dữ liệu session. Cũng chính vì vậy nếu một nút
trong cluster có vấn đề thì một session có thể tiếp tục trong một nút khác.
• Metrics. Vì tất cả các yêu cầu tới một ứng dụng web đều phải qua hệ thống cân
bằng tải, hệ thống có thể quyết định số lượng session hoạt động, số lượng session hoạt
động được kết nối trong các trường hợp khác nhau, các khoảng thời gian đáp ứng, thời
gian tối đa điện áp, số lượng session trong suốt khoảng tối đa điện áp, số lượng session
trong suốt khoảng tối thiểu điện áp… Tất cả các thông tin kiểm định này được sử dụng để
tinh chỉnh toàn bộ hệ thống nhằm tối ưu hiệu suất.
1.2.6 Cân bằng tải máy chủ với phần mềm
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
16
ĐỒ ÁN TỐT NGHIỆP
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.7. Cân bằng tải với 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 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.8. Cân bằng tải với thiết bị 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
17
ĐỒ ÁN TỐT NGHIỆP
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).
1.2.9. Xử lý các yêu cầu kết nối tập trung
Thay vì ủy quyền cho DNS việc phân phối những yêu cầu đến các server riêng lẻ
trong một cluster, phuơng pháp xử lý các yêu cầu kết nối tập trung (Centrallized
Connection Routing - CCR) sử dụng một router cục bộ để thực hiện chức năng này.
Hình 1.7. Xử lý các yêu cầu kết nối tập trung
Router hoạt động như một bảng chuyển mạch, phân phối các yêu cầu dịch vụ đến các
node riêng lẻ trong cluster.
Ưu điểm của kĩ thuật CCR:
18
ĐỒ ÁN TỐT NGHIỆP
• Việc định huớng lại cho các kết nối Client đến các server thích hợp trong hệ thống
là hoàn toàn trong suốt với người dùng.
• Tính linh hoạt cao: khi phát hiện một node bị chết, local router sẽ chuyển tất cả
các yêu cầu kế tiếp đến node khác đang hoạt động.
Nhuợc điểm của kĩ thuật CCR:
• Khi kết nối từ client đến routẻ tăng cao toàn bộ hệ thống sẽ gặp tình trạng nút cổ
chai ngay tại thiết bị này.
• Thiết bị router là thiết bị phần cứng nên giá thành cao.
• Khi thiết bị trung tâm hong toàn bộ hệ thống sẽ ngưng hoạt động do đó tính chịu
lỗi thấp.
Tóm lại, kỹ thuật xử lý các yêu cầu kết nối tập trung rõ ràng đã giải quyết được vấn đề
cân bằng tải trên mạng. Tuy nhiên kỹ thuật này có tính chịu lỗi thấp và chi phí cao.
CHƯƠNG II. GIẢI PHÁP CÂN BẰNG TẢI TRÊN FILE SERVER
2.1. GIỚI THIỆU CÂN BẰNG TẢI TRÊN FILE SERVER

2.1.1. Giới thiệu Windows Server 2008
Window Server 2008 là hệ điều hành cho máy chủ được sản xuất bởi Microsoft,
được giới thiệu giới thiệu ngày 04 tháng 02 năm 2008 có nhiều tính năng hơn so với hệ
điều hành Windowns 2000 và Windows Server 2003 trước đó. Windowns Server 2008
thiết kế nhằm tăng sức mạnh cho các mạng, ứng dụng và dịch vụ Web thế hệ mới. Với
Windows Server 2008, bạn có thể phát triển, cung cấp và quản lý các trải nghiệm người
19
ĐỒ ÁN TỐT NGHIỆP
dùng và ứng dụng phong phú, đem tới một hạ tầng mạng có tính bảo mật cao, và tăng
cường hiệu quả về mặt công nghệ và giá trị trong phạm vi tổ chức của mình. Windows
Server 2008 kế thừa những thành công và thế mạnh của các hệ điều hành Windows
Server thế hệ trước, đồng thời đem tới tính năng mới có giá trị và những cải tiến mạnh
mẽ cho hệ điều hành cơ sở này. Công cụ Web mới, công nghệ ảo hóa, tính bảo mật tăng
cường và các tiện ích quản lý giúp tiết kiệm thời gian, giảm bớt các chi phí, và đem tới
một nền tảng vững chắc cho hạ tầng Công nghệ Thông tin của bạn. Hệ điều hành
Windows Server 2008 hiện có 7 phiên bản bao gồm: Windows Server 2008 Standard
(Bản tiêu chuẩn), Windows Server 2008 Enterprise (Bản dungfcho doanh nghiệp),
Windows Server 2008 Datacenter (Bản dùng cho trung tâm dữ liệu), Windows Web
Server 2008 (Bản dùng cho Web), Windows Server 2008 dành cho các hệ thống dựa trên
nền tảng Itanium, Windows Server 2008 Standard without Hyper-V (Bản tiêu chuẩn,
không có Hyper-V), cuối cùng là bản Windows Server 2008 Datacenter without Hyper-V
(Bản dùng cho Trug tâm dữ liệu, không có Hyper-V). Hệ điều hành tiếp theo đã phát
hành trên thị trường là Windows Server 2012 (hay còn gọi là Windows Server 8) (WS8)
là tên mã cho hệ điều hành Windows tương lai được phát triển bởi Microsoft. Nó là một
phiên bản Windows 8 và nối tiếp phiên bản Windows Server 2008 R2. Windows Server 8
là phiên bản Windows Server đầu tiên không hỗ trợ cho các máy tính dựa nền tảng kiến
trúc Itanium từ lúc ra đời Windows NT 4.0. Một phiên bản phát triển thử nghiệm (phiên
bản Beta) được công bố vào ngày 9 tháng 9 năm 2011 tới các lập trình viên phát
triển MSDN. Vào ngày 1 tháng 3 năm 2012, Microsoft phát hành phiên bản Beta công
cộng beta (build 8250).

2.1.2. 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 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
20
ĐỒ ÁN TỐT NGHIỆP
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
21
ĐỒ ÁN TỐT NGHIỆP
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.
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
2.1.3. So sánh hệ thống cân bằng tải server và hệ thống thông thường
Hình 2.1. So sánh hệ thống cân bằng tải server và hệ thống thông thường
Ư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.
22
ĐỒ ÁN TỐT NGHIỆP
- 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…
2.2. Các thành phần của cân bằng tải File Server
2.2.1. Chức năng của các thành phần cân bằng tải File Server
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:
• 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).
23
ĐỒ ÁN TỐT NGHIỆP
• 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
24
ĐỒ ÁN TỐT NGHIỆP
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
25

×