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

Tìm hiểu về cân bằng tải cho WebServer

76 3,1K 20

Đ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 76
Dung lượng 2,95 MB

Nội dung

Tìm hiểu về cân bằng tải cho WebServer Ngày nay, với sự phát triể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, website của các tổ chức, doanh nghiệp phải giữ được người dùng hiện tại và tăng thêm số lượng người dùng mới. Mục đích nghiên cứu Giải thích được các kỹ thuật cân bằng tải Webserver Phân tích được các thuật toán cân bằng tải cho Webserver Cài đặt được hệ thống Webserver Triển khai cài đặt được hệ thống cân bằng tải cho Webserver

Trang 1

MỤC LỤC

DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ

DANH MỤC CÁC TỪ VIẾT TẮT

ARP Address Resolution Protocol Giao thức phân giải địa chỉ

CDN Content Delivery Network Mạng lưới phân phối nội dung

CPU Central Processing Unit Bộ trung tâm xử lý

DAO Data Access Object Đối tượng truy cập dữ liệu

Trang 2

DNS Domain Name System Hệ thống tên miền

DRR Dynamic Round Robin Thuật toán động luân chuyển vòngFTP File Transfer Protocol Giao thức truyền tập tin

GSLB Global Server Load Balancing Cân bằng tải server toàn cầu

HA High Availability Tính sẵn sàng cao của server

HTML Hypertext Markup Language Ngôn ngữ đánh dấu siêu văn bảnHTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản

IGMP Internet Group Management

Protocol

Giao thức quản lý nhóm internet

IIS Internet Information Services Dịch vụ thông tin trên internet

IP Internet Protocol Địa chỉ của máy tính kết nối mạngISA Internet Security and

Acceleration

Phần mềm bảo mật và tăng tốcInternet

ISP Internet Service Provider Nhà cung cấp dịch vụ Internet

NLB Network Load Balancing Cân bằng tải cho mạng

LAN Local Access Network Mạng máy tính cục bộ

LC Least Connections Thuật toán số kết nối ít nhất

MAC Media Access Control Địa chỉ vật lý của card mạng

NAT Network Address Translate Giao tiếp máy tính trong mạng ra

ngoài internetOSI Open Systems Interconnection Mô hình tham chiếu kết nối các hệ

thống mởRDBM Open Systems Interconnection Kết nối các hệ thống mở

RRDNS Round Robin Domain Name

System

Luân chuyển vòng dựa trên hệthống tên miền

SAN Storage Area Network Vùng lưu trữ thông tin, dữ liệu

SLB Server Load Balancing Máy chủ cân bằng tải

SMTP Simple Mail Transfer Potocol Giao thức truyền thư tín điện tửSSL Secure Sockets Layer Giao thức bảo mật thông tin mạngTCP Transmission Control Protocol Giao thức điều khiển truyền vận

URL Uniform Resource Locator Địa chỉ web/ liên kết mạng

VIP Virtual Internet Protocol Địa chỉ truy cập ảo

WRR Weighted Round Robin Thuật toán luân chuyển vòng dựa

trên khả năng xử lý của các server

Trang 3

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1. Lý do chọn đề tài

Ngày nay, với sự phát triể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, website củacác tổ chức, doanh nghiệp phải giữ được người dùng hiện tại và tăng thêm số lượngngười dùng mới Để làm được điều này, các doanh nghiệp phải đảm bảo cho hệ thốngcủa mình hoạt động tốt nhất và phục vụ được các nhu cầu của người dùng truy cập với

số lượng lớn, 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ằngtải 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ương pháp cân bằng tải trở nên vô cùng hữu ích

Từ thực tế trên em quyết định chọn đề tài “Tìm hiểu về cân bằng tải Webserver”

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âydựng một nền tảng vững chắc về vấn đề cân bằng tải cho webserver, từ đó góp phầnthú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 webserver thúc đẩy quá trình xây dựng nên một bộ cân bằngtải hoạt động hiệu quả, có khả năng đáp ứng nhu cầu của các webserver

1.2. Đối tượng và khách thể nghiên cứu

- Tìm hiểu tổng quan về web server

- Tìm hiểu các kỹ thuật cân bằng tải cho web server

- Tìm hiểu các thuật toán cân bằng tải

- Triển khai cài đặt hệ thống web server và thực hiện cân bằng tải hệ thống.1.3. Mục đích nghiên cứu

- Giải thích được các kỹ thuật cân bằng tải Webserver

Trang 4

- Phân tích được các thuật toán cân bằng tải cho Webserver

- Cài đặt được hệ thống Webserver

- Triển khai cài đặt được hệ thống cân bằng tải cho Webserver

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

- Tìm hiểu các kỹ thuật cân bằng tải webserver

- Tìm hiểu các thuật toán cân bằng tải

- Triển khai cài đặt hệ thống webserver

- Cài đặt hệ thống cân bằng tải cho webserver

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 nhaunhư Windows, Linux

- Sử dụng phương pháp nghiên cứu:

 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, đặcbiệt là các diễn đàn công nghệ, đọc dịch tài liệu tiếng anh và xử lý thông tin

 Phương pháp thực nghiệm: Dựa vào lý thuyết để áp dụng vào triển khai xâydựng hệ thống và đánh giá kết quả thực nghiệm nhiều lần nhằm xây dựng hệthống đáp ứng yêu cầu hiệu quả

 Phương pháp chuyên gia: Nhờ sự giúp đỡ của các thầy cô giáo có kiến thứcchuyên môn để nhận xét, đánh giá, đóng góp ý kiến cho đề tài hoàn thiện hơn

Trang 5

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về WebServer

2.1.1 Khái niệm về WebServer

Web Server là máy chủ được cài đặt phần mềm phục vụ Web, đôi khi người tacũng gọi chính phần mềm đó là Web Server Tất cả các Web Server đều hiểu và chạyđược các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu filechuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp, *.aspx ; Apache dànhcho *.php ; Sun Java System Web Server dành cho *.jsp

Máy Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữthông tin như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng vớinhững thông tin liên quan khác như (các mã Script, các chương trình, và các fileMultimedia)

Web Server có khả năng gửi đến máy khách những trang Web thông qua môitrường Internet (hoặc Intranet) qua giao thức HTTP - giao thức được thiết kế để gửicác file đến trình duyệt Web (Web Browser), và các giao thức khác.Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có mộtDomain Name Giả sử khi bạn đánh vào thanh Address trên trình duyệt của ngườidùng một dòng http://www.abc.com sau đó gõ phím Enter sẽ gửi một yêu cầu đến mộtServer có Domain Name là www.abc.com Server này sẽ tìm trang Web có tên làindex.htm rồi gửi nó đến trình duyệt của người dùng truy cập

2.1.2 Sơ lược về giao thức HTTP

Giao thức HTTP (Hipertext Transfer Protocol – Giao thức truyền tải siêu vănbản) là giao thức giao tiếp theo kiểu truy vấn - trả lời (request-response) giữa khách-chủ (client-server) được sử dụng phổ biến trên internet Cũng nên biết là trên internetngoài HTTP ta còn có rất nhiều giao thức khác như FTP (File Transfer Protocol - Giaothức truyền tập tin), SMTP (Simple Mail Transfer Protocol - Giao thức truyền tải thư

Trang 6

tín đơn giản) World Wide Web được xây dựng dưa trên nền tảng giao thức HTTP vàcông nghệ HTML (Hipertext Markup Language: Ngôn ngữ đánh dấu siêu văn bản).HTTP được ứng dụng trong các phần mềm máy chủ Web và trong các trình duyệtWeb để trao đổi thông tin giữa máy chủ Web và máy khách Web trên môi trườngmạng.

Một HTTP khách (HTTP client), chẳng hạn một trình duyệt web (web browser),dùng HTTP để truy vấn một tài liệu HTML, khi nhận được trả lời từ HTTP chủ (HTTPserver), chẳng hạn máy chủ Apache (Apache HTTP server: httpd), nó sẽ định dạng(format) rồi hiển thị tài liệu này cho người dùng HTTP được sử dụng để truyền tảikhông chỉ HTML, tuy nhiên HTML là ngôn ngữ giao tiếp (lingua franca) của web vàứng dụng web

Truy vấn HTTP: Một truy vấn HTTP (HTTP request) bao gồm một phương thứctruy vấn (request method), URL truy vấn (request URL), phần đầu (header) và phầnthân (body) truy vấn; phần thân có thể rỗng Trong đó phương thức là một lệnh chỉ rõloại truy vấn, HTTP định nghĩa các phương thức truy vấn sau:

- GET: phương thức hay dùng nhất để lấy tài nguyên (resource) từ URL truy vấn.Khi truy vấn dùng phương thức này, các tham số (parameter) được nối thẳng vàoURL Phương thức GET này không có phần thân hay phần thân trống rỗng

- HEAD: lấy phần đầu (header) của truy vấn, tức thông tin về tài nguyên

- POST: gửi dữ liệu với độ dài không giới hạn tới máy chủ web (web server) Khácvới phương thức GET, phương thức POST dùng phần thân của câu truy vấn đểgửi dữ liệu đến máy chủ web

- PUT: thay thế hoặc thêm tài nguyên vào máy chủ web theo URL cung cấp

- DELETE: xoá tài nguyên ở máy chủ web định vị bởi URL

- OPTIONS: trả về các phương thức HTTP server cung cấp cho 1 URL xác định

- TRACE: trả về thông tin truy vấn mà máy chủ nhận được Phương thức này chophép theo dõi một truy vấn để xem có những thay đổi hay thêm thắt nào nếu có

do những máy chủ trung gian (intermediate server) thực hiện

Trả lời HTTP: Một trả lời HTTP bao gồm một mã kết quả (result code) hay mã trạngthái (status code), phần đầu (header) và phần thân (body)

Giống như những phần mềm khác, Web Server Software cũng chỉ là một ứngdụng phần mềm Nó được cài đặt và chạy trên máy tính dùng làm Web Server, nhờ có

Trang 7

chương trình này mà người sử dụng có thể truy cập đến các thông tin của trang Web từmột máy tính khác ở trên mạng (Internet, Intranet).

Web Server Software còn có thể được tích hợp với cơ sở dữ liệu (Database), hayđiều khiển việc kết nối vào cơ sở dữ liệu để có thể truy cập và kết xuất thông tin từ cơ

sở dữ liệu lên các trang Web và truyền tải chúng đến người dùng

Server phải hoạt động liên tục để phục vụ cho việc cung cấp thông tin trực tuyến

Vị trí đặt server đóng vai trò quan trọng trong chất lượng và tốc độ lưu chuyển thôngtin từ server và máy tính truy cập

2.2 Các khái niệm về 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ênnhanh chóng trong một khoảng thời gian nhất định, website vẫn đáp ứng được nhucầu, hơn nữa website có khả năng dễ dàng nâng cấp lên để phù hợp với 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 đượcyê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ốtnhấ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:

mở rộng là đơn vị đo sự kết hợp của các hệ 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.Thiết kế website với khả năng mở rộng cao là yêu cầu sống còn đối với hầu hết cáccông ti dịch vụ web hiện nay, để tồn tại và phát triển một website cần phải đáp ứngđược các yêu cầu của người dùng trong thời gian mà họ mong muốn

2.2.2 Hiệu năng

Trang 8

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ựchiện được đo bằng lượng công việc có ích mà hệ thống thực hiện được đối với mộtnguồn tài nguyên nhất định, chẳng hạn như nếu 2 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ụngtương đương) thì máy đó có tính thực hiện cao hơn.

2.2.3 Khả năng có sẵn cao

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 cụm cluster đó có quản lýđược hay không? Trong một hệ thống có khả năng có sẵn cao, nếu một trangwebserver bị lỗi thì một webserver khá trong cụm cluster sẽ tiếp quản ngay để xử lýyêu cầu Nghĩa là, nếu như người dùng đang làm việc với một server mà server đó 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ộtserver khác đảm nhiệm Như vậy trong bất cứ trường hợp nào, người dùng truy cậpvà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ảmthấy được phục vụ nhu cầu tốt nhất

2.2.4 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àmsao để 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 về càng nhanh thì tính đáp ứng của nó càng cao, ngượclạ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ớiviệc họ tin rằng trang web bị hỏng hay không hoạt động bình thường, điều này rất cóhại vì nếu đã mất đi niềm tin nơi người dùng thì chắc rằng họ sẽ không quay trở lạitrang web đó nữa Chẳng hạn như khi người dùng truy cập vào một trang web mà phảichờ đợi quá lâu cho việc load dữ liệu, thông tin thì thay vào đó để không phải tốn mấtnhiều thời gian họ sẽ tìm một công việc khác để làm đôi khi họ quên mất rằng mìnhđang truy cập vào một dịch vụ web và đóng luôn trình duyệt đó lại hoặc sẽ quay trở lạisau một khoảng thời gian khá lâu Điều này rất không tốt bởi trong hệ thống mà họtruy cập vẫn hoạt động và lưu giữ phiên session mà không phục vụ cho bất cứ ai, đó

Trang 9

chính là một sự lãng phí lớn Tính đáp ứng và tính thực hiện là độc lập với nhau, một

hệ thống mạng dù có hiệu năng tốt nhưng vẫn có thể đáp ứng không đạt hiệu quả

2.2.5 Downtime impact

Downtime impact (tác động của thời gian chết) 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à số lượng các chứcnă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òngdẫ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ị 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ầnphả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ốtnhất 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, không quá cao Xây dựng một hệ thống webnhư vậy sẽ gặp rất nhiều vấn đề khó, những vấn đề quan trọng nhất trong việc thiết kếmột website có khả năng mở rộng mà bất cứ nhà phát triển hệ thống web nào cũngphải giải quyết đó là cân bằng tải cho application server, 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 [3], [4], [8]

2.3 Tổng quan về cân bằng tải

2.3.1 Khái niệm cân bằng tải

Cân bằng tải là một phương pháp phân phối khối lượng tải trên nhiều máy tínhhoặc một cụm máy tính để có thể sử dụng tối ưu các nguồn lực, tối đa hóa thônglượng, giảm thời gian đáp ứng và tránh tình trạng quá tải trên máy chủ

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àmtă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

Trang 10

đị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ácmá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ủamáy trạm sẽ nhanh hơn nhiều.

2.3.2 Chức năng và ưu điểm của cân bằng tải

Ngày nay, mạng máy tính đóng vai trò ngày càng quan trọng hơn trong hoạt độngcủa các doanh nghiệp, tổ chức cũng như các công ty lớn, mạng máy tính có vị trí rấtquan trọng trong việc điều khiển hoạt động của toàn bộ doanh nghiệp Sự ngừng hoạtđộng của mạng máy tính hay sự hoạt động kém hiệu quả của mạng máy tính trongnhững doanh nghiệp này có thể làm gián đoạn, ảnh hưởng đến sự hoạt động và pháttriển của doanh nghiệp và thiệt hại khó có thể lường trước được Nhất là đối với nhữngcông ty cần phải giao dịch liên tục, trao đổi thông tin nhanh chóng với khách hàng truycập Vấn đề đặt ra là cần có một giải pháp để đảm bảo cho hệ thống vẫn hoạt động tốtngay cả khi có sự cố xảy ra đối với máy chủ Việc lựa chọn một server đơn lẻ có cấuhình cực mạnh để đáp ứng nhu cầu này sẽ kéo theo chi phí đầu tư rất lớn và không thểgiải quyết được các vấn đề đặt ra của tổ chức Giải pháp hiệu quả được đưa ra là sửdụng một nhóm server cùng thực hiện một chức năng dưới sự điều khiển của một công

cụ phân phối tải, đó chính là giải pháp cân bằng tải cho máy chủ

Có rất nhiều hãng đưa ra giải pháp cân bằng tải đó là các thiết bị mạng nhưCisco, Coyote Point, Sun Microsystem… với rất nhiều tính năng phong phú Tuynhiên, về cơ bản thì nguyên tắc cân bằng tải vẫn xuất phát từ những quan điểm kỹthuật khá tương đồng Do vậy, Load Balancing không chỉ làm nhiệm vụ phân phối tảicho các server mà còn cung cấp cơ chế đảm bảo hệ thống server luôn khả dụng trướccác client Server Load Balancing không có yêu cầu đặc biệt gì về phần cứng, bất cứmáy tính nào hợp chuẩn đều có thể được sử dụng làm server Chi phí triển khai nhờ đó

mà giảm đáng kể Kiến trúc phần mềm phân tán của SLB cho phép cung cấp hiệu năng

và tính khả dụng của kỹ thuật này ở mức cao nhất

Trang 11

Mô hình so sánh hệ thống cân bằng tải và hệ thống thông thường:

Hình 2.1: Mô hình so sánh hệ thống cân bằng tải và hệ thống thông thường

Cân bằng tải có các chức năng sau:

