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

Nghiên cứu hệ thống dự phòng cân bằng tải trên centos 6 5

39 7 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

Tiêu đề Nghiên Cứu Hệ Thống Dự Phòng Cân Bằng Tải Trên Centos 6.5
Tác giả Nguyễn Đình Tường
Người hướng dẫn TS. Nguyễn Ngọc Hiếu
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2014
Thành phố Nghệ An
Định dạng
Số trang 39
Dung lượng 2,24 MB

Cấu trúc

  • CHƯƠNG I: GIỚI THIỆU TỔNG QUAN NỘI DUNG ĐỀ TÀI (7)
    • 1. Giới thiệu về hệ điều hành Centos (7)
    • 2. So sánh ƣu, nhƣợc điểm của hai hệ điều hành (0)
    • 3. Lý do chọn đề tài (10)
    • 4. Kiến trúc và khả năng mở rộng WebSite (11)
      • 4.1. Cân bằng tải cho application Server (11)
    • 5. Khái niệm và lợi ích của cân bằng tải (12)
    • 6. Ý tưởng đề tài (13)
  • CHƯƠNG II. CÁC THUẬT TOÁN CÂN BẰNG TẢI (14)
    • 1. Thuật toán ngẫu nhiên (14)
    • 2. Thuật toán Round Robin (14)
    • 3. Thuật toán Weighted Round Robin (15)
    • 4. Thuật toán Fastes (16)
    • 5. Thuật toán Least Connection (17)
    • 6. Thuật toán Observed (17)
    • 7. Thuật toán Weight Least Connection (18)
    • 8. Thuật toán Least Response Time (18)
  • CHƯƠNG III. CÀI ĐẶT VÀ MÔ PHỎNG DỰ PHÒNG CÂN BẰNG TẢI (20)
    • 1. Mô tả chung (20)
      • 1.1. Sơ đồ logic (20)
      • 1.2. Mô tả 20 1.3. Chuẩn bị (20)
    • 2. Cấu hình dịch vụ Haproxy (21)
      • 2.1. Tắt Filewall (21)
      • 2.3. Cấu hình DNS phân giải tên miền cho Haproxy (22)
        • 2.3.1. Đặt Hostname và địa chỉ DNS cho máy Haproxy (22)
        • 2.3.2. Cài đặt gói dich vụ Bind cho HAproxy CentOS (23)
      • 2.4. Cấu Hình Load Balacing cho Haproxy (26)
        • 2.4.1. Cấu hình dịch vụ Haproxy (26)
      • 2.5. Cài đặt gói Rsync và Test đồng bộ dữ liệu (27)
        • 2.5.1. Trên cả 2 WebServer. WebServer01, WebServer02 ta tiến hành cài đặt gói dịch vụ Rsync (27)
        • 2.5.2. Tạo SSH-Key và lập lịch tự động đồng bộ (28)
    • 3. Cấu hình dịch vụ cho hai máy làm Web (33)
      • 3.1. Cấu hình IP cho máy Web (33)
      • 3.2. Cấu hình dịch vụ Apache http (34)
    • 4. Kiểm tra dịch vụ Haproxy trên máy client (35)
  • KẾT LUẬN (38)
    • 1. Kết quả đạt đƣợc của đề tài (0)
    • 2. Hạn chế của đề tài (38)
    • 3. Định hướng phát triển (38)
  • Tài liệu tham khảo (39)

Nội dung

GIỚI THIỆU TỔNG QUAN NỘI DUNG ĐỀ TÀI

Giới thiệu về hệ điều hành Centos

Vào giữa những năm 1960, dự án Multics (Multiplexed Information and Computing Service) được thực hiện bởi AT&T Bell Laboratories và một số trung tâm khác, nhưng sau một thời gian, dự án này không khả thi Tuy nhiên, Ken Thompson, Dennis Ritchie và các đồng nghiệp tại Bell Labs đã quyết định không từ bỏ Thay vì phát triển một hệ điều hành đa nhiệm như Multics, họ đã chọn hướng đi khác, phát triển một hệ điều hành đơn giản chỉ tập trung vào việc chạy chương trình Hệ điều hành "đơn giản" này sau đó được Peter Neumann đặt tên là Unix.

Vào khoảng năm 1977, bản quyền của hệ điều hành UNIX được giải phóng, biến nó thành một sản phẩm thương mại Hai nhánh chính của UNIX đã xuất hiện: System V, được phát triển bởi AT&T và Novell, cùng với Berkeley Software Distribution (BSD) từ Đại học Berkeley.

The IEEE established a standard known as "An Industry-Recognized Operating Systems Interface Standard Based On The UNIX Operating System," resulting in the creation of POSIX.1 for the C interface and POSIX.2 for Unix command systems In 1991, Linus Torvalds began exploring Minix, a Unix variant, to research how to develop a Unix-like operating system for Intel 80386-based PCs On August 25, 1991, he released Version 0.01 and announced his intentions for Linux on the Comp.os.minix newsgroup By January 1992, Linus had released Version 0.12, which included a shell.

C compiler Linus không cần Minix nữa để Recompile HDH của mình Linus đặt tên HDH của mình là Linux Năm 1994, phiên bản chính thức 1.0 đƣợc phát hành

