LỜI CẢM ƠN
Qua một thời gian học tập và hoàn thành đồ án tốt nghiệp với đề
tài :“Nghiên cứu và triển khai kỹ thuật cân bằng tải trên Microsoft windows
server 2008” . Nhân dịp này:
Em xin chân thành cảm ơn sự giúp đỡ và đóng góp ý kiến của các thầy, cô
giáo trong bộ môn mạng và truyền thông – khoa công nghệ thông tin- Đại học
Công Nghệ Thông Tin và Truyền Thông – Đại Học Thái Nguyên.
Cuối cùng, em xin được gửi tới thầy giáo đã trực tiếp hướng dẫn em thực
hiện đồ án này: ThS. Đinh Xuân Lâm lời cảm ơn chân thành và sâu sắc nhất.
Thầy đã tận tình chỉ bảo và giúp đỡ em hoàn thành bản báo cáo này.
Em xin chân thành cảm ơn !!!
Thái nguyên, tháng 06 năm 2012
Sinh viên :Võ Thị Thu Trang
1
LỜI CAM ĐOAN
Em xin cam đoan:
Những nội dung trong báo cáo này là do em thực hiện dưới sự hướng dẫn
trực tiếp của thầy giáo hướng dẫn :ThS. Đinh Xuân Lâm.
Mọi tham khảo dùng trong báo cáo đều được trích dẫn rõ ràng tên tác giả,
tên công trình, thời gian, địa điểm công bố.
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo em xin chịu hoàn
toàn trách nhiệm.
Thái nguyên, tháng 06 năm 2012
Sinh viên :Võ Thị Thu Trang
2
TRÊN MICROSOFT WINDOWS SERVER 2008 ”.
Cấu trúc đồ án tốt nghiệp của em bao gồm các nội dung chính sau:
- CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ CLUSTERING VÀ LOAD
BALANCING
- CHƯƠNG 2: CÔNG NGHỆ CLUSTERING VÀ LOAD BALANCING
- CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG NETWORK
LOAD BALANCING
Dưới sự hướng dẫn của thầy giáo Th.S Đinh Xuân Lâm qua một thời
gian nghiên cứu, tìm hiểu em đã hoàn thành đồ án tốt nghiệp của mình. Do thời
gian có hạn, vốn kiến thức còn hạn chế nên không thể tránh khỏi những thiếu sót
5
và những khuyết điểm về câu chữ. Em rất mong nhận được những đóng góp quý
báu của các thầy các cô để bản đồ án của em được hoàn thiện hơn nữa.
Một lần nữa em xin chân thành cảm ơn thầy giáo Th.S Đinh Xuân Lâm,
các thầy cô trong khoa CNTT - Đại Học Công Nghệ Thông Tin và Truyền
Thông và các bạn đã giúp đỡ em hoàn thành đồ án này.
Sinh viên thực hiện
Võ Thị Thu Trang
6
CHƯƠNG 1
TỔNG QUAN VỀ CÔNG NGHỆ CLUSTERING VÀ NETWORK LOAD
BALANCING
1.1Tổng quan về đề tài
1.1.1 Mục tiêu của đề tài
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.
NLB 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 tính luôn khả dụng trước các client.
NLB 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 NLB 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. NLB hoạt động như thế nào NLB 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
8
tải và cung cấp khả nǎng đáp ứng nhanh khi nhóm server có thay đổi. Các server
trong nhóm cân bằng tải phát đi một bản tin đặc biệt thông báo trạng thái hoạt
của mình với tính sẵn sàng cao, để mà họ có thể dựa vào chúng với những dịch
vụ liên tục.
Tính sẵn sàng cao cũng là một ưu tiên hàng đầu của Microsoft. Các sản
phẩm và chương trình của Microsoft có thể giúp bạn đạt được tính sẵn sàng cao
hơn cho máy chủ và các tải công việc của bạn ở các mức độ khác nhau, từ mức
cơ bản của việc sử dụng nhiều phần cứng cho tới những phương pháp tập trung
nhất của việc clustering máy chủ.
Sẵn sàng cao là bản chất của các ứng dụng quan trọng được cung cấp một
cách nhanh chóng và đáng tin cậy cho khách hàng với các dịnh vụ tìm kiếm. Nếu
một khách hàng không có các dịch vụ của công ty mà sau đó chúng ta lại không
có sẵn các dịch vụ dự phòng. Giả sử Công ty kiếm tiền để duy trì cuộc sống kinh
doanh chỉ với 1 điều : căn cứ vào khách hàng có mua sắm trực tuyến được hay
không. Giả sử khi thất bại công ty sẽ xử lý thất bại này như thế nào. Bất cứ một
quản trị viên nào cần chịu trách nhiệm về một sự cố liên quan đến toàn bộ thời
gian của hệ thống sẽ biết thế nào về sự sụp đổ của công ty và sự giận dữ của
giám đốc của họ.
Tính sẵn sàng cao làm cho thời hạn hệ thống lên đến 99.999 phần trăm
thời gian hệ thống, là con đường xung quanh nó (hay còn gọi là Five Nine).Five
Nines là thuật ngữ để nói rằng dịch vụ hoặc hệ thống sẽ tăng gần 100% thời gian
làm việc.Để đạt được mức độ sẵn có cần triển khai các hệ thống có thể tồn tại
trong thất bại.Các cách thực hiện này thông qua Clustering và Load Balancing.
Đề tài này cũng sẽ tìm hiểu các hình thức mang tính sẵng sàng cao chẳng hạn
như mảng dự phòng không tốn kém ổ đĩa (Raid) và dự phòngtrong tất cả các
khía cạnh của phần cứng và phần mềm.
Định Nghĩa: Theo thuật ngữ chung, tính sẵn sàng cao có thể được định
nghĩa là sự triển khai một giao thức thiết kế hệ thống bảo đảm mức độ liên tục
hoạt động trong một khoảng thời gian định sẵn. Nó chỉ mức độ phục vụ mà các
ứng dụng, dịch vụ và các hệ thống cung cấp. Tính sẵn sàng cao có thể mô tả các
mục đích kinh doanh và các yêu cầu kỹ thuật, từ những mục đích chỉ bao gồm
Clustering có nghĩa là cung cấp tính sẵn sàng cao. Clustering là 1 nhóm
các máy hoạt động như 1 thực thể duy nhất cung cấp tài nguyên và dịch vụ cho
hệ thống. Trong 1 khoảng thời gian lỗi, 1 failover sẽ xảy ra với 1 hệ thống trong
nhóm duy trì tính sẵn sàng cao của hệ thống. Điều đó có thể cảnh báo được sự
thất bại, sai sót của hệ thống và đưa hệ thống trở lại trực tuyến và tham gia như 1
nhà cung cấp dịch vụ nhiều hơn.
Hình 1.2 Giải Pháp Clustering
Trong hình 1.2 chúng ta có thể xem giải pháp cluster cung cấp gì . Một điểm lỗi
được loại bỏ vì bây giờ có thêm hình thức dự phòng.
12
Ưu điểm của hệ thống Cluster Server:
+ Cung cấp tính sẵn sàng cao:
−
Hệ thống Server Cluster cung cấp tính luôn sẵng sàng cho các ứng dụng
và các service ngay cả khi các thành phần hardware hay software bị lỗi.
− Khi một server trong Cluster bị fail, quyền sở hữu tài nguyên của nó
như là các ổ đĩa và IP address tự động chuyển tới một server khác còn
hoạt động.
+ Cung cấp khả năng dễ mở rộng:
Khi các ứng dụng trong Cluster sử dụng tài nguyên hệ thống vượt quá khả
năng của nó, ta có thể dễ dàng add thêm node vào cluster để đáp ứng nhu cầu
truy cập hay dễ dàng thêm vào nhiều bộ xử lý ( 8 CPU cho Windows Server 2003
Enterprise Edition và 32 CPU cho Windows Server Datacenter Edition) hoặc
thêm bộ nhớ RAM (8GB cho Windows Server 2003 Enterprise Edition và 64GB
tới các resource chung này. Một resource chung đặc biệt được biết như là
Quorum resource – là một ổ đĩa vật lý trong dãy các ổ đĩa chung của Cluster
đóng một vai trò quan trọng trong các hoạt động của Cluster. Nó phải được dành
riêng cho hoạt động của các node như tạo một Cluster hay thêm node.
Resource group :
Resource group là một tập hợp logic của các resource trong một Cluster.
Một resource group tiêu biểu được tạo ra bởi các resource liên kết logic với nhau
như là các ứng dụng và các thiết bị ngoại vi và dữ liệu kết hợp với các ứng dụng
đó. Resource group cũng có thể chứa đựng các thực thể của cluster và chỉ được
liên kết khi cần như là các server ảo và địa chỉ IP. Một resource group tại một
thời điểm chỉ được sở hữu bởi một node và các resource riêng lẻ bên trong group
đó phải tồn tại trên node đó. Các node khác trong Cluster không thể sở hữu các
resource group khác nhau trong cùng một resource group.
Failover and Failback Clustering:
Failover:Quá trình failover có thể xảy ra một cách tự động. Khi một node
trong Cluster bị hỏng, các resource group của nó sẽ được chuyển tới một hay
nhiều node trong Cluster mà còn hoạt động được. Quá trình tự động failover
tương tự như lập kế hoạch cho việc tái chỉ định quyền sở hữu các resource.
Failover yêu cầu xác định các resource group nào đang chạy trên node bị
hỏng và các node nào nên giữ quyền sở hữu các resource group đó. Tất cả các
14
node trong Cluster mà có khả năng giữ các resource group đó tiến hành đàm
phán với nhau để lấy quyền sở hữu. Quá trình đàm phán dựa trên khả năng của
node, tải hiện hành, khả năng phản hồi ứng dụng hay danh sách node ưu tiên.
Danh sách node ưu tiên là một phần của các thuộc tính trong resource group và
được dùng để chỉ định một resource group tới một node. Khi việc đàm phán
quyền sở hữu resource group được hoàn tất, tất cả các node trong Cluster cập
tầng hoặc một máy chủ DNS).
Nó thường được sử dụng để trung gian truyền thông nội bộ trong các
computer clusters ( cụm máy tính ) , đặc biệt là high-availability clusters .
Giả sử trang web của bạn có 2000 lượt người truy cập mỗi tháng. Và vào
1 tháng nào đó lượt truy cập của bạn bất ngờ tăng gấp 2 đến 3 lần rất có thể hệ
thống của bạn sẽ bị quá tải và không hoạt động được.
Khách hàng không thể chờ đợi thời gian để được đáp ứng nhu cầu hoặc tệ
hơn là không thể vào được tất cả các trang web. Hãy tưởng tượng nếu có hai
máy chủ sever cùng cung cấp dịch vụ cho các trang web. Bây giờ hệ thống có 1
sự thay thế để làm chậm thời điểm phản hồi bằng cách thêm vào 1 máy chủ thứ 2
hoặc thứ 3, các thời gian đáp ứng sẽ được cải thiện cho khách hàng. Tính sẵn
sàng cao được cung cấp bởi vì luôn có các trang web hoặc dịch vụ của bạn có
sẵn khi truy cập vào cộng đồng internet.
17
Window 2000 cho phép dịch vụ Load Balancing rất tốt. Một dạng khác
của Load balancing tồn tại, đó là mặc dù khi có 1 địa chỉ ip cho toàn bộ Load
Balancing Cluster (đối với Window Server 2000 có thể lên đến 32 node) và bằng
cách sử dụng thuật toán mỗi nút trong Cluster sẽ giúp tải trọng toàn bộ dữ liệu
lưu lượng truy cập. Ngoài ra có thể sử dụng giải pháp bên thứ 3 Load Balancing
theo cách này. Cách làm việc của mạng lưới cân bằng tải làm việc do có một giao
thức ở giữa là TCP/IP và card NIC . Trình điều khiển này được cài đặt khi áp
dụng dịch vụ trên tất cả các nút của Cluster. Tất cả các nút tham gia bằng cách sử
dụng 1 giao thức internet và 1 địa chỉ ip ảo (virtual ip). Chỉ có 1 node đáp ứng
mỗi lần nhưng đây là các nút khác nhau trong Cluster. Hệ thống có nhiều lợi ích
bằng cách sử dụng window 2000 với các giải pháp cân bằng tải trong đó bao gồm
Load Balancing, hội tụ trong suốt, thêm và loại bỏ các máy chủ khi cần thiết và
phân công các máy chủ nhất định trong Load Balancing Cluster với các tải trọng
chủ nhóm khi có cần phải được tăng. Chúng ra cũng có thể loại bỏ các máy chủ
này khi quá trình kết thúc. Điều tuyệt vời của giải pháp này là hệ thống có thể
tìm đến nó thay vì giữ thiết bị cần thiết trên tay tất cả các năm. Điều quan trọng
ở đây là phải hiểu các chức năng có để có thể lập kế hoạch , thuê phần cứng của
máy chủ khi cần thiết. Nếu hệ thống cần bốn máy chủ để bắt đầu, chúng ta sẽ
phải điều tra cơ bản các máy chủ và trong suốt thời gian hoạt động tập trung lại
phải điều tra cơ bản lại một lần nữa. Hệ thống sẽ tìm được cách chia tải hoặc
phải thêm một máy chủ và hệ thống để có thể sống sót với lượng truy cập lớn với
phần cứng bổ sung mà hệ thống có. Dù bằng cách nào, chúng ta chỉ có thể xác
định được điều này bằng cách thực hiện giám sát hệ thống và số lượng người truy
cập mỗi tháng.
b. Các quy định và nhiệm vụ ưu tiên
19
Cách cấu hình khó khăn nhất trong cân bằng tải là các mối quan hệ, quy
tắc Port và các nhiệm vụ quan trọng. Chúng ta sẽ mất nhiều thời gian để lên kế
hoạch và đọc hiểu đầy đủ nếu chưa quen thuộc với giải pháp này.Nhiệm vụ của
đề tài này làm sáng tỏ các cấu hình để có thể ên kế hoạch thiết kế và cài đặt.Tải
trọng của tất cả các biến trongCluster Load Balance có thể được tùy biến theo
các cổng và được sử dụng để xác định trọng tải và ưu tiên.
1.2.4 Ưu và nhược điểm của Clustering và Load Balancing
Vậy tại sao sử dụng công nghệ Clustering và Load Balancing có tốt hơn
hay ko ? chúng ta có thể biết được điều này khi đọc xong quyển đề tài này, khi
bạn biết tất cả các chi tiết để thực hiện 1 trong 2 giải pháp. Để cung cấp một tóm
tắt nhanh về ưu điểm và khuyết điểm của từng công nghệ, ta đưa ra xem xét sau
đây. Với Clustering hệ thống sẽ phụ thuộc vào các node Cluster thực tế, để đưa ra
quyết định về trạng thái của mạng và phải làm gì khi xảy ra sự cố. Nếu node A
nằm trong Cluster và node B bị quá tải thì node A sẽ thay thế trực tuyến. Với
lượng truy cập
Không cần phần cứng chuyên dụng, ( chú ý về Card mạng )
Thường được dùng cho máy chủ Web, Máy chủ ISA , Máy chủ VPS , Máy
chủ
Media, Máy chủ , Máy chủ Teminal, di động,...
−
Chạy ở chế độ Active
Cluster :
−
−
−
Các Node lưu trữ cùng một nơi
Failover và failback của các ứng dụng
Phải dùng thiết bị lưu trữ chuyên dụng đắt tiền kiểu SCSI , Fibre Chanel ,
Seria Attach SCSI , ISCSI
− Thường được chạy cho các máy chủ MS SQL Server, MS Exchange
−
Server, File Server ,....
Chạy ở 2 chế độ Active và Passive
1.3 “Hot Spare”
1.3.1 “Hot Spare” là gì ?
Một “Hot Spare” hoặc một chế độ dự phòng được sử dụng như là một cơ
chế chuyển đổi dự phòng để cung cấp độ tin cậy trong các cấu hình hệ thống.
22
1.3.2 Tính cần thiết phải cấu phải cấu hình các máy dự phòng “ Hot Spare”
Bây giờ chúng ta nhìn vào lý do tại sao dự phòng của hệ thống là rất quan
trọng và sự lựa chọn khi có Cluster. Được dự phòng (hoặc dư thừa) là thuật ngữ
được sử dụng để giải thích quá những gì cần thiết. Nếu điều này được áp dụng
cho 1 hạ tầng công nghệ thông tin, điều đó sẽ được hiểu dễ dàng khi có 1 nguồn
cung cấp điện cho máy chủ, sau đó hai nguồn cung cấp năng lượng sẽ vượt quá
những điều cần thiết. Tất nhiên trong khoảng thời gian bị lỗi, chúng ta luôn mong
muốn vượt qua những sự cố của hệ thống, nên sự cần thiết của dự phòng là hiển
nhiên nếu muốn công ty vẫn hoạt động được khi có sự cố. Sự cần thiết của dự
phòng là rõ ràng trong một thế giới mang tính sẵn sàng cao. có thể dự phòng bất
cứ điều gì trên thị trường. Giả sử chúng ta có thể mua máy chủ DELL hoặc
COMPAQ với nguồn cung cấp điện dự phòng, nếu một trong không thành công
thì, nhận ra sự khác biệt. Khi có một nguồn điện dự phòng trong thiết bị chuyển
mạch Cisco Catalyst, ví dụ như 1 Catalyst 4006 bạn có thể có đến 3 nguồn cung
cấp dự phòng. Điều này hoàn toàn là thiết kế khi mà b muốn cấu hình mạng
chính của hệ thống. Một mạng dự phòng có thể vượt quá thành phần phần cứng
và đi vào cấu hình định tuyến trong các router c và khu vực giao thức công nghệ
wan chẳng hạn như công nghệ Frame Relay trên bề mặt và router quay xung
quanh bằng cách sử dụng ISDN. Tóm lại các dịch vụ dự phòng là chìa khóa cho
1 hệ thống có tính sẵn sàng cao.
1.4 Khả năng mở rộng
Khả năng mở rộng là sự lựa chọn cho sự phát triển của hệ thống và vượt
ra ngoài những gì hệ thống được thực hiện ngày hôm nay. Nếu nói một giải
pháp có khả năng mở rộng có nghĩa là có thể nói ta có thể thêm hai máy chủ để
tạo thành nhóm Cluster khi cần tăng trưởng. Khả năng mở rộng (hoặc có thể là
quy mô) là thuật ngữ để chỉ khả năng phát triển lên hoặc ra khỏi giải pháp hiện
tại của hệ thống.
nhanh chóng làm mất lòng tin vào giải pháp của microsoft. Niềm tin được khôi
phục khi hầu hết các bản sửa lỗi được Microsoft cung cấp 1 công cụ gọi là “cài
đặt các dịch vụ tốt nhất”. Tóm lại dịch vụ này đã phát triển theo cấp số nhân với
phiên bản mới hơn của Window OS, trở thành giải pháp cơ sở hạ tầng đáng tin
cậy của hệ thống. Khi thiết kế 1 nhóm NT, bạn nhận ra rằng sever NT 4.0 không
hỗ trợ Cluster nhưng vẫn hỗ trợ Load Balancing. Window NT 4.0 Enterprise
Edition sẽ làm việc với cân bằng tải và có thể tập trung 2 nút.
1.5 Window 2000 Clustering và Load Balancing
Khi bản Window 2000 xuất hiện ra công chúng, nó đã trải qua các cuộc
thử nghiệm và đưa ra bản RC (Realease Candidate). Ban đầu hệ thống đột nhiên
ít bị màn hình xanh (BSOD) và độ tin cậy là có thể đạt được. Và bây giờ sau 1
vài gói dịch vụ vá lỗi được phát hành, đây vẫn là lực lượng cần tính đến. Chúng
ta biết rằng Window sever 2000 không chứa các dịch vụ để Cluster và Load
Balance. Để giống như window NT 4.0 Enterprise Edition chúng ta có bản nâng
cao của window 2000 còn gọi là máy chủ window 2000 nâng cao. Đây là sản
phẩm mà với nó chúng ta có thể Cluster và Load Balancing. Để cạnh tranh với
các máy chủ cao cấp trên thị trường, Microsoft cũng phát hành 1 bản cao cấp của
Window 2000 được gọi là máy chủ dữ liệu Window 2000, cho phép không chỉ
Clustering và Load Balancing mà còn cho phép số node lên đến 4 thay vì 2.
Những thiết kế sau đây là cần phải nhớ: máy chủ window 2000 không hỗ trợ
Cluster và Load Balancing trừ trung tâm ứng dụng 2000 là có cài đặt; và trung
tâm máy chủ dữ liệu Window hỗ trợ 4 nút Cluster và Load Balancing.
Để hiểu rõ vị trí của Microsoft trong dịch vụ này, nên biết Microsoft cung
cấp 4 loại dịch vụ.Với Window 2000 hệ thống có máy chủ Microsoft Cluster,
Network Load Balancing, Component Load Balancing và một sản phẩm gọi là
25