- Chặn lưu lượng mạng (như 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 chiatải nên chức năng này được coi như là thiết yếu của một hệ thống cân bằng tải

- Tách các lưu lượng thành các yêu cầu riêng biệt và quyết định máy chủ nàonhận các yêu cầu đó, đây là chức năng quan trọng của cân bằng tải tùy vào cácthuật toán khác nhau mà sẽ có các cách thức khác nhau để phân chia tải vào cácmáy chủ

- Duy trì một cơ chế ở những máy chủ đang sẵn sàng, giữa hệ thống cân bằng tải

và các máy chủ luôn luôn phải có liên lạc với nhau để biết máy chủ có đanghoạt động hay không

- Cung cấp khả năng dự phòng bằng cách sử dụng nhiều kịch bản fail-over

Trang 12

- Cung cấp khả năng nhận thức nội dung phân tán bằng cách đọc URL, chặncookie và biên dịch, đây được coi là một trong những tiêu chí chia tải của hệthống cân bằng tải.

- Chuyển mạch cache trong suốt (transparent cache switching): giúp chuyểnhướng lưu lượng một cách “trong suốt” đến các caches, góp phần tăng thời gianđáp ứng và hiệu năng của hệ thống

Ưu điểm của hệ thống cân bằng tải:

- Tính mở rộng: thêm hoặc bỏ bớt đi server một cách dễ dàng

- Tính sãn sàng cao do hệ thống dùng nhiều Server, bảo dưỡng hệ thống server

mà không cần tắt các dịch vụ

- Tăng tính bảo mật cho hệ thống mạng do người dùng tương tác gián tiếp vớicác server cung cấp dịch vụ

- Có thể tách các ứng dụng khỏi server

- Làm việc được với nhiều hệ điều hành, hiệu suất cao

- Server được nhóm lại thực hiện đa nhiệm vụ tốt hơn

- Tất cả server đều hoạt động đúng công suất không có tình trạng một server làmviệc quá tải trong khi các server khác lại đang “nhàn rỗi”

Những tổ chức cần có giải pháp cân bằng tải:

- Các doanh nghiệp, tổ chức có quy mô lớn

- Nhà cung cấp dịch vụ ISP

- Trung tâm xử lý dữ liệu

- Chính phủ

- Phòng thí nghiệm

- Trường đại học, viện nghiên cứu …[5],[8],[9]

2.4 Các vấn đề về xây dựng bộ cân bằng tải

2.3.1 Cân bằng tải cho Application Server

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 quantrọng 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ó hai sự lựa chọn là mở rộngtheo chiều ngang (scale out) và mở rộng theo chiều dọc (scale up)

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 một mạnh hơn (tăng số lượng chip, tăng dung lượngRam…) 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ác server, hệ thống hoạt động rất tốt khi số lượng ngườidùng vừa phải Tuy nhiên, phương pháp này cũng có một số vấn đề hạn chế về giá

Trang 13

thành, 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 rất quan trọng đó là vấn đề downtime impact, vì chỉ có một server nên nó sẽtrở thành SPOF (single point of failure), nếu như server này bị chết, thì ngay lập tứctoàn bộ hệ thống sẽ ngừng hoạt động Phương pháp này còn dẫn đến giới hạn cho hệthống, bởi đến một mức nào đó hệ thống tổng thể còn phụ thuộc vào nhiều yếu tố nhưbandwith hay khả năng vào ra của file trên đĩa cứng.

Ví dụ sau đây sẽ cho thấy rõ điều đó, giả sử với một site video, băng thông đểxem được một clip ở dạng chất lượng trung bình sẽ vào khoảng 512kb/s đến 0.5mb/s.Vậy đường truyền 100mb sẽ cho phép tối đa 200 người dùng xem đồng thời Nếumuốn có hơn số lượng người dùng đó, có thể tăng băng thông cho đường truyền lên1gigabit nhưng sẽ rơi vào tình trạng của scale up và gặp giới hạn Ngoài ra, tốc độ đọcđĩa cứng chỉ vào khoảng 400mb/s nên dù có tăng tốc độ đường truyền thì server vẫnkhông thể đáp ứng và phục vụ được nhiều hơn nữa Như vậy sử dụng scale up khôngthể giải quyết vấn đề này

Giải pháp thứ hai là scale out: lắp nhiều server song song và chúng hoạt độngthành một cluster Theo ví dụ trên, cứ lắp thêm một server lại có khả năng đáp ứng cho

200 người dùng nữa và càng nhiều server thì khả năng mở rộng lại càng lớn, hơn nữachi phí cũng được giảm thiểu Tuy nhiên khó khăn của phương pháp này là vấn đề cânbằng tải 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ó Sau đây là bảng so sánh

ưu điểm và nhược điểm của từng phương pháp:

Bảng 2.1: So sánh giữa Scale down và Scale up

Một

server cực

mạnh

- Hệ thống đơn giản và dễdàng thực hiện

- Hoạt động hiệu quả khi sốlượng người dùng ở mức vừaphải

- Chi phí đầu tư server rất cao

- Không khắc phục được khi servergặp phải sự cố

- Có giới hạn đối với số lượng ngườidùng nhất định

Nhiều

server nhỏ

- Giảm thiểu chi phí đầu tư

- Phục vụ được lượng user rấtlớn đảm bảo đáp ứng yêu

- Cần thiết phải có công cụ loadbalancing: sử dụng phần cứng hoặcphần mềm

Trang 14

cầu từ phía người dùng

- Khắc phục tình trạng mộtserver gặp sự cố (giải pháp

Hình 2.2: Biểu đồ thể hiện giá thành của scale down và scale up

Như vậy, sự lựa chọn một server chỉ phù hợp cho các hệ thống đòi hỏi sự ổn địnhcao, với số lượng người dùng tăng lên không quá nhanh và có tiềm lực mạnh về kinh

tế như các hệ thống chứng khoán, ngân hàng … còn đối với các mạng xã hội khác haycác trang chia sẻ video trực tuyến thì sự lựa chọn nhiều server hoạt động song song làhiệu quả nhất Khi sử dụng phương pháp scale out, yêu cầu từ phía người dùng sẽđược chuyển vào một trong các server này xử lý, từ đó xuất hiện bài toán cân bằng tải(Load Balancing-LB) cho các server để chúng phục vụ được một lượng yêu cầu phùhợp, tránh không để bất cứ server nào bị quá tải (overload), đồng thời tận dụng đượchết tài nguyên hệ thống để phục vụ được lượng truy cập lớn nhất

Mô hình tổng quát được miêu tả dưới đây:

Trang 15

Hình 2.3: Mô hình cân bằng tải server

2.3.2 Mở rộng Database server

Bên cạnh các webserver, các database server cũng đóng vai trò vô cùng quantrọng trong hệ thống web Sự phát triển của website sẽ dẫn đến yêu cầu phải mở rộngdatabase server, chẳng hạn như lắp thêm server để phục vụ nhu cầu tại một địa điểm

đã có server từ trước hoặc lắp mới server ở các vùng khác nhau trên thế giới Mở rộngDatabase Server cũng có hai phương pháp là theo chiều ngang và theo chiều dọc

Mở rộng theo chiều dọc: hệ thống Database Server sẽ được phân chia theo kiếntrúc SAN (Storage Area Network) Nó là một kiểu kiến trúc kết nối những thiết bị lưutrữ máy tính từ xa để phục vụ theo cách mà những thiết bị đó được xem như là cục bộ(local) đối với hệ điều hành Như vậy, hệ thống lưu trữ chỉ được xem như một DB duynhất và hoạt động rất hiệu quả Tuy nhiên vì giá thành của nó rất đắt nên nó khôngđược sử dụng rộng rãi mà chỉ được dùng trong các hệ thống lớn và quan trọng

Hình 2.4: Mở rộng database server sử dụng kiến trúc SAN

Trang 16

Mở rộng DB theo chiều ngang (scaling out), nghĩa là tăng số lượng các node DatabaseServer, như minh họa sau đây:

Hình 2.5: Mở rộng database theo chiều ngang

Có 2 lựa chọn để cài đặt theo phương pháp này:

- Shared nothing Cluster:

Mỗi database server sẽ chứa một bản sao của database (tất cả các DBserver giốngnhau) Không có dữ liệu được chia sẻ giữa các node, các file DB thực sự sẽ được chứatrong SAN Tuy nhiên, vấn đề ở đây là phải lựa chọn cơ chế sao bản (replication) phùhợp vì các DB sẽ chứa cùng một bản sao hoàn chỉnh của cơ sở dữ liệu Có rất nhiềulựa chọn để tạo sao bản đó là lựa chọn giữa phương pháp Master – Slave và Multi –Master, đồng bộ hay không đồng bộ và tạo sao bản ở mức nào của dữ liệu

- Real Application Cluster (Shared storage cluster):

Trong phương pháp này, các nodes ở DB cùng chia sẻ một phần chung ở SAN, nhưngfile system phải được định dạng là clustered file system Phương pháp này chỉ đượccung cấp bởi công ty Oracle do giá thành của nó rất cao Hiện nay chỉ có các doanhnghiệp lớn hoặc các tập đoàn mới triển khai được phương pháp này

- Mô hình khuyên dùng: Dựa theo ưu-nhược điểm, mô hình Database mở rộngnên dùng là:

- Master – Slave replication

Trang 17

- Sao chép không đồng bộ

- Ghi dữ liệu tại DAO layer

Hình 2.6: Mô hình mở rộng database khuyên dùng

2.3.3 Tổ chức lưu trữ dữ liệu

Một website có hệ thống web-server và database server mạnh vẫn sẽ bị giới hạntốc độ truy cập nếu như khả năng lưu trữ và phân bổ dữ liệu của website đó không tốt.Nếu như dữ liệu cần tải về lưu trữ quá xa người dùng, quá trình này sẽ chiếm nhiềuthời gian, có thể khiến cho người dùng không hài lòng

Một kỹ thuật thường dùng là CDN (Content delivery network) hướng request đếnserver gần người dùng nhất Điều này có thể giảm các yêu cầu chạy qua trục backbonechính, đồng thời giảm băng thông đi quốc tế Một cách đơn giản nhất đó là bộ cânbằng tải sẽ xác định IP của người dùng rồi xác định khu vực và hướng yêu cầu đếnserver nằm tại data center gần nó nhất

Ví dụ trước khi www.youtube.com đặt ở server Việt Nam, người dùng Việt Namxem các video ở youtube.com rất chậm, thường phải chờ tải từng phần, sự ngắt quãngnày khiến người dùng khó chịu Nhưng sau khi server được đặt ở Việt Nam không còn

bị giật khi xem video, chính vì vậy mà youtube đã vượt hẳn lên so với trang web chỉchia sẻ video trực tuyến của Việt Nam

Một ví dụ khác: khi người dùng truy cập vào website www.discovery.com (1),origin server đầu tiên sẽ trả về trang chỉ mục index.html (2) Sau đó nó sẽ chuyểnhướng yêu cầu đến nhà cung cấp CDN (nhà cung cấp ở đây là Akamai) (3), nhà cung

Trang 18

cấp CDN sẽ dùng thuật toán lựa chọn của họ để tìm kiếm server sao bản gần với ngườidùng nhất (4) và sau đó trả về dữ liệu cho người dùng từ server này (5).

Hình 2.7: Ví dụ về mô hình CDN

Khi một website đã trở nên toàn cầu và có trung tâm dữ liệu (data center) tạinhiều nơi khác nhau trên thế giới sẽ xảy ra vấn đề đồng bộ dữ liệu giữa các data centernày Cần phải đảm bảo được dữ liệu mà người dùng muốn truy cập đến luôn có trênserver, xử lý điều này bằng cách: nếu dữ liệu đó là dữ liệu quan trọng, đơn giản là mộtvideo có số lượt xem rất cao sẽ được sao lưu đến tất cả các data center trong hệ thống.Còn nếu như đó là một video không được quan tâm nhiều thì có thể chỉ được lưu trênserver uploads lên và dữ liệu sẽ được tải về từ đây cho người dùng

Một vấn đề nữa là khi số lượng truy cập vào website là rất nhiều và đa dạng, dữliệu phải liên tục vào ra tại ổ đĩa lưu trữ của website Khác với web application khibăng thông quá cao, có thể dùng một proxy server đứng trước phân tải, trong trườnghợp file sharing hay video sharing, như vậy sẽ khiến bộ cân bằng tải sẽ trở thành thắt

cổ chai Vì ra vào dữ liệu tại bộ cân bằng tải chỉ có giới hạn nhất định, nếu vượt quágiới hạn đó nó sẽ rơi vào tình trạng quá tải và bị “treo” Cần phải có kỹ thuật

Trang 19

partitioning giúp cho việc vào ra tại các thiết bị lưu trữ được giảm một cách tối ưuhoặc là sử dụng bộ đệm cache một cách hiệu quả.

2.3.4 Sử dụng bộ nhớ Cache

Trong các hệ thống web, bộ nhớ cache lưu trữ các Web Content (sự kết hợp giữatext, các hành động hoặc audio) nhằm tiết kiệm băng thông cũng như tăng tốc độ truyxuất web

Ví dụ khi người dùng A lần đầu tiên truy cập vào http://foundrynet.com/ bộ nhớweb cache sẽ nhận được yêu cầu này Vì là lần đầu truy nhập vào hệ thống nên sẽ chưa

có trang này trong cache, bộ nhớ cache sẽ tìm kiếm trang này từ server gốc và lưu giữtrang này trong bộ nhớ local, chẳng hạn như Ram hoặc đĩa, sau đó nó sẽ trả về trangnày cho người dùng Sau đó người dùng B truy cập vào địa chỉ này, vì đã được lưu giữlại trong bộ nhớ cache nên ngay lập tức cache trả về trang web cho người dùng B Vậy

B sẽ nhận được trả lời nhanh hơn A, đồng thời cũng sẽ tiết kiệm được băng thông khikhông phải truy cập vào server gốc để lấy trang web này

Hình 2.8: Simple Cache

Các loại Caches và cách cài đặt:

Bộ nhớ cache có thể được dùng để tăng tốc độ đáp ứng yêu cầu của người dùnghoặc dùng để tăng hiệu năng của web servers Dựa trên khả năng đó, cache được phânthành hai loại: tăng tốc người dùng (client acceleration) và tăng tốc server (serveracceleration)

Trang 20

Triển vọng của client acceleration cache là khả năng đáp ứng người dùng nhanhhơn và tiết kiệm băng thông mạng Triển vọng của server acceleration là khả năng luânchuyển web content nhanh hơn và giảm số lượng servers cần thiết, vì nguyên lý củaserver acceleration là dựa trên một tiền đề mà qua đó sử dụng cache là phù hợp hơnservers trong việc phục vụ các ngữ cảnh tĩnh (static content) Web Server sẽ giảm bớtđược yêu cầu phục vụ các ngữ cảnh tĩnh đã dược chỉ định cho cache và tập trung vàophục vụ các ngữ cảnh động (dynamic web content).

Dựa trên lý thuyết cơ bản về caching, có 4 cách khác nhau để triển khai và sửdụng cache:

- Forward Proxy dùng cho tăng tốc client

- Transparent Proxy dùng cho tăng tốc client

- Reverse Proxy dùng cho tăng tốc server

- Transparent Reverse Proxy dùng cho tăng tốc server

Cache được cài đặt như một forward proxy được dùng để tăng tốc truy nhậpinternet cho client, trong khi cache được cài đặt như reverse proxy lại dùng để tăng tốctruyền tải dữ liệu của server Transparent proxy cũng thực thi nhiệm vụ như forwardproxy nhưng nó được cài đặt để client không biết nó tồn tại Transparent reverse proxyđược cài đặt như reverse proxy và hoàn toàn trong suốt đối với servers [9]

2.5 Các kỹ thuật cân bằng tải

Cân bằng tải webserver là phần quan trọng nhất trong quy trình xây dựng website theokiến trúc mở rộng Một trang web được cân bằng tốt sẽ tránh được tình trạng tắc nghẽnserver, trả về yêu cầu của người dùng trong khoảng thời gian ngắn nhất Có nhiều kỹthuật để thực hiện cân bằng tải cho server nhưng quan trọng nhất trong cân bằng tảiserver 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ướccluster server, nhận yêu cầu từ người dùng sau đó phân tải vào các server trong clustermột cách phù hợp

2.5.1 Kỹ thuật cân bằng tải server (Server Load Balancing - SLB)

Bộ cân bằng tải có nhiệm vụ kết nối giữa người dùng và server, do đó nó có thểhoạt động như một proxy hoặc gateway Một proxy có nhiệm vụ luân chuyển yêu cầu

và dữ liệu đáp trả giữa người dùng và server, trong khi đó một gateway chỉ có nhiệm

vụ tạo ra một kết nối hai đối tượng này và không làm gì thêm Có thể sử dụng phần

Trang 21

cứng hoặc phần mềm được cài đặt thêm một front server hoặc trên chính web server.Thêm nữa, khi số lượng người dùng tăng lên, để tránh một điểm lỗi cần phải cài đặt 2

bộ cân bằng tải song song, hoạt động theo cơ chế active-active hoặc active-backup.Các phần mềm cân bằng tải thường được cài đặt như một proxy Để xây dựng một bộcân bằng tải phần mềm, các kỹ thuật cần phải chú trọng đó là kiểm tra trạng tháiserver, lựa chọn server tốt nhất để gửi yêu cầu và kỹ thuật duy trì kết nối của ngườidùng với một server trong suốt phiên làm việc của họ

a) Kiểm tra trạng thái server

Để chọn được server phù hợp để gửi request, bộ cân bằng tải cần phải biết đượcserver nào đang có sẵn Vì vậy, nó cần phải dùng biện pháp nào đó để kiểm tra trạngthái của server, chẳng hạn như gửi lệnh ping, các yêu cầu, thử kết nối hay bất cứphương pháp nào mà người quản trị dùng Kỹ thuật kiểm tra này thường được gọi là

“health checks”

Một server bị down có thể trả lời lệnh ping nhưng không thể trả lời các kết nốiTCP, một server bị treo có khả năng trả lời kết nối TCP nhưng không thể trả lời cácyêu cầu HTTP Khi một ứng dụng web nhiều lớp được kích hoạt, một số yêu cầuHTTP có thể trả lời ngay lập tức trong khi số khác sẽ thất bại

Chính vì thế, việc lựa chọn một phương pháp test phù hợp được chấp nhận bởiứng dụng web và bộ cân bằng tải là một công việc rất khó khăn Một số test đôi khicần phải truy xuất dữ liệu database nhằm đảm bảo rằng toàn bộ quá trình của nó làđúng Hạn chế lớn nhất là những phương pháp kiểm tra này sẽ chiếm tài nguyên của

hệ thống như là CPU, threads,

Do đó, cân bằng thời gian kiểm tra chính là vấn đề khó nhất trong kỹ thuật lựachọn server Khoảng thời gian kiểm tra giữa 2 lần test liên tiếp phải đủ dài để khôngtốn quá nhiều tài nguyên của hệ thống và cũng cần đủ ngắn để nhanh chóng phát hiện

ra những server “chết” Vì “health checks” là một trong những khía cạnh phức tạp nhấtcủa kỹ thuật cân bằng tải, nên thông thường sau một vài kiểm tra các nhà phát triểnứng dụng sẽ thực thi một yêu cầu đặc biệt dành riêng cho bộ cân bằng tải, giúp cho nóthực hiện một số kiểm tra nội bộ

Trang 22

Phần mềm cân bằng tải có khả năng cung cấp scripting, do đó nó đạt được độ linhhoạt rất cao Hơn nữa, nếu như một lần kiểm tra nào đó đòi hỏi phải chỉnh sửa code,

nó có thể thực hiện trong một khoảng thời gian ngắn

b) Lựa chọn server tốt nhất

