NGHIÊN CỨU KỸ THUẬT NETWORK LOAD BALANCING TRONG HỆ THỐNG MẠNG LINUX Ngày nay, công nghệ mạng và các hệ thống máy chủ đã có những bước phát triển vượt bậc. Việc truy cập ứng dụng trên các server ngày càng phát triển nhiều và rộng rãi. Vì thế các server mắc phải hiện tượng quá tải, lỗi hệ thống gây khó khăn cho người dùng và người quản trị. Phân tích các kỹ thuật cân bằng tải Web Server. Cài đặt hệ thống Web Server trên nền tảng Linux. Triển khai cài đặt hệ thống cân bằng tải cho Web Server.
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN TRẦN HUY ĐÔNG NGHIÊN CỨU KỸ THUẬT NETWORK LOAD BALANCING TRONG HỆ THỐNG MẠNG LINUX ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HƯNG YÊN - 2014 TR ẦN HUY ĐÔNG NGHIÊN CỨU KỸ THUẬT NETWO RK LOAD BALAN CING 2014 TRONG HỆ THỐNG MẠNG LINUX Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN TRẦN HUY ĐÔNG NGHIÊN CỨU KỸ THUẬT NETWORK LOAD BALANCING TRONG HỆ THỐNG MẠNG LINUX NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: MẠNG MÁY TÍNH & TRUYỀN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGƯỜI HƯỚNG DẪN VŨ ĐỨC THI PHẠM NGỌC HƯNG HƯNG YÊN - 2014 2 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux MỤC LỤC 3 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux DANH SÁCH HÌNH VẼ 4 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux 5 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux DANH SÁCH TỪ VIẾT TẮT Từ viết tắt Từ đầy đủ Giải thích DNS Domain Name System Hệ thống phân giải tên miền DRR Dynamic Round Robin Quay vòng động FTP File Transfer Protocol Giao thức truyền dữ liệu GSLB Global Server Load Balancing Cân bằng tải máy chủ toàn cầu HTTP Hypertext Transfer Protocol Giao thức truyền tin IP Internet Protocol Giao thức Internet LAN Local Access Network Mạng nội bộ LB Load Balancing Cân bằng tải LC Least Connections Ít kết nối nhất LVS Linux Vitual Server Máy chủ Linux ảo NAT Network Address Translate Chuyển địa chỉ IP RR Round Robin Quay vòng SAN Storage Area Network Vùng mạng lưu trữ SBL Server Load Balancing Cân bằng tải máy chủ WAN Wide Area Network Mạng diện rộng WRR Weight Round Robin Quay vòng có trọng số 6 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý do chọn đề tài Ngày nay, công nghệ mạng và các hệ thống máy chủ đã có những bước phát triển vượt bậc. Việc truy cập ứng dụng trên các server ngày càng phát triển nhiều và rộng rãi. Vì thế các server mắc phải hiện tượng quá tải, lỗi hệ thống gây khó khăn cho người dùng và người quản trị. Một hệ thống mạng phải đảm bảo khả năng mở rộng tối ưu để đáp ứng được một lượng lớn yêu cầu của người dùng mà không gây ra bất kỳ một vấn đề rủi ro nào và đồng thời tăng khả năng chịu lỗi cho server. Đứng trước sự cạnh tranh về giá thành, việc phát triển và xây dựng các phương pháp cân bằng tải trở nên vô cùng hữu ích. Từ thực tế như vậy em quyết định chọn đề tài “Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux” nhằm tìm hiểu các nguyên lý hoạt động cũng như các thuật toán cân bằng tải để xây dựng một nền tảng vững chắc về vấn đề cân bằng tải cho Web Server, từ đó góp phần thúc đẩy quá trình xây dựng nên một bộ cân bằng tải hoạt động hiệu quả có khả năng đáp ứng nhu cầu cho các Web Server. 1.2 Mục tiêu của đề tài - Phân tích các kỹ thuật cân bằng tải Web Server. - Cài đặt hệ thống Web Server trên nền tảng Linux. - Triển khai cài đặt hệ thống cân bằng tải cho Web Server. 1.3 Giới hạn và phạm vi của đề tài - Nghiên cứu lý thuyết về cân bằng tải đối với Webserver. - Thực hiện bài Lab Cân bằng tải Webserver trên VMware. 1.4 Nội dung thực hiện - Tìm hiểu về kiến trúc web với khả năng mở rộng, khả năng có sẵn cao. - Tìm hiểu các kỹ thuật cân bằng tải web server. - Triển khai cài đặt hệ thống web server. - Cài đặt hệ thống cân bằng tải web server. 7 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux 1.5 Phương pháp tiếp cận - Cách tiếp cận : Nghiên cứu kỹ thuật cân bằng tải trên nền tảng công nghệ khác nhau như Windows, Linux. - Sử dụng các phương pháp nghiên cứu: o Phương pháp lý luận: Tham khảo tài liệu trên sách báo, trên mạng internet, đặc biệt là các diễn đàn công nghệ và dịch tài liệu tiếng Anh. o Phương pháp xử lý thông tin: Tiếp cận thông tin, phân loại thông tin và phân tích thông tin, đồng thời sắp xếp các thông tin một cách logic. o 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ả. o Phương pháp chuyên gia: Nhờ sự giúp đỡ của các thầy giáo có kiến thức chuyên môn về lĩnh vực để nhận xét, đánh giá, đóng góp ý kiến cho đề tài hoàn thiện hơn. 8 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về Cân bằng tải 2.1.1 Khái niệm Ngày nay, khi nhu cầu truy cập internet bùng nổ thì các máy chủ cung cấp dịch vụ đang trở nên quá tải. Việc lựa chọn một máy chủ đơn lẻ có cấu hình cực mạnh để đáp ứng nhu cầu này sẽ kéo theo chi phí đầu tư rất lớn. Giải pháp hiệu quả được đưa ra là sử dụng một nhóm máy chủ 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ân bằng tải là một kỹ thuật để phân phối khối lượng công việc phải xử lý một cách đồng đều trên hai hoặc nhiều máy tính về các vấn đề liên kết mạng, CPU, ổ cứng để có thể sử dụng tài nguyên một cách tối ưu, giảm thiểu thời gian hoạt động, tránh tình trạng quá tải. Sử dụng nhiều dịch vụ với cân bằng tải thay vì một dịch vụ duy nhất có thể làm tăng độ tin cậy thông qua các máy dự phòng. Trong đó, cân bằng tải mạng là một kỹ thuật nhằm mở rộng hiệu năng của các máy chủ ứng dụng, chẳng hạn như máy chủ Web, nhờ phân phối các yêu cầu của máy khách cho các máy chủ trong nhóm. Khi đó, các máy chủ đều nhận gói IP đến nhưng gói chỉ được xử lý bởi một máy chủ nhất định. Các máy chủ trong nhóm sẽ đồng thời đáp ứng các yêu cầu khác nhau của các máy trạm. Với kỹ thuật cần bằng tải, quá trình xử lý và thời gian đáp ứng yêu cầu của máy trạm sẽ nhanh hơn nhiều. 2.1.2 Chức năng của cân bằng tải Cân bằng tải có một số chức năng cơ bản sau: - 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 (Application Layer), 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. 9 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux - 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 (Keep Alive) để 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 cookie 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. 2.1.3 Ưu điểm của cân bằng tải Khả năng của cân bằng tải thể hiện ở các mặt sau: - Tính linh hoạt (Flexibility) - Tính sẵn sàng cao (High availability) - Khả năng mở rộng (Scalability) Những ưu điểm này sẽ được thể hiện cụ thể ở các phần dưới đây. 2.2 Các khái niệm cơ bản về kiến trúc Webserver Một website với khả năng mở rộng nghĩa là khi số lượng người dùng tăng lên nhanh chóng trong một khoảng thời gian nhất định, website vẫn đáp ứng được nhu cầu, hơn nũa website có khả năng dễ dàng nâng cấp lên để phù hợp với tình hình mới. Tại thời điểm ban đầu, các website với khả năng mở rộng lớn thường được thiết kế để phục vụ hàng triệu yêu cầu mỗi ngày, sau đó nó được nâng cấp để phục vụ thêm nếu như có yêu cầu. Để phục vụ được hàng chục triệu lượt truy cập mỗi ngày, website cần phải đáp ứng được yêu cầu về khả năng mở rộng (Scalability), về tính linh hoạt (Flexibility), tính đáp ứng (Responsiveness), tính sẵn sàng cao (High 10 [...]... phải thay đổi để các critical reads được gửi đến master 18 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux 19 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux b) Real Application Cluster Lựa chọn thứ hai để cài đặt DB Server theo chiều ngang là Real Application Cluster Hình 1-6: Real Application Cluster Trong phương pháp này, các nodes ở DB cùng chia sẻ một phần... cân bằng tải 11 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux hướng đến tính dự phòng cho thiết bị chính trong trường hợp có thiết bị nào đó bị “hỏng” [8] 2.2.4 Tính đáp ứng (Responsiveness) Tính đáp ứng ở đây có thể hiểu là khả năng phục vụ người dùng của hệ thống làm sao để hệ thống có thể phục vụ người dùng tại mọi thời điểm và thời gian đáp ứng là bao lâu Hệ thống gửi response... đây: 15 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux Hình 1-3: Mô hình cân bằng tải Web Server cơ bản Chi tiết về nguyên lý, kỹ thuật và các phương pháp cân bằng tải server cũng như thiết kế bộ cân bằng tải sẽ được làm rõ trong các nội dung về sau 2.3.2 Mở rộng Database Server Bên cạnh các Web Server, các database server cũng đóng vai trò vô cùng quan trọng trong hệ thống web... DAO layer 20 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux Hình 1-7: Mô hình mở rộng database khuyên dùng 2.4 Cơ sở 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 chính sau đây: • 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... dụng hệ thống cho khách hàng Một vấn đề nảy sinh trong khi triển khai phương pháp này là mỗi trình duyệt đều phải được cấu hình để chỉ 30 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux đến proxy server, tuy nhiên nó có thể cài đặt tự động bằng cách chạy một script khi người dùng đăng nhập vào mạng của doanh nghiệp Phương pháp cài đặt cũng làm tăng khả năng bảo mật của hệ thống. . .Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux Availability), tránh được thời gian chết của hệ thống (downtime impact), khả năng bảo trì tốt và được xây dựng với giá thành tốt nhất Dưới đây là các khái niệm về kiến trúc web với khả năng mở rộng: [6] 2.2.1 Khả năng mở rộng (Scalability) Cân bằng tải chịu trách nhiệm phân phối tải tới nhiều máy chủ trong một hệ thống (Server... server (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 vẫn có khả năng hoạt động khi có trung tâm dữ liệu xảy ra sự cố 21 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux • Cân bằng tải cho... lên hệ thống sẽ lại bị tắc nghẽn và nhà quản trị mạng sẽ phải đối phó với vấn đề đó, giải quyết nó nhằm tạo ra hệ thống hoạt động được tốt nhất Điều quan trọng là một hệ thống tốt cần phải kéo thời gian chu kì này lên, sao cho hệ thống hoạt động tốt nhất trong thời gian đủ dài trước khi cần phải nâng cấp, cũng như làm sao để xây dựng được hệ thống tốt nhất có khả năng mở 12 Nghiên cứu kỹ thuật Network. .. hệ thống phải được cân bằng tải một cách tốt nhất sao cho tải được phân phối đều đặn vào trong các máy server Các server phải được nối với nhau như thế nào đều là những bài toán khó Dưới đây là ưu điểm và nhược điểm của từng phương pháp: Hình 1-1: So sánh giữa Scale out và Scale up So sánh giá thành khi sử dụng hai phương pháp này: 14 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux. .. IP sẽ chỉ vào một server duy nhất Tuy vậy phương pháp này đòi hỏi người dùng phải có IP tĩnh 23 Nghiên cứu kỹ thuật Network Load Balancing trong hệ thống mạng Linux c) Kỹ thuật Sesion Persistence Vấn đề cần giải quyết chính là 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