Tìm hiểu kỹ thuật cân bằng tải File Server

Đồ án đã đưa ra các thành phần cần phải xây dựng của một bộ cân bằng tải và đã cài đặt một giải pháp phân tải động thông minh hoạt động hiệu quả hơn so với giải pháp đang chạy trên một bộ cân bằng tải mã nguồn mở. Trước tiên, đồ án đã đưa ra mô hình File với khả năng mở rộng, từ đó nhấn mạnh tầm quan trọng của việc cân bằng tải cho các File server trong toàn bộ hệ thống. Sử dụng phép so sánh về hiệu năng hệ thống cân bằng tải server và hệ thống thông thường, đồng thời sử dụng một bộ cân bằng tải để phân tải cho các File server này. Một bộ cân bằng tải hoạt động tốt cần phải kiểm tra được trạng thái server, nhằm đảm bảo không chuyển yêu cầu của người dùng đến những server không còn hoạt động. Thuật toán phân tải cần phải được xây dựng một cách thông minh nhằm lựa chọn được server tốt nhất để phục vụ yêu cầu người dùng.

docx75 trang | Chia sẻ: lylyngoc | Lượt xem: 4986 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Tìm hiểu kỹ thuật cân bằng tải File Server, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
.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. 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. . 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. 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. 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. 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: 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 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 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). 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: 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 GIỚI THIỆU CÂN BẰNG TẢI TRÊN FILE SERVER 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 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). 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 quả của mạng máy tính trong những cơ quan này có thể làm tê liệt các hoạt động chính của đơn vị, và thiệt hại khó có thể lường trước được. Chúng ta đều biết các máy chủ là trái tim của của mạng máy tính, nếu máy chủ mạng hỏng, hoạt động của hệ thống sẽ bị ngưng trệ. Điều đáng tiếc là dù các hãng sản xuất đã cố gắng làm mọi cách để nâng cao chất lượng của thiết bị, nhưng những hỏng hóc đối với các thiết bị mạng nói chung và các máy chủ nói riêng là điều không thể tránh khỏi. Do vậy, vấn đề đặt ra là cần có một giải pháp để đảm bảo cho hệ thống vẫn hoạt động tốt ngay cả khi có sự cố xảy ra đối với máy chủ mạng. Việc lựa chọn một server đơn lẻ có cấu hình cực mạnh để đáp ứng nhu cầu này sẽ kéo theo chi phí đầu tư rất lớn và không giải quyết được các vấn đề đặt ra của các tổ chức. Giải pháp hiệu quả được đưa ra là sử dụng một nhóm server cùng thực hiện một chức nǎng dưới sự điều khiển của một công cụ phân phối tải - Giải pháp cân bằng tải. Có rất nhiều hãng đưa ra giải pháp cân bằng tải như Cisco, Coyote Point, Sun Microsystems... với rất nhiều tính nǎng phong phú. Tuy nhiên, về cơ bản, nguyên tắc cân bằng tải vẫn xuất phát từ những quan điểm kỹ thuật khá tương đồng. Một kỹ thuật cân bằng tải điển hình là RRDNS (Round Robin DNS). Với giải pháp này, nếu một server trong nhóm bị lỗi, RRDNS sẽ vẫn tiếp tục gửi tải cho server đó cho đến khi người quản trị mạng phát hiện ra lỗi và tách server này ra khỏi danh sách địa chỉ DNS. Điều này sẽ gây ra sự đứt quãng dịch vụ. Sau những phát triển, từ các thuật toán cân bằng tải tĩnh như Round Robin, Weighted Round Robin đến các thuật toán cân bằng tải động như Least Connection, Weighted Least Connection, Optimized Weighted Round Robin và Optimized Weighted Least Connection, kỹ thuật cân bằng tải hiện nay nhờ sự kết hợp các thuật toán trên ngày càng trở nên hoàn thiện mặc dù nhược điểm vốn có như tạo điểm lỗi đơn và vấn đề nút cổ chai do sử dụng bộ điều phối tập trung (centralized dispatcher) vẫn còn. Ngoài khả nǎng áp dụng với Web server, kỹ thuật này còn có thể áp dụng với các hệ server ứng dụng khác. SLB không chỉ làm nhiệm vụ phân phối tải cho các server mà còn còn cung cấp cơ chế đảm bảo hệ thống server luôn khả dụng trước các client. SLB không có yêu cầu đặc biệt gì về phần cứng, bất cứ máy tính nào hợp chuẩn đều có thể được sử dụng làm server. Chi phí triển khai nhờ đó giảm đáng kể. Kiến trúc phần mềm phân tán của SLB cho phép cung cấp hiệu nǎng và tính khả dụng của kỹ thuật này ở mức cao nhất. 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 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. - 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). Cung cấp sự phân phối dự trên sự hiểu biết về nội dung ví dụ như đọc URL, can thiệp vào cookies hoặc truyền XML. Server Load Balancers: Load Balancer là một thiết bị phân phối tải giữa các máy tính với nhau và các máy tính này sẽ xuất hiện chỉ như một máy tính duy nhất. Phần dưới đây sẽ thảo luận chi tiết hơn về các thành phần của các thiết bị SLB. VIPs: Virtual IP (VIP): là một dạng thể hiện của của cân bằng tải. Mỗi VIP sử dụng một địa chỉ công khai IP. Bên cạnh đó, một cổng TCP hay UDP sẽ đi kèm với một VIP như cổng TCP 80 được dành cho luồng dữ liệu của web. Một VIP sẽ có ít nhất một máy chủ thực sự được gán địa chỉ IP đó và máy chủ này sẽ làm nhiệm vụ phân phối luồng dữ liệu được chuyển đến. Thường thường thì sẽ có vài máy chủ và VIP sẽ dàn đều luồng dữ liệu đến cho các máy chủ bằng cách sử dụng các metric hoặc các phương thức được mô tả trong phần “Active - Active Scenario” sau đây. Các máy chủ (Servers): Máy chủ chạy một dịch vụ được chia sẻ tải giữa các dịch vụ khác. Máy chủ thường được ám chỉ tới các máy chủ HTTP, mặc dù các máy chủ khác hoặc ngay cả những dịch vụ khác có liên quan. Một máy chủ thường có một địa chỉ IP và một cổng TCP/UDP gắn liền với nó và không có địa chỉ IP công khai (điều này còn phụ thuộc vào topo của mạng). Nhóm (Groups): Dùng để chỉ một nhóm các máy chủ được cân bằng tải. Các thuật ngữ như “farm” hoặc “server farm” có cùng một ý nghĩa với thuật ngữ này. Cấp độ người dùng truy nhập (User - Access Levels): Là một nhóm các quyền được gán cho một người dùng nào đó khi đăng nhập vào một thiết bị cân bằng tải. Không chỉ những nhà cung cấp thiết bị khác nhau cung cấp những cấp độ truy nhập khác nhau, mà hầu hết các dịch vụ cũng sẽ có những cách thức truy nhập rất khác nhau. Cách triển khai phổ biến nhất là của Cisco, cung cấp truy nhập dựa trên tài khoản người dùng (cho phép cả tài khoản superuser). Một phương thức phổ biến khác là cách thức truy cập cấp độ người dùng được dùng trong các hệ thống Unix. - Read-only: Cấp độ truy cập chỉ đọc (Read-only) không cho phép bất kỳ một thay đổi nào được thực hiện. Một người dùng có quyền chỉ đọc chỉ có thể xem các thiết đặt, các cấu hình, và nhiều thứ khác nữa nhưng không thể thực hiện được bất kỳ một thay đổi nào cả. Một tài khoản như thế được sử dụng để xem các thống kê hiệu suất hoạt động của thiết bị.Truy nhập chỉ đọc thường là cấp độ truy cập đầu tiên của một người dùng khi đăng nhập vào hệ thống trước khi thay đổi sang các chế độ với quyền truy cập cao hơn. - Superuser: Superuser là cấp độ truy cập cho phép người dùng có đầy đủ quyền điều khiển hệ thống. Superuser có thể thêm các tài khoản khác, xóa file, cấu hình lại hệ thống với bất kỳ tham số nào. - Các cấp độ khác: Rất nhiều sản phẩm cung cấp thêm một vài cấp độ người dùng trung gian ở giữa hai cấp độ trên, có những quyền giới hạn trên hệ thống. Giải pháp dự phòng (Redundancy) Giải pháp dự phòng rất đơn giản: nếu một thiết bị gặp trục trặc, thiết bị đó sẽ được thay thế bởi một thiết bị khác mà không hoặc gây ít ảnh hưởng nhất đến hoạt động của toàn bộ hệ thống. Thiết bị được thay thế sẽ thực hiện những chức năng giống như thiết bị bị thay thế. Hầu hết các thiết bị trên thị trường đều có khả năng này. Có một vài cách để thực hiện khả năng này. Cách thông thường nhất là sử dụng hai thiết bị. Một giao thức sẽ được sử dụng bởi một trong hai thiết bị để kiểm tra tình trạng hoạt động của thiết bị còn lại. Trong một vài tình huống, cả hai thiết bị đều hoạt động, đáp ứng các luồng dữ liệu đến. Trong một vài tình huống khác, sẽ chỉ có một thiết bị hoạt động chính, thiết bị còn lại sẽ được sử dụng trong tình huống hỏng hóc hoặc trục trặc. Vai trò của việc dự phòng Trong giải pháp dự phòng, tồn tại một quan hệ là active - standby. Một thiết bị, hay còn gọi là thiết bị đang hoạt động thực hiện một vài hoặc đầy đủ các chức năng chính, trong khi đó thiết bị dự phòng sẽ đợi để thực hiện những chức năng này. Mối quan hệ này cũng có thể được gọi là mối quan hệ master/slave. Trong những tình huống nhất định, cả hai thiết bị sẽ là chủ (master) trong một vài chức năng và làm phục vụ (slave) trong một vài chức năng khác nhằm phân tán tải. Cũng trong một vài tình huống khác, cả hai thiết bị đều là chủ (master) của tất cả các chức năng được chia sẻ giữa hai thiết bị. Quan hệ này còn được gọi là quan hệ active - active. Kịch bản Active - Standby (hoạt động - chờ) Kịch bản dự phòng hoạt động - chờ là cách dễ nhất để thực hiện. Một thiết bị sẽ nhận toàn bộ luồng dữ liệu đến, trong khi đó thiết bị còn lại sẽ chờ trong các tình huống trục trặc Hình 2. Hình 2.2: Kịch bản Active – Standby Nếu thiết bị đang hoạt động gặp trục trặc, một thiết bị kia sẽ xác định trục trặc và nhận xử lý toàn bộ luồng dữ liệu đến. Hình 2.3: Hoạt động của kịch bản Active – Standby Kịch bản Active - Active Có một vài biến thể của kịch bản này. Trong tất cả các trường hợp, cả hai thiết bị đều chấp nhận xử lý luồng dữ liệu đến. Trong tình huống một trong hai thiết bị gặp trục trặc thì thiết bị còn lại sẽ nhận thực thi luôn cả những chức năng của thiết bị gặp trục trặc. Trong một biến thể khác, VIPs được phân phối giữa hai thiết bị cân bằng tải (Load Balancer - LB) để chia sẻ luồng dữ liệu đến. VIP 1 đến LB A, VIP 2 đến LB B. Hình 2.4: Kịch bản Active-Active Trong một biến thể khác, cả hai VIPs sẽ đều trả lời trên cả hai LB với một giao thức phá vỡ sự hạn chế rằng cả hai LB sẽ không có cùng một địa chỉ IP. Hình 2.5: Hoạt động của kịch bản Active-Active Trong tất cả các kịch bản active - active, nếu một LB gặp trục trặc, các VIP còn lại sẽ tiếp tục trả lời trên LB còn lại. Những thiết bị còn lại sẽ thực thi hết tất cả các chức năng. Hình 2-6. Hình 2.6: Hoạt động của kịch bản Active-Active VRRP Giao thức dự phòng phổ biến nhất là giao thức VRRP (Virtual Router Redundancy Protocol). Đây là một chuẩn mở và các thiết bị được cho là hỗ trợ VRRP sẽ đều phù hợp đối với các đặc điểm được mô tả trong RFC 2338. Mỗi một thiết bị trong một cặp gửi đi các packet và nhận phản hồi từ các thiết bị còn lại. Nếu không nhận được phản hồi từ các thiết bị khác thì thiết bị này sẽ đánh giá là thiết bị kia bị vô hiệu hóa và bắt đầu thực hiện tiếp quản tất cả các chức năng. Chúng ta không cần nắm rõ tất cả các chi tiết bên trong của giao thức VRRP, tuy nhiên một vài đặc điểm của giao thức này cũng cần được nắm rõ. VRRP sử dụng cổng UDP 1985 để gửi đi các packet tới địa chỉ multicast là 225.0.0.2. Những chi tiết này sẽ rất hữu ích trong khi làm việc với các bộ lọc IP hoặc các thiết bị có chức năng tường lửa. VRRP đòi hỏi cả hai thiết bị đều có thể giao tiếp được với nhau. Nếu như cô lập một trong hai thiết bị đó với thiết bị còn lại thì mỗi thiết bị đó sẽ xác định thiết bị đã chết và tiếp quản trạng thái master. Trường hợp này có gây ra những lỗi nghiêm trọng trong mạng bởi vì xung đột địa chỉ IP hoặc các vấn đề khác sẽ xảy ra khi cả hai thiết bị đều nghĩ rằng chúng đang là thiết bị đang hoạt động trong kịch bản active - standby. Tính liên tục (Persistence) Sự liên tục là hành động giữ cho luồng dữ liệu đến cuả một người dùng xác định sẽ chỉ đến một máy chủ duy nhất. Trong khi thiết bị SLB có thể có một vài máy để lựa chọn thì nó sẽ luôn giữ luồng dữ liệu đến của một người dùng đến một máy chủ duy nhất. Điều này đặc biệt quan trọng đối với các ứng dụng kiểu web-store - cho phép người dùng điền các thông tin mua bán và những thông tin này chỉ được lưu lại trên một máy tính duy nhất. Có một số cách để thực hiện kết nối liên tục tuy nhiên mỗi cách đều có những ưu và nhược điểm nhất định. Kiểm tra dịch vụ (Service Checking) Một nhiệm vụ của thiết bị SLB là nhận biết khi nào server hoặc dịch vụ bị treo và loại bỏ server đó ra khỏi danh sách quay vòng. Tính năng này còn được gọi là kiểm tra tình trạng (Health Checking). Có một số cách để thực hiện việc kiểm tra này từ cách đơn giản nhất như ping kiểm tra, kiểm tra cổng (kiểm tra xem cổng 80 có trả lời hay không) hoặc kiểm tra nội dung trong trường hợp web server được truy vấn cho các phản hồi đặc biệt nào đó. Một thiết bị SLB sẽ chạy kiểm tra các dịch vụ một cách liên tiếp, quan những khoảng thời gian được người dùng định nghĩa sẵn. Thuật toán cân bằng tải (Load Balancing Algorithm) Tùy theo những yêu cầu nhất định của người dùng mà có một số cách thức phân tán tải giữa các nhóm server sử dụng một metric cho sẵn. Các cách thức đó dựa trên các thuật toán được lập trình sẵn trong thiết bị. Các cách thức này chạy ở lớp trên cùng và kết hợp được với bất kỳ một cách thức duy trì tính liên tục nào. Chúng được gán cho những VIP riêng lẻ. Cơ sở hạ tầng cung cấp Hạ tầng cơ sở mạng là sự kết hợp của các mạng thành phần cung cấp kết nối tới Internet, Extranet hoặc Intranet cho máy chủ web. Nó kết nối giữa các máy chủ web và người sử dụng dịch vụ. Có hai cách để thực hiện điều này: tại một địa điểm được kiểm soát bởi một site hoặc một địa điểm được duy trì bởi một colocation / nhà cung cấp dịch vụ hosting cho các công ty. - Trung tâm dữ liệu: Các site của chúng ta dù chạy ở các mạng cục bộ hay chạy trên máy chủ của các nhà cung cấp hosting thì chúng đều được đặt tại các data center. Data Center là một khái niệm dùng để chỉ một khu vực có độ an toàn cao, môi trường được điều tiết (thường sử dụng điều hòa không khí), các thiết bị phòng cháy chữa cháy không sử dụng nước (như Halon hoặc FM200) và hệ thống các UPS lưu trữ điện năng. Số tiền được đầu tư vào đây có thể là một khía cạnh để xác định chất lượng của một data center. - Leased Line: Một site có thể chạy với một hoặc nhiều các kết nối leased line của một hay nhiều nhà cung cấp dịch vụ. Leased line đơn giản có thể là các đường DSL cũng có thể rất phức tạp như sử dụng nhiều đường OC3s chạy trên các phiên BGP đầy đủ tới nhiều nhà sử dụng. Lợi ích mà Leased line đem lại là người chủ có toàn quyền điều khiển và truy cập vào các thiết bị của mình. - Colacation: Là một dịch vụ cho phép bạn lắp đặt và sắp xếp các máy chủ của mình tại địa điểm của nhà cung cấp dịch vụ. Thông thường là các rack hoặc các lồng an ninh. Nhà cung cấp sẽ đảm bảo an toàn, cung cấp điện năng, điều hòa không khí cũng như băng thông cho các thiết bị của bạn. Những nhà cung cấp dịch vụ này sẽ cho phép các thiết bị của bạn kết nối tới các đường kết nối backbone của họ thông qua “network drop” thường là sử dụng đường kết nối Ethernet. Điểm lợi của cách này là băng thông của nhà cung cấp dịch vụ thường có khả năng mở rộng hơn là những gì bạn có với các thiết bị của mình. Nếu bạn muốn mở rộng băng thông từ nhà cung cấp dịch vụ, bạn chỉ cần yêu cầu nhà cung cấp hoặc nâng cấp các kết nối Ethernet của mình. Còn nếu khi bạn sử dụng Leased line như ở trên thì bạn phải mất từ 30 ngày đến 6 tháng để yêu cầu công ty viễn thông tăng thêm băng thông cho đường kết nối của mình như đường T-1 (1,5 Mbps) hoặc DS-3 (45 Mbps), với các đường kết nối có băng thông lớn hơn thì sẽ cần thời gian lâu hơn. Colocation là một dịch vụ được ưa chuộng nhất hiện nay bới các yếu tố giá cả và khả năng mở rộng mà nó đem lại. Dịch vụ này sẽ tốn ít chi phí và dễ dàng triển khai hơn đối với các công ty vì các công ty sẽ không cần phải quan tâm đến data center cũng như là các đường kết nối. Các đường kết nối mạng thường thường rất phức tạp, có liên quan đến các điểm ngang hàng, các leased line tới các nhà cung cấp, và có thể là chính đường backbone của bạn. Thông thường, tất cả các site chỉ cần quan tâm đến network drop từ nhà cung cấp dịch vụ. 2.2.2. 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 host trong 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ột mạ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). Trên mỗi host, trình điều khiển hoạt động như một bộ lọc giữa trình điều khiển card mạng và chồng giao thức TCP/IP, cho phép một phần lư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. 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 host trong 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, đóng gó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ựa trê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ǎng theo tỉ lệ thuận, do đó loại bỏ được bất cứ sự lệ thuộc nào vào việc định tuyến dự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ác mạ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ó N host. 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. Kiến trúc cân bằng tải cũng tận dụng được những ưu điểm về kiến trúc các thiết bị chuyển mạch (switch) hoặc các bộ tập trung (hub) của mạng con trong việc đồng thời phân phối lưu lượng mạng đến tất cả các host trong nhóm. Tuy nhiên, phương pháp này làm tǎng "tải trọng" trên các chuyển mạch do chiếm thêm bǎng thông cổng. Đây không phải là vấn đề trong phần lớn các ứng dụng như dịch vụ Web hay streaming media, do tỉ lệ lưu lượng đến chỉ chiếm một phần rất nhỏ trong tổng lưu lượng mạng. Tuy nhiên, nếu các kết nối mạng phía client đến thiết bị chuyển mạch có tốc độ nhanh hơn nhiều các kết nối phía server, lưu lượng có thể chiếm một tỉ lệ lớn quá mức cho phép của bǎng thông cổng phía server. Vấn đề tương tự sẽ gia tǎng nếu nhiều nhóm kết nối trên cùng một thiết bị chuyển mạch và các biện pháp thiết lập các mạng LAN ảo cho từng nhóm không được thực hiện. Trong quá trình nhận gói, việc triển khai của SLB là sự kết hợp giữa việc phân phối các gói tới tầng TCP/IP và nhận các gói khác qua trình điều khiển card mạng. Việc này giúp tǎng tốc độ xử lý chung và giảm trễ do TCP/IP có thể xử lý gói trong khi trình điều khiển NDIS (Network Driver Interface Specification) nhận gói tiếp theo. Trong quá trình gửi gói, SLB cũng tǎng cường thông lượng, giảm độ trễ và phụ phí (overhead) nhờ tǎng số lượng gói mà TCP/IP có thể gửi trong một kết nối. Để có được những cải thiện về hiệu nǎng này, SLB thiết lập và quản lý một tập hợp các bộ đệm gói và các ký hiệu (descriptor) được sử dụng để phối hợp các hoạt động của TCP/IP và trình điều khiển NDIS. 2.2.3 . Hoạt động của hệ thống cân bằng tải File Server Mô hình SLB đơn giản được mô tả như ở hình dưới đây Hình 2.7: Hệ thống SLB đơn giản SLB mở rộng hiệu nǎng của các server ứng dụng, như File server, Web server chẳng hạn, 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. 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. 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 động của nó (gọi là heartbeat message) tới các host khác trong nhóm đồng thời nghe 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ự độ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.3. Triển khai hệ thống File Server 2.3.1. Giới thiệu DFS (Distributed File System) DFS được sử dụng để xây dựng cấu trúc phân cấp đại diện cho nhiều vị trí chia sẻ dữ liệu trên nhiều File server khác nhau. Nếu trong mạng của bạn có nhiều File server, mỗi File server đó có một vài thư mục chia sẻ chứa dữ liệu, bạn sẽ gặp khó khăn khi phải nhớ chia sẻ nào nằm trên server nào. Nhưng với DFS, thay vì phải nhớ từng share gắn với từng File server, bạn sẽ chỉ phải nhớ một tên duy nhất để có thể đi tới tất cả chia sẻ trên tất cả server. Bạn có thể tưởng tượng cái tên đó như là một “home” của tất cả shared files, trong “home” đó chứa đường dẫn trỏ tới vị trí thực sự của các thư mục chia sẻ trên các File server. DFS có thể dẫn client tới File server gần nhất có thể bằng cách sử dụng “Active Directory site metric”. DFS cũng có thể cài trên một hệ thống Cluster để cung cấp hiệu năng tốt hơn và độ tin cậy cao hơn. Để hiểu DFS làm việc như nào, chúng ta cần phải hiểu một số thuật ngữ: DFS Root: là tên gốc cho mọi đường dẫn DFS. Bạn có thể hiểu nó như một “Root Share”, trong đó bạn có thể có các tệp tin và thư mục khác. DFS Link: đường dẫn tới một thư mục chia sẻ nằm ở một vị trí cụ thể nào đó trên mang. Khi user truy cập tới DFS Link sẽ được chuyển hướng sang thư mục chia sẻ thật. DFS Target (Replica): có thể là DFS Root hay DFS Link. Nếu bạn có 2 chia sẻ giống hệt nhau nhưng lưu trữ ở 2 vị trí khác nhau, bạn có thể nhóm chúng vào chung trong một DFS Target. Hình 2.8: Cấu trúc thư mục thật sự của một hệ thống DFS DFS có hai dạng:
 1. Active Directory Intergrated DFS (Fault-tolerant DFS): Là hệ thống DFS dựa trên nền Active Directory. Hệ thống DFS sẽ tự động đồng bộ giữa các Domain Controller và người dùng có thể truy xuất đến DFS thông qua đường dẫn \\domainname\dfsname.
 Dạng này thường được áp dụng trong trường hợp các Bạn muốn xây dựng các Files Server đồng bộ với nhau, mục đích chính là đảm bảo tính liên tục trên hệ thống một khi có sự cố ở một Files Server nào đó thì Files Server khác sẽ thay thế VÀ dữ liệu tự động nhân bản, cập nhật cho toàn bộ hệ thống DFS Server. 2. Stand-alone DFS: Là hệ thống DFS trên một máy Server Stand-alone. Người dùng truy xuất hệ thống DFS thông qua đường dẫn \\servername\dfsname. Dạng này thường được dùng trong trường hợp các Bạn muốn tất cả các Files Server được QUI về một mốt kết nối duy nhất. Người sử dụng chỉ cần kết nối tới DFS Server là có thể truy xuất tới các Files Server khác theo kiểu duyệt cây thư mục. 2.4. Các thuật toán cân bằng tải 2.4.1. Thuật toán Round Robin: Đây gọi là thuật toán luân chuyển vòng, các máy chủ sẽ được xem ngang hàng và sắp xếp theo một vòng quay. Các truy vấn dịch vụ sẽ lần lượt được gửi tới các máy chủ theo thứ tự sắp xếp. Ví dụ:  Cấu hình một cụm Cluster bao gồm 03 máy chủ: A, B, C. Yêu cầu dịch vụ thứ nhất sẽ được gửi đến máy chủ A. Yêu cầu dịch vụ thứ hai sẽ được gửi đến máy chủ B. Yêu cầu dịch vụ thứ ba sẽ được gửi đến máy chủ C. Yêu cầu dịch vụ thứ tư sẽ lại được gửi cho máy chủ A…. 2.4.2. Thuật toán Weighted Round Robin: Bản chất giống như thuật toán Round Robin, tuy nhiên chúng ta có thể cấu hình cho một máy chủ nào đó thường xuyên được sử dụng hơn. 2.4.3. Thuật toán Least Connection: Đây là thuật toán dựa trên tính toán số lượng kết nối để thực hiện cân bằng tải cho máy chủ, nó sẽ tự động lựa chọn máy chủ với số lượng kết nối đang hoạt động là nhỏ nhất. 2.4.4. Thuật toán Weights Least Connection: Bản chất giống thuật toán Least Connection, nhưng chúng ta có thể cấu hình ưu tiên cho một máy chủ trong cụm máy chủ hoạt động. 2.4.5. Thuật toán Least Response Time: Đây là thuật toán sử dụng phương pháp thời gian đáp ứng ít nhất, lựa chọn dịch vụ trên máy chủ với thời gian đáp ứng là thấp nhất. Ngoài ra còn có rất nhiều thuật toán cân bằng tải khác tùy theo phần mềm hoặc phần cứng cân bằng tải được sử dụng. 2.4.6. Hàm băm: Hàm băm là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi database server. Giá trị băm đóng vai gần như một khóa để phân biệt các database server. cũng giống với giải thuật Round-robin, hàm băm chỉ định server trả lời truy vấn cho client mà không quan tâm đến trạng thái hiện tại của server đó (có ít hay nhiều truy vấn). 2.4.7. Giải thuật xác định tổng số kết nối nhỏ nhất: Giải thuật này xác định tổng số kết nối hiện tại trên các database server, nếu server nào có tổng kết nối nhỏ nhất thì server đó sẽ được chỉ định là trả lời truy vấn tiếp theo của client. Trong giải thuật này có quan tâm đến trạng thái của server. Đây là một giải thuật tối ưu để cân bằng tải cho các database server. Tuy nhiên, thời gian thực hiện bài toán là lâu hơn hai giải thuật trên, bởi vì nó phải ghi lại và tính số kết nối đến các server hiện thời. CHƯƠNG III. CÀI ĐẶT THỰC NGHIỆM - ĐÁNH GIÁ HỆ THỐNG Trong mạng LAN khi hệ thống mạng đòi hỏi phải thực hiện việc chia sẻ tài nguyên giữa các người dùng trong mạng với nhau ngày càng nhiều thì đòi hỏi hệ thống phải có một File Server để đảm đương công việc này. Tuy nhiên trên thực tế với một hệ thống mạng lớn đến rất lớn thì việc một máy File Server gồng gánh cho tất cả các yêu cầu là không thể. Mà yêu cầu đặt ra là làm sao có nhiều File Server hơn và cùng chia sẻ một lượng tài nguyên nào đó. Chính vì thế Microsoft đã đưa ra một giải pháp là Distributed File System (DFS) hay còn gọi là hệ thống dữ liệu phân tán. Với DFS lượng dữ liệu dùng để chia sẻ cho người dùng giờ đây không còn nằm trên duy nhất một File Server nữa mà tùy theo nhu cầu thực tế người quản trị mạng sẽ thiết kế 2 hay nhiều File Server cùng thực hiện việc chia sẻ này, tổng hợp tất cả các File Server này được gọi là Distributed File System (DFS). Như vậy với mô hình DFS khi có các yêu cầu truy cập tài nguyên từ bên ngoài vào DFS thì hệ thống sẽ tự phân chia đều các yêu cầu này cho các File Server bên trong DFS nhằm tránh tình trạng một File Server nào đó quá tải trong khi một File Server khác thì quá nhàn rỗi. 3.1. Cấu hình và chạy chương trình Mô hình Đồng bộ hóa dữ liệu trên 2 Server sử dụng DFS Replication. Mô hình này thiết lập hai Domain Controller chạy song song, đồng thời cũng là 2 file server có khả năng đồng bộ hóa dữ liệu cho nhau. Khi một trong 2 File Server chết, thì Server kia sẽ tiếp tục giữ kết nối với client, đảm bảo dữ liệu có tính sẵn sàng cao. Đồng thời có thể được áp dụng cho việc cân bằng tải, giảm bớt gánh nặng truy xuất lên một File Server. Trong bài này, Server 1 sẽ có tên là SERVER1 với IP là 184.0.18.142 và Server 2 có tên là SERVER2 với IP là 14.0.18.143 Các bước thực hiện chính: Nâng Server 1 lên thành Domain Controller. Thiết lập Secondary Domain Controller trên Server 2. Cài đặt File Server, Distributed File System trên Server 1 và Server 2. Cấu hình DFS Namespaces và DFS Replication trên Server 1. Testing... Nâng Server 1 lên thành Domain Controller Cấu hình IP của Server 1 như sau Thiết lập Secondary Domain Controller trên Server 2. Cài đặt File Server, Distributed File System trên Server 1 và Server 2 Trên 2 Server ta vào Server Manager để Add một Role mới là File Services Nhấn Next Chọn cài đặt Distributed File System gồm DFS Namespaces và DFS Replication Chúng ta sẽ tiến hành thiết lập sau. Vì thế chọn Create a namespace later using DFS Managemnet snap-in in Server Manager Bấm Install Cài đặt xong, ta nhất Close Cấu hình DFS Namespaces và DFS Replication trên Server 1 Bung Role --> File Services --> DFS Managemet Nhấn phải chuột vào Namespaces và chọn New Namespace Hộp thoại hiện ra, ta nhấn Browser và add vào Server 1 là server1 Hộp thoại kế tiếp, Namespace name and setting : khai báo tên folder chứa dữ liệu sẽ public trong hệ thống cho user truy cập lấy tài nguyên cũng như lưu trữ dữ liệu…Sau đó chọn mục Edit Setting… Chọn Use custom permission --> Customize Cho Everyone quyền Full Controll Trở về hộp thoại Namespace name and setting chọn Next Tạo Namespace mới thành công, ta nhấn Close Tiếp tục, ta nhấn chuột phải lên Namespace mới vừa tạo và chọn Add Namespace Server Nhấn Edit Settings Chọn User custom permissions --> Customize Cho Everyone quyền Full Control Nhấn Ok --> OK và đợi một lát để hệ thống kiểm tra. Nếu thành công, ta sẽ có kết quả như hình dưới đây. Tiếp tục, ta nhấn phải chuột lên Replication và chọn New Replication Group... Hộp thoại Replication Group Type, ta đánh dấu chọn Multipurpose replication group và lick next Nhập tên của Relication này và nhấn Next Click Add và thêm vào 2 thành viên SERVER1 và SERVER2 Hộp thoại Topology Selection, ta chọn Full Mesh rồi click Next Hộp thoại Replication Group Schedule and Bandwidth: Chọn Replicate continuously using the specified bandwidth: Full (cho phép đồng bộ dữ liệu 24g trong ngày và 7 ngày trong tuần với băng thông Full) Chọn 1 trong 2 server làm Primary Hộp thoại Folder to Replicate hiện ra, ta chọn ADD và chọn tới thư mục gốc chứa các thư mục được Replicate Chọn Custom permission --> Edit Permissions... Thêm vào 2 User là Domain Users và Creator Owner. Ta tiến hành phân quyền cho Domain Users quyền đọc và ghi, Creator Owner quyền Full Controll Trở lại cửa sổ Folder To Replicate chọn Next Chọn thành viên DNS2 và nhấn Edit Chọn Enable --> Cho biết đường dẫn chứa thư mục gốc của các replicate Folder --> OK Trở lại cửa sổ Local Path of DFSRoots on Other Members và chọn Next Kiểm tra lại thông tin lần cuối và nhấn Create Nếu cài đặt thành công thì sẽ có kết quả như hình dưới đây. Cửa sổ Confirmation bảo đảm Success hiện ra, ta chọn Close Kết quả cấu hình Testing chương trình Trong Mục Data của Server server1 ta tiến hành thử tạo 1 file Text với tên server1_test Trong Mục Data của Server server2 ta tiến hành thử tạo 1 file Text với tên server2_test. ==> Kết quả ở mục Data của 2 Server đều có cả 2 file server1_test và server2_test Quá trình cài đặt và cấu hình như vậy là đã thành công 3.2. Đánh giá hệ thống 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ư File, Web, Mail, Streaming media, VPN. 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. Ngoài những ứng dụng tích hợp trong Windows Server 2008, NLB còn có thể tích hợ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ột cách hiệu quả. Tuy nhiên Mặc dù DFS có thể củng cố mạnh mẽ các hoạt động và tính sẵn có của các dữ liệu lưu giữ trên network của bạn, những tiện ích này cũng có cái giá của nó và có những ưu và nhược điểm khác nhau. Điều đó có nghĩa là nếu lần đầu tiên bạn đang xem xét cài đặt DFS, trước hết bạn nên có một kế hoạch. Ưu điểm DFS cung cấp cho bạn một vùng không gian duy nhất cho phép người dùng có thể kết nối đến bất cứ thư mục chia sẻ nào trong doanh nghiệp, dễ dàng tìm tập tin. DFS có thể cho phép nhân bản những tập tin chia sẻ Về mặt kĩ thuật, thì bạn không cần nhiều server DFS, nhưng nếu dùng chúng thì sẽ có những cái lợi. Với những người mới dùng, dùng nhiều bản sao cho bạn khả năng mở rộng. Thay vì bắt mỗi người dùng trong tổ chức của bạn truy cập các file của họ từ cùng một server, bạn có thể phân bổ tải làm việc qua các bản sao của DFS khác nhau thay vì đè nặng lên một server đơn lẻ. DFS cung cấp fault tolerance từ quan điểm bảo vệ bạn khỏi việc rớt kết nối network, Nếu bạn đặt một bản sao DFS ở văn phòng chi nhánh, thì các user ở văn phòng này vẫn có thể truy cập được vào các file của họ mặc dù kết nối WAN đã rớt. Khi kết nối được nối lại, bất kì thay đổi nào ở các file ở văn phòng sẽ được đồng bộ hoá với những server khác. Nhược điểm Nếu người dùng liên tục thay đổi các dữ liệu. Trong môi trường như vậy, tất cả các update cho một file sẽ thay đổi số phiên bản file, dẫn đến việc sao chép DFS. Nếu một lượng khổng lồ các update được thực hiện thì có thể dẫn đến một cơn bão các bản sao chép. Nếu các user của bạn thường xuyên update các file thì bạn nên cân nhắc thời gian sao chép thực hiện phần lớn các sao chép tránh vào giờ cao điểm. Mặc dù là một lần nữa, điều này có thể dẫn đến việc xung đột các phiên bản nếu 2 instance riêng lẻ của một file được update trước khi thực hiện sao chép. KẾT LUẬN Tổng kết Đồ án đã đưa ra các thành phần cần phải xây dựng của một bộ cân bằng tải và đã cài đặt một giải pháp phân tải động thông minh hoạt động hiệu quả hơn so với giải pháp đang chạy trên một bộ cân bằng tải mã nguồn mở. Trước tiên, đồ án đã đưa ra mô hình File với khả năng mở rộng, từ đó nhấn mạnh tầm quan trọng của việc cân bằng tải cho các File server trong toàn bộ hệ thống. Sử dụng phép so sánh về hiệu năng hệ thống cân bằng tải server và hệ thống thông thường, đồng thời sử dụng một bộ cân bằng tải để phân tải cho các File server này. Một bộ cân bằng tải hoạt động tốt cần phải kiểm tra được trạng thái server, nhằm đảm bảo không chuyển yêu cầu của người dùng đến những server không còn hoạt động. Thuật toán phân tải cần phải được xây dựng một cách thông minh nhằm lựa chọn được server tốt nhất để phục vụ yêu cầu người dùng. Đồ án đã giới thiệu 8 thuật toán cân bằng tải hiện đang được sử dụng bởi một số sản phẩm cân bằng tải của các công ty lớn trên thế giới, được chia ra làm 2 nhánh là các thuật toán tĩnh và các thuật toán động. Các thuật toán này không những đòi hỏi lập trình phần mềm tinh vi, mà còn yêu cầu sự hỗ trợ của các phần cứng. Đồ án còn nêu ra các thành phần của cân bằng tải File server, chức năng của các thành phần, hoạt động của hệ thống, kiến trúc hệ thống trong File server. Ngoài ra còn triển khai thiết kế được Mô hình Đồng bộ hóa dữ liệu trên 2 Server sử dụng DFS Replication. Mô hình này thiết lập hai Domain Controller chạy song song giúp hệ thống duy trì hoạt động khi một trong hai bộ cân bằng tải bị hỏng. Do thời gian và nguồn lực có hạn, đồ án chưa thiết kế được một bộ cân bằng tải hoàn chỉnh, hi vọng sẽ được thực hiện trong một nghiên cứu sâu hơn về đề tài này. Những ý tưởng chưa thực hiện được do hạn chế trong thiết kế của bộ cân bằng tải xin để dành trong phần định hướng phát triển. Hướng phát triển Phần demo sẽ hoàn thiện hơn để đúng với mô hình thực tế trong khoá luận tốt nghiệp. TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1]. Vũ Duy Lợi (2002), Mạng thông tin máy tính. NXB Thế giới [2]. Vương Đạo Vi, Mạng truyền dữ liệu. NXB Đại Học Quốc Gia Hà Nội. [3]. Lê Văn Long, “Quản trị mạng”, bài giảng Khoa CNTT- Đại học Duy Tân, Lưu hành nội bộ. [4]. Nguyễn Gia Như “Thiết kế mạng”, bài giảng Khoa CNTT - Đại học Duy Tân, Lưu hành nội bộ. [5]. Hồng Phúc (2005), Tối Ưu Hóa Thực Thi Mạng Với Content Switching Server, Firewall Và Cân Bằng Tải, NXB Thống kê [6]. [7]. [8]. [9]. ông-nghệ-cân-bằng-tải [10]. [11]. Tài liệu tiếng Anh [12]. Paul Albitz, Cricket Liu, DNS and BIND, Fourth Edition, 2001 [13]. Tony Bourke, Server Load Balancing, O'Reilly & Associates [14]. [15]. Tony Bourke, 2001, Server Load Balancing [16]. Chandra Kopparapu, 2002, Load Balancing Servers, Firewalls, and Caches [17]. Valeria Cardellini, Michele Colajani, Philip S. Yu, Dynamic Load Balancing on Web Server Systems, 1999

Các file đính kèm theo tài liệu này:

  • docxky_thuat_can_bang_tai_file_server_2452.docx