Việc lựa chọn server tốt nhất chính là phần chính của thuật toán cân bằng tảiđược đề cập trong phần 2 Phương pháp dễ nhất và thường được sử dụng nhất trongcác hệ thống nhỏ là Round Robin, các server được lựa chọn quay vòng, tuy nhiênphương pháp này có nhược điểm là 2 requests liên tục từ một người dùng sẽ vào 2server khác nhau, thông tin giữa hai yêu cầu liên tiếp sẽ bị mất, như vậy sẽ không thểtối ưu hóa được sử dụng tài nguyên Đặc biệt là khi cần phải cài đặt kết nối cho cácphiên chạy, ví dụ như SSL key negociation- sẽ tốn rất nhiều thời gian

Một cách khắc phục nhược điểm này là sử dụng một hàm băm theo địa chỉ IP,như vậy requests từ cùng một địa chỉ IP sẽ chỉ vào một server duy nhất Tuy vậyphương pháp này đòi hỏi người dùng phải có IP tĩnh

c) Kỹ thuật Session 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ườidùng được gửi vào một máy duy nhất trong suốt phiên làm việc của người đó Tất cảcác yêu cầu của người dùng này cần phải được chuyển vào cùng một server Nếuserver bị chết hoặc ngừng để bảo trì, cần phải có cơ chế để chuyển session của ngườidùng này sang máy server khác Đó chính là kỹ thuật Session Persistence

