1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

79 1,1K 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 79
Dung lượng 2,02 MB

Nội dung

Ket-noi.com diễn đàn công nghệ, giáo dục 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 Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 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 Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 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Ữ Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 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 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 Hình vẽ đánh theo định dạng: H [Chương].[Mục lớn] [Số thứ tự] Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 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 Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page ĐẶ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 Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 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 Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page struct sockaddr_in addr; /* the address to connect to */ struct sockaddr_in source_addr; /* the address to which we want to bind for connect() */ short check_port; /* the port to use for the health checks */ int good */ int int int health; /* 0->rise-1 = bad; rise->rise+fall-1 = rise, fall; inter; result; /* time in iterations */ /* time in milliseconds */ /* = connect OK, -1 = connect KO */ unsigned char uweight, eweight; /* user-specified weight-1, and effective weight-1 */ unsigned int wscore; /* weight score, used during srv map computation */ int cur_sess, cur_sess_max; /* number of currently active sessions (including syn_sent) */ unsigned int cum_sess; /* cumulated number of sessions really sent to this server */ unsigned int maxconn, minconn; /* max # of active sessions (0 = unlimited), min# for dynamic limit */ unsigned failed_checks, down_trans; /* failed checks and up-down transitions */ unsigned failed_conns, failed_resp; /* failed connect() and responses */ unsigned failed_secu; /* blocked responses because of security concerns */ struct proxy *proxy; belongs to */ }; /* the proxy this server Con trỏ cấu trúc proxy lưu giữ thông tin proxy hoạt động hệ thống Đây cấu trúc phức tạp, khuôn khổ thuật toán thảo luận đây, quan tâm đến số biến cần thiết Bao gồm trỏ cấu trúc server “struct server **srv_map” dùng để chứa tập server mà proxy kết nối tới, tên độ dài cookie (dành để đọc cookie người truy cập gửi đến server trả về), “srv_rr_idx” dùng làm biến đếm để chọn server srv_map theo thuật toán RR struct proxy { struct listener *listen; sockets */ ……… struct server *srv; int srv_act, srv_bck; int tot_wact, tot_wbck; and backup servers */ Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM /* the listen addresses and /* known servers */ /* # of running servers */ /* total weights of active Page 62 struct server **srv_map; /* the server map used to apply weights */ int srv_map_sz; /* the size of the effective server map */ char *cookie_name; /* name of the cookie to look for */ int cookie_len; /* strlen(cookie_name), computed only once */ int srv_rr_idx; /* next server to be elected in round robin mode */ unsigned int wscore; /* weight score, used during srv map computation */ ……… } Khi Haproxy bắt đầu hoạt động, đọc file cấu hình hệ thống Trong trình đọc file cấu hình, Haproxy xác định xem có server, server hoạt động, server backup Cứ server cấp phát vùng nhớ lưu trữ vào srv_map tùy theo trạng thái curproxy->srv_map = (struct server **)calloc(act, sizeof(struct server *)); Trong curproxy proxy sử dụng Cứ lưu server vào hệ thống, chương trình vẽ lại đồ server tổng trọng số chúng Việc vẽ lại đồ tính lại tổng trọng số quan trọng, đảm bảo cho thuật toán RR hoạt động server có trọng số khác static void recount_servers(struct proxy *px){…} static void recalc_server_map(struct proxy *px){…} Cho dù trọng số server bao nhiêu, server lưu vào hệ thống server gọi người dùng lần truy cập Nó đảm bảo trường hợp cần server backup, gọi đến server 2.1 Thuật toán weighted round robin (WRR) Như mô tả chương đồ án này, tư tưởng thuật toán WRR phân tải xoay vòng server Giả sử có server A, B, C với trọng số 1, 2, Thuật toán phân tải vào server theo thứ tự ABBCCC Điều định srv_map lưu cấp phát nhớ cho server lưu vào srv_map Biến srv_rr_idx dùng để chọn server thuật toán Thuật toán RR cài đặt sau: static inline struct server *get_server_rr_with_conns(struct proxy *px) { int newidx; /* Biến dùng để đặt giá trị cho srv_rr_idx sau chọn server */ struct server *srv; Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 63 /*Kiểm tra kích thước srv_map không, nghĩa không tồn server hoạt động, thuật toán trả null */ if (px->srv_map_sz == 0) return NULL; /*Nếu giá trị srv_rr_idx nhỏ 0, vượt kích thước srv_map_sz, nghĩa đến cuối server map cập nhập giá trị cho */ if(px->srv_rr_idx < || px->srv_rr_idx >= px>srv_map_sz) px->srv_rr_idx = 0; /*Gán giá trị srv_rr_idx cho newidx */ newidx = px->srv_rr_idx; /*Thực vòng lặp lấy server phù hợp lẽ newidx = pr->srv_rr_idx, lấy server thỏa mãn, nhiên cần phải loại trừ trường hợp server đầy, số kết nối lớn số kết nối cho phép */ { srv = px->srv_map[newidx++]; if (!srv->maxconn || srv->cur_sess < srv_dynamic_maxconn(srv)) { px->srv_rr_idx = newidx; return srv; } if (newidx == px->srv_map_sz) newidx = 0; } while (newidx != px->srv_rr_idx); return NULL; } Thuật toán WRR đơn giản chạy ổn định phần mềm Haproxy, nhiên có nhược điểm mà khắc phục Thứ nhất, phân phối tải theo hình thức xoay vòng, nên người dùng đến với website đẩy đến server khác nhau, điều không nên xảy ra, người dùng đưa vào server, nghĩa thiết lập kết nối với server đó, tiếp tục làm việc với server yêu cầu giúp người dùng tải lại số đối tượng (chẳng hạn tải yêu cầu trước), nữa, giúp người dùng thực lại việc kết nối server, điều đặc biệt quan trọng web-server có yêu cầu bảo mật, chẳng hạn kiểm tra SSL key Nếu yêu cầu người dùng đưa vào server khác nhau, việc kiểm tra liên tục SSL key nhiều thời gian, làm tăng thời gian đáp ứng người dùng Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 64 Chúng ta khắc phục nhược điểm cách Cách thứ sử dụng cookie nói phần cookie chương Cách thứ sử dụng hàm băm theo địa IP người dùng Khi cân tải nhận yêu cầu, băm địa IP người dùng Cùng giá trị băm cho vào server Tuy nhiên phương pháp đòi hỏi người dùng phải có IP tĩnh Nhược điểm thứ phân phối theo kiểu xoay vòng, nên xảy trường hợp server phải phục vụ nhiều người dùng, server khác lại nhàn rỗi Điều khắc phục cách sử dụng thuật toán Least Connections (LC) 2.2 Thuật toán least connections Như đề cập chương 2, thuật toán LC phân tải dựa số kết nối đến với server Mỗi proxy lưu thông tin tất server Trong server có biến “cur_sess” lưu lại số session active server Chúng ta sử dụng vòng lặp kiểm tra biến này, lấy server có giá trị cur_sess thấp chia cho trọng số server để gửi yêu cầu Thực vậy, giả sử server A, B có trọng số Thuật toán đảm bảo cho số session active B xấp xỉ gấp đôi số session active A, so sánh “số session active / trọng số server” Vì việc kiểm tra số lượng kết nối thực Trong hệ thống có tải cao, server có active session nhất, nhận yêu cầu, sau nhận liên tục yêu cầu, số lượng active session chưa kịp cập nhập Vì vậy, thuật toán này, cần tránh phân yêu cầu liên tiếp vào server (chúng ta xét với toán cookie, nghĩa kết nối đến từ clients khác nhau) Nghĩa server vừa phân tải trở thành server cần tránh lần phân tải Ở sử dụng biến “struct server *srvtoavoid” if(srv != srvtoavoid){ … } Sau chọn server, cập nhập lại giá trị srvtoavoid biến static Static struct server *pre_server; … Pre_server = t; Dưới hàm thực thi thuật toán least connections: static inline struct server *get_server_lc(struct proxy *px, struct server *srvtoavoid) { int s; /*Sử dụng để lấy số kết nối server dựa trọng số chúng */ struct server *srv, *t; Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 65 /* Kiểm tra kích thước srv_map không, nghĩa không tồn server hoạt động, thuật toán trả null */ if (px->srv_map_sz == 0) return NULL; t = NULL; s = 10000000; /* Thực tìm server phù hợp, tăng giá trị i chọn server có kết nối dựa biến cur_sess trọng số */ for(srv = px->srv; srv != NULL; srv = srv->next) { if(srv != srvtoavoid) { if (!srv->maxconn || srv->cur_sess < srv_dynamic_maxconn(srv)){ if (s > (srv->cur_sess / srv->eweight ) || t==NULL) { t = srv; s = srv->cur_sess / srv->eweight; } } } } pre_server = t; return t; } 2.3 Một số cải tiến Thuật toán LC trọng vào biến đếm, số lượng kết nối đến server để thực việc phân tải Tuy nhiên nhiều thông số khác để đo hiệu server số kết nối Hai server có số kết nối tương đương server lại phải chịu tải lớn hẳn, công việc server nặng tải yêu cầu server Thuật toán RR có khả xảy tượng Giả sử server chạy thấy phải chịu tải nặng, tự kiểm tra thông số cách kiểm tra tải CPU, dung lượng RAM sử dụng…Nó gửi thông báo đến cân tải báo chịu tải cao Chúng ta cần thiết kế chương trình cài đặt server để kiểm tra thông số này, sau gửi cân tải Tại lại cài đặt tích hợp vào cân tải? Vì cân tải không đo tải server, đặc biệt server xa Server gửi tin nhắn chẳng hạn như: sendmessage( proxy_address, proxy_port, srv_add, srv_port, srvoverload); Bộ cân tải nhận tín hiệu này: getMessage (srv_add, srv_port, srv_load); Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 66 Nếu tải server lớn giá trị đó, chẳng hạn 85%, cân tải loại khỏi danh sách server proxy, phải giữ toàn thông tin proxy thực thuật toán không gửi thêm kết nối đến server này, nhiệm vụ mà thực làm Do phải khai báo proxy trỏ cấu trúc server, lưu thông tin server bị tải Thêm vào cấu trúc cần struct server *overload_srv; Đẩy server bị tải khỏi tập server for(srv = px->svr; srv!=NULL; svr = srv->next) { //Compare srv id and overload server id if(strcmp(srv->next->id, id)) //overload server { temp = srv->next; srv->next = temp->next; temp->next = NULL; } } Sau cho vào overload_server temp->next = px->overload_srv; px->overload_srv = temp; temp->proxy = px; Khi tải server xuống giá trị đó, chẳng hạn 50%, cần phải gửi tin nhắn thông báo tải nhẹ hơn, lại cho vào danh sách server proxy sendmessage( srv_port, srvOK); proxy_address, proxy_port, srv_add, Quá trình diễn ngược lại so với trình Chúng ta đưa server khỏi danh sách server bị overload thêm vào danh sách server chạy proxy Vì trường hợp tải xảy ra, số lượng thời điểm mà server gửi message cho cân tải không nhiều để gây tải cho cân tải Ngược lại thuật toán đảm bảo không gửi thêm kết nối đến server tải hệ thống, nhằm tránh trường hợp server bị treo phải phục vụ khả Một số cải tiến khác chưa có điều kiện để thực thi nguồn lực thời gian có hạn, NVLV xin trình bày phần định hướng đồ án Cấu hình chạy chương trình Sau NVLV xin trình bày cách cấu hình chạy thử Haproxy hệ điều hành CentOS với cân tải servers, để đơn giản, tất triển khai máy, cổng khác nhau: + Host IP: 192.168.1.72 + Haproxy: Triển khai Port 80: 192.168.1.72:80 + Server1: 192.168.1.72:81 Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 67 + Server2: 192.168.1.72:82 + Server3: 192.168.1.72:83 3.1 Cài đặt CentOS cấu hình số thuộc tính + Disable firewall # setup H 3.3-1 Cấu hình firewall cho CentOS Chọn firewall configuration  Run Tool Disable firewall, disbale SELinux H 3.3-2 Cấu hình firewall cho CentOS (tiếp) + Cấu hình httpd # vi /etc/httpd/conf/httpd.conf Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 68 Để HAProxy hoạt động transparent proxy, IP người dùng phải cho qua thuộc tính "X-Forwarded-For" Tìm kiếm file httpd.conf dòng bắt đầu với “LogFormat” [ ] LogFormat "%h %l %u %t \"%r\" %>s %b \"% {Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent [ ] Chúng ta thay “%h” "%{X-Forwarded-For}i": [ ] LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent [ ] Tìm kiếm dòng Listen [ ] #Listen 12.34.56:80 [ ] Thêm vào listen cổng 81, 82, 83 [ ] #Listen 12.34.56:80 Listen 81 Listen 82 Listen 83 [ ] Thêm vào cuối file httpd.conf: ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/var/www/domain/server1" ServerName server1 Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 69 ErrorLog logs/server1.com-error_log CustomLog logs/server1.com-access_log common ServerAdmin phovd@gmail.com DocumentRoot "/var/www/domain/server2" ServerName server2 ErrorLog logs/server2.com-error_log CustomLog logs/server2.com-access_log common ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/var/www/domain/server3" ServerName server3 ErrorLog logs/server3.com-error_log CustomLog logs/server3.com-access_log common + Tạo thư mục chứa site để test # mkdir /var/www/domain # cd domain # mkdir server1 # mkdir server2 # mkdir server3 Trong thư mục này, tạo file index.html đơn giản có chứa dòng text: “Welcome to server x” với x = 1, 2, 3.2 Cài đặt Haproxy Đối với website nhỏ, cài đặt haproxy từ mạng (download chạy trực tiếp), chạy trực tiếp có dung lượng nhỏ, hoạt động ổn định nhiều website có nhiều options người quản trị website lựa chọn: # # # # # # mkdir /usr/local/haproxy “Tạo cd /usr/local/haproxy wget HAProxy download link gunzip downloaded file mv unzip file haproxy “Tạo chmod 700 haproxy Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM thư mục chứa Haproxy “Download Haproxy “Giải nén file chạy haproxy “Cho phép đọc Page 70 Hoặc biên dịch từ mã nguồn (đối với nhà phát triển): # gcc –c *.c # gcc –o haproxy *.o 3.3 Tạo file config haproxy.conf # vi haproxy.cfg defaults balance leastconn stats enable session timeout 50000 frontend www 192.168.1.72:80 mode http default_backend all_servers backend all_servers mode http server server1 192.168.1.72:81 weight maxconn 5000 server server2 192.168.1.72:82 weight maxconn 5000 server server3 192.168.1.72:83 weight maxconn 10000 3.4 Chạy HaProxy # /haproxy -f /haproxy.cfg –c # /haproxy -f /haproxy.cfg -p /var/run/haproxy.pid -D # /sbin/service httpd start “Khởi động service httpd Mở trình duyệt máy kết nối với máy mạng LAN, gõ vào địa 192.168.1.72, lúc cân tải listen cổng 80 máy 192.168.1.72, nhận biết yêu cầu, chuyển chúng đến server cổng 81, 82, 83 Chúng ta nhận kết Welcome to server x (với x = 1, 2, 3) Nếu thuật toán sử dụng round robin đơn giản, không sử dụng cookie, refresh liên tục cách nhấn F5, giá trị “x” quay vòng khoảng 1-3 Điều cho thấy thuật toán hoạt động tốt Nếu sử dụng thuật toán least connections kết khác Trên thực tế thuật toán least connections thể rõ giá trị có nhiều kết nối hướng tới server, đồng nghĩa với Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 71 việc có nhiều session hoạt động Thuật toán hướng yêu cầu đến server có active session Có thể kiểm tra thông số server, trạng thái server tại, số lượng kết nối tại, số lượt truy cập địa http://192.168.1.72/haproxy?stats Tính hoạt động lựa chọn file cấu hình tùy chọn “stats enable ” Kết thu ví dụ sau: H 3.3-4 Kiểm tra thông số server HAProxy Một số thông số đáng ý sau: + pid 3093: process id chạy Haproxy máy chủ linux + www frontend, backend webserver server1, server2, server3 +Các thông số kiểm tra server mô tả màu hình vẽ, bao gồm trạng thái giống phần backup server active server UP, DOWN, UP and going down, DOWN and going UP +Ở thông số session tại, connections hàng đợi, thông lượng Bytes vào, số yêu cầu bị từ chối, lỗi cảnh báo Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 72 H3.3-4 Thông số server website www.tamtay.vn Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 73 KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN Tổng kết Đồ án đưa thành phần cần phải xây dựng cân tải cài đặt giải pháp phân tải động thông minh hoạt động hiệu so với giải pháp chạy cân tải mã nguồn mở Trước tiên, đồ án đưa mô hình website với khả mở rộng, từ nhấn mạnh tầm quan trọng việc cân tải cho webserver toàn hệ thống Sử dụng phép so sánh hiệu giá thành để xác định mô hình cần dùng cho website lớn sử dụng nhiều webserver nhỏ, đồng thời sử dụng cân tải để phân tải cho webserver Đồ án đưa thiết kế cân tải bao gồm phần chính, cân tải cho server, cân tải cho server toàn cầu, cân tải cho firewall cân tải cho cache Trong đó, đồ án sâu vào thảo luận phần cân tải cho server, server toàn cầu cache, kỹ thuật cân sử dụng phần Một cân tải hoạt động tốt cần phải kiểm tra trạng thái server, nhằm đảm bảo không chuyển yêu cầu người dùng đến server không hoạt động Thuật toán phân tải cần phải xây dựng cách thông minh nhằm lựa chọn server tốt để phục vụ yêu cầu người dùng Ngoài ra, cân tải phải đáp ứng vấn đề trì session cho người sử dụng Nó thực việc cách sử dụng cookie Đồ án giới thiệu thuật toán cân tải sử dụng số sản phẩm cân tải công ty lớn giới, chia làm nhánh thuật toán tĩnh thuật toán động Các thuật toán đòi hỏi lập trình phần mềm tinh vi, mà yêu cầu hỗ trợ phần cứng Trong đồ án cài đặt thuật toán tĩnh thuật toán động dựa sản phẩm cân tải mã nguồn mở chạy server linux HAProxy Các thuật toán chưa trọng vào thông số tải server, đồ án đưa hướng nhằm phát tải server, từ giúp cân tải hoạt động hiệu Cuối cùng, đồ án đưa hai phương pháp cài đặt cấu hình cân tải vào hệ thống mạng nhằm đáp ứng nhu cầu khác người quản trị hệ thống với mong muốn đạt hiệu tối ưu Phương pháp đơn giản áp dụng cho hệ thống có server với số lượng người dùng vừa phải Phương pháp cài đặt phức tạp có cân tải, từ tránh SPOF, giúp hệ thống trì hoạt động hai cân tải bị hỏng Do thời gian nguồn lực có hạn, đồ án chưa thiết kế cân tải hoàn chỉnh, hi vọng thực nghiên cứu sâu đề tài Những ý tưởng chưa thực hạn chế thiết kế cân tải mã nguồn mở xin để dành phần định hướng phát triển Định hướng phát triển Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 74 Chúng ta mở rộng HaProxy cách thay đổi cấu trúc trỏ server, biến thành trỏ chiều, server lưu lại thông tin server trước server sau nó, hoạt động hiệu Bên cạnh đó, cần phải thiết kế ứng dụng nhỏ cài đặt server để báo cáo tải cho HAProxy Tuy nhiên, cân tải chưa đáp ứng yêu cầu liên lạc server với mà có server cân tải Nếu server bị chết chừng, toàn người sử dụng làm việc với bị ngắt kết nối Nếu server có liên lạc với nhau, công việc server phân sang cho server ngược lại Các server có tải cao chuyển bớt sang server khác Với tư tưởng đó, NVLV xin đưa ý tưởng cân tải cài đặt tất máy server, chạy ứng dụng độc lập Ứng dụng liên lạc server với nhau, lưu giữ thông tin tải server, tìm máy nhanh để nhận yêu cầu từ phía người dùng Một ứng dụng có phần chính, phần thứ báo cáo tải server mà chạy, phần thứ hai thu thập tải tất server cụm cluster, phần thứ ba có nhiệm vụ hỏi xem máy nhanh hệ thống Phần thứ nhất, tính toán tải dựa vào thuật toán cân tải động, thuật toán linh hoạt dựa nhiều đếm để xác định tải máy Ý tưởng dựa vào số kết nối có server tải CPU RAM mà server chạy, lấy thêm thông số tải đĩa cứng, % thời gian mà phải thực yêu cầu đọc ghi Vì giá trị biến thiên liên tục, nên để đo tải xác server, tiến hành đo đạc số thời điểm (chẳng hạn thời điểm liên tục), sau lấy giá trị trung bình tải server khoảng thời gian Việc đo số thời điểm quan trọng, thực vậy, mở Task Manager để thấy % hoạt động CPU, giả sử 30% Sau mở loạt ứng dụng, số 30% chưa thay đổi nhiều Đóng Task Manager mở lại đó, giá trị tăng lên cao, chẳng hạn 80% Điều cho thấy phép đánh giá thời điểm thiếu xác Bên cạnh nhiệm vụ tính toán, phần cần phải thiết kế để gửi tin nhắn server nhằm báo cáo tải, cần có giao thức gửi nhận phần Phần thứ hai có nhiệm vụ thu thập tải server cụm, dĩ nhiên biết tải máy mà chạy đó, nhận tải máy khác từ module báo cáo tải máy Sau chúng lưu trữ vào cấu trúc liệu mà dễ dàng lấy cần, phần thứ ba Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 75 TÀI LIỆU THAM KHẢO [1] Chandra Kopparapu, 2002, Load Balancing Servers, Firewalls, and Caches [2] Cal Henderson, May, 2006, Building scalable Web Sites [3] Valeria Cardellini, Michele Colajani, Philip S Yu, Dynamic Load Balancing on Web Server Systems, 1999 [4] Bhavin Turakhia, SlideShare Website, Video: Building a Scalable Architecture for Web- Apps – Part http://wiki.directi.com/display/DEV/Building+a+Scalable+Architecture+for+Web +Apps+-+Part+I [5] Cal Henderson, Slide: Scalable Web Architecture: Common Patterns and Approaches www.slideshare.net/iamcal/scalable-web-architectures-common-patterns-andapproaches-web-20-expo-nyc-presentation [6] Tony Bourke, 2001, Server Load Balancing [7] Steven, 2007, HAproxy - Quick and Dirty HTTP Load balancing Tutorial on Redhat/Centos http://www.webhostingtalk.com/showthread.php?t=627783 [8] F5 Network, Intro to Load Balancing for Developers – The Algorithms http://devcentral.f5.com/weblogs/dmacvittie/archive/2009/03/31/intro-to-loadbalancing-for-developers-ndash-the-algorithms.aspx [9] Internet article, 2007, Load Balancing with Keepalived http://wiki.vchartier.net/howtos:cluster:keepalived [10] Eleftherios Gkioulekas, 1999, Developing software with GNU http://www.amath.washington.edu/~lf/tutorials/autoconf/toolsmanual.html#SEC10 [11] CodeLite Website http://codelite.org/LiteEditor/Download Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 76 [...]... về cân bằng tải server, cân bằng tải 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... bảo mật…mà sử dụng DNS round robin sẽ không giải quyết được Điều quan trọng nhất trong cân bằng tải server chính là thiết kế và xây dựng bộ cân bằng tải Bộ cân bằng tải này sẽ đứng trước cụm server, nhận yêu cầu từ người dùng, sau đó phân tải vào các server một cách phù hợp Vậy làm cách nào để thiết kế được bộ cân bằng tải này? Các thành phần cần có của một bộ cân bằng tải là gì? Các kỹ thuật cân bằ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. .. được đề cập ở trên và thường được chọn để dùng trong các bộ cân bằng tải 1.2 Cân bằng tải cho server toàn cầu (GSLB) Có 2 nhân tố chính thể hiện sự cần thiết của GSLB, đó là khả năng có sẵn cao và thời gian đáp ứng Để đảm bảo tính có sẵn của cụm server, chúng ta sử dụng 1 bộ cân bằng tải để thực hiện kiểm tra “health checks” đối với các server Để đảm bảo bộ cân bằng tải không bị quá tải, chúng ta có... nhất để phục vụ cho từng nhóm người dùng cụ thể Như vậy, ở đây cần phải giải quyết 2 vấn đề Thứ nhất là làm sao để đặt bộ cân bằng tải vào trong hệ thống DNS, thứ hai là làm sao để chọn được site phù hợp nhất 1.2.2 Cài đặt bộ cân bằng tải vào hệ thống mạng DNS Có hai cách để cài đặt bộ cân bằng tải, đó là sử dụng bộ cân bằng tải để thay thế authoritative DNS và cài đặt bộ cân bằng tải như một forward... 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, cân bằng tải cho firewall…Một website được cân bằng tải tốt sẽ tận dụng được cao nhất nguồn lực sẵn có Chẳng hạn như website với 1 web-server có thể đáp ứng được cho 1000 người dùng cùng lúc, khi nâng cấp lên 4 servers, nếu cân bằng tải tốt... 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 Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 10 CHƯƠNG 1 KIẾN TRÚC WEB VỚI KHẢ NĂNG MỞ RỘNG (SCALABLE WEB ARCHITECTURE) 1 Các khái niệm... có khả năng đáp ứng cho 4000 người cùng lúc, ngược lại sẽ chỉ có thể đáp ứng được 2000 người, thậm chí còn ít hơn số đó Một 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... 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, cân bằng tải cho database-server, tổ chức lưu trữ dữ liệu trên đĩa cứng và cân bằng tải cho cache Sinh viên thực hiện: Võ Duy Pho - Khóa 49 - Lớp CNPM Page 12 2 Các vấn đề cần giải quyết trong quá trình xây dựng website theo kiến trúc với khả năng mở rộng 2.1 Cân bằng tải cho application servers... bằng tải được thể hiện như thế nào? Chúng sẽ được mô tả chi tiết trong chương 2 dưới đây 1 Lý thuyết xây dựng bộ cân bằng tải cho web-servers 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 ... 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. .. 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 cân tải vào hệ thống DNS, thứ hai để chọn site phù hợp 1.2.2 Cài đặt cân tải vào hệ thống mạng DNS Có hai cách để cài đặt cân tải, sử dụng cân tải để thay authoritative DNS cài đặt cân tải

Ngày đăng: 27/01/2016, 14:06

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Chandra Kopparapu, 2002, Load Balancing Servers, Firewalls, and Caches [2] Cal Henderson, May, 2006, Building scalable Web Sites Sách, tạp chí
Tiêu đề: Load Balancing Servers, Firewalls, and Caches"[2] Cal Henderson, May, 2006
[4] Bhavin Turakhia, SlideShare Website, Video: Building a Scalable Architecture for Web- Apps – Part 1http://wiki.directi.com/display/DEV/Building+a+Scalable+Architecture+for+Web+Apps+-+Part+I Sách, tạp chí
Tiêu đề: Building a Scalable Architecturefor Web- Apps – Part 1
[5] Cal Henderson, Slide: Scalable Web Architecture: Common Patterns and Approacheswww.slideshare.net/iam cal / scalable - web - architecture s-common-patterns-and- approaches- web -20-expo-nyc-presentation Sách, tạp chí
Tiêu đề: Scalable Web Architecture: Common Patterns andApproaches
[7] Steven, 2007, HAproxy - Quick and Dirty HTTP Load balancing Tutorial on Redhat/Centoshttp://www.webhostingtalk.com/showthread.php?t=627783 Sách, tạp chí
Tiêu đề: HAproxy - Quick and Dirty HTTP Load balancing Tutorial onRedhat/Centos
[8] F5 Network, Intro to Load Balancing for Developers – The Algorithms http://devcentral.f5.com/weblogs/dmacvittie/archive/2009/03/31/intro-to-load-balancing-for-developers-ndash-the-algorithms.aspx Sách, tạp chí
Tiêu đề: Intro to Load Balancing for Developers – The Algorithms
[9] Internet article, 2007, Load Balancing with Keepalived http://wiki.vchartier.net/howtos:cluster:keepalived Sách, tạp chí
Tiêu đề: Load Balancing with Keepalived
[10] Eleftherios Gkioulekas, 1999, Developing software with GNUhttp://www.amath.washington.edu/~lf/tutorials/autoconf/toolsmanual.html#SEC10[11] CodeLite Website http://codelite.org/LiteEditor/Download Sách, tạp chí
Tiêu đề: Developing software with GNU
[3] Valeria Cardellini, Michele Colajani, Philip S. Yu, Dynamic Load Balancing on Web Server Systems, 1999 Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w