Trong mạng máy tính máy chủ đóng vai trò quan trọng trong toàn bộ hệthống mạng, nó là trung tâm, là nơi điều hành mọi hoạt động của toàn bộ hệthống mạng, nếu máy chủ mạng hỏng, hoạt động
Trang 1LỜ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ọcCô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
Trang 2LỜ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àntoàn trách nhiệm
Thái nguyên, tháng 06 năm 2012
Sinh viên :Võ Thị Thu Trang
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC HÌNH ẢNH 5
LỜI MỞ ĐẦU 7
CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ CLUSTERING VÀ NETWORK LOAD BALANCING 9
1.1 Tổng quan về đề tài 9
1.1.1 Mục tiêu của đề tài 9
1.1.2 Ý nghĩa của đề tài 9
1.2 Một vài khái niệm cơ bản 11
1.2.1 Thế nào là tính sẵn sàng cao? 11
1.2.2 Cluster 13
1.2.3 Thế nào là Load Balancing ? 19
1.2.4 Ưu và nhược điểm của Clustering và Load Balancing 22
1.3 “Hot Spare” 23
1.3.1 “Hot Spare” là gì ? 23
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” 25 1.4 Khả năng mở rộng 25
1.4.1 Mở rộng quy mô hướng lên (Scale up) 25
1.4.2 Mở rộng quy mô hướng ra (Scale out) 26
1.5 Window 2000 Clustering và Load Balancing 27
CHƯƠNG 2: CÔNG NGHỆ CLUSTERING VÀ NETWORK LOAD BALANCING 29
2.1 Công nghệ Clustering 29
2.1.1 Cấu trúc Clustering 30
2.1.2 Chế độ hoạt động của Clustering 32
2.1.3 Tính mở của Clustering 34
2.2 Network Load Balancing 35
Trang 42.2.1 Kiến trúc hệ thống cân bằng tải 37
2.2.2 Phân phối lưu lượng trong nhóm 38
2.2.3 Thuật toán cân bằng tải 42
2.2.4 Sự hội tụ của thuật toán 44
2.2.5 Thông lượng và thời gian đáp ứng yêu cầu 46
CHƯƠNG 3: MÔ PHỎNG NETWORK LOAD BALANCING TRÊN WINDOWS SERVER 2008 48
3.1 Nội dung thực hiện 48
3.2 Các bước chuẩn bị 49
3.3 Cài đặt Network Load Balancing và cấu hình 55
3.3.1 Cài đặt 55
3.3.2 Cấu hình Network Load Balancing 56
KẾT LUẬN 70
1 Tóm tắt nội dung 70
2 Mục tiêu đạt được 71
3 Hướng phát triển của đề tài 72
TÀI LIỆU THAM KHẢO 73
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 74
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1: Ví dụ về tính sẵn sàng cao 13
Hình 1.2 Giải Pháp Clustering 14
Hình 1.3 Cấu hình Failover clustering 17
Hình 1.4: Hoạt động/thụ động Clustering 18
Hình 1.5 giải pháp A NLB 20
Hình 1.6: Ví dụ về “Hot Spare” 24
Hình 1.7 mở rộng quy mô hệ thống 26
Hình 2.1: Mô hình Clustering 30
Hình 2.2: Hệ thống Custer có 2 ứng dụng hoạt động song song trên mỗi node 31
Hình 2.3: Hai hệ thống Cluster độc lập chứa 2 ứng dụng khác nhau 32
Hình 2.4: Hai node Active được dự phòng bởi node Passive 32
Hình 2.5 Nguyên lý hoạt động của một Cluster 33
Hình 2.6: Kỹ thuật cân bằng tải 36
Hình 2.7: Ví dụ về Phương thức triển khai hệ thống cân bằng tải 40
Hình 2.8: Mô hình Network Load Balancing 42
Hình 2.9: Quá trình hội tụ 45
Hình 2.10: Mô hình phân phối lưu lượng NLB 46
Hình 3.1: 3 máy ảo trên nền VMWare 49
Hình 3.2: Mô hình mô phỏng Network Load Balancing 49
Hình 3.3: Cửa sổ Server Manager 50
Hình 3.4: Click chọn Web Server (IIS) 51
Hình 3.5: Chọn Add Requied Features trong cửa sổ Add Roles Wizard 52
Hình 3.6: Web Server (IIS) đã được cài đặt 54
Hình 3.7: Chọn Add Features trong cửa sổ Server Manager 56
Hình 3.8: Click chọn Network Load Balancing 57
Hình 3.9: Network Load Balancing 58
Hình 3.10: Nhập địa chỉ IP của Server 1 vào cửa sổ New Cluster 59
Hình 3.11: Độ ưu tiên 60
Trang 6Hình 3.12: Add địa chỉ IP của Server 1 vào Cluster 61
Hình 3.13 Địa chỉ IP ảo 62
Hình 3.14: Domain Name của 2 web 64
Hình 3.15: Edit port 66
Hình 3.16: Quá trình cài đặt tiếp theo 67
Hình 3.17: Nhập địa chỉ IP của Server 2 69
Hình 3.18: Độ ưu tiên cho host 2 70
Hình 3.19: Kết nối 2 Server 72
Hình 3.20: Khi một Server ngừng hoạt động 73
Hình 3.21: Kết quả khi cả 2 Server ngừng hoạt động 74
Trang 7LỜI MỞ ĐẦU
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ủamạ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ínhcủa đơn vị, và thiệt hại khó có thể lường trước được
Trong mạng máy tính máy chủ đóng vai trò quan trọng trong toàn bộ hệthống mạng, nó là trung tâm, là nơi điều hành mọi hoạt động của toàn bộ hệthống mạng, 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ấtlượ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, và công nghệ clustering (bó) là câu trả lời cho vấn
đề này Đó cũng là lý do thôi thúc em tìm hiểu về kĩ thuật cân bằng tải và ứngdụng của nó trên Window Server Đó cũng là nội dung chính của đề tài em lựa
chọn là: ”NGHIÊN CỨU VÀ TRIỂN KHAI KỸ THUẬT CÂN BẰNG TẢI 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ờigian 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
Trang 8và 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ềnThô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
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ CÔNG NGHỆ CLUSTERING VÀ NETWORK LOAD
BALANCING1.1 Tổng quan về đề tài
1.1.1 Mục tiêu của đề tài
Ngày nay khi dịch vụ sử dụng internet ngày càng lớn và các server đangtrở lên quá tải thì việc đưa ra một giải pháp hiệu quả ngoài việc chọn các server
có cấu hình cao là việc cần thiết để có thể tiết kiệm chi phí đầu tư Kĩ thuật cânbằng tải chính là giải pháp cho vấn đề này
Đề tài này nhằm mục tiêu nghiên cứu các định nghĩa về cân bằng tải, cáchthức hoạt động và kiến trúc của công nghệ clustering và load balancing ngoài racòn xây dựng chương trình mô phỏng về ứng dụng của kĩ thuật cân bằng tải trênwindow Server
Trong quá trình tìm hiểu và thực hiện đề tài, em đã hết sức cố gắng nhưng
có thể còn thiếu sót, em rất mong nhận được sự chỉ bảo, góp ý và thông cảmcủa các thầy cô giáo, để em có cơ hội được tiếp tục nghiên cứu sâu hơn nữa vàphát triển về đề tài này
1.1.2 Ý nghĩa của đề tài
Hiện nay, khi nhu cầu truy nhập mạng bùng nổ, các server cung cấp dịch
vụ đang trở nên quá tải 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 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ềuhã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ảivẫn xuất phát từ những quan điểm kỹ thuật khá tương đồng Giới thiệu Hiện nay,
Trang 10khi nhu cầu truy nhập mạng bùng nổ, các server cung cấp dịch vụ đang trở nênquá tải Việc lựa chọn một server đơn lẻ có cấu hình cực mạnh để đáp ứng nhucầu này sẽ kéo theo chi phí đầu tư rất lớn 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ộtcô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ảipháp cân bằng tải như Cisco, Coyote Point, Sun Microsystems với rất nhiềutí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ấtphá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òncung 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ânphối các yêu cầu của client cho các server trong nhóm (cluster) Các server (haycòn gọi là host) đều nhận gói IP đến, nhưng gói chỉ được xử lý bởi một servernhất định Các host trong nhóm sẽ đồng thời đáp ứng các yêu cầu khác nhau củacác client, cho dù một client có thể đưa ra nhiều yêu cầu Ví dụ, một trình duyệtWeb 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ácnhau trong một nhóm server Với kỹ thuật cân bằng tải, quá trình xử lý và thờigian đáp ứng client sẽ nhanh hơn nhiều Mỗi host trong nhóm có thể định ra mứctả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ảicủ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ằmphâ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
Trang 11tải và cung cấp khả nǎng đáp ứng nhanh khi nhóm server có thay đổi Các servertrong 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động của nó (gọi là heartbeat message) tới các host khác trong nhóm đồng thờinghe bản tin này từ các khác host khác Nếu một server trong nhóm gặp trục trặc,các host khác sẽ điều chỉnh và tái phân phối lại tải để duy trì liên tục các dịch vụcho các client Trong phần lớn các trường hợp, phần mềm client thường tự độngkết nối lại và người sử dụng chỉ cảm thấy trễ một vài giây khi nhận được đáp ứngtrả lời Kiến trúc hệ thống cân bằng tải Để tối đa hoá thông lượng và độ khảdụng, công nghệ cân bằng tải sử dụng kiến trúc phần mềm phân tán hoàn toàn,trình điều khiển cân bằng tải được cài đặt và chạy song song trên tất cả các hosttrong nhóm Trình điều khiển này sắp xếp tất cả các host trong nhóm vào mộtmạng con để phát hiện đồng thời lưu lượng mạng đến địa chỉ IP chính của nhóm(và các địa chỉ bổ sung của các host ở nhiều vị trí khác nhau).
Ngoài những ứng dụng tích hợp trong Windows2000, NLB còn có thể tíchhợp trong các hệ điều hành mạng và các ứng dụng chạy trên server khác mộtcách hiệu quả
1.2 Một vài khái niệm cơ bản
1.2.1 Thế nào là tính sẵn sàng cao?
Tính sẵn sàng cao là một ưu tiên hàng đầu cho nhiều hoạt động kinhdoanh Từ các doanh nghiệp nhỏ và trong vùng cho tới các doanh nghiệp toàncầu ngày càng có nhiều ngành đòi hỏi các công ty với dịch vụ khách hàng vàmáy tính cao hơn Sự dựa vào nhiều hơn đối với các hệ thống dựa trên máy chủ
để trang bị hoạt động kinh doanh có nghĩa là các dịch vụ máy chủ đó cũng cầnvận chuyển liên tục
Các ứng dụng quan trọng, như CSDL doanh nghiệp và email, thường cầnđược ở trong các hệ thống và cấu trúc mạng được thiết kế cho tính sẵn sàng cao.Điều này cũng đúng với các Website bán lẻ và các hoạt động kinh doanh trên nềnweb khác Các tổ chức nhận ra rằng họ phải lên kế hoạch và cấu hình hệ thống
Trang 12củ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ảnphẩm và chương trình của Microsoft có thể giúp bạn đạt được tính sẵn sàng caohơ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 trungnhấ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ộtcá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ếumộ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 kinhdoanh chỉ với 1 điều : căn cứ vào khách hàng có mua sắm trực tuyến được haykhô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ộtquả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ờigian 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ủagiá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ămthời gian hệ thống, là con đường xung quanh nó (hay còn gọi là Five Nine).FiveNines là thuật ngữ để nói rằng dịch vụ hoặc hệ thống sẽ tăng gần 100% thời gianlà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ạitrong 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ạnnhư mảng dự phòng không tốn kém ổ đĩa (Raid) và dự phòngtrong tất cả cáckhí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ụchoạ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ácmục đích kinh doanh và các yêu cầu kỹ thuật, từ những mục đích chỉ bao gồm
Trang 13phần cứng cho tới các mục đích nhiệm vụ của một dịch vụ trên tổng thể—nhưng
nó luôn bao gồm việc giảm thiểu thời gian lỗi
Hình 1.1: Ví dụ về tính sẵn sàng cao
Failover Clustering trong Windows Server 2008 mang lại tính sẵn sàng vàkhả năng tùy biến cao cho các ứng dụng quan trọng như CSDL, hệ thống nhắntin, dịch vụ file và máy in, và lượng công việc ảo hóa Đa máy chủ (các nút)trong một nhóm vẫn duy trì giao tiếp Nếu một trong những nút ở một nhóm trởnên không sẵn sàng (bị lỗi hoặc đang được bảo trì), một nút khác ngay lập tức bắtđầu dịch vụ Những người sử dụng đang truy cập dịch vụ tiếp tục truy cập dịch
vụ và không biết được rằng hiện dịch vụ đang được cung cấp từ một máy chủ(nút) khác
1.2.2 Cluster
Clustering là một kiến trúc nhằm đảm bảo nâng cao khả năng sẵn sàng chocác hệ thống mạng máy tính Clustering cho phép sử dụng nhiều máy chủ kết hợpvới nhau tạo thành một cụm (cluster) có khả năng chịu đựng hay chấp nhận saisót (fault-tolerant) nhằm nâng cao độ sẵn sàng của hệ thống mạng Cluster là một
hệ thống bao gồm nhiều máy chủ được kết nối với nhau theo dạng song song hayphân tán và được sử dụng như một tài nguyên thống nhất Nếu một máy chủngừng hoạt động do bị sự cố hoặc để nâng cấp, bảo trì, thì toàn bộ công việc mà
Trang 14máy chủ này đảm nhận sẽ được tự động chuyển sang cho một máy chủ khác(trong cùng một cluster) mà không làm cho hoạt động của hệ thống bị ngắt haygián đoạn Quá trình này gọi là “fail-over”; và việc phục hồi tài nguyên của mộtmáy chủ trong hệ thống (cluster) được gọi là “fail-back”.
Clustering có nghĩa là cung cấp tính sẵn sàng cao Clustering là 1 nhómcá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 trongnhó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ư 1nhà cung cấp dịch vụ nhiều hơn
Trang 15+ 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ầutruy 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 cho Datacenter Edititon)
+ Cung cấp sự dễ dàng trong quản lý :
Ta có thể dùng Cluster Administrator tools để quản lý một Cluster như
là một hệ thống đơn và quản lý một ứng dụng khi chúng chạy trên mộtserver đơn
Có thể di chuyển các ứng dụng giữa các server khác nhau bên trong mộtCluster
Có thể chuyển đổi lượng công việc giữa các server hay đặt server ởtrạng thái không hoạt động cho kế hoạch bảo trì
Có thể giám sát trạng thái của Cluster, tất cả các node và tài nguyên từbất kỳ nơi nào trong mạng
Node :
Node Là một server thuộc một Cluster nào đó mà trên đó các ứng dụng vàCluster service được cài đặt
Trang 16Resource 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 nhaunhư 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ỉ đượcliên kết khi cần như là các server ảo và địa chỉ IP Một resource group tại mộtthờ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ácresource 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
Trang 17nhiều node trong Cluster mà còn hoạt động được Quá trình tự động failovertươ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ácnode trong Cluster mà có khả năng giữ các resource group đó tiến hành đàmphá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ủanode, 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ánquyền sở hữu resource group được hoàn tất, tất cả các node trong Cluster cậpnhật database của chúng và tiếp tục theo dõi node sở hữu resource group đó
Hình 1.3 Cấu hình Failover clustering
Một ví dụ về hệ thống failover trong hình 1.3 Nếu có 2 nút Cluster và có
1 thất bại xảy ra các dịch vụ sẽ chuyển đổi dự phòng đến máy chủ còn lại
Trang 18Hình 1.4: Hoạt động/thụ động Clustering
Failback: Khi một node trở lại phục vụ, Cluster trả lại quyền sở hữu tài
nguyên cho nó và nó sẵn sàng để thực hiện yêu cầu
Trang 19Failback là khả năng máy chủ không thành công để trở laị trực tuyến và tải về các máy chủ gốc không thành công.
1.2.3 Thế nào là Load Balancing ?
Load Balancing sử dụng 1 thiết bị Đó có thể là máy chủ hoặc thiết bị đểcân bằng tải lưu lượng truy cập trên nhiều máy chủ để chờ được phân chia lưulượng Thiết bị gửi lưu lượng dựa trên thuật toán cho máy ít nhất hoặc phân chiađều cho các máy trong cùng thời điểm hiện tại
Trong mạng máy tính, cân bằng tải là một kỹ thuật để phân phối khốilượng công việc đồng đều giữa hai hoặc nhiều máy tính, kết nối mạng, CPU, ổcứng, hoặc các nguồn lực khác, để có được sử dụng nguồn lực tối ưu, tối đa hóathông lượng, giảm thiểu thời gian đáp ứng, và tránh tình trạng quá tải Sử dụngnhiều thành phần với cân bằng tải, thay vì một thành phần duy nhất, có thể làmtăng khả năng làm việc Các dịch vụ cân bằng tải thường được cung cấp bởi mộtchương trình chuyên dụng hoặc thiết bị phần cứng (như là một chuyển mạch đatầ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áccomputer 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ó haimá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ứ 2hoặc thứ 3, các thời gian đáp ứng sẽ được cải thiện cho khách hàng Tính sẵnsà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
Trang 20Window 2000 cho phép dịch vụ Load Balancing rất tốt Một dạng kháccủa Load balancing tồn tại, đó là mặc dù khi có 1 địa chỉ ip cho toàn bộ LoadBalancing Cluster (đối với Window Server 2000 có thể lên đến 32 node) và bằngcá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ệulưu lượng truy cập Ngoài ra có thể sử dụng giải pháp bên thứ 3 Load Balancingtheo 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 giaothức ở giữa là TCP/IP và card NIC Trình điều khiển này được cài đặt khi ápdụ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 ứngmỗi lần nhưng đây là các nút khác nhau trong Cluster Hệ thống có nhiều lợi íchbằ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ồmLoad 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ọngxác định.
Window 2000 đủ thông minh để hiểu những nút có được trong cluster Vànếu 1 trong đó bị lỗi, nó có thể tổng hợp Cluster dựa trên các nút mới để tiếp tụcLoad Balancing 1 cách chính xác
Hình 1.5 giải pháp A NLB
Tất cả các máy trong Network load balancing đều trao đổi các tin nhắnhoạt động để thông báo cho các máy chủ mặc định biết họ vẫn hoạt động trongCluster Khi một máy chủ không gửi tin nhắn hoặc trả lời tin nhắn nhịp tim Mộtquá trình bắt đầu gọi là hội tụ Trong thời gian hội tụ các host vẫn còn hoạt động
Trang 21được xác nhận và xem chúng có thể chấp nhận tải hay không Khi một máy chủgia nhập nhóm chúng cũng gửi một gói tin nhịp tim và cũng có thể gây ra hội tụxảy ra Khi tất cả các Cluster đồng ý với trạng thái của Cluster thì việc phân chiatải ngừng lại và hội tụ kết thúc NLB theo dõi node mặc định với mức cao nhấtđược ưu tiên theo dõi cân bằng tải cho các node còn lại trong nhóm và nếu node
bị ảnh hưởng có thể hội tụ nhóm để bầu lại node mặc định mới
a Thêm và xóa các máy chủ
Window 2000 Load Balancing giúp cho hệ thống có thể dễ dàng thêmhoặc xóa các node trong Cluster Window 2000 Sever nâng cao có thể có đến 32node vì thế hệ thống có thể bắt đầu với 8 node và tăng con số đó lên khi cầnthiết Khi cấu hình ứng dụng Center 2000, sẽ thấy rằng đây là 1 phần của sảnxuất phù hợp với các giải pháp mang tính sẵn sàng cao Tải của hệ thống khôngphải luôn luôn như nhau Ví dụ như một trang web thương mại điện tử chuyênbán quà trên internet Trong tháng 12 vào dịp giáng sinh, số lượng yêu cầu tănglên hai đến ba lần điều đó có nghĩa là khi muốn thiết kế các giải pháp, giải phóngcân bằng tải có thể hoạt động bình thường với tám máy chủ Và sau đó thêm máychủ 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ủamá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ạiphả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ặcphả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ớiphầ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 truycập mỗi tháng
b Các quy định và nhiệm vụ ưu tiên
Trang 22Cách cấu hình khó khăn nhất trong cân bằng tải là các mối quan hệ, quytắ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ảitrọng của tất cả các biến trongCluster Load Balance có thể được tùy biến theo cáccổ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ơnhay ko ? chúng ta có thể biết được điều này khi đọc xong quyển đề tài này, khibạ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ómtắ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 Anằm trong Cluster và node B bị quá tải thì node A sẽ thay thế trực tuyến VớiLoad Balancing một thiết bị duy nhất (1mạng client) sẽ gửi lưu lượng vào bất kỳnút nào có sẵn trong nhóm Load Balancing Load Balancing hoạt động tốt trongtrường hợp này khi 1 node ko hoạt động, các tải còn lại được tính toán giữa cácnode Ngoài ra với Clustering ( không Load Balancing bạn thường bị hạn chếhoặc giảm số 1 số lượng nhỏ các node tham gia) , giả sử muốn thực hiện giảipháp Cluster với máy chủ Window 2000, bạn có thể sử dụng 1 cụm 2 nút LoadBalancing có thể thực hiện số nút lên đến 32 nút, và nếu sử dụng công cụ tiệních thứ 3 có thể có quy mô hơn con số đó Thậm chí có thể kết hợp trên nền hệđiều hành nếu cần thiết, bao gồm cả Sun Solaris hay hệ thống nào khác có thểchạy các dịch vụ trên đó Phần này chỉ đơn gIản là cung cấp 1 ý tưởng về các sựlựa chọn cho hệ thống
Cuối cùng hệ thống có thể tùy chọn để thiết lập theo từng cấp các dịch vụ
và kết hợp cả 2 kiến trúc (Load Balancing và Cluster) cùng nhau Giả sử có thểthiết lập các tầng đầu tiên vào các Web Sever của bạn như Load Balancing và cáctầng cuối cùng của nhóm bạn thiết lập theo Clustering
Trang 23Sự khác nhau giữa Network Load Balancing và Cluster
Network Load Balancing:
Các Node có thể lưu trữ cùng một nơi , hoặc lưu trữ riêng biệt
Cân bằng tải Transmission Control Protocol (TCP) và UDP (UDP) lưu 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.Các“Hot Spare”đang hoạt động và kết nối như là một phần của một thệ thốnglàm việc Khi một thành phần quan trọng không, “Hot Spare” được chuyển vàohoạt động Nói chung, một chế độ chờ có thể được sử dụng để tham khảo bất kỳthiết bị hoặc hệ thống được tổ chức trong sẵn sàng để vượt qua một độ trễ nếukhông đáng kể start-up
Trang 24Hot Spare là một máy có thể mua và cấu hình như một hình ảnh phảnchiếu khi ta muốn thay thế khi lỗi xảy ra Hình 1.5 cho thấy ví dụ về việc sử dụng
“Hot Spare” Một “Hot Spare” chỉ được dành khi có sự cố hoặc nó có thể khôngđược sử dụng, chờ đợi khi có sự cố xảy ra Khi sự cố xảy ra, các “Hot Spare”được đưa ra trực tuyến để tham gia tại các vị trí của hệ thống mà lỗi xảy ra Đâykhông phải là một ý tưởng tốt vì hệ thống ngồi nhàn rỗi mà không được sử dụng,
và trong nhiều cửa hàng, nó sẽ được mượn để làm những thứ khác Điều đó cónghĩa là không bao giờ có “Hot Spare” đúng nghĩa Đối với các quản trị viên, cóthể giữ các “Hot Spare” như 1 phụ kiện, có thể sử dụng các chúng như một cânbằng tải của các tải Vậy tại sao cần phải cấu hình các “Hot Spare” trong thờigian xảy ra lỗi Khi khách hàng mất kết nối và bạn phải gỡ bỏ các máy cũ và thaythế bằng các máy mới và tất cả các khách hàng lại kết nối được Hoặc tệ hơnkhách hàng có thể tức giận và chuyển qua một cửa hàng trực tuyến khác nếu đó
là một máy chủ web lưu trữ một trang thương mại điện tử Thiết lập “Hot Spare”như một máy chủ thứ hai là không cần thiết nhưng có một cách tốt hơn Đó là đặtmáy thứ hai trong một Cluster Mặc dù các phương pháp dự phòng nóng có thể
là quá khứ tuy nhiên nó vẫn còn được sử dụng khá rộng rãi trong các hệ thốngkhông có tính sẵn sàng cao nhưng vẫn cần các hình thức có tính sao lưu dựphòng
Hình 1.6: Ví dụ về “Hot Spare”
Trang 251.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 quantrọ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ụngcho 1 hạ tầng công nghệ thông tin, điều đó sẽ được hiểu dễ dàng khi có 1 nguồncung 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 mongmuố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ểnnhiê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ặcCOMPAQ với nguồn cung cấp điện dự phòng, nếu một trong không thành côngthì, nhận ra sự khác biệt Khi có một nguồn điện dự phòng trong thiết bị chuyểnmạch Cisco Catalyst, ví dụ như 1 Catalyst 4006 bạn có thể có đến 3 nguồn cungcấ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ạngchí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 xungquanh 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ảiphá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ệntại của hệ thống
1.4.1 Mở rộng quy mô hướng lên (Scale up)
Trang 26Mở rộng quy mô là một thuật ngữ được sử dụng khi xây dựng 1 máy chủ.Nếu bạn có 1 máy chủ và máy chủ đó cung cấp các dịch vụ in ấn cho máy chủ,chúng ta có thể muốn gia tăng bộ nhớ cho nó vì trong khi thực hiện giám sát cácmáy chủ, ta nhận thấy rằng bộ nhớ ảo liên tục bị phân trang từ đĩa cứng Thực tế
là khi thêm vào một hệ thống duy nhất và xây dựng nó lên , không bổ sung cho
hệ thống để chia sẻ tải có nghĩa là bạn được nhân rộng như hình 1.4
1.4.2 Mở rộng quy mô hướng ra (Scale out)
Mở rộng quy mô hướng ra là Clustering như hình 1.6 Khi có một máychủ cung cấp web cho khách hàng và trong khi giám sát thực hiện có thể thấy sốlần truy cập tăng lên 50% 1 tháng Điều đó vượt quá giới hạn phần cứng của hệthống nhưng công ty lại không muốn thêm nhiều tài nguyên cho máy tính đơnnày Và khi quyết định thêm một máy khác và tạo ra Cluster Chúng ta có thể
mở rộng quy mô hướng ra
Hình 1.7 mở rộng quy mô hệ thống
Trước khi tìm hiểu 1 cách tổng quan cao cấp hơn của Cluster và LoadBalancing với Window 2000 và Window Sever 2008, ta nên bắt đầu từ điểm này.Máy Microsoft Cluster có tên mã là “Wolfpack” gọi là không đáng tin cậy Một
Trang 27loạt các vấn đề xảy ra khi chạy các dịch vụ bao gồm cả chậm hiệu suất khi sửdụng Fibre Chanel và 1 số lượng lớn các ổ đĩa cứng ngừng phục vụ khách hànghoàn toàn không có lý do hợp lý, chỉ sau đó mới khám phá được các lỗi xảy ra.Điều này đã đánh bại toàn bộ mục đích của clustering ở thời điểm đầu tiên vànhanh chóng làm mất lòng tin vào giải pháp của microsoft Niềm tin được khôiphụ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ớiphiên bản mới hơn của Window OS, trở thành giải pháp cơ sở hạ tầng đáng tincậ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 EnterpriseEdition 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ộcthử 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 1và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à LoadBalance Để giống như window NT 4.0 Enterprise Edition chúng ta có bản nângcao của window 2000 còn gọi là máy chủ window 2000 nâng cao Đây là sảnphẩm mà với nó chúng ta có thể Cluster và Load Balancing Để cạnh tranh vớicá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ủaWindow 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à trungtâ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 cungcấ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à
Trang 28trung tâm ứng dụng 2000 Khi ta biết về ứng dụng chi tiết về trung tâm ứng dụng
2000, có thể nhận ra rằng hệ thống có thể kết nối tất cả các thành phần khác nhautạo thành một chiếc ô quản lý dễ dàng Trong phần tiếp theo ta sẽ đi vào xâydựng và cấu hình trên máy chủ Window 2000
Trang 29CHƯƠNG 2 CÔNG NGHỆ CLUSTERING VÀ NETWORK LOAD BALANCING 2.1 Công nghệ Clustering
Việc thiết kế và lắp đặt các cluster cần thoả mãn các yêu cầu sau:
Yêu cầu về tính sẵn sàng cao (availability) Các tài nguyên mạng phải
luôn sẵn sàng trong khả năng cao nhất để cung cấp và phục vụ các người dùngcuối và giảm thiểu sự ngưng hoạt động hệ thống ngoài ý muốn
Yêu cầu về độ tin cậy cao (reliability) Độ tin cậy cao của cluster được
hiểu là khả năng giảm thiểu tần số xảy ra các sự cố, và nâng cao khả năng chịuđựng sai sót của hệ thống
Yêu cầu về khả năng mở rộng được (scalability) Hệ thống phải có khả
năng dễ dàng cho việc nâng cấp, mở rộng trong tương lai Việc nâng cấp mởrộng bao hàm cả việc thêm các thiết bị, máy tính vào hệ thống để nâng cao chấtlượng dịch vụ, cũng như việc thêm số lượng người dùng, thêm ứng dụng, dịch vụ
và thêm các tài nguyên mạng khác
Ba yêu cầu trên được gọi tắt là RAS (Reliability-Availability-Scalability),những hệ thống đáp ứng được ba yêu cầu trên được gọi là hệ thống RAS (cầnphân biệt với Remote Access Service là dịch vụ truy cập từ xa)
Cũng cần chú ý rằng hiệu quả hoạt động của hệ thống Clustering phụthuộc vào sự tương thích giữa các ứng dụng và dịch vụ, giữa phần cứng và phầnmềm Ngoài ra, kỹ thuật clustering không thể chống lại các sự cố xảy ra do virus,sai sót của phần mềm hay các sai sót do người sử dụng Để chống lại các sự cốnày cần xây dựng một cơ sở dữ liệu được bảo vệ chắc chắn cũng như có các kếhoạch khôi phục, backup dữ liệu
Trang 30Hình 2.1: Mô hình Clustering
2.1.1 Cấu trúc Clustering
Cluster được tổ chức thành các nhóm gọi là các farm hay pack Trong hầuhết các trường hợp, các dịch vụ ở tầng trước và giữa (front-end and middle-tiersservices) được tổ chức thành các farm sử dụng các clone, trong khi đó các dịch
vụ tầng sau (back-end services) được tổ chức thành các pack Các khái niệmfarm, pack và clone trong hệ thống cluster sẽ được làm rõ ngay dưới đây
Cluster Farm là một nhóm các máy chủ chạy các dịch vụ giống nhau,
nhưng không dùng chung cơ sở dữ liệu Được gọi là farm (trang trại) bởi vìchúng xử lý bất cứ yêu cầu nào gửi đến cho chúng bằng các bản sao cơ sở dữ liệu(tài nguyên) giống hệt nhau được lưu giữ cục bộ, chứ không dùng chung một bản
cơ sở dữ liệu Cũng bởi tính chất này nên các máy chủ thành viên của farm làmviệc độc lập và chúng được gọi là clone (clone là máy tính được thiết kế để môphỏng chức năng của máy tính khác)
Cluster Pack là một nhóm các máy chủ hoạt động cùng với nhau và chia
sẻ với nhau các phần của cơ sở dữ liệu Được gọi là pack (khối) vì sự hoạt động
Trang 31của các máy chủ thành viên của pack có liên hệ chặt chẽ với nhau và chúng làmviệc theo một phương thức thống nhất để quản lý và duy trì các dịch vụ.
Trong Cluster tùy theo nhu cầu mà chúng ta có thể triển khai nhiều ứngdụng trên cùng 1 Cluster hay cài đặt trên mỗi node 1 ứng dụng, nói chung cấutrúc của 1 cluster không cố định nhưng chủ yếu chúng ta thấy hữu ích nhất là cácloại cấu trúc sau:
Thứ nhất: Nếu ta triển khai 2 ứng dụng stateful trên hệ thống cluster thì có
1 phương pháp đơn giản là cài đặt cả 2 ứng dụng ấy vào mỗi node của Cluster(hình 2.2) Ở cấu trúc này thì 2 ứng dụng trên cùng 1 server do đó nếu ứng dụngnày bị lỗi thì sẽ ảnh hưởng đến ứng dụng kia, hiệu quả của hệ thống Cluster thấp
Hình 2.2: Hệ thống Custer có 2 ứng dụng hoạt động song song trên mỗi node
Thứ hai: Tạo 2 hệ thống Cluster riêng lẻ, trong mỗi Cluster cài đặt duy
nhất 1 ứng dụng (Hình 2.3) Ở cấu trúc này thì hệ thống sẽ hiệu quả hơn nếu cóứng dụng nào đó bị lỗi thì cũng không ảnh hưởng đến các ứng dụng khác Nhưngchi phí đầu tư cho kiểu này rất cao bởi vì số lượng các node cho mỗi ứng dụngnhiều hơn loại 1
Trang 32Hình 2.3: Hai hệ thống Cluster độc lập chứa 2 ứng dụng khác nhau
Thứ ba: Triển khai cả 2 ứng dụng trên cùng 1 Cluster, mỗi node cài 1 ứng
dụng nhưng khác với loại 1 là sẽ có 1 cluster làm nhiệm vụ backup Cụ thể nhưhình2.4 cho ta thấy hệ thống này có 1 node passive dùng làm backup và cài cả 2ứng dụng của node 1 và node 2 (2 node hoạt động) Nếu 1 trong 2 node này bị lỗithì node thụ động sẽ thay thế chức năng của node bị lỗi Hệ thống này có hiệuquả cao hơn 2 loại trước
Hình 2.4: Hai node Active được dự phòng bởi node Passive
2.1.2 Chế độ hoạt động của Clustering
Mỗi máy chủ trong cluster được gọi là một nút (cluster node), và có thểđược thiết lập ở chế độ chủ động (active) hay thụ động (passive) Khi một nút ởchế dộ chủ động, nó sẽ chủ động xử lý các yêu cầu Khi một nút là thụ động, nó
sẽ nằm ở chế độ dự phòng nóng (stanby) chờ để sẵn sàng thay thế cho một nút
Trang 33khác nếu bị hỏng Nguyên lý hoạt động của Cluster có thể biểu diễn như tronghình 3.5.
Hình 2.5 Nguyên lý hoạt động của một Cluster
Trong một cluster có nhiều nút có thể kết hợp cả nút chủ động và nút thụđộng Trong những mô hình loại này việc quyết định một nút được cấu hình làchủ động hay thụ động rất quan trọng Để hiểu lý do tại sao, hãy xem xét các tìnhhuống sau:
- Nếu một nút chủ động bị sự cố và có một nút thụ động đang sẵn sàng,
các ứng dụng và dịch vụ đang chạy trên nút hỏng có thể lập tức được chuyểnsang nút thụ động Vì máy chủ đóng vai trò nút thụ động hiện tại chưa chạy ứngdụng hay dịch vụ gì cả nên nó có thể gánh toàn bộ công việc của máy chủ hỏng
mà không ảnh hưởng gì đến các ứng dụng và dịch vụ cung cấp cho người dùngcuối (Ngầm định rằng các các máy chủ trong cluster có cấu trúc phần cứng giốngnhau)
- Nếu tất cả các máy chủ trong cluster là chủ động và có một nút bị sự cố,
các ứng dụng và dịch vụ đang chạy trên máy chủ hỏng sẽ phải chuyển sang mộtmáy chủ khác cũng đóng vai trò nút chủ động Vì là nút chủ động nên bìnhthường máy chủ này cũng phải đảm nhận một số ứng dụng hay dịch vụ gì đó, khi
có sự cố xảy ra thì nó sẽ phải gánh thêm công việc của máy chủ hỏng Do vậy để
Trang 34đảm bảo hệ thống hoạt động bình thường kể cả khi có sự cố thì máy chủ trongcluster cần phải có cấu hình dư ra đủ để có thể gánh thêm khối lượng công việccủa máy chủ khác khi cần.
Trong cấu trúc cluster mà mỗi nút chủ động được dự phòng bởi một nútthụ động, các máy chủ cần có cấu hình sao cho với khối lượng công việc trungbình chúng sử dụng hết khoảng 50% CPU và dung lượng bộ nhớ
Trong cấu trúc cluster mà số nút chủ động nhiều hơn số nút bị động, cácmáy chủ cần có cấu hình tài nguyên CPU và bộ nhớ mạnh hơn nữa để có thể xử
lý được khối lượng công việc cần thiết khi một nút nào đó bị hỏng
Các nút trong một cluster thường là một bộ phận của cùng một vùng(domain) và có thể được cấu hình là máy điều khiển vùng (domain controllers)hay máy chủ thành viên Lý tưởng nhất là mỗi cluster nhiều nút có ít nhất hai nútlàm máy điều khiển vùng và đảm nhiệm việc failover đối với những dịch vụ vùngthiết yếu Nếu không như vậy thì khả năng sẵn sàng của các tài nguyên trêncluster sẽ bị phụ thuộc vào khả năng sẵn sàng của các máy điều khiển trongdomain
2.1.3 Tính mở của Clustering
Một vấn đề mà các nhà đầu tư xây dựng hệ thống cần quan tâm là khảnăng mở rộng của hệ thống Clustering Tuỳ theo yêu cầu cụ thể các cluster có thểcần phải thêm các máy chủ vào Cluster, hoặc thêm CPU và RAM cho các máychủ để tăng khả năng đảm nhận công việc cho các máy chủ đã có
Muốn mở rộng Cluster bằng cách thêm các server, thì cả hai yếu tố là
Kỹ thuật clustering lẫn Hệ điều hành mà server sử dụng đều quan trọng Ví dụnhư trình bày trong bảng 2 sau đây, sự khác nhau cơ bản về khả năng mở rộngcủa Advanced Server và Datacenter Server là số nút có thể dùng với Cluster VớiWindows 2000, số nút máy chủ của Cluster tối đa là 4, trong khi đó với Windows.NET, số nút máy chủ của Cluster tối đa là 8
Trang 35Bảng 2 Số nút tối đa tương ứng với các hệ điều hành và kỹ thuật Clustering
Hệ điều hành Kỹ thuật ClusteringTên gọi Phiên bản Cân bằng
tải mạng
Cân bằng tảithành phần
Dịch vụCluster
Muốn mở rộng Cluster bằng cách thêm vào các CPUs và RAM thì việc
đang dùng hệ điều hành nào là vấn đề rất quan trọng Ví dụ như Hệ điều hànhWindow 2000 Advanced Server hỗ trợ tối đa 8 bộ vi xử lý và 8 GB RAM, trongkhi đó Window 2000 Datacenter Server hỗ trợ tối đa 32 bộ vi xử lý và 64 GBRAM Như vậy, có thể phải nâng cấp hệ điều hành từ Advanced Server lênDatacenter Server nếu yêu cầu thêm CPU và RAM vượt quá khả năng của hệđiều hành đang dùng
2.2 Network Load Balancing
Server đang là nền tảng phân phối các ứng dụng quan trọng, thường xuyên
và rộng khắp như Web, Streaming media, VPN Như một phần tích hợp củaWindows Advanced Server và Datacenter Server, Network Load Balancing(NLB) cung cấp một giải pháp lý tưởng, kinh tế để tăng cường tính khả mở vàkhả dụng cho các ứng dụng trên cả môi trường Internet và intranet
NLB mở rộng hiệu năng của các server ứng dụng, chẳng hạn như WebServer, 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
Trang 36cá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êucầ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 đượclưu trữ tại nhiều host khác nhau trong một nhóm server Với kỹ thuật cân bằngtải, quá trình xử lý và thời gian đáp ứng client sẽ nhanh hơn nhiều.
Hình 2.6: Kỹ thuật cân bằng tải
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 đúngphầ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 hosttham gia vào hoặc rời khỏi nhóm Đối với các ứng dụng như Web server, có rấtnhiề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ânbằng một cách hiệu quả các tải và cung cấp khả năng đáp ứng nhanh khi nhómserver có thay đổi Các server trong nhóm cân bằng tải phát đi một bản tin đặcbiệt thông báo trạng thái hoạt động của nó (gọi là heartbeat message) tới các hostkhác trong nhóm đồng thời nghe bản tin này từ các khác host khác Nếu mộtserver trong nhóm gặp trục trặc, các host khác sẽ điều chỉnh và tái phân phối lạitải để duy trì liên tục các dịch vụ cho các client Trong phần lớn các trường hợp,
Trang 37phần mềm client thường tự động kết nối lại và người sử dụng chỉ cảm thấy trễmột vài giây khi nhận được đáp ứng trả lời.
2.2.1 Kiến trúc hệ thống cân bằng tải
Để tối đa hoá thông lượng và độ khả dụng, công nghệ cân bằng tải sửdụng kiến trúc phần mềm phân tán hoàn toàn, trình điều khiển cân bằng tải đượccài đặt và chạy song song trên tất cả các host trong nhóm Trình điều khiển nàysắp xếp tất cả các host trong nhóm vào một mạng con để phát hiện đồng thời lưulượng mạng đến địa chỉ IP chính của nhóm (và các địa chỉ bổ sung của các host ởnhiều vị trí khác nhau) Trên mỗi host, trình điều khiển hoạt động như một bộ lọcgiữa trình điều khiển card mạng và chồng giao thức TCP/IP, cho phép một phầnlưu lượng mạng đến được nhận bởi host đó Nhờ đó, các yêu cầu của client sẽđược phân vùng và cân bằng tải giữa các host trong nhóm Hệ thống cân bằng tảichạy như một trình điều khiển mạng (về mặt logic) nằm dưới các giao thức lớpứng dụng như HTTP hay FTP Hình sau cho thấy việc triển khai hệ thống cânbằng tải như một trình điều khiển trung gian trong chồng giao thức mạng củaWindows2000 tại mỗi host trong nhóm Kiến trúc này tối đa hoá dung lượng nhờviệc sử dụng mạng quảng bá để phân phối lưu lượng mạng đến tất cả các hosttrong nhóm và loại bỏ sự cần thiết phải định tuyến các gói đến từng host riêng lẻ
Do thời gian lọc các gói không mong muốn diễn ra nhanh hơn thời gianđịnh tuyến các gói (định tuyến bao gồm các quá trình nhận gói, kiểm tra, đónggói lại và gửi đi), kiến trúc này cung cấp thông lượng cao hơn các giải pháp dựatrên bộ điều phối Khi tốc độ của mạng và server tăng lên, thông lượng cũng tăngtheo tỉ lệ thuận, do đó loại bỏ được bất cứ sự lệ thuộc nào vào việc định tuyếndựa trên các phần cứng đặc biệt
Trên thực tế, bộ cân bằng tải có thể đạt thông lượng 250Mbit/s trong cácmạng Gigabit Một ưu điểm cơ bản khác của kiến trúc phân tán hoàn toàn là độkhả dụng được tăng cường với (N-1) cách khắc phục lỗi trong một nhóm có Nhost Các giải pháp dựa trên bộ điều phối tạo ra một điểm lỗi kế thừa mà chỉ cóthể được khắc phục bằng cách sử dụng một bộ điều phối dự phòng và do đó chỉcung cấp một cách khắc phục lỗi duy nhất