Có một số giải pháp được đưa ra để tiếp cận kỹ thuật này, chẳng hạn như sử dụngmột respone HTTP 302 hay tạo ra liên kết giữa người dùng – server Tuy vậy 2phương pháp này đều có những hạn chế, sử dụng HTTP 302 sẽ khiến người dùng luônluôn tìm cách kết nối với một server duy nhất, kể cả khi server này đã “chết” Dùngcách tạo liên kết đòi hỏi user phải có IP tĩnh trong suốt phiên làm việc

d) Cookie

Cookie - là một đối tượng được điều khiển bởi Web Server, trong kết quả trả vềcho người dùng web server sẽ chèn thêm một số thông tin Những yêu cầu tiếp theo

Trang 23

của người dùng gửi đến server sẽ chứa thêm thông tin của cookie này, server sẽ đọccác cookie và biết phải làm gì với các yêu cầu này.

Một cookie được định nghĩa bằng cặp tên = giá trị (name=value) Hình dưới đâymiêu tả hoạt động của cookie với cặp user =1, cho biết tên cookie là user và giá trị của

nó là 1 Bên phía người dùng, cookie được điều khiển bởi trình duyệt và “trong suốt”đối với người dùng

Hình 2.9: Cách làm việc của cookie user =1

Cách thức hoạt động của cookie là khi người dùng lần đầu tiên gửi yêu cầu đếnserver, do không có cookie trong yêu cầu nên nó sẽ được phân tải đến server RS1 (1).Server RS1 sẽ tạo và đặt cookie server=1 vào trong dữ liệu trả về cho người dùng (2).Trình duyệt của người dùng sẽ nhận trả về, đọc thấy cookies và lưu trữ nó vào trongđĩa cứng (3) Sau đó người dùng có thể đóng trình duyệt hoặc ngắt kết nối (giả sử rằngtrình duyệt của người dùng không tự động xóa cookie sau khi đóng) Một thời gian saungười dùng kết nối lại và gửi yêu cầu đến bộ cân bằng tải Sau khi kết nối được thiếtlập, trình duyệt người dùng sẽ gửi cookie server=1 như là một phần yêu cầu HTTP (4)

Bộ cân bằng tải sẽ đọc được cookie này và sẽ chuyển yêu cầu của người dùng vàoserver RS1 Như vậy, người dùng sẽ luôn được kết nối vào server 1 cho đến khi nàocookie còn tồn tại, cho dù người dùng có thể vào website từ các địa chỉ IP khác nhau

Trang 24

Hình 2.10: Cookie

Ưu điểm của phương pháp này là bộ cân bằng tải chỉ cần đọc cookie được tạo ra

từ phía web server và từ yêu cầu của người dùng Tuy nhiên, trong phương pháp nàyứng dụng ở server phải tạo ra một cookie, điều này sẽ khiến nhà phát triển ứng dụngphải thay đổi mã nguồn chương trình Khi một server mới được lắp đặt, người quản trị

hệ thống phải sửa đổi hoặc đặt thêm thông số server vào file cấu hình của bộ cân bằngtải [1], [9]

2.5.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 cluster server, cần phải thực hiện kiểm tra “health checks”đối với các server Để bộ cân bằng tải không bị quá tải, có thể cài đặt nhiều bộ cânbằng tải hoạt động theo chế độ active-active hoặc active-backup Nếu như toàn bộtrung tâm chứa dữ liệu các server và các bộ cân bằng tải không thể hoạt động vì mộtvài sự cố xảy ra thì người dùng sẽ không thể truy cập vào website Để tránh trườnghợp này xảy ra, có thể cài đặt website ở nhiều trung tâm dữ liệu khác nhau và sử dụngGSLB để đồng bộ giữa các trung tâm, đảm bảo sự hoạt động của hệ thống

Trong mạng Internet, có những yếu tố bất lợi mà chúng ta không thể giải quyếtmột cách triệt để, một trong những yếu tố đó là “thời gian trễ của đường truyềninternet” (internet delay), chính là yếu tố quyết định đến thời gian đáp ứng của websiteđối với người dùng Thời gian đáp ứng người dùng phụ thuộc vào thời gian trễ củangười dùng (client-side delay), thời gian trễ của server (server-side delay) và thời giantrễ của đường truyền internet Do không thể kiểm soát được thời gian trễ của người

Trang 25

dùng nên sử dụng phương pháp cài đặt hệ thống server để hạn chế được thời gian trễcủa đường truyền qua mạng.

a) Domain Name System

GSLB có thể đạt được bằng nhiều cách khác nhau nhưng cách được dùng nhiềunhất là sử dụng Domain Name System (DNS) Khi người dùng truy cập vào websitenào đó thì tương ứng với nó là tên miền Ví dụ như website www.utehy.edu.vn thì

“utehy.edu.vn” chính là tên miền (domain) Một tên miền có thể chứa nhiều tên miềncon chẳng hạn như “fit.utehy.edu.vn” được gọi là các vùng zones của tên miền chính.Một name server lưu trữ thông tin về các tên miền và có trách nhiệm trả về tất cả cácchất vấn về không gian tên của các tên miền này Một tên miền có thể được lưu trữ ởnhiều DNS khác nhau nhưng sẽ có một DNS có thẩm quyền cao nhất (authoritativeDNS), DNS này sẽ có trách nhiệm cập nhật tất cả các thay đổi cho các DNS có thẩmquyền thấp hơn

Server tên miền cục bộ (local DNS) là name server được lưu trữ ở trong mạngLan của người dùng Ví dụ khi client truy cập một tên miền như www.facebook.com,local DNS sẽ chuyển tên miền này thành 1 địa chỉ IP theo một trình tự sau: đầu tiên nó

sẽ đi đến root name server (2), dữ liệu trả về là một danh sách các tên miền có đuôi

là com (3) Sau đó Local DNS sẽ chuyển đến yêu cầu đến “.com name server” (4) vàname server này sẽ trả về IP của authoritative DNS của website facebook.com (5).Local DNS gửi yêu cầu đến địa chỉ IP này (6) và nhận dữ liệu trả về cho trình duyệt vàđược dùng để truy xuất dữ liệu (8,9)

Trang 26

Hình 2.11: Mô hình Global Server Load Balancing

Trong bước (7), đôi khi dữ liệu trả về sẽ là một danh sách các địa chỉ IP củawebsite cần truy cập hoặc có khi DNS sẽ dùng round-robin để trả về danh sách nàytheo thứ tự quay vòng, như vậy mỗi lần sẽ trả về một địa chỉ IP khác nhau Nếu localDNS nhận được một list các IP trả về nó sẽ chuyển về trình duyệt các IP này theo thuậttoán Round-robin

Khi Local DNS nhận dữ liệu trả về, nó sẽ lưu trữ thông tin của các dữ liệu nàytrong một khoảng thời gian (gọi là Time to Live-TTL) Trong khoảng thời gian này,bất cứ yêu cầu nào với tên miền là con của tên miền gốc sẽ được trả về địa chỉ IPgiống như yêu cầu gốc Nếu hết thời gian TTL mà vẫn không có yêu cầu, dữ liệu này

sẽ tự động bị xóa đi Giá trị TTL giảm sẽ khiến local DNS có nguy cơ thừa quá nhiều

dữ liệu không dùng đến Vì vậy, chọn giá trị TTL phải tùy thuộc vào từng website vàthời điểm cụ thể

Để thực hiện GSLB dựa trên DNS, cần phải đặt bộ cân bằng tải của website vàotrong 1node nào đó của hệ thống DNS, từ đó chọn địa chỉ IP của web-server phù hợpnhất để phục vụ cho từng nhóm người dùng cụ thể Như vậy, cần phải giải quyết 2 vấn

đề là đặt bộ cân bằng tải vào trong hệ thống DNS và phải chọn được site phù hợp nhất.b) Cài đặt bộ cân bằng tải vào hệ thống mạng DNS

Trang 27

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 DNS proxy.

Authoritative DNS là DNS có quyền trả về địa chỉ IP hoặc một danh sách các địachỉ IP của một cluster Vậy nếu như thay vị trí của nó bằng bộ cân bằng tải, toàn bộcác yêu cầu dữ liệu DNS sẽ được chuyển vào bộ cân bằng tải có nhiều thuật toán phântải và thuật toán lựa chọn tối ưu nên sẽ có khả năng trả về dữ liệu một cách tốt nhất.Dưới đây là một ví dụ minh họa cho phương pháp thay thế authoritative DNS bằng bộcân bằng tải Local DNS lúc này sẽ làm việc với bộ cân bằng tải có chức năng cânbằng tải cho server toàn cầu và nhận địa chỉ IP của webserver

Hình 2.12: Bộ cân bằng tải hoạt động như một authoritative DNS

Trong phương pháp này, bộ cân bằng tải sẽ thay thế cho authoritative DNS, do đóviệc chọn IP trả về cho local DNS sẽ phụ thuộc vào chức năng DNS được cài đặt trong

bộ cân bằng tải Nếu một sản phẩm không thể điều khiển được một request DNS nào

đó, nó có thể loại bỏ chúng trả về một lỗi hoặc chuyển chúng đến DNS server thực sự.Cài đặt bộ cân bằng tải như một forward DNS proxy

Phương pháp được mô tả ở hình dưới, bộ cân bằng tải trở thành một proxy, nó đứng ở vị trí của một authoritative DNS, nhận yêu cầu từ phía local DNS

Trang 28

forward-sau đó sẽ chuyển yêu cầu đến authoritative DNS thực sự được cài đặt ở phía forward-sau nó.Khi nhận dữ liệu về từ authoritative DNS thực sự, bộ cân bằng tải sẽ chỉnh sửa chophù hợp và trả về cho local DNS, sự trả về này phải được thực hiện một cách “trongsuốt” và chỉ những dữ liệu có liên quan đến GSLB mới cần phải thay đổi Ở đây nếunhư có nhiều DNS server thực sự, bộ cân bằng tải sẽ làm nhiệm vụ cân bằng tải chonhóm DNS server này.

