ĐẶT VẤN ĐỀ Công nghệ vốn dĩ là một món ăn tinh thần vô cùng quan trọng đối với con người trong xã hội hiện đại. Ngày nay, với sự bùng nổ mạnh mẽ của công nghệ con người gần như đã ứng dụng hầu hết nó trong mọi công việc. Một công ty có thể có nhiều cở sở dữ liệu, nhiều máy chủ và nhiều máy con muốn chia sẻ tài nguyên với nhau. Khi hệ thống có nhiều server thì vấn đề đặt ra cho người dùng truy cập vào website, yêu cầu người dùng đó sẽ chuyển đến server nào xử lý, lấy dữ liệu ở database - server nào? Làm thế nào các server trong hệ thống nhận được lượng tải phù hợp với server đó, đảm bảo các server không bị quá tải? Làm sao để hệ thống đáp ứng được số người dùng cao nhất? Đó chính là bài toán cân bằng tải cho các server, cũng chính phần quan trọng nhất giữ hệ thống hoạt động ổn định, là nhân tố quyết định khả năng đáp ứng người dùng của hệ thống.
Thuật ngữ cân bằng tải không chỉ dùng cho các server mà còn còn dùng hầu hết trong các thành phần kiến trúc khác. Bài toán đặt ra: “làm thế nào để cân bằng cho các cụm server khi các ứng dụng thường bị đe dọa bởi quá tải mạng cũng như sự cố xảy ra trên các máy chủ và các ứng dụng?” Chúng ta đều biết rằng việc sử dụng tài nguyên cân bằng sẽ dẫn đến các nguồn lực hiệu suất thấp thì đang quá tải với các yêu cầu, trong khi các nguồn lực hiệu suất cao vẫn nhàn rỗi. “Làm sao để giữa người dùng và hệ thống server, nhận yêu cầu từ phía người dùng sau đó chuyển đến các server phù hợp?” Qua đó để giải quyết bài toán đặt ra một cách tối ưu nhất chúng ta phải tìm hiểu việc cân bằng tải như thế nào là hợp lý. GIỚI THIỆU HỆ PHÂN TÁN 1.
Khái niệm hệ phân tán Hệ phân tán là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau và được liên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển thống nhất của một hệ điều hành. 5 Hệ phân tán bao gồm 4 thực thể: phần cứng, phần mềm, dữ liệu và môi trường truyền thông. Vai trò, ý nghĩa: Hệ tin học phân tán đã tạo ra bước ngoặt vĩ đại so với hệ tập trung và hệ khách – chủ. Việc tính toán phân tán về cơ bản giống với việc tính toán của hệ khách chủ trên phạm vi rộng lớn.
Dữ liệu được chứa trên nhiều máy chủ ở tại nhiều vị trí địa lý khác nhau kết nối thông qua mạng diện rộng. Hệ phân tán là phân tán hóa quá trình xử lý thông tin và thực hiện các việc đó ở các trạm xa nhau. Đó là cơ sở căn bản cho việc xây dựng các ứng dụng lớn như thương mại điện tử, chính phủ điện tử,… Ví dụ như: hệ thống rút tiền ATM, hệ thống bán vé máy bay, hệ thống bán vé xe,… 1. Đặc điểm của hệ phân tán Hệ phân tán có các đặc điểm cơ bản là: tính chia sẻ tài nguyên, tính mở, khả năng song song, khả năng mở rộng, khả năng thứ lỗi, tính trong suốt.
Tính chia sẻ tài nguyên - Thuật ngữ tài nguyên được dùng để chỉ tất cả mọi thứ có thể được chia sẻ trong hệ phân tán, bao gồm từ các thiết bị phần cứng (đĩa, máy in,.) tới các đối tượng (file, các cửa sổ, CSDL và các đối tượng dữ liệu khác). - Trong hệ phân tán, chia sẻ tài nguyên được hiểu là tài nguyên của hệ thống được các tiến trình chia sẻ mà không bị hạn chế bởi tình trạng phân tán tài nguyên theo vị trí địa lý. - Việc chia sẻ tài nguyên trên hệ phân tán được thực hiện thông qua truyền thông. Để chia sẻ tài nguyên một cách hiệu quả thì mỗi tài nguyên cần phải được quản lý bởi một chương trình có giao diện truyền thông, các tài nguyên có thể truy cập, cập nhật được một cách tin cậy và nhất quán.
Tính mở - Tính mở của một hệ thống máy tính là dễ dàng mở rộng phần cứng (thiết bị ngoại vi, bộ nhớ, các giao diện truyền thông,.) và phần mềm (các mô hình 6 HĐH, các giao thức truyền thông, các dịch vụ chia sẻ tài nguyên,. - Tính mở của hệ phân tán được thể hiện là hệ thống có thể được tạo nên từ nhiều loại phần cứng và phần mềm của nhiều nhà cung cấp khác nhau với điều kiện các thành phần này phải theo một tiêu chuẩn chung (liên quan đến HĐH là tính đa dạng tài nguyên; liên quan đến nhà cung cấp tài nguyên là tính chuẩn). - Tính mở của hệ phân tán được xem xét theo mức độ bổ sung thêm các dịch vụ chia sẻ tài nguyên mà không phá hỏng hay nhân đôi các dịch vụ đang tồn tại. Tính mở được hoàn thiện bằng cách xác định hay phân định rõ các giao diện chính của hệ phân tán và làm cho nó tương thích với các nhà phát triển phần mềm.
- Tính mở của HĐH phân tán được thi hành dựa trên việc cung cấp cơ chế truyền thông giữa các quá trình và công khai các giao diện được dùng để truy cập tài nguyên chung. Khả năng song song - Hệ phân tán hoạt động trên một mạng truyền thông có nhiều máy tính, mỗi máy tính có thể có một hoặc nhiều CPU. Trong cùng một thời điểm nếu có từ hai tiến trình trở lên cùng tồn tại, ta nói rằng chúng được thực hiện đồng thời. Việc thực hiện các tiến trình đồng thời theo cơ chế phân chia thời gian (một CPU) hay song song (nhiều CPU).
- Khả năng làm việc song song trong hệ phân tán được thi hành do hai tình huống Nhiều người sử dụng đồng thời đưa ra các lệnh hay tương tác với chương trình ứng dụng (đồng thời xuất hiện nhiều tiến trình khách). Nhiều tiến trình phục vụ chạy đồng thời, mỗi tiến trình đáp ứng yêu cầu của một trong số các tiến trình khách. - Từ điều kiện đa xử lý, khả năng song song của hệ thống phân tán trở thành một thuộc tính của nó. Khả năng mở rộng - Hệ phân tán có khả năng hoạt động tốt và hiệu quả ở nhiều mức khác 7 nhau.
Một hệ phân tán nhỏ nhất có thể hoạt động chỉ cần hai trạm làm việc và một phục vụ file. Các hệ lớn có thể bao gồm hàng nghìn máy tính, nhiều phục vụ file và phục vụ máy in,. - Khả năng mở rộng của một hệ phân tán được đặc trưng bởi tính không thay đổi phần mềm hệ thống và phần mềm ứng dụng khi hệ thống được mở rộng. - Yêu cầu mở rộng không chỉ là mở rộng về phần cứng hay về mạng trên đó hệ thống bao trùm mà còn cần phải được phân tích, đánh giá trên tất cả các khía cạnh khi thiết kế hệ phân tán.
Khả năng thứ lỗi - Khả năng thứ lỗi thể hiện việc hệ thống không bị sụp đổ bởi các sự cố do các lỗi thành phần cả phần cứng lẫn phần mềm trong một bộ phận nào đó. - Việc thiết kế khả năng chịu lỗi của các hệ thống máy tính dựa trên hai giải pháp sau đây Dùng khả năng thay thế để đảm bảo việc hoạt động liên tục và hiệu quả. Dùng các chương trình đảm bảo cơ chế phục hồi dữ liệu khi xảy ra sự cố. Tính trong suốt Tính trong suốt là tính chất căn bản của hệ phân tán.
Tính trong suốt của hệ phân tán được hiểu như là sự che khuất đi các thành phần riêng biệt của hệ thống máy tính (phần cứng và phần mềm) đối với người sử dụng và những người lập trình ứng dụng. Người sử dụng có quyền truy cập đến dữ liệu đặt tại một điểm dữ liệu ở xa một cách tự động nhờ hệ thống mà không cần biết đến sự phân tán của tất cả dữ liệu trên mạng. Hệ thống tạo cho người dùng cảm giác là dữ liệu được coi như đặt tại máy tính cục bộ của mình. Cơ sở và kiến trúc của hệ phân tán Kiến trúc của hệ phân tán Hình 1.
1: Mô hình kiến trúc hệ phân tán Hệ phân tán được cấu tạo bởi các mạng cục bộ A và B tại hai thành phố cách xa nhau, ba máy được nối mạng theo kiểu Intranet ở góc thấp phải của hình vẽ (hoạt động theo các tiêu chuẩn của mạng diện rộng) và các máy đơn. Các server kết nối mạng trực tiếp với mạng D. Các máy client ở mạng C có thể truy cập qua các mạng con ở mạng A, B. Các thành phần này được nối với nhau thông qua hệ thống viễn thông.
Hệ thống các CSDL chứa những thông tin thành phần cần thiết nằm trong thiết bị lưu trữ của các bộ phận và mang tính cục bộ của chính các bộ phận quản lý. Một điều cần phải lưu ý là tất cả các CSDL trong hệ đều được kết nối với nhau thông qua hệ thống viễn thông. Nhằm đảm bảo hoạt động của hệ trong điều kiện đó, các hệ thống được kết nối với nhau phải thỏa mãn hai điều kiện cơ bản sau đây: - Bất kỳ một hệ thống thành phần nào (hệ cục bộ) đều có thể liên lạc thông suốt với hệ thống thành phần khác. - Mỗi một hệ cục bộ được đặc trưng bằng một tên duy nhất và tên này có thể được nhận biết bởi các hệ thống viễn thông.
GIỚI THIỆU CÂN BẰNG TẢI 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 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. Lợi ích việc 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.