Linux là một hệ điều hành dạng UNIX, hoạt động trên PC với CPU Intel 80386 trở lên và các bộ vi xử lý tương thích như AMD, Cyrix Hiện nay, Linux cũng có thể chạy trên máy Macintosh và SUN Sparc, đồng thời đáp ứng chuẩn POSIX.1.

Quá trình phát triển của Linux đã được thúc đẩy mạnh mẽ nhờ sự hỗ trợ từ dự án GNU (GNU's Not Unix), một chương trình nhằm phát triển các hệ điều hành Unix có khả năng hoạt động trên nhiều nền tảng khác nhau.

Nguyễn Đình Tường, sinh viên lớp 51K2 thuộc Khoa CNTT 8, đã nghiên cứu về Linux Đến cuối năm 2001, phiên bản mới nhất của Linux Kernel là 2.4.2-2, nổi bật với khả năng điều khiển nhiều máy đa bộ vi xử lý và tích hợp nhiều tính năng tiên tiến khác.

CentOS, viết tắt của Community Enterprise Operating System, là một trong những bản phân phối chính thức của Linux, được phát triển dựa trên nền tảng Red Hat Enterprise Linux Hệ điều hành này hỗ trợ nhiều kiến trúc phần cứng, bao gồm x86 (i586 và i386), x86-64 (AMD64 và Intel EMT64), cũng như các cấu trúc IA64, Alpha, S390 và S390x CentOS chủ yếu được thiết kế cho các máy chủ chuyên dụng và phiên bản 6.5 đã được công bố chính thức vào năm 2011 Một số đặc điểm nổi bật của CentOS bao gồm tính ổn định cao, bảo mật và hỗ trợ lâu dài cho người dùng.

Giao diện GNOME 2.20 cung cấp nhiều chương trình hữu ích, bao gồm Evolution Mail Client, cho phép người dùng xem các tệp đính kèm định dạng PDF và tận hưởng nhiều tính năng nâng cao khác.

- Giao diện KDE 3.5.8 cùng với các tính năng Multimedia, đọc DVD đa dạng

- Cung cấp giao diện quản lý mạng NetworkManager 0.7 hỗ trợ tính năng quản lý và thiết bị mạng không dây

Chương trình PulseAudio là một công cụ quản lý Sound Card hiệu quả, tương thích với hầu hết các hệ thống âm thanh mới Bên cạnh đó, CodecBuddy hỗ trợ thêm cho các ứng dụng nghe nhạc, nâng cao trải nghiệm âm thanh cho người dùng.

- Cung cấo ứng dụng văn phòng OpenOffice.org 3 với nhiều tính năng mới

- Tích hợp thêm bộ nhận dạng cho các thiết bị Bluetooth

- Hỗ trợ cho Laptop bộ xử lý theo kiến trúc x86 và x86-64

- CentOS sử dụng Kernel phiên bản 2.6.25

2 So sánh ưu, nhược điểm của hai hệ điều hành

Stt Hệ điều hành Linux Hệ điều hành Microsoft

Linux là một ví dụ về phát triển phần mềm mã nguồn mở và hệ điều hành miễn phí (hệ điều hành)

Windows là hệ điều hành (OS) từ Microsoft, đó là hệ điều hành nổi tiếng nhất trên thế giới

2 Chi phí Linux có thể đƣợc phân phối miễn phí, tải về miễn phí, phân phối thông qua các tạp chí, sách, vv Có đƣợc bán với giá phiên bản Đối với máy tính cá nhân sử dụng hệ điều hành Windows có thể tốn kém Một bản có thể có giá khoảng $ 50 đến $ 450 tùy thuộc vào phiên bản của

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 9 dành cho Linux cũng có, nhưng họ thường rẻ hơn so với Windows

Linux Kernel đƣợc phát triển bởi cộng đồng Linus Torvalds giám sát mọi thứ

Microsoft phát triển hệ điều hành Windows và cho phép các nhà sản xuất máy tính khác phân phối sản phẩm của họ với Windows được cài đặt sẵn.

4 Sử dụng Linux có thể đƣợc cài đặt trên một loạt các phần cứng máy tính, từ điện thoại di động, máy tính bảng và video game console , để máy tính lớn và siêu máy tính

Trên máy tính để bàn PC, máy tính xách tay, máy chủ và một số điện thoại

5 Phát triển và phân phối

Linux là hệ điều hành được phát triển theo mô hình mã nguồn mở, cho phép người dùng hợp tác và chia sẻ mã nguồn cũng như tính năng thông qua các diễn đàn và cộng đồng Hệ điều hành này được cung cấp bởi nhiều nhà cung cấp khác nhau, tạo ra sự đa dạng và linh hoạt cho người sử dụng.

Windows đƣợc phát triển và phân phối bởi Microsoft

6 An ninh Linux đã có khoảng 60-100 virus đƣợc liệt kê cho đến ngày nay

Theo Tiến sĩ Nic Peeling trong nghiên cứu "Phân tích tác động của phần mềm nguồn mở", Tiến sĩ Julian Satchell cho biết Windows đã bị ảnh hưởng bởi hơn 60.000 virus Chi phí để bảo vệ hệ thống khỏi virus dao động từ 20 đến 400 đô la.

7 Phát hiện mỗi đe dọa và giải pháp

Phát hiện mỗi đe dọa và giải pháp rất nhanh

Khi phát hiện mối đe dọa nghiêm trọng trong hệ điều hành Windows, Microsoft thường phát hành bản vá lỗi để khắc phục vấn đề, quá trình này có thể mất từ 2 đến 3 tháng Tuy nhiên, đôi khi công ty cũng phát hành bản vá lỗi và cập nhật hàng tuần để bảo vệ người dùng kịp thời.

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 10

Hàng chục loại khác nhau Hạn chế nhƣng hầu hết (80%)

9 Giấy phép GUN/Miễn phí Độc quyền

10 Giao diện người dùng mặc định

Gnome hay KDE (Phụ thuộc vào Distro) Đồ họa (Windows Aero)

Mã nguồn mở Đóng /chia sẻ nguồn

Nhiều phương pháp Windows Update

Nhiều thiết bị đầu cuối của Windows

3 Lý do chọn đề tài

Lý do chọn đề tài

Sự bùng nổ của ngành dịch vụ Web đã dẫn đến sự gia tăng mạnh mẽ số lượng người truy cập Internet, đặc biệt là trên các trang mạng xã hội và website chia sẻ video Với hàng triệu lượt truy cập mỗi ngày, các website này cần một hệ thống server mạnh mẽ để đáp ứng nhu cầu người dùng Khi số lượng người dùng gia tăng, máy chủ sẽ bị quá tải, yêu cầu nâng cấp để duy trì hiệu suất Vòng tuần hoàn này tạo ra nhu cầu xây dựng hệ thống website có khả năng mở rộng và dễ dàng nâng cấp Cân bằng tải là yếu tố quan trọng trong kiến trúc web mở rộng, giúp phân phối lưu lượng truy cập giữa nhiều web server trên toàn cầu, đảm bảo không bị quá tải và luôn đáp ứng nhanh chóng nhu cầu người dùng Trong bối cảnh cạnh tranh khốc liệt, khả năng cân bằng tải sẽ quyết định thành công của các nhà cung cấp dịch vụ Web.

Có nhiều phương pháp để cân bằng tải, nhưng lý thuyết chung yêu cầu một bộ cân bằng tải nằm giữa người dùng và hệ thống WebServer Bộ cân bằng tải giúp phân phối lưu lượng truy cập một cách hiệu quả, đảm bảo hiệu suất và tính khả dụng của dịch vụ.

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 11 sẽ tiếp nhận yêu cầu từ người dùng, sau đó phân phối các yêu cầu này đến các máy chủ phù hợp dựa trên thuật toán cân bằng tải, và cuối cùng nhận dữ liệu từ máy chủ để trả về cho người dùng.

Bài báo cáo này cung cấp cái nhìn tổng quan về các vấn đề trong thiết kế hệ thống Web với khả năng mở rộng, đồng thời phân tích lý thuyết về cân bằng tải cho các WebServer lớn Nó sẽ trình bày các kỹ thuật và phương pháp cân bằng tải hiện hành, kiến trúc và thành phần của bộ cân bằng tải, cùng với các thuật toán phân tải đang được áp dụng toàn cầu Bài viết cũng sẽ đề xuất các phương pháp cài đặt bộ cân bằng tải nhằm nâng cao hiệu suất đáp ứng người dùng và khả năng mở rộng Thêm vào đó, một số thuật toán cân bằng tải cụ thể sẽ được triển khai dựa trên phần mềm mã nguồn mở, kèm theo các cải tiến cho những thuật toán này Cuối cùng, bài báo sẽ hướng tới việc xây dựng một bộ cân bằng tải độc lập, thực thi các thuật toán phân tải cải tiến cho các WebSite hiện tại.

Kiến trúc và khả năng mở rộng WebSite

4.1 Cân bằng tải cho application Server

Để phục vụ nhiều người truy cập trên một trang web, việc đầu tiên là cần có một hệ thống máy chủ mạnh mẽ Khi số lượng người dùng tăng lên theo thời gian, hệ thống máy chủ cần được nâng cấp và mở rộng Có hai phương pháp để thực hiện điều này: mở rộng theo chiều ngang (Scale Out) và mở rộng theo chiều dọc (Scale Up).

Mở rộng theo chiều dọc là phương pháp nâng cấp server bằng cách tăng cấu hình của một máy chủ duy nhất khi số lượng người dùng tăng lên Phương pháp này giúp quản trị viên không phải lo lắng về việc cân bằng tải, và hệ thống có thể hoạt động hiệu quả với số lượng người dùng vừa phải Tuy nhiên, việc sử dụng một server duy nhất có thể tốn kém hơn so với việc sử dụng nhiều server, đồng thời gây ra rủi ro lớn khi server gặp sự cố, dẫn đến toàn bộ hệ thống bị ngừng hoạt động Hơn nữa, phương pháp này cũng đặt ra giới hạn cho khả năng phục vụ của hệ thống, khiến nó không thể đáp ứng nhiều yêu cầu hơn khi đạt đến một ngưỡng nhất định.

Giải pháp thứ hai là lắp nhiều Servers song song, và chúng hoạt động thành một cụm (Cluster)

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 12

Hình 1.1 Mô hình cụm Cluster

Các Database Server đóng vai trò quan trọng trong hệ thống Web, cùng với WebServer Sự phát triển của Website yêu cầu mở rộng Database Server Tương tự như cân bằng tải ở Application Server, việc mở rộng Database Server có hai phương pháp chính: mở rộng theo chiều ngang và mở rộng theo chiều dọc.

Hiện nay, các nhà phát triển hệ thống đang áp dụng kiến trúc SAN (Storage Area Networks) để mở rộng theo chiều dọc, trong đó cơ sở dữ liệu (DB) sẽ được phân chia theo kiến trúc này SAN kết nối các thiết bị lưu trữ máy tính từ xa, giúp chúng hoạt động như thiết bị cục bộ đối với hệ điều hành Do đó, hệ thống lưu trữ được coi là một Database Server duy nhất, mang lại hiệu quả hoạt động cao.

Mở rộng Database theo chiều ngang (Scaling Out), nghĩa là tăng số lƣợng các Node Database Server

Hình 1.2 Mô hình Database Server

Khái niệm và lợi ích của cân bằng tải

Cân bằng tải là kỹ thuật phân phối khối lượng công việc giữa nhiều máy tính hoặc cụm máy tính nhằm tối ưu hóa tài nguyên, tăng cường lưu lượng, giảm thời gian phản hồi và ngăn ngừa tình trạng quá tải trên máy chủ.

Các lợi ích khi sử dụng phương pháp cân bằng tải:

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 13

- Tăng khả năng đáp ứng, tránh tình trạng quá tải trên máy chủ, đảm bảo tính linh hoạt và mở rộng cho hệ thống

Sử dụng cân bằng tải không chỉ tăng cường độ tin cậy cho hệ thống mà còn nâng cao khả năng dự phòng, đảm bảo tính sẵn sàng cao (High Availability - HA) Điều này giúp người dùng duy trì dịch vụ liên tục mà không bị gián đoạn, ngay cả khi có sự cố xảy ra tại một điểm cung cấp dịch vụ.

Tăng cường bảo mật cho hệ thống là một yếu tố quan trọng, khi người dùng gửi yêu cầu dịch vụ, yêu cầu đó sẽ được xử lý qua bộ cân bằng tải Bộ phận này không chỉ chuyển tiếp yêu cầu đến các máy chủ nội bộ mà còn đảm bảo rằng quá trình trả lời khách hàng cũng diễn ra thông qua nó Nhờ vậy, người dùng không thể xác định được các máy chủ bên trong và phương pháp phân tải được áp dụng Điều này giúp ngăn chặn việc giao tiếp trực tiếp với các máy chủ, ẩn giấu thông tin và cấu trúc mạng nội bộ, từ đó giảm thiểu nguy cơ bị tấn công mạng hoặc các dịch vụ không liên quan hoạt động trên các cổng khác.

Ý tưởng đề tài

Tạo 2 WebServer tĩnh trên 2 máy Centos Mỗi Web thì có một tên và một địa chỉ ip cố định, tạo một DNS Server làm nhiệm vụ "dịch" tên miền thành địa chỉ IP để cho trình duyệt hiểu và truy cập đƣợc vào WebSite mà không cần phải nhớ địa chỉ IP Tạo

Một máy HAproxy hoạt động như một bộ phân phối tải trước hai máy WebServer, giúp chia sẻ các yêu cầu từ Client và gửi trả kết quả về cho Client Điều này cho phép Client tải tài nguyên từ máy chủ một cách hiệu quả.

 Cấu hình cân bằng tải trên CentOS

- Cài đặt 2 máy tính Centos đảm nhiệm làm WebServer

- Tạo một máy có nhiệm vụ cân bằng tải

Cấu hình dịch vụ Haproxy để thực hiện cân bằng tải cho hai máy chủ web, bao gồm thiết lập dịch vụ phân giải tên miền DNS cho máy chủ Tiến hành cấu hình Haproxy để đảm bảo hiệu suất tối ưu và cuối cùng, sử dụng gói tin Rsync để đồng bộ dữ liệu giữa các máy chủ một cách hiệu quả.

- Kiểm tra máy CentOS đã thực hiện đƣợc quá trình cân bằng tải

 Vào máy Client01 kiểm tra máy chủ đã làm nhiệm vụ cân bằng tải hay chƣa

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 14

CÁC THUẬT TOÁN CÂN BẰNG TẢI

Thuật toán ngẫu nhiên

Trong thuật toán ngẫu nhiên, tải được phân bổ ngẫu nhiên vào các WebServer thông qua một hàm chọn số ngẫu nhiên Yêu cầu từ người dùng sẽ được chuyển đến Server đã được chọn Mặc dù thuật toán này thường không được sử dụng trong các bộ cân bằng tải, nó thường có sẵn trong các gói phần mềm lớn, nơi cân bằng tải chỉ là một chức năng bổ sung.

Thuật toán Round Robin

Thuật toán luân chuyển vòng là phương pháp phân phối truy vấn dịch vụ đến các máy chủ theo thứ tự sắp xếp, coi các máy chủ là ngang hàng Trong thuật toán này, các máy chủ được xem xét có khả năng xử lý tương đương mà không tính đến số lượng kết nối hiện tại hoặc thời gian phản hồi của từng máy chủ.

Hình 2.1 Mô hình làm việc của Round Robin

Ví dụ: dùng giải thuật Round Robin Với thời lƣợng là 20ms để điều phối CPU

Tiến trình Thời điểm đến CPU – Burst (ms)

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 15 a Thể hiện bằng biểu đồ Grantl b Tính thời gian chờ trung bình của các tiến trình

4 24 44 64 70 90 98 111 b Tính thời gian chờ trung bình

Thời gian trung bình = (Thời điểm kết thúc-Thời điểm đến- Khoảng chạy)/3

Thời gian trung bình = (20+40+37)/3= 32.33 ms

Thuật toán Weighted Round Robin

Giống như thuật toán Round Robin, nhưng có thể cấu hình để ưu tiên máy chủ thường xuyên được sử dụng hơn, dựa trên khả năng xử lý của từng máy chủ Mỗi máy chủ được đánh giá bằng một số nguyên (giá trị Weight) thể hiện khả năng xử lý, với giá trị mặc định là 1.

Hình 2.2 Mô hình làm việc thuật toán Weighted Round Robin

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 16

Trong ví dụ này, các máy chủ A, B, C có trọng số lần lượt là 4, 3, 2, và thứ tự phân phối yêu cầu là AABABCABC, thực hiện theo chu kỳ (Mod Sum(wi)) Việc lựa chọn máy chủ phục vụ dựa vào trọng số của từng máy chủ trong danh sách S = {S0, S1, … , Sn} Giá trị chỉ mục i (Index) ban đầu được gán là 0, cùng với trọng số hiện tại cw của máy chủ Nếu tất cả trọng số W(Si) bằng 0, hệ thống sẽ không có máy chủ nào đáp ứng, dẫn đến việc từ chối tất cả các kết nối đến hệ thống.

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

If(i==0) { cw=cw-1; if (cw= cw ) return si;

Trong mô hình Weight Round Robin, các máy chủ có trọng số (Weight) cao sẽ được ưu tiên nhận kết nối mới trước, dẫn đến việc chúng nhận nhiều kết nối hơn so với các máy chủ có trọng số thấp Khi các máy chủ có trọng số bằng nhau, chúng sẽ chia sẻ tải kết nối mới một cách đồng đều.

Thuật toán điều phối Weight Round Robin tỏ ra hiệu quả hơn Round Robin khi các máy chủ có khả năng xử lý khác nhau Tuy nhiên, hệ thống có thể gặp phải tình trạng mất cân bằng nếu yêu cầu xử lý quá cao, dẫn đến khả năng chỉ một máy chủ đảm nhận toàn bộ yêu cầu khi số lượng đáp ứng lớn.

Thuật toán Round Robin là trường hợp đặc biệt của Weight Round Robin mà khi đó các gí trị Weight đều bằng 1.

Thuật toán Fastes

Thuật toán Fastes lựa chọn máy chủ dựa trên thời gian phản hồi, ưu tiên máy chủ có thời gian phản hồi nhanh nhất Thời gian phản hồi được xác định bằng khoảng thời gian từ khi gửi gói tin đến máy chủ cho đến khi nhận được phản hồi.

Nguyễn Đình Tường, sinh viên lớp 51K2 thuộc Khoa CNTT 17, cho biết rằng việc gửi và nhận gói tin sẽ được bộ cân bằng tải xử lý Bộ cân bằng tải sẽ dựa vào thời gian đáp ứng để quyết định chuyển yêu cầu tiếp theo đến máy chủ nào.

Thuật toán Fastes sử dụng các máy chủ phân bố ở nhiều vị trí khác nhau Điều này có nghĩa là người dùng sẽ có thời gian phản hồi nhanh nhất từ máy chủ gần nhất, và máy chủ đó sẽ được lựa chọn để phục vụ họ.

Thuật toán Least Connection

Thuật toán Least Connection chọn Server phục vụ dựa trên số lượng kết nối hiện tại, ưu tiên Server có ít kết nối nhất Đây là một thuật toán "dynamic" vì nó thường xuyên cập nhật số lượng kết nối Tương tự như Round Robin, thuật toán này giả định rằng hiệu suất của các Server là như nhau, phù hợp cho các yêu cầu có mức độ đáp ứng thấp Tuy nhiên, nó có thể không cân bằng tải hệ thống khi có nhiều loại Server với khả năng xử lý khác nhau.

Giả sử chúng ta có n Server Si, i=1,2,….,n Số lƣợng Connections đang hoạt động là Ci với i= (1,2,… ,n ) ALL_CONNECTIONS là tổng Ci

Yêu cầu tiếp theo sẽ chuyển đến Server j, trong đó:

Cj/ALL_CONNECTIONS =Min {Ci/ALL_CONNECTIONS}, i= 1, 2, …, n

Vì giá trị ALL_CONNECTIONS là không thay đổi tại thời điểm tính nên chúng ta sẽ chọn Server Cj theo công thức:

Mặc dù bên ngoài có vẻ như LC hoạt động hiệu quả với các server có cấu hình khác nhau, nhưng thực tế không phải vậy Nguyên nhân chính là do trạng thái TIME_WAIT của TCP, ảnh hưởng đến hiệu suất hoạt động.

Thời gian TIME_WAIT thường được đặt là 2 phút, trong khoảng thời gian này, một website có thể nhận hàng chục ngàn kết nối liên tục Giả sử Server A có khả năng hoạt động gấp đôi so với Server B, trong khi Server A xử lý hàng ngàn yêu cầu và duy trì chúng trong trạng thái TIME_WAIT của TCP, Server B, với cấu hình yếu hơn, sẽ xử lý chậm hơn đáng kể Do đó, thuật toán LC không hoạt động hiệu quả khi các server có cấu hình khác nhau.

Thuật toán Observed

Observed là sự kết hợp giữa Least Connections và Fastest Response, yêu cầu người phát triển hệ thống phải cân bằng giữa số kết nối đến một Server và thời gian đáp ứng Điều này tương tự như việc đánh trọng số cho các Server dựa trên hai yếu tố quan trọng này.

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 18 nêu rõ rằng, việc xác định trọng số cho mỗi Server dựa trên nhận định của nhà phát triển hệ thống hoặc quản trị viên là rất quan trọng Một phép toán số học sẽ được thực hiện dựa trên số kết nối, thời gian phản hồi và các trọng số khác để tính toán giá trị cho mỗi Server Từ giá trị này, bộ cân bằng tải sẽ lựa chọn Server phù hợp nhất.

Nếu nhƣ đƣợc thiết kế tốt, Observed sẽ khắc phục đƣợc nhƣợc điểm của cả Least Connections và Fastest Response.

Thuật toán Weight Least Connection

Similar to Round Robin and Weighted Round Robin, Weighted Least Connections differs from Least Connections by assigning a performance value to each server Servers with higher performance receive a larger percentage of incoming requests Administrators can assign a weight value to each server, determining the distribution of connections based on the current connection percentage and this weight metric.

The Least Connection Weight algorithm operates by assigning each server a weight value Wi (where i = 1, 2, …, n) and tracking the current connections to the system as Ci (for i = 1, 2, …, n) The total number of connections is represented as S = Sum Ci (i = 1, 2, …, n) A server j will be selected based on specific conditions that must be met.

(Cj/S)/Wj=min {(Ci/S)/Wi} (với i=1, 2, …, n )

Bởi vì S là một hằng số nên ta có thể biểu diễn biểu thức trên nhƣ sau:

Cj/Wj=min {Ci/Wi} (với i=1, 2, …, n )

Có thể so sánh tương đương (do không có số thực trong Kernel Linux)

Cj/Wj > Cj/Wj thay bằng Cj*Wj > Ci*Wj (vì số Weight luôn > 0)

Thuật toán Least Response Time

Thuật toán này áp dụng phương pháp tối ưu hóa thời gian đáp ứng, chọn dịch vụ trên máy chủ có thời gian phản hồi thấp nhất Bên cạnh đó, còn nhiều thuật toán cân bằng tải khác, phụ thuộc vào phần mềm hoặc phần cứng được sử dụng.

Phương pháp cân bằng tải sử dụng thiết bị phần cứng tạo ra một địa chỉ IP ảo cho mạng bên ngoài, địa chỉ này được ánh xạ với các địa chỉ máy chủ trong một Cluster Điều này đảm bảo rằng bên ngoài không thể truy cập trực tiếp vào các máy chủ nội bộ, mà chỉ có thể truy cập thông qua địa chỉ ảo được cấu hình trên thiết bị cân bằng tải.

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 19

Hình 2.3 Mô hình làm việc của Least Response Time

Máy chủ Server 1 (IP: 192.168.1.2) và Server 2 (IP: 192.168.1.3) đang sử dụng phương pháp cân bằng tải với thiết bị chuyên dụng, trong khi người dùng bên ngoài chỉ thấy địa chỉ của Virtual IP Server HAproxy (IP: 192.168.1.4) Phương pháp này giúp tăng khả năng đáp ứng truy vấn, đồng thời nâng cao tính dự phòng và bảo mật cho hệ thống Clustering là kỹ thuật được áp dụng để cải thiện độ tin cậy và tính sẵn sàng của mạng máy tính, cho phép hệ thống hoạt động bình thường ngay cả khi một máy chủ trong Cluster gặp sự cố.

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 20

CÀI ĐẶT VÀ MÔ PHỎNG DỰ PHÒNG CÂN BẰNG TẢI

Mô tả chung

Hình 3.1 Sơ đồ Logic 1.2 Mô tả

Khi khách hàng truy cập vào hệ thống máy chủ, CentOS sẽ thực hiện chức năng cân bằng tải giữa hai WebServer, WebServer 1 và WebServer 2, để đảm bảo hoạt động luân phiên Nếu một trong hai WebServer gặp sự cố, WebServer còn lại sẽ đảm nhiệm toàn bộ chức năng, giúp website của công ty duy trì hoạt động ổn định ngay cả khi có nhiều người truy cập cùng lúc.

Yêu cầu dịch vụ thứ nhất sẽ đƣợc gửi đến WebServer1

Yêu cầu dịch vụ thứ hai sẽ đƣợc gửi đến WebServer2

Yêu cầu dịch vụ thứ ba sẽ lại đƣợc gửi cho WebServer1

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 21

Cấu hình dịch vụ Haproxy

- Sửa dòng thứ 7 thành disabled:

Hình 2.2 Dừng dịch vụ Filewall 2.2 Cấu hình IP cho Haproxy

- Sử dụng lệnh để đổi IP cho máy Haproxy

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 22

Kiểm tra IP đã nhận bằng lệnh: Ifconfig

2.3 Cấu hình DNS phân giải tên miền cho Haproxy

2 3.1 Đặt Hostname và địa chỉ DNS cho máy Haproxy

Hình 3.5 Cấu hình HostName và địa chỉ DNS

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 23

- Tại bảng DNS Configuration ta đặt lại HostName và DNS cho máy

Hình 3.6 Đặt các thông số

- Click Ok để máy nhận DNS

- Tiến hành Resret lại máy để máy nhận HostName: Init 6

2.3.2 Cài đặt gói dich vụ Bind cho HAproxy CentOS

Dùng câu lệnh: rpm –ivh để cài đặt các gói sau:

# rpm –ivh /media/Centos_6.5_Final/Packages/ bind-9.8.2-0.17.rc1.el6_4.6.i686.rpm

Hình 3.7 Cài đặt gói bind-9.8.2-0.17.rc1.el6_4.6.i686.rpm

# rpm –ivh /media/Centos_6.5_Final/Packages/ bind-libs

Hình 3.8 Cài đặt gói bind-libs 9.8.20.17.rc1.el6_4.6.i686.rpm # rpm –ivh /media/Centos_6.5_Final/Packages/ bind-util-

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 24

Hình 3.8 Cài đặt gói bind-util-9.8.20.17.rc1.el6_4.6.i686.rpm

# rpm –ivh /media/CentOS_6.5_Final/Packages/bind-chroot-9.8.2-

Hình 3.9 Cài đặt gói bind-chroot-9.8.2- 0.17.rc1.el6_4.6.i686.rpm

- Cấu hình Zone thuận, Zone nghịch trong name.conf

Hình 3.10 Cấu hình name.conf

+ Đặt IP của máy chủ

+ Thay bằng từ khóa any

Hình 3.11 Cấu hình name.conf

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 25

+ Thay Zone thuận, Zone nghịch

- Tạo Zone thuận và Zone nghịch

+ Tạo mới một File VINHUNI.thuan bằng lệnh

# gedit /var/named/VINHUNI.thuan

Hình 3.13 Cấu hình File VINHUNI.thuận

+ Tạo mới một file VINHUNI.nghich bằng lệnh

# gedit /var/named/VINHUNI.nghich

Hình 3.14 Cấu hình File VINHUNI.nghịch

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 26

- Khởi động dịch vụ DNS bằng lệnh:

Hình 3.15 Khởi động dịch vụ DNS

- Vào máy WebServer01 để Test thử máy đã nhận DNS hay chưa bằng lệnh: nslookup

Hình 3.16 Kiểm tra DNS 2.4 Cấu Hình Load Balacing cho Haproxy

- Tiến hành cài gói dịch vụ Haproxy

#rpm –ivh /media/CentOS_6.5_Final/Packages/haproxy-1.4.24-2.el6.i686.rpm

Hình 3.17 Cài đặt gói haproxy-1.4.24-2.el6.i686.rpm 2.4.1 Cấu hình dịch vụ Haproxy

- Ta cần thay đổi lại File haproxy.cfg bằng lệnh:

#gedit /etc/haproxy/haproxy.cfg

Thay đổi code trong File haproxy.cfg nhƣ sau

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 27

Hình 3.18 Cấu hình File Haproxy.cfg

Save lai File haproxy.conf

Khởi động dịch vụ Haproxy bằng lệnh:

2.5 Cài đặt gói Rsync và Test đồng bộ dữ liệu

2.5.1 Trên cả 2 WebServer WebServer01, WebServer02 ta tiến hành cài đặt gói dịch vụ Rsync

# rpm –ivh /media/Centos_6.5_Final/Packages/ rsync-3.0.6-9.el6_4.1.i686.rpm

Hình 3.19 Cài đặt gói rsync-3.0.6-9.el6_4.1.i686.rpm

Tạo 1 User để dùng để 2 WebServer 01, WebServer02 xác định trong quá trình đăng nhập đồng bộ dữ liệu

+ Trên Webserver01 tạo 1 User có tên: Backup bằng lệnh

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 28

Trên WebServer02 ta thử tiến hành đồng bộ bằng tay gói dịch vụ Rsync đã cài đặt đúng chƣa

+ User Backup đã đƣợc tạo ở WebServer01

+ /var/www/html/: là 2 thƣ mục cần đồng bộ

Hình 3.21 Đồng bộ bằng tay gói rsync Đồng bộ dự liệu WebServer01 tới WebServer02 thành công! Ta vào kiểm tra hai thƣ mục

/var/www/html/: Ở 2 WebServer thì thấy chúng giống nhau

2.5.2 Tạo SSH-Key và lập lịch tự động đồng bộ

- Trên WebServer02 ta sẽ tiến hành tạo Key dùng lệnh:

# ssh-keygen –t dsa –b 1024 –f /root/rsync/mirror-rsync-key Ở đây bạn sẽ yêu cầu nhập Passphrase 2 lần Ta nhập Passphrase trắng 2 lần

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 29

Sau khi tạo Key xong chuyển Key tới WebServer01 Ta sẽ đƣa Key vào thƣ mục vào thƣ mục Home của User Backup đã tạo ở trên dùng lệnh:

# scp /root/rsync/mirror-rysnc-key.pub backup@192.168.1.4:/home/backup/

Tiến hành nhập Password của WebServer01: 123@abc

Hình 3.23 Đưa Key vào thư mục Backup

- Trên WebServer01 ta chuyển qua thao tác trên User Backup

# mv ~/mirror-rsync-key.pub ~/.ssh/

# cat mirror-rsync-key.pub >> authorized_keys

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 30

- Tiến hành mở File authorized_key bằng lệnh:

- Thêm vào trước nội dụng của File Authorized như sau: Đặt địa chỉ IP của WebServer02: 192.168.1.5

Để đảm bảo an toàn cho hệ thống khi thực hiện các lệnh trên User Backup, cần cấu hình file authorized để cấm tất cả các lệnh ngoại trừ Rsync.

Ta thêm các đoạn Code vào File Checkrsync

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 31

Hình 3.26 Cấu hình File Checkrsync

Sau đó ta lưu lại File checkrsync và chomd nó ở 700 bằng lệnh:

- Ở trên WebServer02 ta sẽ kiểm tra sự đồng bộ dữ liệu đƣợc đăng nhập bởi User Backup có sử dụng SSH-Key bằng lệnh:

# rsync –avz delete exclude=**/stast exclude=**/error –e”ssh-i/root/mirror- rsync-key” backup@192.168.1.4:/var/www/html/ / var/www/html/

+ Delete: Khi File đƣợc xóa trên WebServer01 thì nó sẽ đƣợc xóa trên WebServer02

+ Exclude: Là loại thƣ mục mình không muốn đồng bộ

Hình 3.27 Kiểm tra đồng bộ dữ liệu

- Ta sẽ tiến hành lập lich tự đồng bộ dữ liệu từ WebServer01 sang WebServer02 bằng lệnh:

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 32

Ta thêm vào nội dung

Hình 3.28 Lập lịch đồng bộ dữ liệu Ở đây ta lập lịch đồng bộ dữ liệu từ WebServer02 sang WebServer01 sau 2 phút đồng bộ 1 lần

+ Trên WebServer01 ta vào thƣ mục /var/www/html/ tạo ra File Server02.htmll

Hình 3.29 Kiểm tra sự đồng bộ dữ liệu trên hai WebServer01

+ Chờ sau 2 phút Login vào WebServer02 thì ta sẽ thấy File Server02

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 33

Hình 3.30 Kiểm tra đồng bộ dữ liệu trên WebServer02

Cấu hình dịch vụ cho hai máy làm Web

3.1 Cấu hình IP cho máy Web

- Sử dụng lệnh để đổi IP cho 2 máy làm Web

Hình 3.31 Cấu hình IP cho WebServer

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 34

Hình 3.33 IP Address WebServer02 3.2 Cấu hình dịch vụ Apache http

Tiến hành cài gói dịch vụ Apache http cho 2 máy làm Webserver:

#rpm –ivh /media/CentOS_6.5_Final/Packages/httpd-2.2.15-29.el6.centos.i686.rpm

Hình 3.34 Cài đặt gói httpd-2.2.15-29.el6.centos.i686.rpm

- Thay đổi file httpd.conf bằng lệnh:

# gedit /etc/httpd/conf/httpd.conf

Hình 3.35 Cấu hình Httpd.conf

- Khởi động dịch vụ Apache http bằng lệnh:

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 35

Hình 3.37 Khởi động dịch vụ Apache Http

- Tạo file index.html cho máy Server01

# gedit /var/www/html/index.html

Hình 3.38 Đặt tên cho WebServer01

Kiểm tra dịch vụ Haproxy trên máy client

- Từ máy Client truy cập vào IE địa chỉ

Http://vinhuni.vn/haproxy?stats

- Đăng nhập vào tài khoản: root, mật khẩu: 123@abc như đã tạo trong máy Haproxy

Hình 3.39 Đăng nhập vào tài khoản

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 36

- Máy Centos Haproxy đã nhận hai máy WebServer01, WebServer02

Hình 3.40 Kiểm tra dịch vụ Haproxy trên User

- Từ máy Client truy cập vào địa chỉ vinhuni.vn Ta thu đƣợc nhƣ sau:

+ Máy Webserver01 trả về cho Client

Hình 3.41 Kiểm tra dich vụ trên WebServer01

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 37

Hình 3.42 Kiểm tra dich vụ trên WebServer02

Máy Server Load Balancer sẽ phân phối tải một cách đồng đều cho hai máy WebServer01 và WebServer02, cho phép cả hai máy này cung cấp thông số truy cập cho máy Client.

Khi một trong hai máy gặp sự cố, máy Server Load Balancer sẽ phân phối tải cho WebServer còn lại, đảm bảo người dùng có thể truy cập web mà không bị gián đoạn dịch vụ do lỗi tại một điểm cung cấp dịch vụ.

Hình 3.43 Kiểm tra Report Trên dịch vụ Haproxy

Nguyễn Đình Tường – Lớp 51K2 – Khoa CNTT 38

Ngày đăng: 25/08/2021, 15:31

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w