Hình 2.13: Bộ cân bằng tải hoạt động như một forward DNS proxy

Ưu điểm của phương pháp này là có thể cài đặt nhiều DNS server và cân bằng tảicho chúng, do đó tăng khả năng mở rộng và khả năng có sẵn Hơn nữa, IP của cácDNS server thực sự có thể được giữ kín để ngăn chặn việc truy cập trái phép và tăngtính bảo mật Bộ cân bằng tải không cần phải cài đặt đầy đủ các chức năng GSLB màchỉ cần các chức năng cần thiết để giúp DNS trả về địa chỉ IP cho local DNS một cáchthông minh hơn Hơn nữa, có thể kết hợp cả GSLB và SLB vào trong một mô hình Bộcân bằng tải ở đây có 2 địa chỉ IP ảo: VIPD dùng để đóng vai trò một authoritativeDNS, VIP1 dùng để cân bằng tải cho cụm server

Trang 29

Hình 2.14: Sự kết hợp GSLB và SLB trong bộ cân bằng tải

c) Lựa chọn site tốt nhất

Việc lựa chọn trang tốt nhất hay đúng hơn là chọn cluster server nào tốt nhất vàtrả về địa chỉ IP của cluster đó cho người dung rất quan trọng Cluster server tốt nhất ởđây bao hàm cả trạng thái server và vị trí của nó đối với người dùng Các công việccần phải thực hiện để kiểm tra trạng thái của server bao gồm kiểm tra “server health”,thời gian đáp ứng và tải hiện tại của server

Kiểm tra trạng thái server là một nhân tố quan trọng của GSLB, nhằm nhận biếtcác site đang hoạt động hay không, từ đó chuyển hướng người dùng đến site phù hợp.Việc này là khá dễ đối với bộ cân bằng tải vì nó có thể sử dụng cùng một phương phápnhư phương pháp “health checks” đối với các server trong cùng một cluster Bộ cânbằng tải toàn cầu sẽ gửi một yêu cầu HTTP đối với mỗi URL từ phía người dùng vàkiểm tra một mã trả về, sau đó kiểm tra ngữ cảnh trên các từ khóa hoặc tính toán một

mã kiểm tra trên trang trả về để khớp với giá trị mà người dùng đã chỉ định

Trang 30

Nhân tố thứ hai quyết định việc chọn site trong GSLB là thời gian đáp ứng củasite đó (thời gian đáp ứng của webserver) Kiểm tra thời gian đáp ứng bằng cách đothời gian trễ giữa quá trình gửi yêu cầu và nhận hồi đáp trong một thao tác Như vậy

có thể kết hợp cả health checks và kiểm tra thời gian đáp ứng bằng cách đo thời giantrễ của quá trình health check Thời gian đáp ứng của site không phải là thời gian đápứng người dùng, không phải thời gian trễ của người dùng và của internet, nó chỉ đơngiản là thời gian đáp ứng của cluster

Khi bộ cân bằng tải gửi một tín hiệu “health checks”, tín hiệu này sẽ chuyển đượcđến một server nào đó trong cluster Khi gửi thêm một tín hiệu khác, có thể sẽ đượcchuyển đến một server khác Thời gian đáp ứng đo được ở các thao tác này là khácnhau, vì vậy để đánh giá một cách chính xác thời gian đáp ứng của cluster, cần phảilấy thời gian trung bình các lần đo này

Nhân tố thứ ba chính là trạng thái tải của site, cần phải biết tải hiện tại của server

và phải quan tâm đến khả năng của server để chọn được site có tính sẵn có cao nhất.Một trong các thông số để đo trạng thái tải của server chính là số kết nối hiện tại đếnserver và thời gian đáp ứng của server chính là nhân tố cho thấy tải hiện tại của server,một server nhẹ tải sẽ đáp ứng nhanh hơn một server nặng tải hơn

Song song với việc chọn site theo thông số của server đó là chọn site theo vị tríđịa lý của site này GSLB sẽ nhận biết địa chỉ IP của người dùng, sau đó xác định vùng

mà người đó truy cập vào website Việc xác định này dựa trên block của địa chỉ IP,được cấp phát bởi các tổ chức quản lý địa chỉ IP Sau khi xác định vùng truy cập,GSLB sẽ hướng người dùng đến server gần nhất Nó sẽ giúp giảm thiểu tối đa thờigian trễ của Internet, vì hướng người dùng đến site gần họ nhất nên hầu hết sẽ khôngphải tốn băng thông đi quốc tế

Như vậy, DNS được tạo ra không phải để dành riêng cho GSLB GSLB sử dụngDNS để phục vụ cho mục đích của mình và kết quả mang lại rất hiệu quả Tuy vậy vẫn

có những hạn chế mà GSLB dựa trên DNS không thể giải quyết được, chẳng hạn nhưngười dùng quá xa local DNS của họ hoặc một số local DNS bỏ qua giá trị TTL đượcchỉ định bởi authoritative DNS.[1], [5]

Trang 31

2.5.3 Cân bằng tải sử dụng phần cứng và phần mềm

a) Cân bằng tải sử dụng phần cứng

Bộ cân bằng tải bằng phần cứng sẽ thể hiện một địa chỉ IP ảo đối với mạng bênngoài, địa chỉ này bản đồ hóa đến các địa chỉ của mỗi máy trong một cluster Chính vìvậy toàn bộ các máy tính trong cluster sẽ chỉ được xem như là một máy duy nhất đốivới thế giới bên ngoài Bộ cân bằng tải sử dụng phần cứng thường hoạt động ở tầngmạng và hoạt động dựa trên sự định tuyến, sử dụng một trong các phương pháp: Địnhtuyến trực tiếp (direct routing), tunneling, IP address translation (NAT)

Hình 2.15: Cân bằng tải sử dụng phần cứng

Khi sử dụng thiết bị phần cứng làm Load Balancing cần quan tâm đến các yêu cầu sau:

- Cân bằng tải cho hầu hết các ứng dụng trên nền mạng IP như Web, FTP, mail, hay video theo yêu cầu…

E Cân bằng tải theo nhiều phương pháp: sử dụng cả hai mô hình hoạt động tĩnh

và động cho việc cân bằng tải các máy chủ Mô hình tĩnh dựa trên việc quayvòng cung cấp dịch vụ lần lượt cho từng máy chủ và theo công suất máy chủ.Khả năng thiết lập cấu hình cực kỳ mềm dẻo, hỗ trợ các cấu hình hoạt động đadạng bao gồm: chuyển dịch địa chỉ mạng/NAT, điịnh tuyến trực tiếp, đườnghầm IP

Trang 32

- Kiểm tra trạng thái của máy chủ: thường xuyên kiểm tra trạng thái của từngmáy chủ để đảm bảo rằng không một yêu cầu cung cấp dịch vụ nào được gửiđến một máy chủ đang gặp phải sự cố.

- Tắt dịch vụ an toàn: tính năng này cho phép các dịch vụ trên máy chủ chỉ đượcđóng khi tất cả các yêu cầu đã được xử lý xong Khi có yêu cầu tắt máy để bảodưỡng hay nâng cấp một máy chủ nào đó, sẽ không gửi các yêu cầu cung cấpdịch vụ tới máy chủ đó nữa và quản trị viên sẽ được thông báo khi tất cả cácyêu cầu cung cấp dịch vụ trên máy đó đã được xử lý

- Dự phòng nóng: hai thiết bị có thể được kết nối song song với nhau, một ở chế

đọ hoạt động chính và một ở dự phòng để đảm bảo vai trò của hệ thống

- Đồng bộ cấu hình và nhật ký: cho phép khả năng cấu hình hệ thống và nhật kýlàm việc của cả hai thiết bị ở chế độ làm việc song song là như nhau tại mọithời điểm Và có khả năng ghi nhật ký chi tiết về hệ thống, quản trị, tính sẵnsàng cao và các cảnh báo

- Bảo mật cao: các mặt nạ IP cho phép các máy chủ thực tế không xuất hiện trựctiếp trên mạng Internet

Ưu điểm của phương pháp này là:

- Mối quan hệ giữa các máy chủ: Bộ cân bằng tải phần cứng đọc cookie hoặc cácURL đang được đọc trên mỗi một request bởi máy khách Dựa trên các thôngtin này, nó có thể ghi lại các thông tin header và gửi request đến nút thích hợptrong cluster- nơi session của nó được duy trì

Các bộ cân bằng tải này có thể cung cấp mối quan hệ giữa các máy server trongtruyền thông HTTP nhưng không thông qua kênh an toàn như HTTPS Trongkênh an toàn, các thông báo được mã hóa SSL và có thể tránh bộ cân bằng tảiđọc các thông tin session

- Khả năng có sẵn cao thông qua hệ thống tự động chuyển đổi dự phòng: chuyểnđổi dự phòng xảy ra khi một nút trong cluster không thể xử lý một request vàchuyển hướng nó đến một nút khác Dù vậy bất kỳ một thông tin session nàotrên nút chết sẽ bị mất khi các request được chuyển hướng đến một nút mới

Để thực thi chuyển đổi dự phòng session một cách trong suốt các nút trongcluster phải kết hợp với nhau và có vùng bộ nhớ chia sẻ hoặc cơ sở dữ liệu

Trang 33

dùng chung để lưu tất cả các dữ liệu session Chính vì vậy nếu một nút trongcluster có sự cố, vấn đề xảy ra thì một session có thể tiếp tục trong một nútkhác.

