« Home « Kết quả tìm kiếm

Nghiên cứu công nghệ cân bằng tải (Load Balancing) ứng dụng vào triển khai cân bằng tải cho các webserver lớn trong doanh nghiệp.


Tóm tắt Xem thử

- TRẦN THỊ NỤ NGHIÊN CỨU CÔNG NGHỆ CÂN BẰNG TẢI (LOAD BALANCING) ỨNG DỤNG VÀO TRIỂN KHAI CÂN BẰNG TẢI CHO CÁC WEBSERVER LỚN TRONG DOANH NGHIỆP LUẬN VĂN THẠC SĨ KỸ THUẬT VIỄN THÔNG Hà Nội – Năm 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI.
- TRẦN THỊ NỤ Chuyên ngành: Kỹ thuật Viễn Thông NGHIÊN CỨU CÔNG NGHỆ CÂN BẰNG TẢI (LOAD BALANCING) ỨNG DỤNG VÀO TRIỂN KHAI CÂN BẰNG TẢI CHO CÁC WEBSERVER LỚN TRONG DOANH NGHIỆP LUẬN VĂN THẠC SĨ KỸ THUẬT VIỄN THÔNG NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS.
- 6 DANH MỤC BẢNG BIỂU.
- 7 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ.
- 10 CHƢƠNG 1 – TỔNG QUAN VỀ WEB-SERVER LOAD BALANCING VỚI KHẢ NĂNG MỞ RỘNG.
- Kiến trúc web với khả năng mở rộng.
- Khả năng mở rộng.
- Khả năng có sẵn.
- Tính đáp ứng.
- Giải pháp load balancing cho kiến trúc web với khả năng mở rộng.
- Cân bằng tải cho webserver.
- Lợi ích của giải pháp Load Balancing.
- Các phƣơng pháp triển khai Load Balancing.
- Cân bằng tải bằng phần cứng.
- Load balancing bằng phần mềm.
- 23 CHƢƠNG 2 – CÂN BẰNG TẢI WEB SERVER BẰNG PHẦN MỀM.
- Thuật toán cân bằng tải tĩnh (Static LB.
- Thuật toán DNS Round Robin.
- Thuật toán Weighted Round Robin.
- Thuật toán cân bằng tải động (Dynamic LB.
- Thuật toán Dynamic Round Robin (DRR.
- Thuật toán Fastest.
- Thuật toán Least Connections (LC.
- Thuật toán Observed.
- Thuật toán Predictive.
- Thuật toán Least Bandwidth (LBw.
- 33 CHƢƠNG 3 – CÀI ĐẶT VÀ MÔ PHỎNG CÂN BẰNG TẢI WEB-SERVER VỚI CITRIX NETSCALER.
- Mô hình mô phỏng.
- Khả năng ứng dụng của Citrix Netscaler.
- Cài đặt Citrix NetScaler.
- Cài đặt Citrix NetScaler NSVPX-ESX .
- Cài đặt Webserver.
- Cấu hình thuật toán Load Balancing.
- Thiết lập hai web-server trên 2 máy chủ.
- Kết quả mô phỏng.
- Mô phỏng theo thuật toán RR.
- Mô phỏng theo thuật toán LeastConnection.
- Cài đặt Web-server.
- Code trang web server 1 demo.
- Code trang web server 2 demo.
- Em xin chân thành cảm ơn! Danh mục các ký hiệu và chữ viết tắt 6 DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng việt ADC Application Delivery Control Điều khiển phân phối ứng dụng DB Database Cơ sở dữ liệu DMZ Demilitarized Zone Một vùng mạng trung lập giữa mạng nội bộ và mạng internet DNS Domain Name System Hệ thống tên miền DNSRR DNS Round Robin Thuật toán quay vòng DNS FIPS Federal Information Processing Standard Tiêu chuẩn xử lý thông tin liên bang FTP File Transfer Protocol Giao thức truyền tập tin HSM Hardware Security Module Mô đun bảo mật phần cứng HTTP Hyper Text Transfer Protocol Giao thức truyền tải siêu văn bản IPv4 Internet Protocol version 4 Phiên bản thứ 4 của giao thức mạng ISP Internet Service Provider Nhà cung cấp dịch vụ internet LB Load balancing Cân bằng tải LBw Least Bandwidth Thuật toán bang thông ít nhất LC Least Connections Thuật toán kết nối ít nhất RTSP Real Time Streaming Protocol Giao thức tạo luồng thời gian thực SSL Secure Sockets Layer Giao thức bảo mật TCP Transfer Control Protocol Giao thức điều khiển giao vận WAN Wide Area Network Mạng đô thị WRR Weighted Round Robin Thuật toán RR có gắn trọng số Danh mục bảng biểu 7 DANH MỤC BẢNG BIỂU Bảng 1- 1.
- So sánh hệ thống có cân bằng tải và hệ thống thông thường.
- Thuật toán Least Connections.
- Thuật toán Least Bandwidth.
- Log monitor chạy cân bằng tải thuật toán LeastConnection.
- Mô hình cân bằng tải web-server.
- 17 Hình 1- 3.Mô hình giải pháp high availability và load balancing cho website.
- Mô hình Load balancing 6 server.
- Cân bằng tải bằng DNS.
- Cân bằng tải Least Bandwidth.
- Topology vật lý load balancing cơ bản.
- Web-server 1.
- Web-server 2.
- Chạy cân bằng tải thuật toán RoundRobin.
- Log monitor chạy cân bằng tải thuật toán RoundRobin.
- Logmonitor chạy cân bằng tải thuật toán LeastConnection.
- Khả năng xử lý của Netscaler Loadbalancing.
- Thực hiện cài đặt Netscaler.
- 74 Mở đầu 10 MỞ ĐẦU Ngày nay, khi nhu cầu truy cập mạng bùng nổ kéo theo nhu cầu ứng dụng Internet vào công việc của các doanh nghiệp ngày càng cao và khả năng sở hữu nhiều đƣờng truyền Internet cũng khá dễ dàng tăng lên.
- Các dịch vụ ngày càng đƣợc phát triển mở rộng, không ngừng tăng lên về số lƣợng cũng nhƣ chất lƣợng để đáp ứng nhu cầu kinh doanh của doanh nghiệp.
- Tuy nhiên, vấn đề nâng cấp băng thông luôn là bài toán về chi phí kinh doanh có hiệu quả hay không đối với các doanh nghiệp.
- 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 giải quyết vấn đề quá tải của server sẽ kéo theo chi phí đầu tƣ rất lớn.
- Giải pháp hiệu quả đƣợc đƣa ra là sử dụng một nhóm server cùng thực hiện một chức nǎng dƣới sự điều khiển của một công cụ phân phối tải – Giải pháp cân bằng tải cho hệ thống máy server (Load Balancing).
- Việc giải quyết vấn đề đƣờng truyền bị quá tải, không chỉ đơn giản là nâng cao tốc độ hay băng thông đƣờng truyền mà còn phải chú trọng đến việc tránh các rủi ro về sự cố trên đƣờng truyền, giải pháp Load Balancing cho đƣờng truyền là giải pháp tối ƣu cho vấn đề này.
- Vì vậy em đã chọn đề tài: “Nghiên cứu công nghệ cân bằng tải (Load Balancing) ứng dụng vào triển khai cân bằng tải cho các webserver lớn trong doanh nghiệp” làm đề tài luận văn tốt nghiệp của mình.
- Luận văn sẽ đƣa ra những cái nhìn tổng quan về kiến trúc web-server lớn cần có tính sẵn sàng và khả năng mở rộng nhƣ thế nào cũng nhƣ đƣa ra những thuật toán cân bằng tải mà các công nghệ cân bằng tải đã và đang đƣợc sử dụng.
- Cuối cùng, luận văn sẽ đi sâu phân tích, cài đặt mô phỏng bài toán cân bằng tải cho web-server cụ thể với một vài thuật toán cân bằng tải cụ thể.
- Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng 11 CHƢƠNG 1 – TỔNG QUAN VỀ WEB-SERVER LOAD BALANCING VỚI KHẢ NĂNG MỞ RỘNG Chƣơng 1 sẽ đƣa ta đến những cái nhìn tổng quan về web-server với khả năng mở rộng với những vấn đề xung quanh nó nhƣ hiệu năng, tính có sẵn, khả năng đáp ứng.
- Tiếp sau đó là tổng quan cho giải pháp load balancing cho những kiến trúc web này.
- Kiến trúc web với khả năng mở rộng 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 trong một khoảng nhất định, website vẫn đáp ứng đƣợc nhu cầu, thêm 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 chục triệu yêu cầu mỗi ngày, sau đó, sẽ đƣợc nâng cấp để phục vụ thêm, nếu nhƣ có nhu 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ề hiệu năng (Performance), tính đáp ứng (Responsiveness), tính sẵn có cao (High 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.
- Khả năng mở rộng Khả năng mở rộng là khả năng của một ứng dụng có thể hỗ trợ đƣợc số lƣợng ngƣời ngày một tăng.
- Nếu nó cần 10ms để một ứng dụng có thể đáp trả cho một yêu cầu thì khoảng thời gian sẽ là bao lâu để nó đáp trả đến 10.000 yêu cầu cùng một lúc? Khả năng mở rộng là vô hạn sẽ cho phép nó đáp trả các yêu cầu này chỉ trong khảng 10ms.
- Nhƣ vậy, khả năng mở rộng là đơn vị đo sự kết hợp của các kệ số, đó là số lƣợng ngƣời dùng đồng thời mà một cụm server có thể hỗ trợ và thời gian cụm server cần để xử lý một yêu cầu.
- [4] Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng 12 Thiết kế website với khả năng mở rộng cao là yêu cầu sống còn với hầu hết các công ty dịch vụ web cũng nhƣ các doanh nghiệp hiện nay, để tồn tại và phát triển, một website cần phải đáp ứng đƣợc yêu cầu của ngƣời dùng trong thời gian mà họ mong muốn.
- Hiệu năng Là khả năng mà hệ thống sử dụng tài nguyên của nó một cách tốt nhất.
- Tính thực hiện đƣợc đo bằng lƣợng công việc có ích mà hệ thống thực hiện đƣợc với một nguồn tài nguyên nhất định, chẳng hạn nhƣ nếu hai server có cấu hình giống nhau, server nào có thể phục vụ đƣợc nhiều ngƣời dùng hơn (ngƣời dùng chạy các ứng dụng tƣơng đƣơng) thì máy đó có tính thực hiện cao hơn.
- Khả năng có sẵn Khả năng có sẵn cao có thể đƣợc hiểu là tình trạng dƣ thừa.
- Nếu một máy chủ không thể quản lý một yêu cầu thì các máy chủ khác trong cluster đó có quản lý nó hay không? Trong một hệ thống có khả năng có sẵn cao, nếu một web server bị lỗi hoặc đang bận thì một webserver khác sẽ tiếp quản ngay để xử lý yêu cầu.
- Nghĩa là nếu ngƣời dùng đang làm việc với một webserver bị lỗi, toàn bộ thông tin trong phiên làm việc của ngƣời đó sẽ đƣợc chuyển qua cho một server khác đảm nhiệm.
- [3] Nhƣ vậy, trong bất cứ trƣờng hợp nào, ngƣời dùng truy cập vào các dịch vụ của hệ thống đều đƣợc đáp ứng, chính vì vậy mà ngƣời dùng luôn cảm thấy đƣợc phục vụ tốt nhất.
- Tính đáp ứng 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 cho đáp ứng đó là bao nhiêu.
- Hệ thống gửi response về càng nhanh thì đáp ứng của nó càng cao, ngƣợc lại, nếu thời gian trì hoãn (delay) càng lớn, sẽ khiến ngƣời dùng thất vọng, và dẫn tới việc họ tin là trang web đang bị hỏng, điều này rất có hại vì nếu ngƣời dùng mất Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng 13 niềm tin, họ sẽ không quay trở lại trang web đó nữa.
- Chẳng hạn nhƣ khi ngƣời dùng truy cập vào một trang web, nếu phải họ phải chờ quá lâu, họ sẽ chuyển qua làm công việc khác, đôi khi họ quên mất là mình đang truy cập vào một dịch vụ web và họ đóng luôn trình duyệt, hoặc họ quay trở lại sau một thời gian khá lâu, điều này rất không tốt vì hệ thống mà họ truy cập vẫn hoạt đồng và lƣu giữ session mà không phục vụ cho ai cả, đó là một sự lãng phí lớn.
- [3] Ở đây cần phải hiểu rằng, tính đáp ứng và tính thực hiện độc lập với nhau, một hệ thống có hiệu năng tốt vẫn có thể đáp ứng rất tệ.
- Downtime impact Downtime impact Là một vấn đề mà tất cả các hệ thống đều gặp phải, đó là thời gian mà hệ thống bị “chết”, khi mà một số các chức năng chính bị down, đây là vấn đề có tính tuần hoàn đối với các nhà phát triển hệ thống.
- Một hệ thống tốt sẽ giúp ngƣời dùng truy cập nhanh, làm họ cảm thấy hài lòng, dẫn đến số lƣợng ngƣời dùng tăng lên, và khi số lƣợng ngƣời dùng tăng lên, hệ thống sẽ lại bị tắc nghẽn, và nhà quản trị sẽ phải đối phó với vấn đề nó, giải quyết nó nhằm tạo ra hệ thống hoạt động tốt hơn, cứ nhƣ vậy, vòng quay lại tiếp tục.
- Đ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, nghĩa là làm sao cho hệ thống hoạt động đƣợc tốt nhất trong một 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 một hệ thống có khả năng mở rộng lớn.
- Cùng với các đòi hỏi này, hệ thống cũng cần phải có thể dễ dàng bảo trì và giá thành vừa phải.
- Xây dựng một hệ thống web nhƣ vậy sẽ gặp rất nhiều vấn đề khó khăn, sau đây, NVLV xin trình bày ra những vấn đề quan trọng nhất trong việc thiết kế một trang web có khả năng mở rộng và đáp ứng tính sẵn sàng mà bất cứ nhà phát triển hệ thống web nào cũng phải giải quyết, đó là cân bằng tải cho application servers.
- Giải pháp load balancing cho kiến trúc web với khả năng mở rộng 1.2.1.
- Cân bằng tải cho webserver Chƣơng 1 – Tổng quan về web-server load balancing với khả năng mở rộng 14 Một trang web phục vụ hàng triệu lƣợt ngƣời truy cập mỗi ngày thì điều quan trọng đầu tiên là phải có một hệ thống server đủ mạnh, khi ngƣời dùng tăng lên theo thời gian, hệ thống máy chủ cũng phải đƣợc nâng cấp, mở rộng.
- Có 2 sự lựa chọn ở đây: Mở rộng theo chiều ngang (Scale out) và mở rộng theo chiều dọc (Scale up).
- Mở rộng theo chiều dọc Mở rộng theo chiều dọc nghĩa là, khi số lƣợng ngƣời dùng tăng lên, nhà phát triển sẽ nâng cấp server của mình bằng cách tăng cấu hình của máy server, hệ thống vẫn chỉ có một server với cấu hình ngày càng mạnh hơn (tăng số lƣợng chip, tăng dung lƣợng RAM.
- Sử dụng phƣơng pháp này, ngƣời quản trị hệ thống sẽ không phải quan tâm đến vấn đề cân bằng tải cho cụm server, hệ thống hoạt động rất tốt khi số lƣợng ngƣời dùng vừa phải.
- Tuy vậy, phƣơng pháp này sẽ dẫn đến nhiều vấn đề, đầu tiên là giá thành, nhìn vào bảng so sánh giá ở trang dƣới, sử dụng một server sẽ tốn kém hơn rất nhiều so với nhiều servers, một vấn đề nữa cũng quan trọng không kém là vấn đề về downtime impact, vì chỉ có một server nên nó trở thành SPOF(Single Point Of Failure-Một điểm trong hệ thống mà nếu nó ngừng hoạt động, toàn bộ hệ thống sẽ bị tê liệt), nếu nhƣ server này bị chết, ngay lập tức toàn bộ hệ thống sẽ chết.
- Phƣơng pháp này còn dẫn đến giới hạn cho hệ thống, vì đến một mức nào đó hệ thống sẽ không thể phục vụ đƣợc nhiều yêu cầu hơn nữa, vì một hệ thống tổng thể còn phụ thuộc vào nhiều yếu tố nhƣ bandwidth hay khả năng vào ra của file trên đĩa cứng.
- Vậy đƣờng truyền 100mb sẽ cho phép tối đa 200 ngƣời dùng xem đồng thời.
- Điều gì sẽ xảy ra nếu muốn có hơn số ngƣời dùng đó? Ngƣời ta có thể tăng băng thông cho đƣờng truyền lên 1 gigabit nhƣng đây sẽ rơi vào tình trạng của scale up và gặp giới hạn

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt