CÂN BẰNG TẢI CHO CÁC HỆWEBSERVER LỚN VÀ ĐẢM BẢO SCALABILITY

15 637 0
CÂN BẰNG TẢI CHO CÁC HỆWEBSERVER LỚN VÀ ĐẢM BẢO SCALABILITY

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ──────── * ─────── ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN CÂN BẰNG TẢI CHO CÁC HỆ WEBSERVER LỚN VÀ ĐẢM BẢO SCALABILITY Sinh viên thực : Võ Duy Pho Lớp CNPM - K49 Giáo viên hướng dẫn: TS Nguyễn Khanh Văn HÀ NỘI 6-2009 PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Thông tin sinh viên Họ tên sinh viên: Võ Duy Pho Điện thoại liên lạc: 0944599926 Email: d.for.vo@gmail.com Lớp: CNPM-K49 Hệ đào tạo: Chính qui Đồ án tốt nghiệp thực tại: Trường đại học Bách Khoa Hà Nội Thời gian làm ĐATN: Từ ngày 22/02/2009 đến ngày 29/05/2009 Mục đích nội dung ĐATN Tìm hiểu lý thuyết cân tải cho hệ thống web server lớn bao gồm nhiều web server cài đặt nhiều nơi khác nhau, tìm hiểu lý thuyết xây dựng cân tải cho web server, cài đặt thuật toán cân tải, khắc phục số nhược điểm thuật toán Tìm hiểu phương án cài đặt cấu hình cân tải vào hệ thống web server nhằm đảm bảo tính mở rộng cao khả chống lỗi Các nhiệm vụ cụ thể ĐATN - Tìm hiểu kiến trúc website với khả mở rộng - Tìm hiểu cân tải cho hệ thống web-server lớn, kỹ thuật cân tải server - Tìm hiểu lý thuyết xây dựng cân tải, cân tải cho server, cân tải cho server toàn cầu cân tải cho cache - Tìm hiểu cài đặt số thuật toán cân tải ngôn ngữ C dựa sản phẩm cân tải mã nguồn mở, đề xuất số phương pháp cải tiến thuật toán - Cấu hình cài đặt cân tải vào hệ thống theo kiến trúc khác nhau, đảm bảo khả mở rộng khả chống lỗi hệ thống Lời cam đoan sinh viên: Tôi – Võ Duy Pho - cam kết ĐATN công trình nghiên cứu thân hướng dẫn TS Nguyễn Khanh Văn Các kết nêu ĐATN trung thực, chép toàn văn công trình khác Hà Nội, ngày 25 tháng năm 2009 Tác giả ĐATN Võ Duy Pho Xác nhận giáo viên hướng dẫn mức độ hoàn thành ĐATN cho phép bảo vệ: Hà Nội, ngày tháng năm Giáo viên hướng dẫn TS Nguyễn Khanh Văn LỜI CẢM ƠN Trong suốt năm học trường đại học Bách Khoa Hà Nội vừa qua, em thu nhận nhiều kiến thức bổ ích từ sách vở, quý báu từ kinh nghiệm, tâm huyết thầy cô truyền lại Em xin gửi lời cảm ơn chân thành tới thầy cô tận tình bảo giúp đỡ em thời gian qua Đặc biệt, em xin gửi lời cảm ơn sâu sắc tới thầy TS Nguyễn Khanh Văn trực tiếp hướng dẫn giúp đỡ em hoàn thành đồ án tốt nghiệp Em xin gửi lời cảm ơn chân thành tới anh Nguyễn Vũ, anh công ty ERAS Việt Nam bạn nhiệt tình chia sẻ kinh nghiệm cung cấp tài liệu, công cụ giúp em hoàn thành đồ án tốt nghiệp Em xin chân thành cảm ơn! TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Sự bùng nổ ngành dịch vụ web năm gần khiến số lượng người truy cập vào mạng internet ngày tăng mạnh, đặc biệt website mạng xã hội website chia sẻ video trực tuyến Với hàng trăm triệu lượt truy cập ngày, website đòi hỏi phải có hệ thống server mạnh mẽ Một hệ thống hoạt động tốt khiến người dùng hài lòng, sau thời gian hoạt động số lượng người dùng tăng lên, máy chủ hệ thống bị tải, dẫn đến yêu cầu nâng cấp Sau nâng cấp lại tiếp tục cũ Vòng tuần hoàn dẫn đến nhu cầu cần phải xây dựng hệ thống website với khả đáp ứng người dùng thời gian đủ dài dễ dàng nâng cấp mở rộng cần Đó kiến trúc web với khả mở rộng Vấn đề quan trọng kiến trúc web với khả mở rộng cân tải cho hệ thống web server Một website toàn cầu có nhiều web-server đặt nhiều nơi giới, cân tải cho hệ thống web-server nghĩa làm cách để webserver không bị tải, đáp ứng nhu cầu người dùng thời gian nhanh Trong cạnh tranh khốc liệt website dịch vụ, nhà quản trị đáp ứng nhu cầu người dùng cách tốt nhất, người thắng, nhu cầu cân tải vô cần thiết vấn đề sống nhà cung cấp dịch vụ web Có nhiều phương pháp để cân tải, nhiên lý thuyết chung cần phải có cân tải đứng người dùng hệ thống webserver Bộ cân tải nhận yêu cầu từ phía người dùng, sau chuyển hướng yêu cầu đến server phù hợp dựa thuật toán phân tải, sau nhận liệu từ server trả cho người dùng Trong đồ án tốt nghiệp này, người viết luận văn (NVLV) đưa tổng quan vấn đề cần phải giải trình thiết kế hệ thống web với khả mở rộng Sau sâu vào lý thuyết cân tải cho hệ thống webserver lớn, kỹ thuật phương pháp cân tải sử dụng Tiếp theo kiến trúc thành phần cần xây dựng cân tải, thuật toán phân tải dùng giới, phương pháp cài đặt cân tải vào hệ thống để đạt hiệu khả đáp ứng người dùng khả mở rộng Phần tiếp xin đưa cài đặt số thuật toán cân tải cụ thể dựa số phần mềm cân tải mã nguồn mở số cải tiến cho thuật toán Cuối định hướng xây dựng cân tải hoàn toàn độc lập thực thi thuật toán phân tải cải tiến nhằm áp dụng cho website hoạt động ABSTRACT OF THESIS The boost of website services, especially the social network and online videosharing websites, in recent years causes the number of clients using Internet rapidly increase These websites are required to have a very powerful server system to match the demand of over hundred millions of clients An interesting website certainly attracts a lot of users, then the clients go up, that makes servers overload and need to be improved This process is repeated when there are more and more clients access to server again This problem raise the question of how to build an website system which have ability to meet the accessing demand of people within long enough time and easily improved if there is necessary That is scalable web architecture The most important factor in scalable web architecture is load balancing for web server system A global website have web servers in many different places Load balancing for the web server system is how to minimize clients response time without overloading In the competition between web services, a manager who successfully match users’ demands will become winner Therefore, load balancing demand is very crucial for the survival of web service industry There many methods for load balancing but the general point is the necessity of load balancer between clients and web server system This load balancer receives the requests from clients then directs them to suitable servers base on load distribution algorithms, next it gets the response and returns to clients We will present a general view on the problems which need to be solved in the process of webs ever designs with scalable ability Then, we focus on the theory of load balancing for large server systems, techniques and methods of load balancer in use We also mention the architecture and necessary factors for a load balancer, load distribution algorithms which have been used globally, methods of installing a load balancer into system for matching the demands as well as the scalable capability The next part will introduce some specific load balancing algorithms base on an open source load balancer and improvements for these The final part will provide a possible direction for building a completely independent load balancer which implements improved load distribution algorithms in order to apply in operating websites MỤC LỤC TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP ABSTRACT OF THESIS DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ ĐẶT VẤN ĐỀ .6 Tính cấp thiết đề tài Mục đích nghiên cứu 10 Kết cấu luận văn 11 CHƯƠNG 1: KIẾN TRÚC WEB VỚI KHẢ NĂNG MỞ RỘNG (SCALABLE WEB ARCHITECTURE) Error! Bookmark not defined Các khái niệm kiến trúc với khả mở rộng .Error! Bookmark not defined Các vấn đề cần giải trình xây dựng website theo kiến trúc với khả mở rộng Error! Bookmark not defined 2.1 Cân tải cho application servers Error! Bookmark not defined 2.2 Mở rộng Database server Error! Bookmark not defined 2.2.1 Shared nothing Cluster Error! Bookmark not defined 2.2.2 Real Application Cluster Error! Bookmark not defined 2.2.3 Mô hình khuyên dùng Error! Bookmark not defined 2.3 Tổ chức lưu trữ liệu Error! Bookmark not defined 2.4 Cân tải cho Cache Error! Bookmark not defined 2.4.1 Định nghĩa Error! Bookmark not defined 2.4.2 Các loại Caches cách cài đặt Error! Bookmark not defined CHƯƠNG 2: KỸ THUẬT CÂN BẰNG TẢI WEB-SERVERError! not defined Bookmark Lý thuyết xây dựng cân tải cho web-servers Error! Bookmark not defined 1.1 Kỹ thuật cân tải server (Server Load Balancing – SLB) Error! Bookmark not defined 1.1.1 Kiểm tra trạng thái server Error! Bookmark not defined 1.1.2 Lựa chọn server tốt Error! Bookmark not defined 1.1.3 Kỹ thuật Session Persistence Error! Bookmark not defined 1.1.4 Cookie Error! Bookmark not defined 1.2 1.2.1 Cân tải cho server toàn cầu (GSLB) Error! Bookmark not defined Domain Name System Error! Bookmark not defined 1.2.2 Cài đặt cân tải vào hệ thống mạng DNS Error! Bookmark not defined 1.2.3 1.3 1.3.1 Lựa chọn site tốt Error! Bookmark not defined Chuyển mạch cache suốt Error! Bookmark not defined Các phương pháp cài đặt cache Error! Bookmark not defined 1.3.2 Các phương pháp cân tải cho caches Error! Bookmark not defined 1.3.3 Nhận biết ngữ cảnh cache (Content-aware cache switching)Error! Bookmark not defined 1.4 Cân tải sử dụng phần cứng cân tải phần mềm Error! Bookmark not defined 1.4.1 Cân tải sử dụng phần cứng Error! Bookmark not defined 1.4.2 Cân tải sử dụng phần mềm Error! Bookmark not defined Các thuật toán cân tải Error! Bookmark not defined 2.1 Thuật toán ngẫu nhiên (random) Error! Bookmark not defined 2.2 Thuật toán Round Robin (RR) Error! Bookmark not defined 2.3 Thuật toán Weighted Round Robin (Ratio) Error! Bookmark not defined 2.4 Thuật toán Dynamic Round Robin - DRR (Dynamic Ratio) Error! Bookmark not defined 2.5 Thuật toán Fastest Error! Bookmark not defined 2.6 Thuật toán Least Connections (LC) Error! Bookmark not defined 2.7 Thuật toán Observed Error! Bookmark not defined 2.8 Thuật toán Predictive Error! Bookmark not defined CHƯƠNG 3: CÀI ĐẶT BỘ CÂN BẰNG TẢI TRONG MẠNG VÀ LẬP TRÌNH MÔ PHỎNG THUẬT TOÁN Error! Bookmark not defined Các phương án cài đặt cân tải vào hệ thống Error! Bookmark not defined 1.1 Bộ cân tải Haproxy Error! Bookmark not defined 1.2 Cài đặt đơn giản với phương pháp cookie-insert Error! Bookmark not defined 1.3 Cài đặt với khả mở rộng cao Error! Bookmark not defined 2 Cài đặt thuật toán cân tải HAProxy Error! Bookmark not defined 2.1 Thuật toán weighted round robin (WRR) Error! Bookmark not defined 2.2 Thuật toán least connections Error! Bookmark not defined 2.3 Một số cải tiến Error! Bookmark not defined Cấu hình chạy chương trình Error! Bookmark not defined KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN .Error! Bookmark not defined Tổng kết Error! Bookmark not defined Định hướng phát triển Error! Bookmark not defined TÀI LIỆU THAM KHẢO Error! Bookmark not defined DANH MỤC CÁC HÌNH STT H 1.2-1 H 1.2-2 H 1.2-3 H 1.2-4 H 1.2-5 H 1.2-6 H 1.2-7 H 1.2-8 H 1.2-9 H 2.1-1 H 2.1-2 H 2.1-3 H 2.1-4 H 2.1-5 H 2.1-6 H 2.1-7 H 2.1-8 H 2.1-9 H 2.1-10 H 2.1-11 H 2.1-12 H 2.1-13 H 2.1-14 H 2.1-15 H 2.1-16 H 2.1-17 H 2.1-18 H 3.1-1 H 3.1-2 H 3.1-3 H 3.1-4 H 3.3-1 H 3.3-2 H 3.3-3 H 3.3-4 Tên hình So sánh scale out scale up Bảng so sánh giá thành phương pháp Mô hình cân tải web server Mở rộng database server sử dụng kiến trúc SAN Mở rộng database server theo chiều ngang Real Application Cluster Mô hình mở rộng database nên dùng Ví dụ mô hình CDN Simple Cache Cách làm việc cookie user=1 Cookie read Cookie-insert Bộ cân tải chèn cookie Bộ cân tải ghi đè cookie Mô hình Global Server Load Balancing Bộ cân tải hoạt động authoritative DNS Bộ cân tải hoạt động forward DNS proxy Sự kết hợp GSLB SLB cân tải Cài đặt cache trình duyêt người dùng Cài đặt cache transparent proxy Cân tải cho transparent-proxy cache Cài đặt cache mọt reverse-proxy Bộ cân tải cho Reverse proxy caches Transparent-reverse proxy caches Phương pháp hash buckets dùng caching Ví dụ luật giúp bỏ qua ngữ cảnh động Cân tải sử dụng phần cứng Mô hình cân tải đơn giản với cân tải Luồng liệu mô hình đơn giản Mô hình phức tạp với cân tải chia sẻ địa IP ảo Luồng liệu mô hình cân tải với keepalived Cấu hình firewall cho CentOS Cấu hình firewall cho CentOS (tiếp) Kiểm tra thông số server HAProxy Thông số server website www.tamtay.vn sử dụng HaProxy Hình vẽ đánh theo định dạng: H [Chương].[Mục lớn] [Số thứ tự] Trang 15 15 16 17 17 19 19 21 22 27 27 28 29 29 31 32 33 34 38 38 40 40 41 42 44 46 47 57 58 59 61 70 70 74 75 Authoritative DNS DNS DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ Authoritative Domain Một website lưu thông tin tên nhiều Name Server server tên Đây server tên có thẩm quyền cao Client Khách hàng, người truy cập vào website nói chung Cluster Dùng để cụm máy chủ mạng LAN Hệ thống phân giải tên internet, thiết lập tương Domain Name System ứng địa IP website tên miền Proxy bên phía client, dùng để tăng tốc client, client Forward-proxy phải đến proxy để truy cập internet Khá giống proxy, nhiên có nhiệm vụ tạo kết nối Gateway người dùng server HTTP Global Server Load Balancing Hypertext Transfer Protocal LB Load balancing LBer Load Balancer LC Least connections Local DNS Local Domain Name Server GSLB Proxy – Proxy Server Reverse-proxy RR Round Robin SAN Storage Area Networks Scalable - Scalability Scale - Scaling SLB Server Server Load Balancing Socket SPOF TCP Single point of failure Transmission Control Protocol WWW Transparent-proxy World Wide Web Cân tải cho máy server cài đặt khắp nơi giới Giao thức truyền tải siêu văn bản, sử dụng WWW Cân tải: phân phối tải server nhằm đảm bảo cân chúng Bộ cân tải: thiết bị phần cứng phần mềm dùng để thực thi hoạt động cân tải Thuật toán phân tải cho server dựa số kết nối chúng Server tên nằm mạng LAN client, trình duyệt client sử dụng local DNS để liên lạc với Domain Name System Server đứng người dùng webserver, có nhiệm vụ trao đổi thông tin Proxy bên phía server, tăng tốc server Thuật toán phân tải cho server theo thứ tự xoay vòng Kiến trúc kết nối thiết bị lưu trữ từ xa để xem chúng cục với Khả mở rộng: khả website đáp ứng số lượng người dùng ngày tăng Mở rộng, tăng khả hoạt động Máy phục vụ, chứa thông tin, ứng dụng cho phép người dùng truy cập vào Cân tải cho máy server Sự kết hợp địa IP cổng nhằm xác định đích ứng dụng chạy server Một node hệ thống mà bị “chết” toàn hệ thống bị tê liệt Giao thức điều khiển truyền vận, sử dụng tạo kết nối để trao đổi gói tin Proxy bên phía client, hoạt động “trong suốt” với người dùng Mạng máy tính toàn cầu ĐẶT VẤN ĐỀ Tính cấp thiết đề tài Sự phát triển ngành dịch vụ web khiến cho số lượng người truy cập vào website ngày tăng mạnh, đặc biệt mạng xã hội ảo website chia sẻ video trực tuyến Các website không cho phép người dùng trao đổi chia sẻ thông tin, giao lưu kết bạn mà cho phép người dùng lưu trữ tài liệu, tìm kiếm bạn bè, người thân, hay chí đối tác kinh doanh Mặc dù bắt đầu phát triển vòng năm trở lại mạng xã hội trang chia sẻ video trực tuyến có cố lượng người dùng lên đến số hàng trăm triệu tăng với tốc độ chóng mặt Với mạng xã hội, người dùng chat, email, voice chat, chia sẻ file, viết nhật ký cá nhân (blog) bàn luận vấn đề mà họ quan tâm Thêm nữa, người dùng thông qua mạng tìm kiếm bạn bè hay đối tác theo tên (tên sử dụng email), sở thích cá nhân (như thể thao, phim ảnh, ca nhạc) lĩnh vực quan tâm (công nghệ, điện ảnh, kinh doanh…) Chính tính làm cho người dùng tìm đến mạng xã hội ngày nhiều thời gian hàng ngày họ dành cho tăng lên Có thể kể hàng loạt mạng xã hội có số lượng người dùng lớn MySpace, Facebook, Hi5, Friendster, LinkdeIn…Theo số liệu cập nhập tháng 1/2009, myspace có 255 triệu tài khoản đăng ký đứng thứ bảng xếp hạng website hàng đầu giới theo Alexa, FaceBook có 177 triệu tài khoản đứng thứ Các website mạng xã hội khác Hi5, Friendster…đều có số lượng tài khoản đăng ký 50 triệu Với website chia sẻ video trực tuyến vậy, phát triển công nghệ kỹ thuật số giúp cho người dễ dàng tạo đoạn clip vui nhộn, hay video gia đình, họ muốn lưu trữ, muốn gửi cho bạn bè khắp nơi, họ tìm đến website chia sẻ video trực tuyến www.youtube.com, website chia sẻ video lớn nay, có tỉ video 100 triệu video xem ngày Youtube đứng thứ bảng xếp hạng thông lượng website Alexa Sự cạnh tranh website mạng xã hội trang chia sẻ video trực tuyến tránh khỏi, nhà quản trị muốn tăng số lượng người dùng muốn website ngày tiếng Để làm điều đó, nội dung hấp dẫn phong phú, website cần phải đáp ứng nhu cầu người dùng cách tốt Với 100 triệu video xem ngày, tính trung bình giây có gần 1200 video xem Youtube, số đòi hỏi Youtube phải có hệ thống server mạnh mẽ linh hoạt Một website với số lượng truy cập ngày tăng khiến máy chủ website không đáp ứng hết nhu cầu người dùng bị tải Yêu cầu đặt người quản trị website cần phải giải vấn đề tải này, để người dùng truy cập vào website phục vụ cách nhanh Để làm điều đó, người quản trị phải nâng cấp hệ thống server Nghĩa là, cần phải tăng cấu hình máy server tăng số lượng server, hai phương án mở rộng server: mở rộng theo chiều dọc (scaling up) mở rộng theo chiều ngang (scaling out) Mở rộng theo chiều dọc nghĩa nâng cấp server có cấu hình ngày mạnh tùy theo nhu cầu người dùng, phương pháp tốt trường hợp số lượng người dùng không nhiều nhiên giá thành đắt khả mở rộng Mở rộng theo chiều ngang nghĩa sử dụng hệ thống nhiều server nhỏ với chi phí thấp server phục vụ lượng người dùng định, phương pháp có khả mở rộng tốt (lắp thêm server cần) hoạt động hiệu Với trang có số lượng người truy cập nhiều tỉ lệ truy cập cao, nhà quản trị hệ thống thường lựa chọn phương án thứ hai – mở rộng theo chiều ngang Nâng cấp server giống hoạt động có chu kì vòng đời hệ thống Khi hệ thống server không đáp ứng nhu cầu người dùng, nâng cấp Sau nâng cấp, tốc độ cải thiện kiến người tin tưởng vào khả phục vụ website, số lượng người dùng lại tăng lên, hệ thống server lại không đáp ứng nhu cầu người dùng lại cần nâng cấp…Vòng luẩn quẩn khiến nhà quản trị mong muốn tìm kiếm giải pháp đó, mà website họ hoạt động ổn định thời gian dài, dễ dàng nâng cấp cần thiết Đó phương án mà hầu hết mạng xã hội trang chia sẻ video trực tuyến myspace, google video…đã chọn - sử dụng kiến trúc web với khả mở rộng (scalable web architecture) Cách tiếp cận cho phép nhà quản trị tăng hiệu hệ thống, cho khả mở rộng khả có sẵn cao, đáp ứng yêu cầu suốt người dùng (user-transparent), nhiên có nhiều thách thức cần phải vượt qua để xây dựng chức hệ thống website trình duyệt web HTTP Để xây dựng website theo kiến trúc này, nhà quản trị website phải thiết kế cách “nhịp nhàng” thành phần hệ thống, thành phần bao gồm xây dựng hệ thống web-server, xây dựng hệ thống database-server, quản lý session, thiết kế cache cho hầu hết thành phần hệ thống Một website xây dựng theo kiến trúc muốn nâng cấp mở rộng theo chiều hướng scaling out, nghĩa hệ thống có nhiều web-server nhiều database-server kết nối với nhau, cần mở rộng lắp đặt thêm server Khi hệ thống có nhiều server vấn đề đặt người dùng truy cập vào website, yêu cầu người dùng chuyển đến server xử lý, lấy liệu database-sever nào? Làm để server hệ thống nhận lượng tải phù hợp với server đó, đảm bảo cho không server bị tải? Làm để hệ thống đáp ứng số lượng người dùng cao nhất? Đó toán cân tải (Load Balancing – LB) cho server, phần quan trọng việc giữ cho hệ thống hoạt động ổn định, nhân tố định đến khả đáp ứng người dùng hệ thống Thuật ngữ cân tải dùng cho server, mà dùng hầu hết thành phần lại kiến trúc web với khả mở rộng, cân tải cho database, cân tải cho cache, cân tải cho firewall…Một website cân tải tốt tận dụng cao nguồn lực sẵn có Chẳng hạn website với web-server đáp ứng cho 1000 người dùng lúc, nâng cấp lên servers, cân tải tốt có khả đáp ứng cho 4000 người lúc, ngược lại đáp ứng 2000 người, chí số Một trang web xử lý tốt vấn đề cân tải đáp ứng người dùng cách tốt có khả mở rộng cao Để cân tải cho cụm server, cần phải xây dựng cân tải (Load Balancer) Các cân tải cài đặt người dùng hệ thống server, nhận yêu cầu từ phía người dùng, sau chuyển chúng đến webserver phù hợp Bộ cân tải lúc đóng vai trò web-server tất người dùng, cần truy cập đến địa chứa cân tải, người dùng nhận thông tin cần, không cần biết phía sau hệ thống có server, không cần nhớ địa server Vậy làm cách để xây dựng cân tải hoạt động hiệu quả, nhằm đảm bảo tải phân phối cách cân đối web-server? Một cân tải cần đáp ứng hai yêu cầu Thứ nhất, quan trọng nhất, khả xử lý chuyển yêu cầu người dùng đến server phù hợp, để giải vấn đề này, cần phải xây dựng thuật toán phân tải hoạt động “mềm dẻo” nhiều yếu tố khác Thứ hai, cần phải kiểm tra cập nhập thông số kỹ thuật trạng thái server, kiểm tra xem server hoạt động, server tạm nghỉ, server vừa thêm vào cụm server, hay vừa đưa (để sửa chữa, bảo trì…) hệ thống, kiểm tra thay đổi khả phục vụ (chẳng hạn số kết nối lớn nhất) hay trọng số server Giải tốt hai toán cho cân tải hoạt động hiệu ổn định Các cân tải thường chia làm hai loại: loại hoạt động dựa phần cứng hoạt động dựa phần mềm Hoạt động dựa phần cứng nghĩa sử dụng thiết bị phần cứng hoạt động tầng mạng (network layer) tầng giao vận (transport layer) mô hình OSI, thiết bị thiết kế mô hình chuyển mạch phân bố tải hiệu Tuy nhiên giá thiết bị phân tải thường đắt, vượt khả nhà phát triển hệ thống vừa nhỏ Bộ cân tải phần mềm phần mềm cài đặt máy riêng biệt máy server, lưu giữ địa máy server hệ thống để phân tải Bộ cân tải phần mềm có khả phân tải thiết bị phần cứng, nhiên giá thành rẻ phù hợp với nhà phát triển hệ thống vừa nhỏ, chí có nhiều phần mềm mã nguồn mở hoạt động tốt Một phần mềm hoạt động hiệu có khả phân tải tương đương với phần cứng có giá thành trung bình Hơn nữa, dù có sử dụng phần cứng, website cần phần mềm để hỗ trợ phân tải Điểm mẫu chốt hoạt động cân tải thuật toán phân phối tải Không có thuật toán thực phù hợp cho môi trường Với điều kiện hệ thống định, yêu cầu đặt phải chọn thuật toán cho phù hợp Các thuật toán phân tải sử dụng thường chia làm hai loại chính, thuật toán phân tải tĩnh thuật toán phân tải động Các thuật toán phân tải tĩnh dễ thiết kế, hoạt động đơn giản hiệu suất không cao Chúng gọi thuật toán tĩnh phương pháp chọn server để gửi yêu cầu dựa yếu tố tĩnh, không thay đổi Ngược lại, thuật toán phân tải động dựa nhân tố động, thay đổi liên tục, thuật toán động hoạt động linh hoạt đáp ứng yêu cầu phân tải cách tốt Tuy thuật toán đáp ứng trường hợp Cần phải có kết hợp mềm dẻo dựa thuật toán xây dựng cân tải hoạt động tốt Việc nghiên cứu thuật toán phân tải mềm dẻo giúp cho cân tải hoạt động hiệu đáp ứng nhu cầu phân tải cao Với bùng nổ dịch vụ web, số lượng website ngày nhiều đem đến cho người dùng nhiều lựa chọn Để tồn phát triển, website phải giữ người dùng lôi kéo thêm nhiều người dùng Để làm điều này, nhà quản trị hệ thống phải đảm bảo cho hệ thống hoạt động tốt nhất, yêu cầu lắp đặt thêm nhiều server yêu cầu cân tải cho server thực nhu cầu cấp thiết Đứng trước cạnh tranh giá thành, việc phát triển xây dựng phần mềm cân tải trở nên vô hữu ích Đứng trước yêu cầu đó, NVLV định tìm hiểu nguyên lý hoạt động thuật toán cân tải nhằm xây dựng nên tảng vững chủ đề này, từ góp phần thúc đẩy trình xây dựng nên cân tải hoạt động hiệu có khả đáp ứng nhu cầu cho website hoạt động nước - Mục đích nghiên cứu Nghiên cứu tổng quan kiến trúc web với khả mở rộng, tìm hiểu lý thuyết chung cân tải server, cân tải database, cân tải cho cache quản lý session - - Tìm hiểu kỹ thuật cân tải cho web server, lý thuyết xây dựng cân tải cho web server điểm mạnh yếu thuật toán phân tải cho cân tải Xây dựng cài đặt thử nghiệm số thuật toán cân tải bản, thực thi số thuật toán cân tải tĩnh cân tải động Tìm hiểu cách cấu hình cân tải với web server theo điều kiện khác nhau, nhằm đáp ứng nhu cầu hệ thống web riêng biệt Kết cấu luận văn Trong khuôn khổ báo cáo này, NVLV xin trình bày kết tìm hiểu cài đặt thử nghiệm số thuật toán cân tải định Do nguồn lực thời gian có hạn, nên NVLV chưa thực xây dựng phần mềm cân tải hoạt động thực mà cài đặt thử nghiệm số thuật toán cân tải dựa cân tải có sẵn Để giúp tiếp cận vấn đề cách nhanh nhất, báo cáo trình bày với nhiều hình ảnh sinh động Nội dung báo cáo chia làm chương sau: Chương 1: Tổng quan kiến trúc web với khả mở rộng Chương 2: Kỹ thuật cân tải web-server, lý thuyết xây dựng cân tải cho webserver thuật toán phân tải cho cân tải Chương 3: Trình bày môi trường phát triển, phương án cài đặt cân tải vào mạng, kết cài đặt thuật toán, số cải tiến cho thuật toán cân tải Cách cài đặt cấu hình cân tải cho hệ thống webserver cụ thể Chương 4: Kết luận định hướng phát triển [...]... database, cân bằng tải cho cache và quản lý session - - Tìm hiểu các kỹ thuật cân bằng tải cho web server, lý thuyết xây dựng bộ cân bằng tải cho web server và điểm mạnh yếu của các thuật toán phân tải cho bộ cân bằng tải Xây dựng và cài đặt thử nghiệm một số thuật toán cân bằng tải cơ bản, thực thi một số thuật toán cân bằng tải tĩnh và cân bằng tải động Tìm hiểu cách cấu hình các bộ cân bằng tải cùng... toán cân bằng tải dựa trên một bộ cân bằng tải có sẵn Để giúp tiếp cận vấn đề một cách nhanh nhất, báo cáo này được trình bày với nhiều hình ảnh sinh động Nội dung của báo cáo chia làm 4 chương như sau: Chương 1: Tổng quan về kiến trúc web với khả năng mở rộng Chương 2: Kỹ thuật cân bằng tải ở web-server, lý thuyết xây dựng bộ cân bằng tải cho webserver và các thuật toán phân tải cho bộ cân bằng tải. .. trang web được xử lý tốt vấn đề cân bằng tải sẽ đáp ứng được người dùng một cách tốt nhất và có khả năng mở rộng cao Để cân bằng tải cho cụm server, cần phải xây dựng các bộ cân bằng tải (Load Balancer) Các bộ cân bằng tải này được cài đặt ở 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 chúng đến webserver phù hợp Bộ cân bằng tải lúc đó đóng vai trò là web-server... toán cân bằng tải (Load Balancing – LB) cho các server, cũng chính là phần quan trọng nhất trong việc giữ cho hệ thống hoạt động ổn định, là nhân tố quyết định đến 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 những chỉ dùng cho server, mà còn dùng trong hầu hết các thành phần còn lại của kiến trúc web với khả năng mở rộng, đó là cân bằng tải cho database, cân bằng tải cho cache,... dùng, chỉ cần truy cập đến địa chỉ chứa bộ cân bằng tải, người dùng sẽ nhận được thông tin mình cần, không cần biết phía sau đó hệ thống có bao nhiêu server, cũng không cần nhớ địa chỉ của các server này Vậy làm cách nào để xây dựng được một bộ cân bằng tải hoạt động hiệu quả, nhằm đảm bảo tải được phân phối một cách cân đối giữa các web-server? Một bộ cân bằng tải cần đáp ứng được hai yêu cầu chính Thứ... và các thuật toán phân tải cho bộ cân bằng tải Chương 3: Trình bày về môi trường phát triển, các phương án cài đặt bộ cân bằng tải vào mạng, kết quả cài đặt thuật toán, một số cải tiến cho các thuật toán cân bằng tải Cách cài đặt và cấu hình bộ cân bằng tải cho một hệ thống webserver cụ thể Chương 4: Kết luận và định hướng phát triển ... cũng như các thuật toán cân bằng tải nhằm xây dựng nên một nền tảng vững chắc về chủ đề này, 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 website đang hoạt động trong và ngoài nước - 2 Mục đích nghiên cứu Nghiên cứu tổng quan về kiến trúc web với khả năng mở rộng, tìm hiểu lý thuyết chung về cân bằng tải server, cân bằng tải database,... sự kết hợp mềm dẻo dựa các thuật toán này mới có thể xây dựng được một bộ cân bằng tải hoạt động tốt Việc nghiên cứu các thuật toán phân tải mềm dẻo sẽ giúp cho các bộ cân bằng tải hoạt động hiệu quả hơn và đáp ứng được nhu cầu phân tải cao hơn Với sự bùng nổ của dịch vụ web, số lượng website ngày càng nhiều đem đến cho người dùng rất nhiều sự lựa chọn Để tồn tại và phát triển, các website phải giữ được... dùng hiện tại của mình và lôi kéo thêm được nhiều người dùng mới Để làm được điều này, các nhà quản trị hệ thống phải đảm bảo cho hệ thống của mình hoạt động tốt nhất, do đó yêu cầu lắp đặt thêm nhiều server mới cũng như yêu cầu cân bằng tải sẽ cho các server thực sự là nhu cầu cấp thiết Đứ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ần mềm cân bằng tải trở nên vô cùng hữu... trợ phân tải Điểm mẫu chốt trong hoạt động của các bộ cân bằng tải là thuật toán phân phối tải Không có một thuật toán nào thực sự phù hợp cho mọi môi trường Với những điều kiện hệ thống nhất định, yêu cầu đặt ra là phải chọn thuật toán nào cho phù hợp Các thuật toán phân tải đang được sử dụng thường được chia ra làm hai loại chính, đó là thuật toán phân tải tĩnh và thuật toán phân tải động Các thuật

Ngày đăng: 04/04/2016, 03:50

Tài liệu cùng người dùng

Tài liệu liên quan