- Metrics: vì tất cả các yêu cầu tới một ứng dụng web đều phải qua hệ thống cânbằng tải, hệ thống có thể quyết định số lượng session hoạt động, số lượngsession hoạt động được kết nối trong các trường hợp khác nhau, các khoảngthời gian đáp ứng, thời gian tối đa điện áp, số lượng session trong suốt khoảngtối đa điện áp, số lượng session trong suốt khoảng tối thiểu điện áp … Tất cảcác thông tin kiểm định này được sử dụng để tinh chỉnh toàn bộ hệ thống nhằmtối ưu hiệu suất

Hiện nay, có rất nhiều hãng đã đưa ra các giải pháp load balancing là các thiết bị phầncứng linh hoạt và hiệu quả như Cisco, Coyote Point, F5 Network… Một số thiết bịload balancing như:

- Coyote Point Equalize E370LX: hỗ trợ nhiều ứng dụng, nhiều giao thức Băng thông4.8 Gbps, có khả năng xử lý 75000 yêu cầu/s Thiết bị này cung cấp giải pháp chuyểnđổi dự phòng linh hoạt cho các server có tính sẵn sàng cao, quản lý được các trung tâm

dữ liệu dễ dàng Các server được LB theo thuật toán LC, RR, WRR với phương phápduy trì cookie, IP client và thích ứng thời gian trễ của server

- F5 Network: Đảm bảo độ tin cậy và tính sẵn sang cao, kiểm tra trạng thái các server.Cân bằng tải phân phối các yêu cầu dựa trên các dữ liệu ứng dụng cụ thể như tiêu đềHTTP, cookie…Sử dụng các thuật toán RR, WRR, LC, Fastest

- Kemp LoadMaster 2400: đáp ứng được 45000 yêu cầu HTTP/s và lưu trữ CacheHTTP/HTTPs Có khả năng xử lý được 75000 kết nối đồng thời Kiểm tra trạng tháicác server, thuật toán sử dụng là RR, WRR, LC với phương pháp load balancing theo

IP nguồn và duy trì Session [12]

b) Cân bằng tải sử dụng phần mềm

Một bộ cân bằng tải bằng phần cứng giải quyết được vấn đề lost session, nhờ vào

cơ chế chuyển đổi dự phòng của nó Tuy nhiên, sự lựa chọn này kéo theo chi phí đầu

tư lớn Đối với các hệ thống vừa và nhỏ thì mà sự lựa chọn tối ưu hơn là sử dụng một

Trang 34

phần mềm load balancing với giá vừa phải hay sử dụng các phần mềm load balancingđược tích hợp sẵn.

Các phần mềm được cung cấp bởi F5 hay Citrix vẫn còn là thách thức lớn đối vớicác nhà phát triển web mặc dù chúng hoạt động rất hiệu quả và tương thích với nhiềumôi trường khác nhau Với phần mềm do các công ty hay các nhóm nhỏ hơn thì chấtlượng sẽ kém hơn đi, vì vậy nếu không có đủ kinh phí đầu tư để sử dụng một giải phápcủa F5 thì người ta thường sẽ chọn các phần mềm sẵn có, sau đó tinh chỉnh cho phùhợp với hệ thống của mình Có rất nhiều phần mềm như vậy trên thị trường, chẳng hạnnhư HAProxy, Squid… Giải pháp phần mềm thường sử dụng hai thuật toán chính đó

là thuật toán cân bằng tải tĩnh (Static LB- DNS Round Robin) và thuật toán cân bằngtải động (Dynamic LB)

Chia tải bằng phần mềm cài trên các máy chủ, kết hợp nhiều server một cách chặtchẽ tạo thành một server ảo (Virtual Server) Các hệ điều hành cho máy chủ thế hệmới của các hãng Microsoft, IBM, HP… hầu hết đều cung cấp khả năng này Các giảipháp thuộc nhóm này có ưu điểm là quen thuộc với những nhà quản trị chuyên nghiệp,

có thể chia sẻ được nhiều tài nguyên trong hệ thống, theo dõi được trạng thái của cácmáy chủ trong nhóm để chia tải hợp lý Tuy nhiên, do sử dụng phần mềm trên server,tính phức tạp cao nên khả năng mở rộng của giải pháp này còn bị hạn chế, phức tạpkhi triển khai cũng như khắc phục khi xảy ra sự cố, có rào cản về tương thích, khó cóđược những tính năng tăng tốc và bảo mật cho ứng dụng

2.6 Các thuật toán cân bằng tải

2.6.1 Thuật toán ngẫu nhiên (random)

Trong thuật toán random, tải sẽ được phân một cách ngẫu nhiên vào trong cácweb-server Webserver được lựa chọn dựa trên một hàm chọn số ngẫu nhiên, sau đóyêu cầu hiện tại từ phía người dùng sẽ được chuyển vào server này

Thuật toán được mô tả như sau:

arrayServer [] == list_of_server ();

int n = number_of_active_server;

int i = get_random_number (n);

Trang 35

proxy ->server = arrayServer [i];

1) Khi nhận được yêu cầu từ phía người dùng hệ thống sẽ kiểm tra trạng thái cácserver để xem chúng có đang hoạt động hay đang gặp phải sự cố

2) Lập danh sách các server đang hoạt động để đáp ứng các yêu cầu từ phía client.3) Sử dụng hàm số chọn ngẫu nhiên random trong danh sách các server hoạt động.4) Gửi request tới server được chọn, server này sẽ trả về kết quả cho người dùng.Thuật toán này hầu như không dùng đến trong các bộ cân bằng tải mặc dù nóthường được cài đặt sẵn và thường thấy trong các gói phần mềm lớn mà trong đó cânbằng tải chỉ được đưa ra như một chức năng

2.6.2 Thuật toán Round Robin (RR)

RR là thuật toán được dùng thường xuyên nhất trong các hệ thống vừa và nhỏ, có

ít đòi hỏi về khả năng mở rộng Một kết nối mới sẽ được gửi đến server kế tiếp trongcụm server và cứ quay vòng như vậy RR làm việc rất tốt trong mọi cấu hình, nhưng sẽtốt hơn nếu như các trang thiết bị đang được cân bằng tải khác nhau về tốc độ xử lý,tốc độ kết nối hoặc bộ nhớ

Thuật toán thực hiện theo các bước sau:

1) Đầu tiên, khi nhận được request từ phía người dùng hệ thống sẽ kiểm tra trạngthái các server để xem chúng có đang hoạt động hay đang gặp phải sự cố.2) Lập danh sách các server đang hoạt động để đáp ứng yêu cầu và đánh số cácserver theo thứ tự

3) Các yêu cầu lần lượt sẽ được phân vào các server theo thứ tự:

- Yêu cầu thứ nhất sẽ được gửi đến server thứ nhất

- Yêu cầu thứ hai sẽ được gửi đến server thứ hai

- …

- Yêu cầu thứ n sẽ được gửi đến server thứ n

4) Khi nhận được các request gửi đến thì server sẽ gửi lại kết quả trả về chongười dùng

5) Nếu như số server cuối cùng thứ n đã thực hiện xong việc đáp ứng yêu cầu thìthứ tự lại tiếp tục được quay vòng lại Tức là yêu cầu tiếp theo thứ n+1 sẽđược gửi đến server thứ 1 và tiếp tục theo thứ tự danh sách của các server

RR hoạt động tốt khi các server có khả năng xử lý (cấu hình) tương tự nhau, tuynhiên sẽ có hiện tượng mất cân bằng khi các server có cấu hình khác nhau hoặc sau

Trang 36

một thời gian số kết nối đang hoạt động ở một server đang nhiều hơn hẳn một serverkhác nhưng lượng kết nối tiếp theo mà các server này nhận được vẫn bằng nhau Do

đó, một server sẽ phải xử lý nhiều hơn hẳn các server khác RR có tính đơn giản nên

nó hoạt động rất hiệu quả (không phải mất thêm thời gian tính toán các thông số khácnên việc phân tải diễn ra rất nhanh) Nếu như các server hoạt động bình thường vàkhông xảy ra sự cố thì sử dụng RR rất tốt

Điểm yếu của RR là hai yêu cầu liên tục từ phía một người dùng có thể sẽ đượcgửi vào hai server khác nhau Điều này không tốt vì khi người dùng đang được kết nốivào một server, thông tin mà họ cần đang ở server đó, nếu kết nối tiếp theo vẫn đượcserver đó xử lý thì sẽ góp phần tăng tốc độ đáp ứng cho người dùng Do đó, thuật toán

RR thường được cài đặt cùng với các phương pháp duy trì session như sử dụng cookie.Một kỹ thuật cân bằng tải điển hình trong thuật toán này là RRDNS (RoundRobin DNS) Với giải pháp này, nếu như có một server trong nhóm bị lỗi thì RRDNSvẫn sẽ tiếp tục gửi các yêu cầu đến server đó cho đến khi phát hiện ra lỗi và tách servernày ra khỏi danh sách địa chỉ DNS Điều này sẽ gây ra sự đứt quãng dịch vụ

2.6.3 Thuật toán Weighted Round Robin (Ratio)

Nguyên lý hoạt động của thuật toán Weighted Round Robin (WRR) này cũnggiống như thuật toán RR, yêu cầu từ phía người dùng sẽ được bộ cân bằng tải chuyểnđến các server theo thứ tự xoay vòng Sự khác biệt duy nhất ở đây là thuật toán WRRcòn quan tâm đến khả năng xử lý (cấu hình) của các server Trong cùng một chu kỳ,một server có khả năng xử lý gấp đôi server khác sẽ nhận được gấp đôi yêu cầu từ phía

