Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ---------- NGUYỄN THỊ TRÀ TÌM HIỂU VÀ TRIỂN KHAI CÔNG NGHỆ CÂN BẰNG TẢI TRÊN HỆ THỐNG MÁY CHỦ KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 04 năm 2017 UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN --------- KHÓA LUẬN TỐT NGHIỆP Tên đề tài: TÌM HIỂU VÀ TRIỂN KHAI CÔNG NGHỆ CÂN BẰNG TẢI TRÊN HỆ THỐNG MÁY CHỦ Sinh viên thực hiện: NGUYỄN THỊ TRÀ MSSV: 2113021049 CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN KHÓA: 2013 – 2017 Cán bộ hướng dẫn ThS. VÕ THANH THỦY Quảng Nam, ngày 14 tháng 04 năm 2017 LỜI CẢM ƠN Xuyên suốt 4 năm học vừa qua tại trường đại học Quảng Nam. Em đã được học hỏi, thu nạp nhiều kiến thức bổ ích không chỉ từ sách vở, tài liệu mà em còn được truyền đạt kinh nghiệm, tâm huyết quý báu của các thầy, cô nhờ đó em có một hành trang bước vào tương lai một cách vững vàng và tự tin hơn. Em xin gửi lời cảm ơn sâu sắc nhất đối với các thầy, cô trong Khoa Công nghệ thông tin. Đặc biệt là Thầy Th.S Võ Thanh Thủy người đã tận tình trực tiếp hướng dẫn, góp ý và giúp đỡ em hoàn thành đề tài này. Bên cạnh đó em cũng chân thành cảm ơn các bạn cùng lớp đã có sự chia sẻ, giúp đỡ hỗ trợ trong suốt quá trình vừa qua. Lời cuối cùng, em xin gửi lời biết ơn cao cả tới gia đình. Họ là nguồn động viên tinh thần và cổ vũ lớn lao, động lực, cảm hứng giúp em thành công trong công việc và cuộc sống. MỤC LỤC Phần 1. MỞ ĐẦU ................................................................................................ 1 1.1. LÝ DO CHỌN ĐỀ TÀI ............................................................................... 1 1.2. MỤC TIÊU CỦA ĐỀ TÀI ........................................................................... 2 1.3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU ............................................. 3 1.3.1. Đối tượng................................................................................................... 3 1.3.2. Phạm vi nghiên cứu ................................................................................... 3 1.4. PHƯƠNG PHÁP NGHIÊN CỨU................................................................ 3 1.5. LỊCH SỬ NGHIÊN CỨU ............................................................................ 3 1.6. ĐÓNG GÓP CỦA ĐỀ TÀI ......................................................................... 4 1.7. CẤU TRÚC ĐỀ TÀI ................................................................................... 4 PHẦN 2. NỘI DUNG NGHIÊN CỨU ............................................................... 5 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ CÂN BẰNG TẢI TRONG KIẾN TRÚC MẠNG PHÂN TÁN ................................................................................ 5 1.1. ĐẶT VẤN ĐỀ ............................................................................................. 5 1.2. GIỚI THIỆU HỆ PHÂN TÁN ..................................................................... 5 1.2.1. Khái niệm hệ phân tán............................................................................... 5 1.2.2. Đặc điểm của hệ phân tán ......................................................................... 6 1.2.3. Cơ sở và kiến trúc của hệ phân tán ........................................................... 9 1.3. GIỚI THIỆU CÂN BẰNG TẢI ................................................................. 10 1.3.1. Khái niệm cân bằng tải ............................................................................ 10 1.3.2. Lợi ích việc cân bằng tải ......................................................................... 10 1.4. VÌ SAO PHẢI XÂY DỰNG HỆ THỐNG CÂN BẰNG TẢI ................... 10 1.5. KỸ THUẬT CÂN BẰNG TẢI .................................................................. 14 1.5.1. Kiểm tra trạng thái server ........................................................................ 14 1.5.2. Lựa chọn server tốt nhất .......................................................................... 15 1.5.3. Kỹ thuật Session Persistence ................................................................... 15 1.5.4. Cookies .................................................................................................... 16 1.5.5. Cân bằng tải máy chủ với phần mềm....................................................... 18 1.5.6. Cân bằng tải với proxy ............................................................................ 18 1.5.7. Cân bằng tải với thiết bị kết nối .............................................................. 19 1.5.8. Xử lý các yêu cầu kết nối tập trung......................................................... 19 1.6. CÁC THÀNH PHẦN CỦA SLB (SERVER LOAD BALANCING) ...... 20 1.6.1. Chức năng của các thành phần trong SLB .............................................. 20 1.6.2. Hoạt động của hệ thống cân bằng tải server ........................................... 22 1.6.3. Kiến trúc hệ thống cân bằng tải............................................................... 23 1.6.4. Phân phối lưu lượng trong SLB .............................................................. 24 1.6.5. Tư tưởng thuật toán cân bằng tải............................................................. 26 1.6.6. Quá trình hội tụ SLB ............................................................................... 28 1.6.7. Hiệu suất của SLB .................................................................................. 28 CHƯƠNG 2: MỘT SỐ THUẬT TOÁN CÂN BẰNG TẢI PHỔ BIẾN VÀ ỨNG DỤNG ĐƯỢC TRIỂN KHAI HIỆN NAY....................................................... 31 2.1. THUẬT TOÁN RANDOM (NGẪU NHIÊN)........................................... 31 2.2. THUẬT TOÁN ROUND ROBIN (RR) .................................................... 31 2.3. THUẬT TOÁN WEIGHTED ROUND ROBIN (WRR) .......................... 32 2.4. THUẬT TOÁN DYNAMIC ROUND ROBIN (DRR) ............................. 33 2.5. THUẬT TOÁN LEAST CONNECTION (LC) ......................................... 33 2.6. THUẬT TOÁN WEIGHTED LEAST CONNECTION .......................... 34 2.7. THUẬT TOÁN FASTEST ........................................................................ 34 2.8. THUẬT TOÁN LEAST RESPONSE TIME ............................................. 35 2.9. MỘT SỐ ỨNG DỤNG CỦA THUẬT TOÁN ĐÃ ĐƯỢC TRIỂN KHAI HIỆN NAY ........................................................................................................ 35 2.9.1. Round Robin DNS .................................................................................. 35 2.9.2. Công nghệ DNS Anycat .......................................................................... 36 2.9.3. Sử dụng thiết bị cân bằng tải chuyên dụng ............................................. 37 2.9.4. Network load balancing ......................................................................... 37 CHƯƠNG 3: MỘT SỐ ỨNG DỤNG GIẢI PHÁP TRONG CÂN BẰNG TẢI40 3.1. TÌM HIỂU CÁC GIẢI PHÁP SỬ DỤNG TRONG CÂN BẰNG TẢI..... 40 3.1.1. Web Server .............................................................................................. 40 3.1.1.1. Tổng quan về Web Server .................................................................... 40 3.1.1.2. Lý thuyết xây dựng bộ cân bằng tải cho Web Server .......................... 41 3.1.1.3. Phương pháp cân bằng tải .................................................................... 41 3.1.2. File Server ............................................................................................... 47 3.1.2.1. Tổng quan về File Server ..................................................................... 47 3.1.2.2. Triển khai File Server........................................................................... 47 3.2. CÀI ĐẶT .................................................................................................... 52 3.2.1. Dịch vụ AD ............................................................................................. 52 3.2.2. Dịch vụ DNS ........................................................................................... 56 3.2.3. Cài đặt IIS trên Web Server ................................................................... 59 3.2.4.Dịch vụ Web Service ............................................................................... 61 3.2.5. Cấu hình NLB ......................................................................................... 64 3.3. KẾT QUẢ DEMO..................................................................................... 67 PHẦN 3: KẾT LUẬN VÀ KIẾN NGHỊ .......................................................... 69 1. Kết luận ........................................................................................................ 69 2. Kiến nghị ...................................................................................................... 70 PHẦN 4: TÀI LIỆU THAM KHẢO ................................................................. 71 PHẦN 5: PHỤ LỤC .......................................................................................... 72 5.1. Cài đặt Vmware Workstation ..................................................................... 72 5.2. Cài đặt Windows Server............................................................................. 75 DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT Viết Tắt Tiếng Anh Tiếng Việt SLB Server Load Blancing Cân bằng tải máy chủ DNS Domain Name System Hệ thống tên miền AD Active Directory Thư mục tự động CCR Centrallized Connection Routing Yêu cầu kết nối trung tâm DFS Distributed File System Phân phối hệ thống tệp tin NLB Network Load Balancing Cân bằng tải mạng VIP Virtual IP Địa chỉ IP ảo HĐH Operating System Hệ điều hành CSDL Database Cơ sở dữ liệu LB Load Balancing Cân bằng tải DANH MỤC HÌNH VẼ Hình 1. 1: Mô hình kiến trúc hệ phân tán ............................................................. 9 Hình 1.2: So sánh hệ thống cân bằng tải server và hệ thống thường. ................ 13 Hình 1. 3: Hệ thống Server Load Balancing đơn giản ....................................... 22 Hình 1. 4: Hành trình của một gói dữ liệu. ......................................................... 25 Hình 2. 1: Cân bằng tải sử dụng Round Robin DNS ......................................... 36 Hình 2. 2: Thiết bị cân bằng tải chuyên dụng .................................................... 37 Hình 2.3: Topo cân bằng tải của Exchange 2007 Client Access Server ............ 38 Hình 3. 1: Hoạt động luân chuyển DNS ............................................................. 42 Hình 3. 2: Cấu trúc thư mục thật sự của một hệ thống DFS .............................. 48 Hình 3. 3: Mô hình DFS Namespace ................................................................. 50 Hình 3. 4: Mô hình triển khai DFS Replication. ............................................... 51 Hình 3. 5: Mô hình triển khai File Server .......................................................... 52 Hình 3. 6: Mô hình demo ................................................................................... 52 Hình 3. 7:Giao diện cài đặt AD .......................................................................... 53 Hình 3. 8:Giao diện cài đặt AD .......................................................................... 53 Hình 3. 9: Giao diện cài đặt AD ......................................................................... 54 Hình 3. 10:Giao diện cài đặt AD ........................................................................ 54 Hình 3. 11:Giao diện cài đặt AD ........................................................................ 55 Hình 3. 12: Giao diện cài đặt DNS..................................................................... 56 Hình 3. 13:Giao diện cài đặt DNS ...................................................................... 56 Hình 3. 14: Giao diện cài đặt DNS ..................................................................... 57 Hình 3. 15:Giao diện cài đặt DNS ...................................................................... 57 Hình 3. 16: Giao diện cài đặt DNS..................................................................... 58 Hình 3. 17: Giao diện cài đặt DNS ..................................................................... 58 Hình 3. 18: Giao diện cài đặt IIS ........................................................................ 59 Hình 3. 19: Giao diện cài đặt IIS ........................................................................ 60 Hình 3. 20:Giao diện cài đặt IIS ......................................................................... 60 Hình 3. 21: Giao diện cài đặt IIS ........................................................................ 61 Hình 3. 22: Giao diện cấu hình dịch vụ Web Service ........................................ 61 Hình 3. 23: Giao diện cấu hình dịch vụ Web Service ........................................ 62 Hình 3. 24:Giao diện cấu hình dịch vụ Web Service ......................................... 62 Hình 3. 25:Giao diện cấu hình dịch vụ Web Service ......................................... 63 Hình 3. 26:Giao diện cấu hình dịch vụ Web Service ......................................... 63 Hình 3. 27:Giao diện cấu hình dịch vụ Web Service ......................................... 64 Hình 3. 28:Giao diện cấu hình DNS ................................................................... 64 Hình 3. 29:Giao diện cấu hình DNS ................................................................... 65 Hình 3. 30:Giao diện cấu hình DNS ................................................................... 65 Hình 3. 31:Giao diện cấu hình DNS ................................................................... 66 Hình 3. 32:Giao diện cấu hình DNS ................................................................... 66 Hình 3. 33:Giao diện cấu hình DNS ................................................................... 67 Hình 3. 34: Giao diện kết quả demo truy cập trang Web Server 1 .................... 67 Hình 3. 35:Giao diện kết quả demo truy cập trang Web Server 2 ..................... 68 1 Phần 1. MỞ ĐẦU 1.1. LÝ DO CHỌN ĐỀ TÀI Trong thời đại ngày nay, khi công nghệ đang dần chiếm ưu thế và tạo ra nhiều giá trị cho công việc của con người thì việc phát triển các hệ thống công nghệ trong tất cả các tổ chức là việc làm cần thiết. Cùng với đó thì công nghệ mạng và các hệ thống máy chủ ngày nay đã có những bước phát triển vượt bậc. Nhờ đó đáp ứng được các ứng dụng thương mại rộng lớn như các giao dịch tài chính, hệ thống cơ sở dữ liệu, hệ thống Web Server, hệ thống Mail Server, hệ thống File Server và các ứng dụng truyền media. Trong các ứng dụng đòi hỏi phải sử dụng tần suất cao và hoạt động liên tục. Do vậy, hệ thống mạng phải có khả năng mở rộng tối ưu để đáp ứng được một lượng lớn các yêu cầu ngày càng tăng của người dùng mà không gây ra bất kỳ một độ trễ không mong muốn nào. Một trong những xu hướng lựa chọn hệ thống mạng ngày nay là phân tán sự tính toán giữa các hệ thống vật lý khác nhau. Nó có thể khác nhau về quy mô và chức năng. Hệ thống bao gồm các máy trạm, máy tính mini và hệ thống máy tính đa năng lớn. Hệ thống này được gọi là các nút. Trong thực tế, một xu hướng kỹ thuật mới ra đời xu hướng phân tán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tin. Song để khai thác có hiệu quả toàn hệ thống, vấn đề quan trọng hàng đầu cần phải tính đến là các tài nguyên nói chung, đặc biệt tài nguyên thông tin nói riêng và chiến lược khai thác, sử dụng chúng một cách tối ưu. Hệ tin học phân tán với những nguyên lý, phương pháp của nó đang được nhiều người quan tâm. Sự nghiên cứu về hệ thống mạng phân tán bao gồm nhiều lĩnh vực như: mạng truyền thông, hệ điều hành phân tán, cơ sở dữ liệu phân tán, lý thuyết về các hệ thống mạng song song và phân tán, cấu trúc mạng, độ tin cậy và khả năng chịu lỗi, hệ thống phân tán trong thời gian thực, khả năng gỡ lỗi phân tán và các ứng dụng phân tán. Như vậy, hệ phân tán mạng bao gồm mạng vật lý, các nút và các phần mềm điều khiển. 2 Có 5 lý do để xây dựng một hệ thống mạng phân tán, đó là: chia sẻ tài nguyên, cải tiến sự tối ưu, độ tin cậy, khả năng truyền thông và khả năng mở rộng. Một trong những vấn đề thú vị nhất trong hệ thống mạng phân tán là cải tiến sự tối ưu của hệ thống thông qua sự cân bằng tải giữa các nút trong hệ thống máy chủ. Bên cạnh đó sự bùng nổ của các dịch vụ web trong những năm gần đây khiến số lượng người truy cập vào mạng internet ngày càng tăng mạnh, đặc biệt là các website mạng xã hội và các website chia sẻ video trực tuyến. Với nhiều lượt truy cập mỗi ngày, các website này đòi hỏi phải có một hệ thống máy chủ cực kỳ mạnh mẽ. Một hệ thống hoạt động tốt sẽ khiến người dùng hài lòng, sau một thời gian hoạt động số lượng người dùng sẽ tăng lên, máy chủ của hệ thống sẽ quá tải, dẫn đến yêu cầu nâng cấp. Đặc biệt sau khi nâng cấp thì thời gian vẫn trở lại như cũ. Vòng tuần hoàn này dẫn đến cần phải xây dựng một hệ thống cân bằng tải trong máy chủ nói chung và Web Server nói riêng. Một hệ thống website có nhiều Web Server đặt ở nhiều nơi, cân bằng tải cho hệ thống này nghĩa là làm cách nào để các Web Server không bị quá tải, luôn đáp ứng được nhu cầu người dùng trong thời gian ngắn nhất. Vì vậy nhu cầu cân bằng tải là vô cùng cần thiết và là sống còn đối với các nhà mạng. Từ những yếu tố trên, cùng với sự phân tích công nghệ (phần cứng, phần mềm), chi phí bản quyền, kỹ năng vận hành cho người sử dụng. Em đã mạnh dạn chọn đề tài “Tìm hiểu và triển khai công nghệ cân bằng tải trên hệ thống máy chủ” làm đề tài nghiên cứu của mình. Đây là một vấn đề khá quan trọng trong việc thiết kế các hệ thống mạng, các trung tâm tính toán hiệu năng cao và các trung tâm dữ liệu cho các ứng dụng lớn. Nó giúp phần thúc đẩy trong việc phát triển của công nghệ mạng. 1.2. MỤC TIÊU CỦA ĐỀ TÀI Với đề tài: “Tìm hiểu và triển khai công nghệ cân bằng tải trên hệ thố ng máy chủ ”, tôi sẽ nghiên cứu sâu về công nghệ cân bằng tải và biết được sự cần thiết của nó cho hệ thống mạng. Bên cạnh đó xây dựng một chương trình demo minh họa cho kỹ thuật cân bằng tải. 3 1.3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1.3.1. Đối tượng Một số thuật toán cân bằng tải và ứng dụng vào việc cân bằng tải các dịch vụ mạng trên hệ điều hành Windows Server 2003. Sử dụng phần mềm Vmware Workstation để mô phỏng cho việc cài đặt hệ thống máy chủ, triển khai các dịch vụ mạng và kỹ thuật cân bằng tải. Minh hoạ kỹ thuật cân bằng tải trên dịch vụ Web Server. 1.3.2. Phạm vi nghiên cứu Bài báo cáo này tập trung vào tìm hiểu và nghiên cứu cân bằng tải trên hệ thống máy chủ và xây dựng việc ứng dụng của cân bằng tải, điển hình trong Web Server. 1.4. PHƯƠNG PHÁP NGHIÊN CỨU Cơ bản sử dụng phương pháp nghiên cứu tài liệu (sách, báo, các mục tiêu trên Internet có liên quan đến đề tài) để thu thập thông tin nhằm phân tích, hệ thống lý thuyết liên quan đến vấn đề cân bằng tải và các giải pháp của nó. Bên cạnh đó còn tìm hiểu thêm các ứng dụng trong cân bằng tải như Web Server. Phương pháp thực nghiệm: dựa vào lý thuyết để áp dụng vào triển khai xây dựng hệ thống và đánh giá kết quả thực nghiệm nhiều lần nhằm xây dựng hệ thống đáp ứng yêu cầu hiệu quả. Phương pháp lấy ý kiến chuyên gia: nhờ sự giúp đỡ của các thầy cô giáo có kiến thức chuyên môn để nhận xét, đánh giá, đóng góp ý kiến cho đề tài hoàn thiện hơn. 1.5. LỊCH SỬ NGHIÊN CỨU Với vấn đề về cân bằng tải đang được rất nhiều tác giả phân tích nghiên cứu theo nhiều hướng khác nhau và được các tác giả đã nghiên cứu những trước đây như: - Tìm hiểu kỹ thuật cân bằng tải File Server. - Công nghệ cân bằng tải Server. - Cân bằng tải cho các hệ Web Server lớn và đảm bảo khả năng mở rộng. 4 1.6. ĐÓNG GÓP CỦA ĐỀ TÀI Đề tài nhằm trình bày những kiến thức cơ bản và tổng quan về cân bằng tải, các giải pháp sử dụng trong cân bằng tải. Nó góp phần nào trong việc giải quyết vấn đề quá tải giữa các máy trong một hệ thống. Kết quả nghiên cứu đề tài này có giá trị thực tiễn, đảm bảo rằng việc cân bằng tải giữa các máy chủ khi có nhiều máy con truy cập cùng một lúc. 1.7. CẤU TRÚC ĐỀ TÀI Đề tài được cấu trúc bao gồm các chương sau Chương 1: Cơ sở lý thuyết về cân bằng tải trong kiến trúc mạng phân tán. Chương 2: Một số thuật toán cân bằng tải phổ biến và ứng dụng được triển khai hiện nay. Chương 3: Một số ứng dụng giải pháp trong cân bằng tải. 5 PHẦN 2. NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ CÂN BẰNG TẢI TRONG KIẾN TRÚC MẠNG PHÂN TÁN 1.1. ĐẶ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ý. 1.2. GIỚI THIỆU HỆ PHÂN TÁN 1.2.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. 6 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.2.2. Đặ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 7 HĐH, các giao thức truyền thông, các dịch vụ chia sẻ tài nguyên,...) của 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 8 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. 9 1.2.3. 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. 10 1.3. GIỚI THIỆU CÂN BẰNG TẢI 1.3.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. 1.3.2. 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. Tăng độ tin cậy và khả năng dự phòng cho hệ thống: sử dụng cân bằng tải giúp tăng tính sẵn sàng cao cho hệ thống, đồng thời đảm bảo cho người dùng không bị gián đoạn dịch vụ khi xảy ra sự cố lỗi tại một điểm cung cấp dịch vụ. Tăng tính bảo mật cho hệ thống: thông thường khi người dùng gửi yêu cầu dịch vụ đến hệ thống, yêu cầu đó sẽ được xử lý trên bộ cân bằng tải, sau đó thành phần cân bằng tải mới chuyển tiếp các yêu cầu cho các máy chủ bên trong. Quá trình trả lời cho khách hàng cũng thông qua thành phần cân bằng tải, vì vậy mà người dùng không thể biết được chính xác các máy chủ bên trong cũng như phương pháp phân tải được sử dụng. Bằng cách này có thể ngăn chặn người dùng giao tiếp trực tiếp với các máy chủ, ẩn các thông tin và cấu trúc mạng nội bộ, ngăn ngừa các cuộc tấn công trên mạng hoặc các dịch vụ không liên quan đang hoạt động trên các cổng khác. 1.4. VÌ 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ư 11 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. Các doanh nghiệp đang hướng tới việc dùng máy chủ ảo trong xã hội ngày nay mục đích để có một hệ thống máy lưu trữ và xử lý thông tin với tốc độ cao và độ bảo mật lớn: Việc sở hữu một server sẽ giúp cho doanh nghiệp chủ động trong việc quản lý và xử lý thông tin, không phụ thuộc vào bên cung cấp. Quan trọng hơn là khả năng quản lý thông tin tối ưu, tránh được nguy cơ mất cắp dữ liệu, hạn chế được các cuộc tấn công qua mạng, virus backdoor,… Nhưng không nhiều doanh nghiệp ý thức được tầm quan trọng thực sự của một server. Để tiết kiệm hiện nay các doanh nghiệp, nhất là doanh nghiệp vừa và nhỏ vẫn đang sử dụng máy tính để bàn thông thường trong các hoạt động. Tuy nhiên, khi doanh nghiệp phát triển với nhiều nhân viên hơn, chuỗi cung ứng trở nên phức tạp hơn, doanh nghiệp cần kiểm soát các dữ liệu và lưu trữ để các hoạt động kinh doanh không bị gián đoạn, hệ thống máy tính để bàn bắt đầu bộc lộ các yếu điểm và không đáp ứng được nhu cầu hoạt động của doanh nghiệp. Bên cạnh đó, hầu hết các ứng dụng trong doanh nghiệp hiện nay thường được viết để có thể chạy trong hệ thống có kết nối mạng. Tuy nhiên, một máy tính bình thường khó có khả năng và sức mạnh để xử lý khối lượng thông tin lớn trong một thời gian ngắn. Vì vậy, một máy chủ có tính ổn định và tốc độ xử lý cao sẽ mang lại thuận lợi cho hoạt động của doanh nghiệp. Ngoài ra các doanh nghiệp còn áp dụng bài toán cân bằng tải nhằm: - Chặn lưu lượng mạng (chẳng hạn lưu lượng web) đến một trang web. Bản thân thiết bị cân bằng tải có thể là một proxy hay một firewall tầng ứng dụng, nó sẽ là đối tượng đầu tiên nhận các yêu cầu trước khi chia tải. Do đó, chức năng này được coi như là thiết yếu của một cân bằng tải. - Tách các lưu lượng thành các yêu cầu riêng biệt và quyết định máy chủ 12 nào nhận các yêu cầu đó. Đây là chức năng chủ chốt của cân bằng tải. Tùy vào thuật toán áp dụng mà sẽ có từng cách thức khác nhau để phân chia cụ thể cho mỗi máy chủ. - Duy trì một cơ chế ở những máy chủ đang sẵn sàng. Giữa cân bằng tải và máy chủ luôn phải có liên lạc với nhau để biết được máy chủ đó còn “sống” hay không. - Cung cấp khả năng dự phòng bằng cách sử dụng nhiều hơn một kịch bản fail- over. - Cung cấp khả năng nhận thức nội dung phân tán bằng cách đọc URL, chặn cookies và biên dịch XML. Đây được coi là một trong những tiêu chí chia tải của hệ thống. 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ư 13 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 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 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. So sánh hệ thống cân bằng tải với hệ thống thông thường. Hình 1.2: So sánh hệ thống cân bằng tải server và hệ thống thường. Hệ thống cân bằng tải Hệ thống thông thường Tính sẵn sàng 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 14 Ư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 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, 1.5. KỸ THUẬT CÂN BẰNG TẢI Như chúng ta đã biết, bộ cân bằng tải có nhiệm vụ kết nối giữa người dùng và server, do đó nó có thể hoạt động như một proxy hoặc gateway. Một proxy có nhiệm vụ luân chuyển yêu cầu và dữ liệu đáp trả giữa người dùng và server, trong khi đó một gateway chỉ có nhiệm vụ tạo ra một kết nối hai đối tượng này và không làm gì thêm. Có thể sử dụng phần cứng hoặc phần mềm được cài đặt trên một front server, hoặc trên chính Web Server. Thêm nữa, khi số lượng người dùng tăng lên, để tránh bế tắc, cần thiết phải cài đặt 2 bộ cân bằng tải song song, hoạt động theo cơ chế active-active hoặc active-standby. 1.5.1. Kiểm tra trạng thái server Để chọn được server phù hợp để gửi request, bộ cân bằng tải cần phải biết được server nào đang có sẵn. Vì vậy, nó cần phải dùng biện pháp nào đó để kiểm tra trạng thái của server, chẳng hạn như gửi lệnh ping, các yêu cầu, thử kết nối hay bất cứ phương pháp nào mà người quản trị nghĩ là dùng được. Kỹ thuật kiểm tra này thường được gọi là "health checks". 15 Một server bị down có thể trả lời lệnh ping nhưng không thể trả lời các kết nối TCP, một server bị treo có khả năng trả lời kết nối TCP nhưng không thể trả lời các yêu cầu HTTP. Khi một ứng dụng web nhiều lớp được kích hoạt, một số yêu cầu HTTP có thể trả lời ngay lập tức trong khi số khác sẽ thất bại. Chính vì thế, việc chọn một phương pháp test phù hợp được chấp nhận bởi ứng dụng web và bộ cân bằng tải là rất thú vị. Một số test đôi khi phải cần truy xuất dữ liệu database nhằm đảm bảo rằng toàn bộ quá trình của nó là đúng. Hạn chế lớn nhất là những phương pháp kiểm tra này sẽ chiếm tài nguyên của hệ thống như là CPU, threads, Do đó, cân bằng thời gian kiểm tra chính là vấn đề khó nhất trong kỹ thuật lựa chọn server. Khoảng thời gian giữa 2 lần test liên tiếp phải đủ dài để không tốn quá nhiều tài nguyên của hệ thống và cũng cần đủ ngắn để nhanh chóng phát hiện ra những server "chết". Vì "health checks" là một trong những khía cạnh phức tạp nhất của kỹ thuật cân bằng tải, nên thường sau một vài kiểm tra, các nhà phát triển ứng dụng sẽ thực thi một yêu cầu đặc biệt dành riêng cho bộ cân bằng tải, giúp cho nó thực hiện một số kiểm tra nội bộ. Phần mềm cân bằng tải có khả năng cung cấp, do đó nó đạt được độ linh hoạt rất cao. Thêm nữa, nếu như một bài kiểm tra nào đó đòi hỏi phải chỉnh sửa code, nó có thể thực hiện trong một khoảng thời gian ngắn. 1.5.2. Lựa chọn server tốt nhất Phương pháp dễ nhất và thường được sử dụng nhất trong các hệ thống nhỏ là Round Robin, các server được lựa chọn quay vòng, tuy nhiên phương pháp này có nhược điểm là 2 requests liên tục từ một người dùng sẽ vào 2 servers khác nhau, thông tin giữa 2 yêu cầu liên tiếp sẽ bị mất, như vậy sẽ không thể tối ưu hóa được sử dụng tài nguyên. Đặc biệt là khi cần phải cài đặt kết nối cho các phiên chạy. 1.5.3. Kỹ thuật Session Persistence Làm sao để giữ cho các yêu cầu của một người dùng được gửi vào một máy duy nhất trong suốt phiên làm việc của người đó. Tất cả các yêu cầu của 16 người dùng này cần phải được chuyển vào cùng một server. Nếu server bị chết, hoặc ngừng để bảo trì, cần phải có cơ chế để chuyển session của người dùng này sang máy server khác. Đó chính là kỹ thuật Session Persistence. Có một số giải pháp được đưa ra để tiếp cận kỹ thuật này, chẳng hạn như sử dụng một respone HTTP 302 hay tạo ra liên kết giữa người dùng - server. Tuy vậy 2 phương pháp này đều có những hạn chế, sử dụng HTTP 302 sẽ khiến người dùng luôn luôn tìm cách kết nối với một server duy nhất, kể cả khi server này đã "chết". Dùng cách tạo liên kết đòi hỏi user phải có IP tĩnh trong suốt phiên làm việc. 1.5.4. Cookies Cookies là một đối tượng được điều khiển bởi Web Server. Trong kết quả trả về cho người dùng Web Server sẽ chèn thêm một số thông tin. Một cookies được định nghĩa bằng cặp tên=giá trị (name=value). Trong thiết kế của bộ cân bằng tải, có 3 cách để sử dụng cookies: cookie chỉ đọc (Cookie-Read), bộ cân bằng tải chèn cookie nhằm chứng thực server (Cookie- Insert) và ghi cookie (Cookie-Rewrite). Cookie-Read Khi người dùng lần đầu tiên gửi yêu cầu đến server, do không có cookie trong yêu cầu, nên nó sẽ được phân tải đến server RS1. Server RS1 sẽ tạo và đặt cookie server=1 vào trong dữ liệu trả về cho người dùng. Trình duyệt của người dùng sẽ nhận trả về này, đọc thấy cookies và lưu trữ nó vào trong đĩa cứng. Sau đó người dùng có thể đóng trình duyệt hoặc ngắt kết nối (giả sử rằng trình duyệt của người dùng không tự động xóa cookie sau khi đóng). Một thời gian sau người dùng kết nối lại và gửi yêu cầu đến bộ cân bằng tải. Sau khi kết nối được thiết lập, trình duyệt người dùng sẽ gửi cookie server=1 như là một phần của yêu cầu HTTP. Bộ cân bằng tải sẽ đọc được cookie này và do đó sẽ chuyển yêu cầu của người dùng vào server RS1. Như vậy người dùng sẽ luôn được kết nối vào server 1 cho đến khi nào cookie còn tồn tại, cho dù người dùng có thể vào website từ các địa chỉ IP khác nhau. 17 Ưu điểm: 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: ứ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 Tương tự như cookie-read, nhưng ở đây khi server trả về dữ liệu cho người dùng, 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. 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. Ưu điểm: 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ó 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. 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. 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. Ưu điểm : 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ỏ. Nhược điểm: cần phải có một bộ nhớ phức tạp, và thêm nữa có thể khiến 18 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. 1.5.5. 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. Ưu điểm : 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ý. Nhược điểm: 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.5.6. 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. Ư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: 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. 19 1.5.7. 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 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. 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. 1.5.8. 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 máy chủ riêng lẻ trong một nhóm, phương pháp xử lý các yêu cầu kết nối tập trung sử dụng một router cục bộ để thực hiện chức năng này. 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. Nhược điểm của kĩ thuật CCR: - Khi kết nối từ client đến router 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 hỏng toàn bộ hệ thống sẽ ngưng hoạt động do đó tính chịu lỗi thấp. 20 1.6. CÁC THÀNH PHẦN CỦA SLB (SERVER LOAD BALANCING) 1.6.1. Chức năng của các thành phần trong SLB Một giải pháp cân bằng tải phải có những chức năng sau đây: Can thiệp vào luồng dữ liệu mạng với tới một đỉnh đí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ủ 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 tình huống fail-over. Cung cấp sự phân phối dựa trên sự hiểu biết về nội dung ví dụ như đọc URL, can thiệp và cookies hoặc truyền XML. Sever Load Balancer: 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. VIPS : Virtual IP (VIP): là một dạng thể hiện cân bằng tải. Mỗi VIP sử dụng đị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 dữ liệu web. Mỗi VIP 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 metric hoặc các hương thức được mô tả trong phần “Active – Active Scenario”. Các máy chủ (Server): 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ả các dịch vụ khác liên quan. Một máy chủ thường có một địa chỉ IP và một cổng TCPUDP gắn liền với nó và không có địa chỉ IP công khai. Nhóm (Group): dùng để chỉ một nhóm các máy chủ được cân bằng tải. Các thuật ngữ “farm” hoặc “server farm” có cùng một ý nghĩa với thuật ngữ này. 21 Cấp độ người dùng truy cậ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 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 cập khác nhau, mà hầu hết các dịch vụ cũng có những cách thức truy cập khác nhau. 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 ít gây ả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ư các 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. Vai trò của việc dự phòng Trong phương pháp dự phòng tồn tại một quan hệ 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 các chức năng này. Mối quan hệ này cũng có thể được gọi là mối quan hệ masterslave. Trong những tình huống nhất định, cả hai thiết bị 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à (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. Hoạt động chờ (active- standby): một thiết bị sẽ nhận toàn dữ liệu đến, trong đó các thiết bị còn lại phải chờ trong một tình huống trục trặc. Nếu thiết bị 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ộ dữ liệu đến. Hoạt động active- active: trong 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ẽ thực thi luôn cả chức năng của thiết bị gặp trục trặc. 22 1.6.2. Hoạt động của hệ thống cân bằng tải server Mô hình SLB được mô tả dưới hình sau đây: Hình 1. 3: Hệ thống Server Load Balancing đơn giản SLB mở rộng hiệu năng của các server ứng dụng, chẳng hạn như Web Server, nhờ phân phối các yêu cầu của client cho cá 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 từ các client, cho dù một client có thể đưa ra nhiều yêu cầu. Ví dụ một trình Web cần rất nhiều hình ảnh trên một trang Web được lưu trữ tại nhiều host khác nhau trong một nhóm server. Với kỹ thuật cân bằng tải, quá trình xử lý và thời gian đáp ứng client sẽ nhanh hơn nhiều. Mỗi host trong nhóm có thể định ra mức tải mà nó 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 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 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 Web Server, có rất nhiều client và thời gian mà các yêu cầu của client tồn tại tương đối ngắn, khả năng của kỹ thuật này nhằm phân phối tải thông qua ánh xạ thống kê sẽ giúp cân bằng tải một
NỘI DUNG NGHIÊN CỨU
TRÚC MẠNG PHÂN TÁN 1.1 ĐẶ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ý
1.2 GIỚI THIỆU HỆ PHÂN TÁN
1.2.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.
CƠ SỞ LÝ THUYẾT VỀ CÂN BẰNG TẢI TRONG KIẾN TRÚC MẠNG PHÂN TÁN
ĐẶ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.2.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
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
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.2.2 Đặ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ở 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
HĐH, các giao thức truyền thông, các dịch vụ chia sẻ tài nguyên, ) của 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
- 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ó
- Hệ phân tán có khả năng hoạt động tốt và hiệu quả ở nhiều mức khác 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
GIỚI THIỆU CÂN BẰNG TẢI
1.3.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
1.3.2 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
Tăng độ tin cậy và khả năng dự phòng cho hệ thống: sử dụng cân bằng tải giúp tăng tính sẵn sàng cao cho hệ thống, đồng thời đảm bảo cho người dùng không bị gián đoạn dịch vụ khi xảy ra sự cố lỗi tại một điểm cung cấp dịch vụ
Tăng tính bảo mật cho hệ thống: thông thường khi người dùng gửi yêu cầu dịch vụ đến hệ thống, yêu cầu đó sẽ được xử lý trên bộ cân bằng tải, sau đó thành phần cân bằng tải mới chuyển tiếp các yêu cầu cho các máy chủ bên trong Quá trình trả lời cho khách hàng cũng thông qua thành phần cân bằng tải, vì vậy mà người dùng không thể biết được chính xác các máy chủ bên trong cũng như phương pháp phân tải được sử dụng Bằng cách này có thể ngăn chặn người dùng giao tiếp trực tiếp với các máy chủ, ẩn các thông tin và cấu trúc mạng nội bộ, ngăn ngừa các cuộc tấn công trên mạng hoặc các dịch vụ không liên quan đang hoạt động trên các cổng khác.
VÌ 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
Các doanh nghiệp đang hướng tới việc dùng máy chủ ảo trong xã hội ngày nay mục đích để có một hệ thống máy lưu trữ và xử lý thông tin với tốc độ cao và độ bảo mật lớn:
Việc sở hữu một server sẽ giúp cho doanh nghiệp chủ động trong việc quản lý và xử lý thông tin, không phụ thuộc vào bên cung cấp Quan trọng hơn là khả năng quản lý thông tin tối ưu, tránh được nguy cơ mất cắp dữ liệu, hạn chế được các cuộc tấn công qua mạng, virus backdoor,…
Nhưng không nhiều doanh nghiệp ý thức được tầm quan trọng thực sự của một server Để tiết kiệm hiện nay các doanh nghiệp, nhất là doanh nghiệp vừa và nhỏ vẫn đang sử dụng máy tính để bàn thông thường trong các hoạt động Tuy nhiên, khi doanh nghiệp phát triển với nhiều nhân viên hơn, chuỗi cung ứng trở nên phức tạp hơn, doanh nghiệp cần kiểm soát các dữ liệu và lưu trữ để các hoạt động kinh doanh không bị gián đoạn, hệ thống máy tính để bàn bắt đầu bộc lộ các yếu điểm và không đáp ứng được nhu cầu hoạt động của doanh nghiệp
Bên cạnh đó, hầu hết các ứng dụng trong doanh nghiệp hiện nay thường được viết để có thể chạy trong hệ thống có kết nối mạng Tuy nhiên, một máy tính bình thường khó có khả năng và sức mạnh để xử lý khối lượng thông tin lớn trong một thời gian ngắn Vì vậy, một máy chủ có tính ổn định và tốc độ xử lý cao sẽ mang lại thuận lợi cho hoạt động của doanh nghiệp
Ngoài ra các doanh nghiệp còn áp dụng bài toán cân bằng tải nhằm:
- Chặn lưu lượng mạng (chẳng hạn lưu lượng web) đến một trang web Bản thân thiết bị cân bằng tải có thể là một proxy hay một firewall tầng ứng dụng, nó sẽ là đối tượng đầu tiên nhận các yêu cầu trước khi chia tải Do đó, chức năng này được coi như là thiết yếu của một cân bằng tải
- Tách các lưu lượng thành các yêu cầu riêng biệt và quyết định máy chủ nào nhận các yêu cầu đó Đây là chức năng chủ chốt của cân bằng tải Tùy vào thuật toán áp dụng mà sẽ có từng cách thức khác nhau để phân chia cụ thể cho mỗi máy chủ
- Duy trì một cơ chế ở những máy chủ đang sẵn sàng Giữa cân bằng tải và máy chủ luôn phải có liên lạc với nhau để biết được máy chủ đó còn “sống” hay không
- Cung cấp khả năng dự phòng bằng cách sử dụng nhiều hơn một kịch bản fail- over
- Cung cấp khả năng nhận thức nội dung phân tán bằng cách đọc URL, chặn cookies và biên dịch XML Đây được coi là một trong những tiêu chí chia tải của hệ thống
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 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 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
So sánh hệ thống cân bằng tải với hệ thống thông thường
Hình 1.2: So sánh hệ thống cân bằng tải server và hệ thống thường
Hệ thống cân bằng tải Hệ thống thông thường
Tính sẵn sàng 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 Ư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
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 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,
KỸ THUẬT CÂN BẰNG TẢI
Như chúng ta đã biết, bộ cân bằng tải có nhiệm vụ kết nối giữa người dùng và server, do đó nó có thể hoạt động như một proxy hoặc gateway Một proxy có nhiệm vụ luân chuyển yêu cầu và dữ liệu đáp trả giữa người dùng và server, trong khi đó một gateway chỉ có nhiệm vụ tạo ra một kết nối hai đối tượng này và không làm gì thêm Có thể sử dụng phần cứng hoặc phần mềm được cài đặt trên một front server, hoặc trên chính Web Server Thêm nữa, khi số lượng người dùng tăng lên, để tránh bế tắc, cần thiết phải cài đặt 2 bộ cân bằng tải song song, hoạt động theo cơ chế active-active hoặc active-standby
1.5.1 Kiểm tra trạng thái server Để chọn được server phù hợp để gửi request, bộ cân bằng tải cần phải biết được server nào đang có sẵn Vì vậy, nó cần phải dùng biện pháp nào đó để kiểm tra trạng thái của server, chẳng hạn như gửi lệnh ping, các yêu cầu, thử kết nối hay bất cứ phương pháp nào mà người quản trị nghĩ là dùng được Kỹ thuật kiểm tra này thường được gọi là "health checks"
Một server bị down có thể trả lời lệnh ping nhưng không thể trả lời các kết nối TCP, một server bị treo có khả năng trả lời kết nối TCP nhưng không thể trả lời các yêu cầu HTTP Khi một ứng dụng web nhiều lớp được kích hoạt, một số yêu cầu HTTP có thể trả lời ngay lập tức trong khi số khác sẽ thất bại
Chính vì thế, việc chọn một phương pháp test phù hợp được chấp nhận bởi ứng dụng web và bộ cân bằng tải là rất thú vị Một số test đôi khi phải cần truy xuất dữ liệu database nhằm đảm bảo rằng toàn bộ quá trình của nó là đúng Hạn chế lớn nhất là những phương pháp kiểm tra này sẽ chiếm tài nguyên của hệ thống như là CPU, threads,
Do đó, cân bằng thời gian kiểm tra chính là vấn đề khó nhất trong kỹ thuật lựa chọn server Khoảng thời gian giữa 2 lần test liên tiếp phải đủ dài để không tốn quá nhiều tài nguyên của hệ thống và cũng cần đủ ngắn để nhanh chóng phát hiện ra những server "chết"
Vì "health checks" là một trong những khía cạnh phức tạp nhất của kỹ thuật cân bằng tải, nên thường sau một vài kiểm tra, các nhà phát triển ứng dụng sẽ thực thi một yêu cầu đặc biệt dành riêng cho bộ cân bằng tải, giúp cho nó thực hiện một số kiểm tra nội bộ
Phần mềm cân bằng tải có khả năng cung cấp, do đó nó đạt được độ linh hoạt rất cao Thêm nữa, nếu như một bài kiểm tra nào đó đòi hỏi phải chỉnh sửa code, nó có thể thực hiện trong một khoảng thời gian ngắn
1.5.2 Lựa chọn server tốt nhất
Phương pháp dễ nhất và thường được sử dụng nhất trong các hệ thống nhỏ là Round Robin, các server được lựa chọn quay vòng, tuy nhiên phương pháp này có nhược điểm là 2 requests liên tục từ một người dùng sẽ vào 2 servers khác nhau, thông tin giữa 2 yêu cầu liên tiếp sẽ bị mất, như vậy sẽ không thể tối ưu hóa được sử dụng tài nguyên Đặc biệt là khi cần phải cài đặt kết nối cho các phiên chạy
Làm sao để giữ cho các yêu cầu của một người dùng được gửi vào một máy duy nhất trong suốt phiên làm việc của người đó Tất cả các yêu cầu của người dùng này cần phải được chuyển vào cùng một server Nếu server bị chết, hoặc ngừng để bảo trì, cần phải có cơ chế để chuyển session của người dùng này sang máy server khác Đó chính là kỹ thuật Session Persistence
Có một số giải pháp được đưa ra để tiếp cận kỹ thuật này, chẳng hạn như sử dụng một respone HTTP 302 hay tạo ra liên kết giữa người dùng - server Tuy vậy 2 phương pháp này đều có những hạn chế, sử dụng HTTP 302 sẽ khiến người dùng luôn luôn tìm cách kết nối với một server duy nhất, kể cả khi server này đã "chết" Dùng cách tạo liên kết đòi hỏi user phải có IP tĩnh trong suốt phiên làm việc
Cookies là một đối tượng được điều khiển bởi Web Server Trong kết quả trả về cho người dùng Web Server sẽ chèn thêm một số thông tin
Một cookies được định nghĩa bằng cặp tên=giá trị (name=value) Trong thiết kế của bộ cân bằng tải, có 3 cách để sử dụng cookies: cookie chỉ đọc (Cookie-Read), bộ cân bằng tải chèn cookie nhằm chứng thực server (Cookie- Insert) và ghi cookie (Cookie-Rewrite)
Khi người dùng lần đầu tiên gửi yêu cầu đến server, do không có cookie trong yêu cầu, nên nó sẽ được phân tải đến server RS1 Server RS1 sẽ tạo và đặt cookie server=1 vào trong dữ liệu trả về cho người dùng Trình duyệt của người dùng sẽ nhận trả về này, đọc thấy cookies và lưu trữ nó vào trong đĩa cứng Sau đó người dùng có thể đóng trình duyệt hoặc ngắt kết nối (giả sử rằng trình duyệt của người dùng không tự động xóa cookie sau khi đóng) Một thời gian sau người dùng kết nối lại và gửi yêu cầu đến bộ cân bằng tải Sau khi kết nối được thiết lập, trình duyệt người dùng sẽ gửi cookie server=1 như là một phần của yêu cầu HTTP Bộ cân bằng tải sẽ đọc được cookie này và do đó sẽ chuyển yêu cầu của người dùng vào server RS1 Như vậy người dùng sẽ luôn được kết nối vào server 1 cho đến khi nào cookie còn tồn tại, cho dù người dùng có thể vào website từ các địa chỉ IP khác nhau Ưu điểm: 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: ứ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
Tương tự như cookie-read, nhưng ở đây khi server trả về dữ liệu cho người dùng, 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 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 Ưu điểm: 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ó 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 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
CÁC THÀNH PHẦN CỦA SLB (SERVER LOAD BALANCING)
Một giải pháp cân bằng tải phải có những chức năng sau đây:
Can thiệp vào luồng dữ liệu mạng với tới một đỉnh đí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ủ 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 tình huống fail-over
Cung cấp sự phân phối dựa trên sự hiểu biết về nội dung ví dụ như đọc URL, can thiệp và cookies hoặc truyền XML
Sever Load Balancer: 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
VIPS : Virtual IP (VIP): là một dạng thể hiện cân bằng tải Mỗi VIP sử dụng đị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 dữ liệu web Mỗi VIP 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 metric hoặc các hương thức được mô tả trong phần “Active – Active Scenario”
Các máy chủ (Server): 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ả các dịch vụ khá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
Nhóm (Group): dùng để chỉ một nhóm các máy chủ được cân bằng tải Các thuật ngữ “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 cậ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 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 cập khác nhau, mà hầu hết các dịch vụ cũng có những cách thức truy cập khác nhau
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 ít gây ả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ư các 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
Vai trò của việc dự phòng
Trong phương pháp dự phòng tồn tại một quan hệ 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 các 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ị 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à (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
Hoạt động chờ (active- standby): một thiết bị sẽ nhận toàn dữ liệu đến, trong đó các thiết bị còn lại phải chờ trong một tình huống trục trặc Nếu thiết bị 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ộ dữ liệu đến
Hoạt động active- active: trong 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ẽ thực thi luôn cả chức năng của thiết bị gặp trục trặc
1.6.2 Hoạt động của hệ thống cân bằng tải server
Mô hình SLB đượ c mô t ả d ướ i hình sau đ ây:
Hình 1 3: Hệ thống Server Load Balancing đơn giản
SLB mở rộng hiệu năng của các server ứng dụng, chẳng hạn như Web Server, nhờ phân phối các yêu cầu của client cho cá 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 từ các client, cho dù một client có thể đưa ra nhiều yêu cầu Ví dụ một trình Web cần rất nhiều hình ảnh trên một trang Web được lưu trữ tại nhiều host khác nhau trong một nhóm server Với kỹ thuật cân bằng tải, quá trình xử lý và thời gian đáp ứng client sẽ nhanh hơn nhiều
Mỗi host trong nhóm có thể định ra mức tải mà nó 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 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 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 Web Server, có rất nhiều client và thời gian mà các yêu cầu của client tồn tại tương đối ngắn, khả năng của kỹ thuật này nhằm phân phối tải thông qua ánh xạ thống kê sẽ giúp cân bằng tải một cách hiệu quả các tải và cung cấp khả năng đáp ứng nhanh khi các server thay đổi
Các server trong cân bằng tải phát đi một bản tin đặc biệt thông báo hoạt động trạng thái của nó (gọi là heartbead message) tới các host khác trong nhóm đồng thời nghe bản tin này từ cá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ụ client Trong phần lớn các trường hợp, phần mềm client tự động kết nối lại và người sử dụng chỉ cảm thấy trễ vài giây khi nhận được đáp ứng trả lời
1.6.3 Kiến trúc hệ thống cân bằng tải Để tối đa hóa 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 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 đến địa chỉ IP chính của nhóm 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à họ 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 hóa 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 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 của kiến trúc phân tá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ể 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
MỘT SỐ THUẬT TOÁN CÂN BẰNG TẢI PHỔ BIẾN VÀ ỨNG DỤNG ĐƯỢC TRIỂN KHAI HIỆN NAY
THUẬT TOÁN RANDOM (NGẪU NHIÊN)
Trong thuật toán random, tải sẽ được phân một cách ngẫu nhiên vào trong các Web Server đứng sau Web Server được chọn dựa trên một hàm chọn số ngẫu nhiên, sau đó yêu cầu hiện tại từ phía người dùng sẽ được chuyển vào server này Thuật toán này hầu như không được dùng đến trong các bộ cân bằng tải mặc dù nó đã được cài đặt sẵn, nó chỉ thường thấy trong các gói phần mềm lớn mà trong đó cân bằng tải chỉ được đưa ra như một chức năng.
THUẬT TOÁN ROUND ROBIN (RR)
Thuật toán RR là thuật toán luân chuyển vòng Một phương pháp đơn giản của cân bằng tải các máy chủ hoặc để cung cấp khả năng chịu lỗi đơn giản Nhiều máy chủ giống hệt nhau được cấu hình để cung cấp chính xác các dịch vụ tương tự Tất cả đều được cấu hình để sử dụng tên miền Internet như nhau nhưng mỗi máy đều có một địa chỉ IP duy nhất Một máy chủ DNS có một danh sách của tất cả các địa chỉ IP duy nhất có liên quan đến tên miền Internet Khi yêu cầu cho địa chỉ IP kết hợp với tên miền Internet được nhận, các địa chỉ được trả lại một cách tuần tự luân phiên
- 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,…
Như vậy bộ cân bằng tải sẽ phân phối tải và gửi yêu cầu lần lượt đến từng máy chủ thực trong cụm máy chủ Số lượng các truy vấn đến từng máy chủ là ngang bằng nhau, điều này đảm bảo rằng các máy chủ đều phải hoạt động với một công suất tương tự như nhau Ưu điểm: được sử dụng rộng rãi, dễ thực hiện và dễ hiểu Làm việc tốt trong mọi cấu hình Đơn giản nên nó hoạt động rất hiệu quả (không mất thêm thời gian tính toán các thông số khác nên việc phân tải diễn ra rất nhanh)
Nhược điểm: khi có 2 yêu cầu liên tục từ phía người dùng sẽ có thể được gửi vào 2 server khác nhau Điều này làm tốn thời gian tạo thêm kết nối với server thứ 2 trong khi đó server thứ nhất cũng có thể trả lời được thông tin mà người dùng đang cần Để giải quyết điều này, round robin thường được cài đặt cùng với các phương pháp duy trì session như sử dụng cookies.
THUẬT TOÁN WEIGHTED ROUND ROBIN (WRR)
Nguyên lý hoạt động WRR cũng giống như thuật toán RR, yêu cầu từ phía người dùng sẽ được bộ cân bằng tải chuyển đến các server theo thứ tự xoay vòng Sự khác biệt duy nhất ở đây là thuật toán WRR còn quan tâm đến khả năng xử lý (cấu hình) của các server Trong cùng một chu kỳ, một server có khả năng xử lý gấp đôi server khác sẽ nhận được gấp đôi số yêu cầu từ phía bộ cân bằng tải
- Cấu hình một cụm Cluster bao gồm 03 máy chủ: A, B, C với khả năng xử lý của máy A lơn hơn máy B và lớn hơn máy C Chúng ta thiết sẽ lập trọng số weight cho các server A, B, C lần lượt là 4,3,2
- Thứ tự điều phối luân phiên các request sẽ là AABABCABC
- 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ủ A
- Yêu cầu dịch vụ thứ ba sẽ được gửi đến máy chủ B
- Yêu cầu dịch vụ thứ tư sẽ lại được gửi cho máy chủ A,… Ưu điểm: hoạt động tốt hơn RR khi các server trong cluster có cấu hình khác nhau Không cần phải tính đến các yêu cầu kết nối cho một máy chủ, và chi phí lập kế hoạch nhỏ hơn so với các thuật toán lập kế hoạch động, nó cũng có thể có nhiều máy chủ hơn
Nhược điểm: sử dụng thuật toán này có thể dẫn đến việc mất cân bằng tải động nếu như tải của các request liên tục thay đổi trong một khoảng thời gian rộng
Ví dụ các yêu cầu xem video hoặc tải các file có dung lượng lớn xen kẽ với các yêu cầu đọc thông tin,… Như vậy nó sẽ dồn request tới 1 server có trọng số Weight cao và làm mất khả năng load balancing
Trong một khoảng thời gian ngắn, hoàn toàn có khả năng phần lớn các yêu cầu có tải cao sẽ được chuyển hướng đến một server.
THUẬT TOÁN DYNAMIC ROUND ROBIN (DRR)
Thuật toán DDR hoạt động gần giống WRR, điểm khác biệt là trọng số ở đây dựa trên sự kiểm tra server một cách liên tục, do đó trọng số liên tục thay đổi Đây là thuật toán động, việc chọn server sẽ dựa trên rất nhiều khía cạnh trong việc phân tích hiệu năng của server trên thời gian thực
Ví dụ: số kết nối hiện đang có trên các server hoặc server trả lời nhanh nhất,… Thuật toán này thường không được cài đặt trong các bộ cân bằng tải đơn giản, nó thường được sử dụng trong các sản phẩm cân bằng tải của F5 Network Ưu điểm: phân tích hiệu năng của các server
Nhược điểm: phức tạp, phải dùng thêm một số con trỏ cấu trúc để lưu lại các server, mỗi lần như vậy tạo ra một kết nối mới cho server nào đó, chúng ta phải tính toán lại vị trí của nó trong struct.
THUẬT TOÁN LEAST CONNECTION (LC)
Thuật toán LC các yêu cầu sẽ được chuyển vào server có ít kết nối nhất trong hệ thống Thuật toán này được coi như thuật toán động, vì nó phải đếm số kết nối đang hoạt động của server
Với một hệ thống có các server gần giống nhau về cấu hình, LC có khả năng hoạt động tốt ngay cả khi tải của các kết nối biến thiên trong một khoảng lớn Do đó nếu sử dụng LC sẽ khắc phục được nhược điểm của RR
Nhìn bên ngoài có vẻ như LC hoạt động tốt khi các server có cấu hình biến thiên khác nhau, tuy nhiên trên thực tế đều đó là không đúng Ưu điểm: khắc phục được nhược điểm của RR
- Trạng thái TIMVE_WAIT của TCP thường được đặt là 2 phút, trong 2 phút đó có một server bận rộn có thể nhận hàng chục ngàn kết nối liên tục
- Giả sử server A có khả năng xử lý gấp đôi server B, server A đang xử lý hàng ngàn những yêu cầu và giữ những yêu cầu này trong trạng thái TIME_WAIT của TCP Trong khi đó server B cũng phải xử lý như server A nhưng vì cấu hình server B thấp hơn nên sẽ chậm hơn rất nhiều Như vậy thuật toán LC hoạt động không tốt khi các server có cấu hình khác nhau.
THUẬT TOÁN WEIGHTED 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
Một cân bằng tải mà thực hiện các thuật toán Connections Least Weighted hiện nay đưa vào xem xét hai điều: trọng lượng/công suất của mỗi máy chủ và số lượng hiện tại của khách hàng hiện đang kết nối với mỗi máy chủ
Người quản trị mạng có thể cấu hình phân chia trọng số cho mỗi máy chủ về các kết nối mạng sẽ được lên kế hoạch đến mỗi máy chủ mà ớ đó tỉ lệ phần trăm của số các kết nối hiện thời ở mỗi máy chủ là tỉ lệ đã cho khi thiết lập gán trọng số.
THUẬT TOÁN FASTEST
Đây là thuật toán dựa trên tính toán thời gian đáp ứng của mỗi server (response time), thuật toán này sẽ chọn server nào có thời gian đáp ứng nhanh nhất Thời gian đáp ứng được xác định bởi khoảng thời gian giữa thời điểm gửi một gói tin đến server và thời điểm nhận được gói tin trả lời.Việc gửi và nhận này sẽ được bộ cân bằng tải đảm nhiệm, dựa trên thời gian đáp ứng, bộ cân bằng tải sẽ biết chuyển yêu cầu tiếp theo đến server nào
Ví dụ: khi truy cập vào trang youtube.com, nếu IP của người dùng đến từ Việt Nam, yêu cầu sẽ được chuyển vào server Việt Nam xử lý Điều này sẽ tiết kiệm khá lớn cho lượng băng thông quốc tế và cải thiện tốc độ đường truyền
Thuật toán fastest thường được dùng khi các server ở các vị trí địa lý khác nhau Như vậy người dùng ở gần server nào thì thời gian đáp ứng của server đó sẽ nhanh nhất, và server đó sẽ được chọn để phục vụ Ưu điểm: tiết kiệm băng thông và cải thiện đường truyền
Nhược điểm: không đáp ứng được nếu có một server bị lỗi trên đường truyền.
THUẬT TOÁN LEAST RESPONSE TIME
Đâ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.
MỘT SỐ ỨNG DỤNG CỦA THUẬT TOÁN ĐÃ ĐƯỢC TRIỂN KHAI HIỆN NAY
Phương pháp Round Robin DNS là một phương pháp cân bằng tải phổ biến, đơn giản và dễ sử dụng Tận dụng tính năng round- robin có sẵn trong DNS server để chia tải qua nhiều hệ thống Đặc biệt phương pháp này rất thích hợp khi cân bằng tải theo khu vực địa lý (Global Server Load Balancing) nhằm mục đích quay vòng thông qua các máy chủ nằm ở các vị trí khác nhau Chẳng hạn trung tâm Internet Việt Nam đang sử dụng phương pháp cân bằng tải Round Robin DNS trong việc cân bằng tải truy vấn DNS.VN cho các cụm máy chủ thuộc các khu vực địa lý khác nhau: Hà Nội, Đà Nẵng và Hồ Chí Minh
Các truy vấn tên miền dưới VN được phân bố đều trên các cụm máy chủ
Ví dụ: com.vn nameserver = a.dns-servers.vn com.vn nameserver = b.dns-servers.vn com.vn nameserver = c.dns-servers.vn com.vn nameserver = d.dns-servers.vn com.vn nameserver = e.dns-servers.vn com.vn nameserver = f.dns-servers.vn com.vn nameserver = vn.cctld.authdns.ripe.net
Hình 2 1: Cân bằng tải sử dụng Round Robin DNS
Phương pháp cân bằng tải này dựa trên thuật toán Round Robin
Khi yêu cầu truy vấn đầu tiên đến được máy chủ DNS, nó sẽ trả về địa chỉ
IP của máy chủ DNS-A
Khi có yêu cầu truy vấn thứ hai đến máy chủ DNS, nó sẽ trả về địa chỉ IP của máy chủ DNS-B
Khi có yêu cầu truy vấn thứ ba đến máy chủ DNS, nó sẽ trả về địa chỉ IP của máy chủ DNS-C
Quá trình này cứ tiếp tục như vậy với các yêu cầu tiếp theo, và sau khi đi hết một vòng Round Robin, truy vấn sẽ được lặp lại
Hiện tại, hệ thống DNS quốc gia sử dụng công nghệ DNS Anycast cho 02 cụm máy chủ đặt ở nước ngoài, công nghệ này đảm bảo truy vấn tên miền ".vn" từ phía người dùng trên khắp thế giới sẽ được thực hiện rất nhanh qua máy chủ DNS gần nhất được tìm thấy trong số các máy chủ tên miền ".vn"
Phương thức truyền thông anycast thường được sử dụng trong các ứng dụng cụ thể trên mạng, trong đó ứng dụng DNS được sử dụng anycast với các ưu điểm vượt trội như:
Các client, server và router không cần các phần mềm đặc biệt
Không ảnh hưởng xấu tới hệ thống mạng hiện tại, chỉ cần tận dụng cơ sở hạ tầng sẵn có
Cơ chế phân tán, giảm nguy cơ DoS
2.9.2 Sử dụng thiết bị cân bằng tải chuyên dụng
Phương pháp cân bằng tải dùng thiết bị phần cứng sẽ tạo một địa chỉ IP ảo với mạng bên ngoài, địa chỉ này sẽ được bản đồ hóa (mapping) với các địa chỉ máy chủ bên trong một Cluster Bên ngoài sẽ không thể truy cập trực tiếp đến các máy chủ bên trong, mà chỉ truy cập đến địa chỉ ảo được cấu hình trên thiết bị cân bằng tải
Hình 2 2: Thiết bị cân bằng tải chuyên dụng
Kỹ thuật cân bằng tải có thể được sử dụng để phân phối các yêu cầu của máy khách trên các máy chủ Windows NLB thường được sử dụng để bảo đảm các ứng dụng chẳng hạn như mở rộng máy chủ web IIS bằng cách thêm vào các máy chủ để tăng tải của máy khách Thực hiện hành động này bảo đảm các máy khách đó luôn có được mức hiệu suất thích hợp Thêm vào đó, sẽ giảm được thời gian chết gây ra bảo sự cố một máy chủ nào đó
Các nhóm Windows NLB (cluster) có thể cung cấp khả năng mở rộng cho các dịch vụ và ứng dụng dựa trên TCP và UDP Bạn có thể có đến tối đa 32 máy chủ trong một cluster Windows NLB
Windows NLB có trong cả Windows Server 2003 phiên bản Standard và Enterprise (thậm chí cả phiên bản Web cũng gồm thành phần này) Và vì nó là một thành phần chuẩn nên không yêu cầu bạn sử dụng bất cứ một phần cứng máy chủ đặc biệt hoặc cụ thể nào cho mỗi máy chủ thành viên nằm trong nhóm NLB
Khi Windows NLB được cấu hình đúng thì tất cả các máy chủ trong NLB cluster sẽ được thể hiện bằng một địa chỉ IP ảo và mặc định bằng một tên miền tiêu chuẩn (FQDN) Khi một yêu cầu máy khách xuất hiện, nó sẽ gửi đến tất cả các máy chủ trong Windows NLB cluster Máy khách sẽ được bản đồ hóa đến một máy chủ nào đó và yêu cầu đến các máy chủ khác sẽ bị bỏ qua Ở đây, bạn có thể sử dụng mối quan hệ để hướng trực tiếp một yêu cầu máy khách cụ thể vào các máy chủ thành viên khác, có thể cấu hình mỗi máy chủ thành viên với thứ tự ưu tiên
Hình 2.3: Topo cân bằng tải của Exchange 2007 Client Access Server
Chế độ Unicast và Multicast
Windows NLB cluster có thể được cấu hình trong chế độ unicast hoặc multicast trong đó unicast là chế độ mặc định
Với WNLB cluster được cấu hình trong chế độ unicast, địa chỉ MAC của mỗi adapter mạng của máy chủ sẽ được thay đổi thành địa chỉ MAC của nhóm ảo, đây chính là địa chỉ MAC sẽ được sử dụng bởi tất cả các máy chủ trong Windows NLB cluster Khi chế độ unicast được kích hoạt, các máy khách chỉ có thể kết nối với các máy chủ bằng địa chỉ MAC của nhóm
Với Windows NLB cluster được cấu hình trong chế độ multicast , địa chỉ MAC trong trường hợp này sẽ được bổ sung thêm vào adapter nhóm của mỗi máy chu trong nhóm Lưu ý rằng "được bổ sung" ở đây là mỗi máy chủ đều duy trì sẵn các địa chỉ MAC gốc của chúng
Một Windows NLB cluster, dù được cấu hình ở chế độ nào cũng vẫn sẽ làm việc với adapter mạng đã được cài đặt trên mỗi máy chủ, nhưng nên cài đặt adapter mạng thứ hai trong mỗi máy chủ để thực hiện tối ưu hóa hiệu suất và phân tách lưu lượng mạng
Vậy chế độ nào nên được sử dụng cho giải pháp Exchange 2007 Client Access và nên cài đặt bao nhiêu adapter mạng trong mỗi máy chủ Client Access? Giải pháp tốt nhất ở đây là cài đặt hai adapter mạng và sử dụng chế độ unicast, để lưu lượng mạng của cluster và host được phân tách trong adapter mạng tương ứng của riêng chúng.
MỘT SỐ ỨNG DỤNG GIẢI PHÁP TRONG CÂN BẰNG TẢI40 3.1 TÌM HIỂU CÁC GIẢI PHÁP SỬ DỤNG TRONG CÂN BẰNG TẢI
Web Server
Đây là hệ thống public, phục vụ cho mục đích marketing, quảng bá đưa hình ảnh hoạt động, sản phẩm của công ty đến với mọi người
Hệ thống này, về kỹ thuật, cho phép tất cả người dùng Internet đều có thể tìm kiếm thông tin, trao đổi thông tin với website của bạn Do vậy, cần phải đảm bảo về tốc độ truy cập, tính ổn định
Khả năng cân bằng tải máy chủ web có thể phân phối lưu lượng mạng đến các host khác nhau trong mạng nội bộ mà không cần sử dụng đến các chức năng NLB kinh điển của hệ điều hành Windows
Khái niệm về Web Server
Web Server là máy chủ được cài đặt phần mềm phục vụ Web, đôi khi người ta cũng gọi chính phần mềm đó là Web Server Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như IIS của Microsoft dành cho
*.asp, *.aspx; Apache dành cho *.php; Sun Java System Web Server dành cho
Máy Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ thông tin như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng với những thông tin liên quan khác như: các mã Script, các chương trình, và các file Multimedia
Web Server có khả năng gửi đến máy khách những trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP giao thức được thiết kế để gửi các file đến trình duyệt Web (Web Browser), và các giao thức khác Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một Domain Name Giả sử khi bạn đánh vào thanh Address trên trình duyệt của người dùng một dòng http://www.abc.com sau đó gõ phím Enter sẽ gửi một yêu cầu đến một Server có Domain Name là www.abc.com Server này sẽ tìm trang Web có tên là index.htm rồi gửi nó đến trình duyệt của người dùng truy cập
3.1.1.2 Lý thuy ế t xây d ự ng b ộ cân b ằ ng t ả i cho Web Server
Một bộ cân bằng tải cần phải thực hiện được 4 chức năng cốt lõi sau:
- Cân bằng tải cho server (server load balancing): có nhiệm vụ phân phối tải giữa các server, tăng khả năng mở rộng của hệ thống, giúp cho hệ thống vẫn hoạt động khi có server bị “chết”
- Cân bằng tải cho server toàn cầu (global server load balancing): có nhiệm vụ chuyển hướng yêu cầu của người dùng đến các data center khác nhau trong trường hợp website có nhiều trung tâm dữ liệu trên thế giới Góp phần tăng tốc độ phản hồi cho người dùng và giúp cho hệ thống có khả năng hoạt động khi có trung tâm dữ liệu bị “chết”
- Cân bằng tải cho firewall (firewall load balancing): có nhiệm vụ phân phối tải giữa các firewall, giúp cho hệ thống hoạt động khi có firewall bị “chết”
- Chuyển mạch cache trong suốt (transparent cache switching): giúp chuyển hướng lưu lượng một cách “trong suốt” đến các caches, góp phần tăng thời gian đáp ứng và hiệu năng của hệ thống
3.1.1.3 Ph ươ ng pháp cân b ằ ng t ả i
Hầu hết trong số các bạn có lẽ đều đã biết rằng, cơ sở dữ liệu DNS (Domain Name Server) bản đồ hóa tên host thành các địa chỉ IP Khi bạn nhập một URL vào trong trình duyệt (ví dụ như www.quantrimang.com) thì trình duyệt sẽ gửi một yêu cầu đến DNS yêu cầu nó trả về địa chỉ IP của site Đây được gọi là việc tra cứu DNS Sau khi trình duyệt Web có được địa chỉ IP cho site thì nó sẽ liên hệ với site bằng địa chỉ IP, và hiển thị trang mà bạn vừa yêu cầu Máy chủ DNS thường có một địa chỉ IP được bản đồ hóa với một tên site nào đó
Hình dưới mô tả quá trình truy cập vào website của quản trị mạng có địa chỉ là www.quantrimang.com
Hình 3 1: Hoạt động luân chuyển DNS
Khi bạn nhập 1 URL vào trong trình duyệt (ví dụ như www.quantrimang.com) thì trình duyệt sẽ gửi một yêu cầu đến DNS yêu cầu nó trả về địa chỉ IP của site Đây được gọi là việc tra cứu DNS Sau khi trình duyệt Web có được địa chỉ IP cho site thì nó sẽ liên hệ với site bằng địa chỉ IP, và hiển thị trang mà bạn vừa yêu cầu Máy chủ DNS thường có một địa chỉ IP được bản đồ hóa với một tên site nào đó Trong ví dụ riêng của chúng tôi thì site là www.quantrimang.com bản đồ hóa thành địa chỉ IP là 222.255.31.160 Để cân bằng tải bằng DNS, máy chủ DNS phải duy trình một số địa chỉ IP khác nhau cho cùng một tên site Nhiều địa chỉ IP thể hiện nhiều máy trong một cluster, tất cả trong số chúng đều bản đồ hóa đến một tên site logic
Trong ví dụ của chúng ta, www.quantrimang.com có thể được cấu hình trên ba máy chủ trong một cluster với các địa chỉ IP dưới đây:
Trong trường hợp này, máy chủ DNS được bản đồ hóa như sau: www.quantrimang.com 222.255.31.160 www.quantrimang.com 222.255.31.161 www.quantrimang.com 222.255.31.162
Khi yêu cầu đầu tiên đến được máy chủ DNS, nó sẽ trả về địa chỉ IP 222.255.31.160, máy đầu tiên Khi có yêu cầu thứ hai, nó sẽ trả về địa chỉ IP thứ hai: 222.255.31.161 Tiếp tục như vậy, với yêu cầu thứ tư, địa chỉ IP đầu tiên lại được lặp lại
Bằng cách sử dụng luân chuyển vòng DNS như ở trên, tất cả các yêu cầu đối với một site nào đó đều được phân phối đều đến tất cả các máy trong cluster
Chính vì vậy, với phương pháp cân bằng tải này, tất cả các nút trong cluster đều được sử dụng Ưu điểm:
Các ưu điểm chính của phương pháp này nằm ở chi phí thấp và dễ dàng cài đặt:
- Không đắt và dễ dàng thiết lập: các quản trị viên hệ thống chỉ cần tạo một số thay đổi trong máy chủ DNS để hỗ trợ được việc luân chuyển vòng, và nhiều máy chủ DNS đã có sự hỗ trợ này Nó không yêu cầu đến sự thay đổi mã của ứng dụng Web; trong thực tế, các ứng dụng Web không hề biết về cơ chế cân bằng tải mà nó bị thực hiện
- Đơn giản: phương pháp này không yêu cầu đến các chuyên gia về mạng trong việc thiết lập hoặc gỡ rối hệ thống trong trường hợp có vấn đề nào đó xảy ra
Có hai nhược điểm chính của phương pháp dựa trên phần mềm này là nó không cung cấp sự hỗ trợ mối quan hệ thời gian thực giữa các máy chủ với nhau và không hỗ trợ khả năng có sẵn cao
File Server
File Server (FS) là thiết bị lưu trữ file trên mạng LAN, nó có thể truy cập đến tất cả các user trong mạng
Nhiệm vụ: lưu trữ, quản lý và duy trì các file dữ liệu cho các user trên hệ thống
Là nơi lưu trữ dữ liệu trung tâm dữ liệu cho mạng của máy tính để bàn
FS hoạt động mạnh, hiệu quả hơn các máy tính để bàn và cho phép nhiều user update tài liệu share các file máy tính
DFS (Distributed File System) đượ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ằ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 server, bạn sẽ chỉ nhớ một tên duy nhất để có thể đi tới tất cả chia sẻ trên tất cả cá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 thực sự của các thư mục chia sẻ trên các File Server DFS có thể chỉ dẫn client tới File server gần nhất có thể 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 Để tìm hiều DFS làm việc như thế nào, chúng ta cần phải hiểu một số thuật ngữ:
DFS Root: là tên gốc của một đườ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: ddường dẫn tới một thư mục chia sẻ nằm ở vị trí cụ thế nào đó trên mạng 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ó hai chia sẻ giống hệt nhau nhưng lưu trữ ở hai vị trí khác nhau, bạn có thể nhóm chúng chung vào trong một DFS Target
Hình 3 2: Cấu trúc thư mục thật sự của một hệ thống DFS
- 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 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 File 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ỗi khi có sự cố ở một File Server nào đó thì File Server khác phải thay thế và dữ liệu tự động nhân bản, cập nhật toàn bộ hệ thống DFS Server
- 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ả File Server được qui về một mối 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 File Server khác theo kiểu cây thư mục
- Distributed File System là một giải pháp cho phép người quản trị tập trung các dữ liệu nằm rời rạc trên các File Server về một thư mục chung và thực hiện các tính năng replicate nhằm đảm bảo dữ liệu luôn sẵn sàng khi có sự cố về File Server Bao gồm 2 tính năng : DFS Namespace và DFS Replication
- Nhằm cung cấp 3 giải pháp sau: o Chia sẻ tập tin o Kết hợp dữ liệu o Phân phối dữ liệu
DFS Namespace: cho phép người quản trị nhóm các thư mục share nằm rời rạc trên các File Server vào một thư mục đại diện trong hệ thống mạng, người dùng chỉ cần truy cập vào thư mục đại diện là thấy được tất cả các thư mục share trên các File Server
DFS namespace 2012 hỗ trợ Direct Access bằng cách điều hướng người dùng tới DFS Namespace Server gần nhất để họ truy cập DFS Namespace
Cấu trúc DFS Namespace: bao gồm Namespace Server, Namespace Root folder, Folder, Folder Target
Hình 3 3: Mô hình DFS Namespace
DFS Replication là tính năng cho phép hai hoặc nhiều server đồng bộ dữ liệu với nhau, theo mô hình Multi-master Hỗ trợ lập lịch replicate và điều chỉnh băng thông replicate
Sử dụng giao thức Remote Differential Compression (RDC) để đồng bộ dữ liệu trên đường truyền Khi có sự thay đổi về dữ liệu, RDC sẽ chỉ replicate những dữ liệu thay đổi, chứ không replicate hoàn toàn một file mới Giúp tiết kiệm đáng kể băng thông
Cấu trúc DFS Replication: bao gồm Replication folder Replication group
Hình 3 4: Mô hình triển khai DFS Replication
Distributed File System (DFS) cho phép chia sẻ file bằng cách sử dụng không gian DFS và nhân bản các file trên DFS server
Mô hình sử dụng 2 máy DC làm FS dùng DFS để replicate (nhân bản) dữ liệu trong hệ thống để phòng sự cố Nếu một FS chết sẽ còn FS còn lại giải quyết nhu cầu lưu trữ hệ thống luôn được đáp ứng Đồng thời mô hình DFS giúp cân bằng tải cho FS trong hệ thống
Hình 3 5: Mô hình triển khai File Server
CÀI ĐẶT
Giả sử công ty A có tên miền thitra.com, sử dụng website thitra.com Các máy chủ A sử dụng hệ điều hành Windows Server 2003 Để nhu cầu lượng truy cập ngày càng tăng Đồng thời với khả năng phòng ngừa máy chủ Website bị down Nếu Ban giám đốc đưa ra giải pháp cân bằng tải trên các server
Từ menu Start, chọn Administrative Tools, chọn Configure Your Server Wizard như hình sau:
Hình 3 7:Giao diện cài đặt AD
Cửa sổ chào mừng xuất hiện nhấn Next Cửa sổ yêu cầu kiểm tra xuất hiện, nhấn Next
From dò tìm những cấu hình mạng đã thiết lập xuất hiện
Hình 3 8:Giao diện cài đặt AD
Trong from lựa chọn kiểu cấu hình, chúng ta xác định một trong hai kiểu lựa chọn sau, và nhấn Next
Hình 3 9: Giao diện cài đặt AD
Hộp thoại yêu cầu nhập tên domain xuất hiện, chúng ta nhập tên đầy đủ của domain vào mục Active Diretory domain name, và nhấn Next
Hình 3 10:Giao diện cài đặt AD
Hộp thoại xác định NetBISO của tên domain xuất hiện
Hình 3 11:Giao diện cài đặt AD
Sau đó nhấn Next Form yêu cầu chứa nguồn cài đặt Windows Server
Form hiển thị tiến trình cài đặt xuất hiện
Khi form thông báo tiến trình cài đặt đã hoàn thành xuất hiện Nhấn nút
Finish để hoàn tất tiến trình cài đặt Active Directory
Từ menu Start, chọn Administrative Tools, chọn Configure Your Server Wizard như hình sau:
Hình 3 12: Giao diện cài đặt DNS
Màn hình chào xuất hiện nhấn nút Next
Cửa sổ yêu cầu kiểm tra lại những điều kiện xuất hiện Sau khi kiểm tra đã đảm bảo, nhấn nút Next
Màn hình lựa chọn các vai trò dự định cài đặt hệ thống xuất hiện Ta chọn mục DNS server
Hình 3 13:Giao diện cài đặt DNS
Màn hình xác nhận lựa chọn đã thiết lập, nhấn Next
Màn hình lựa chọn kiểu cài đặt DNS server Chúng ta lựa một trong ba kiểu sau
Hình 3 14: Giao diện cài đặt DNS
Màn hình lựa chọn cấu hình DNS server và nhấn Next
Hình 3 15:Giao diện cài đặt DNS
Màn hình tên vùng xuất hiện, ta nhập tên vung vào mục Zone name Sau khi nhập tên zone xong, nhấn nút Next
Hình 3 16: Giao diện cài đặt DNS
Màn hình yêu cầu thiết lập DNS server đang cài đặt trở thành một forwarder xuất hiện
Hình 3 17: Giao diện cài đặt DNS
Sau khi chọn một trong hai tùy chọn ở màn hình trên, nhấn Next
Tiến trình cài đặt DNS server bắt đầu được thực hiện Màn hình thông báo hoàn thành việc cài đặt DNS server xuất hiện Nhấn nút Finish để kết thúc thao tác này
3.2.3 Cài đặt IIS trên Web Server
Từ menu Start, chọn Control Panel
Trong cửa sổ Control Panel, nhấn đôi chuột vào mục Add Remove Programs
Hình 3 18: Giao diện cài đặt IIS
Màn hình Add or Remove Programs xuất hiện, chúng ta kích chọn mục
Add/Remove Windows Components trên cửa sổ này
Sau đó màn hình Windows Components Wizard xuất hiện Trong danh sách các thành phần của Windows ở danh mục Components, đánh dấu chọn vào mục Application Server Nhấn nút Details
Hình 3 19: Giao diện cài đặt IIS
Bên cạnh những tùy chọn mặc định, chúng ta đánh dấu chọn vào mục cần cài đặt thêm
Hình 3 20:Giao diện cài đặt IIS
Nhấn nút OK để quay về form Windows Components Wizard
Trên form Windows Components Wizard, nhấn nút Next để bắt đầu tiến hành cài đặt IIS Web server
Hình 3 21: Giao diện cài đặt IIS
Từ menu Start, chọn Administrative Tools, chọn IIS Manager như hình sau:
Hình 3 22: Giao diện cấu hình dịch vụ Web Service
Nhấn chuột phải vòa mục Websites, chọn New, và trỏ đến Website
Màn hình chào xuất hiện Ta nhấn nút Next
Hình 3 23: Giao diện cấu hình dịch vụ Web Service
Trong màn hình mô tả chúng ta nhập một số thông tin giới thiệu về website
Hình 3 24:Giao diện cấu hình dịch vụ Web Service
Nhấn nút Next Màn hình thiết lập địa chỉ IP và cổng Port cho website xuất hiện
Hình 3 25:Giao diện cấu hình dịch vụ Web Service
Nhấn nút Next Hộp thoại xác định vị trí lưu trữ nội dung của website xuất hiện
Hình 3 26:Giao diện cấu hình dịch vụ Web Service
Nhấn nút Next Màn hình thiết lập các quyền truy cập đối với website này xuất hiện
Hình 3 27:Giao diện cấu hình dịch vụ Web Service
Sau khi thiết lập quyền trên website xong, nhấn nút Next
Màn hình thông báo tiến trình xuất bản website đã thành công, nhấn nút
Từ menu Start, chọn Administrative Tools, chọn Network Load Balancing Manager như hình sau:
Hình 3 28:Giao diện cấu hình DNS
Click chuột phải vào Network Load Balancing Clusters chọn New
Cửa sổ Cluster IP Addresses chọn Next
Hình 3 29:Giao diện cấu hình DNS Ở cửa sổ Port Rules ta có thể quy định port và protocol tùy vào từng dịch vụ
Sang cửa sổ Connect, điền địa chỉ IP của máy server 1 vào ô Host, bấm
Connect Sau đó chọn vào Interface “Local Area Connection” và Next
Hình 3 30:Giao diện cấu hình DNS Ở cửa sổ Host Parameters, chúng ta có thể quy định độ ưu tiên truy cập vào server vật lý nào trước thông qua giá trị Priority, Chọn Finish
Hình 3 31:Giao diện cấu hình DNS
Sau khi Finish chúng ta đợi quá trình xử lý, khi thành công sẽ báo Converged
Cửa sổ Connect điền IP máy server 2 vào ô Host, bấm Connect và đợi báo Connected ở khung Status Sau đó chọn card “Local Area Connection”, chọn Next
Hình 3 32:Giao diện cấu hình DNS Ở cửa sổ Host Parameters, giữ nguyên giá trị Priority là 2 Chọn Finish
Hình 3 33:Giao diện cấu hình DNS
Cấu hình thành công NLB cho WebServer chạy trên hai server vật lý.
KẾT QUẢ DEMO
Máy client truy cập địa chỉ www.nguyen.thitra.com hoặc địa chỉ IP 192.168.100.90 Quyền truy cập sẽ truy cập đến website có quyền ưu tiên 1
Hình 3 34: Giao diện kết quả demo truy cập trang Web Server 1
Sau khi disable Thì sẽ truy cập qua web site có độ ưu tiên tiếp theo
Hình 3 35:Giao diện kết quả demo truy cập trang Web Server 2