bộ cân bằng tải

Thuật toán thực hiện theo các bước sau:

1) Đầu tiên, khi nhận được yêu cầu từ phía người dùng hệ thống sẽ kiểm tratrạng thái các server để xem chúng có đang hoạt động hay không

2) Từ các server đang hoạt động, bộ cân bằng tải tiếp tục thực hiện việc kiểm tracấu hình (khả năng xử lý, đáp ứng yêu cầu) của các server đó

Trang 37

3) Lập danh sách các server đáp ứng yêu cầu và đánh trọng số các server theocấu hình của mỗi server.

Giả sử có 3 server A,B,C có cấu hình khác nhau, Avà B có cấu hình giốngnhau, C có cấu hình mạnh gấp đôi A Vậy chúng ta có thể đánh trọng số cho

A và B là 1, C là 2 Khi đó thứ tự server nhận yêu cầu từ phía bộ cân bằng tải

sẽ là ABCC

4) Các yêu cầu lần lượt sẽ được phân vào các server theo thứ tự đã định:

- Yêu cầu thứ nhất sẽ được gửi đến server A

- Yêu cầu thứ hai sẽ được gửi đến server B

- Yêu cầu thứ ba sẽ được gửi đến server C

- Yêu cầu thứ tư sẽ được gửi đến server C

- Yêu cầu thứ năm sẽ được gửi đến server A

và tiếp tục theo trọng số của các server

Trong thuật toán này có thể được thực thi như sau: giả sử có một hàng đợi đểchứa các server sẽ nhận request Nếu như một server trọng số n, trong hàng đợi sẽ có nchỉ mục (entry) của cùng một server này, chẳng hạn như ở ví dụ trên, mỗi server A,B

sẽ có một chỉ mục, mỗi server C,D sẽ có 2 chỉ mục Với cách lưu chỉ mục như vậytrong hàng đợi, các server trong WRR sẽ được lấy ra theo thứ tự hoàn toàn giống nhưtrong thuật toán RR

Thuật toán WRR hoạt động tốt hơn RR khi các server trong cluster có cấu hìnhkhác nhau Tuy nhiên sử dụng thuật toán này có thể dẫn tới sự mất cân bằng tải độngnếu như tải của các yêu cầu liên tục thay đổi trong một khoảng rộng (ví dụ như cácyêu cầu xem video hoặc tải các file có dung lượng lớn xen kẽ với các yêu cầu đọcthông tin,…) Trong một khoảng thời gian ngắn, hoàn toàn có khả năng phần lớn cácyêu cầu có tải cao sẽ được chuyển hướng đến cùng một server

2.6.4 Thuật toán Dynamic Round Robin – DRR (Dynamic Ratio)

Trang 38

Thuật toán DRR hoạt động gần giống với WRR, điểm khác biệt là trọng số ở đâydựa trên sự kiểm tra server một cách liên tục, do đó trọng số liên tục thay đổi Đây làmột thuật toán động (khác với thuật toán đã trình bày ở trên đều là thuật toán tĩnh),việc chọn server sẽ dựa trên rất nhiều khía cạnh trong việc phân tích hiệu năng củaserver dựa trên thời gian thực, chẳng hạn như số kết nối hiện tại đang có trên cácserver hoặc server trả lời nhanh nhất Thuật toán này thường không thấy trong các bộcân bằng tải đơn giản, nó được sử dụng trong các sản phẩm cân bằng tải của F5Network Không thể sử dụng WRR và xây dựng lại hàng đợi dựa trên trọng số thayđổi của các server, có thể dùng một con trỏ cấu trúc để lưu lại các server, mỗi lần tạomột kết nối mới cho server nào đó sẽ phải tính toán lại vị trí của nó trong struct.

Thuật toán thực hiện theo các bước sau:

1) Đầu tiên, khi nhận được yêu cầu từ phía người dùng hệ thống sẽ kiểm tratrạng thái các server để xem chúng có đang hoạt động hay không

2) Từ các server đang hoạt động, bộ cân bằng tải tiếp tục thực hiện việc kiểm tracấu hình (khả năng xử lý, đáp ứng yêu cầu) của các server đó, đồng thời thựchiện phân tích hiệu năng của server dựa trên thời gian thực như số kết nốihiện tại hay thời gian đáp ứng nhanh nhất

3) Lập danh sách các server đáp ứng yêu cầu, đánh trọng số các server theo cấuhình và hiệu năng của mỗi server

Giả sử có 3 server A,B,C trong đó: B có cấu hình mạnh gấp đôi A, nhưng Alại có thời gian đáp ứng nhanh nhất Vậy trọng số cho các server như sau: C là

1, A và B là 2 Khi đó thứ tự server nhận yêu cầu từ phía bộ cân bằng tải sẽ làABABC

4) Các yêu cầu lần lượt sẽ được phân vào các server theo thứ tự đã định:

- Yêu cầu thứ nhất sẽ được gửi đến server A

- Yêu cầu thứ hai sẽ được gửi đến server B

- Yêu cầu thứ ba sẽ được gửi đến server A

- Yêu cầu thứ tư sẽ được gửi đến server B

- Yêu cầu thứ năm sẽ được gửi đến server C

5) Các server nhận được yêu cầu sẽ gửi lại kết quả trả về cho người dùng

6) Khi server cuối cùng C đã thực hiện xong việc đáp ứng yêu cầu thì thứ tự lạitiếp tục được quay vòng lại Tức là yêu cầu tiếp theo sẽ được gửi đến server A

và tiếp tục theo trọng số của các server

2.6.5 Thuật toán Fastest

Ngày đăng: 16/10/2014, 00:14

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Mô hình so sánh hệ thống cân bằng tải và hệ thống thông thường - Tìm hiểu về cân bằng tải cho WebServer
Hình 2.1 Mô hình so sánh hệ thống cân bằng tải và hệ thống thông thường (Trang 11)
Hình 2.7: Ví dụ về mô hình CDN - Tìm hiểu về cân bằng tải cho WebServer
Hình 2.7 Ví dụ về mô hình CDN (Trang 18)
Hình 2.8: Simple Cache - Tìm hiểu về cân bằng tải cho WebServer
Hình 2.8 Simple Cache (Trang 19)
Hình 2.10: Cookie - Tìm hiểu về cân bằng tải cho WebServer
Hình 2.10 Cookie (Trang 24)
Hình 2.11: Mô hình Global Server Load Balancing - Tìm hiểu về cân bằng tải cho WebServer
Hình 2.11 Mô hình Global Server Load Balancing (Trang 26)
Hình 2.12: Bộ cân bằng tải hoạt động như một authoritative DNS - Tìm hiểu về cân bằng tải cho WebServer
Hình 2.12 Bộ cân bằng tải hoạt động như một authoritative DNS (Trang 27)
Hình 2.14: Sự kết hợp GSLB và SLB trong bộ cân bằng tải - Tìm hiểu về cân bằng tải cho WebServer
Hình 2.14 Sự kết hợp GSLB và SLB trong bộ cân bằng tải (Trang 29)
Hình 3.1: Mô hình hệ thống cân bằng tải WebServer - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.1 Mô hình hệ thống cân bằng tải WebServer (Trang 50)
Hình 3.2:  Hộp thoại Local Area Connection Properties trên Webserver1 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.2 Hộp thoại Local Area Connection Properties trên Webserver1 (Trang 51)
Hình 3.3: Hộp thoại TCP/IP của Webserver1 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.3 Hộp thoại TCP/IP của Webserver1 (Trang 52)
Hình 3.6: Advanced TCP/IP Settings trên Webserver2 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.6 Advanced TCP/IP Settings trên Webserver2 (Trang 53)
Hình 3.11: Advanced Web Site Identification trên Webserver1 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.11 Advanced Web Site Identification trên Webserver1 (Trang 57)
Hình 3.14: Thư mục Root trong DFS trên server1 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.14 Thư mục Root trong DFS trên server1 (Trang 59)
Hình 3.15: Hai Root Target của hai server trên Root Public - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.15 Hai Root Target của hai server trên Root Public (Trang 60)
Hình 3.18: Hộp thoại Local Area Connection Properties - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.18 Hộp thoại Local Area Connection Properties (Trang 62)
Hình 3.19: Tab Parameters - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.19 Tab Parameters (Trang 62)
Hình 3.20: Tab Host Parameters - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.20 Tab Host Parameters (Trang 63)
Hình 3.21: Hộp thoại Add/edit Port Rule của webserver1 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.21 Hộp thoại Add/edit Port Rule của webserver1 (Trang 63)
Hình 3.22: Hộp thoại Port Rules sau khi cấu hình trên webserver1 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.22 Hộp thoại Port Rules sau khi cấu hình trên webserver1 (Trang 64)
Hình 3.24: Tab Host Parameters trên webserver2 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.24 Tab Host Parameters trên webserver2 (Trang 65)
Hình 3.28: Kiểm tra khả năng Load Balancing từ phía Client1 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.28 Kiểm tra khả năng Load Balancing từ phía Client1 (Trang 67)
Hình 3.29: Kiểm tra khả năng Load Balancing từ phía Client2 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.29 Kiểm tra khả năng Load Balancing từ phía Client2 (Trang 68)
Hình 3.32: Kiểm tra khả năng Fail-over từ phía Client1 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.32 Kiểm tra khả năng Fail-over từ phía Client1 (Trang 70)
Hình 3.33: Kiểm tra khả năng Fail-over từ phía Client2 - Tìm hiểu về cân bằng tải cho WebServer
Hình 3.33 Kiểm tra khả năng Fail-over từ phía Client2 (Trang 71)

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