Tải bản đầy đủ (.pdf) (86 trang)

TÌM HIỂU VÀ TRIỂN KHAI CÔNG NGHỆ CÂN BẰNG TẢI TRÊN HỆ THỐNG MÁY CHỦ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.47 MB, 86 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

UBND TỈNH QUẢNG NAM

<b>TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN </b>

------

<b>NGUYỄN THỊ TRÀ </b>

<b>TÌM HIỂU VÀ TRIỂN KHAI CƠNG NGHỆ CÂN BẰNG TẢI TRÊN HỆ THỐNG MÁY CHỦ </b>

<b>KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC</b>

<b>Quảng Nam, tháng 04 năm 2017 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THƠNG TIN </b>

<b>-------KHĨA LUẬN TỐT NGHIỆP </b>

<i><b>Tên đề tài: </b></i>

<b>TÌM HIỂU VÀ TRIỂN KHAI CƠNG NGHỆ CÂN BẰNG TẢI TRÊN HỆ THỐNG MÁY CHỦ </b>

Sinh viên thực hiện:

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN </b>

Xuyên suốt 4 năm học vừa qua tại trường đại học Quảng Nam. Em đã được học hỏi, thu nạp nhiều kiến thức bổ ích khơng chỉ từ sách vở, tài liệu mà em còn được truyền đạt kinh nghiệm, tâm huyết quý báu của các thầy, cơ nhờ đó em có một hành trang bước vào tương lai một cách vững vàng và tự tin hơn.

Em xin gửi lời cảm ơn sâu sắc nhất đối với các thầy, cô trong Khoa Công nghệ thông tin. Đặc biệt là Thầy Th.S Võ Thanh Thủy người đã tận tình trực tiếp hướng dẫn, góp ý và giúp đỡ em hồn thành đề tài này. Bên cạnh đó em cũng chân thành cảm ơn các bạn cùng lớp đã có sự chia sẻ, giúp đỡ hỗ trợ trong suốt quá trình vừa qua.

Lời cuối cùng, em xin gửi lời biết ơn cao cả tới gia đình. Họ là nguồn động viên tinh thần và cổ vũ lớn lao, động lực, cảm hứng giúp em thành công trong công việc và cuộc sống.

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>MỤC LỤC </b>

Phần 1. MỞ ĐẦU ... 1

1.1. LÝ DO CHỌN ĐỀ TÀI ... 1

1.2. MỤC TIÊU CỦA ĐỀ TÀI ... 2

1.3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU ... 3

PHẦN 2. NỘI DUNG NGHIÊN CỨU ... 5

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ CÂN BẰNG TẢI TRONG KIẾN TRÚC MẠNG PHÂN TÁN ... 5

1.1. ĐẶT VẤN ĐỀ ... 5

1.2. GIỚI THIỆU HỆ PHÂN TÁN ... 5

1.2.1. Khái niệm hệ phân tán ... 5

1.2.2. Đặc điểm của hệ phân tán ... 6

1.2.3. Cơ sở và kiến trúc của hệ phân tán ... 9

1.3. GIỚI THIỆU CÂN BẰNG TẢI ... 10

1.3.1. Khái niệm cân bằng tải ... 10

1.3.2. Lợi ích việc cân bằng tải ... 10

1.4. VÌ SAO PHẢI XÂY DỰNG HỆ THỐNG CÂN BẰNG TẢI ... 10

1.5. KỸ THUẬT CÂN BẰNG TẢI ... 14

1.5.1. Kiểm tra trạng thái server ... 14

1.5.2. Lựa chọn server tốt nhất ... 15

1.5.3. Kỹ thuật Session Persistence ... 15

1.5.4. Cookies ... 16

1.5.5. Cân bằng tải máy chủ với phần mềm... 18

1.5.6. Cân bằng tải với proxy ... 18

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

1.5.7. Cân bằng tải với thiết bị kết nối ... 19

1.5.8. Xử lý các yêu cầu kết nối tập trung ... 19

1.6. CÁC THÀNH PHẦN CỦA SLB (SERVER LOAD BALANCING) ... 20

1.6.1. Chức năng của các thành phần trong SLB ... 20

1.6.2. Hoạt động của hệ thống cân bằng tải server ... 22

1.6.3. Kiến trúc hệ thống cân bằng tải ... 23

1.6.4. Phân phối lưu lượng trong SLB ... 24

1.6.5. Tư tưởng thuật toán cân bằng tải... 26

1.6.6. Quá trình hội tụ SLB ... 28

1.6.7. Hiệu suất của SLB ... 28

CHƯƠNG 2: MỘT SỐ THUẬT TOÁN CÂN BẰNG TẢI PHỔ BIẾN VÀ ỨNG DỤNG ĐƯỢC TRIỂN KHAI HIỆN NAY ... 31

2.1. THUẬT TOÁN RANDOM (NGẪU NHIÊN)... 31

2.2. THUẬT TOÁN ROUND ROBIN (RR) ... 31

2.3. THUẬT TOÁN WEIGHTED ROUND ROBIN (WRR) ... 32

2.4. THUẬT TOÁN DYNAMIC ROUND ROBIN (DRR) ... 33

2.5. THUẬT TOÁN LEAST CONNECTION (LC) ... 33

2.6. THUẬT TOÁN WEIGHTED LEAST CONNECTION ... 34

2.7. THUẬT TOÁN FASTEST ... 34

2.8. THUẬT TOÁN LEAST RESPONSE TIME ... 35

2.9. MỘT SỐ ỨNG DỤNG CỦA THUẬT TOÁN ĐÃ ĐƯỢC TRIỂN KHAI HIỆN NAY ... 35

2.9.1. Round Robin DNS ... 35

2.9.2. Công nghệ DNS Anycat ... 36

2.9.3. Sử dụng thiết bị cân bằng tải chuyên dụng ... 37

2.9.4. Network load balancing ... 37

CHƯƠNG 3: MỘT SỐ ỨNG DỤNG GIẢI PHÁP TRONG CÂN BẰNG TẢI40 3.1. TÌM HIỂU CÁC GIẢI PHÁP SỬ DỤNG TRONG CÂN BẰNG TẢI... 40

3.1.1. Web Server ... 40

3.1.1.1. Tổng quan về Web Server ... 40

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

3.1.1.2. Lý thuyết xây dựng bộ cân bằng tải cho Web Server ... 41

3.1.1.3. Phương pháp cân bằng tải ... 41

3.1.2. File Server ... 47

3.1.2.1. Tổng quan về File Server ... 47

3.1.2.2. Triển khai File Server ... 47

5.1. Cài đặt Vmware Workstation ... 72

5.2. Cài đặt Windows Server ... 75

 

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT </b>

SLB Server Load Blancing Cân bằng tải máy chủ DNS Domain Name System Hệ thống tên miền

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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>DANH MỤC HÌNH VẼ </b>

<b>Hình 1. 1: Mơ hình kiến trúc hệ phân tán ... 9 </b>

<b>Hình 1.2: So sánh hệ thống cân bằng tải server và hệ thống thường. ... 13 </b>

<b>Hình 1. 3: Hệ thống Server Load Balancing đơn giản ... 22 </b>

<b>Hình 1. 4: Hành trình của một gói dữ liệu. ... 25 </b>

<b>Hình 2. 1: Cân bằng tải sử dụng Round Robin DNS ... 36 </b>

<b>Hình 2. 2: Thiết bị cân bằng tải chuyên dụng ... 37 </b>

<b>Hình 2.3: Topo cân bằng tải của Exchange 2007 Client Access Server ... 38 </b>

<b>Hình 3. 1: Hoạt động luân chuyển DNS ... 42 </b>

<b>Hình 3. 2: Cấu trúc thư mục thật sự của một hệ thống DFS ... 48 </b>

<b>Hình 3. 3: Mơ hình DFS Namespace ... 50 </b>

<b>Hình 3. 4: Mơ hình triển khai DFS Replication. ... 51 </b>

<b>Hình 3. 5: Mơ hình triển khai File Server ... 52 </b>

<b>Hình 3. 6: Mơ hình demo ... 52 </b>

<b>Hình 3. 7:Giao diện cài đặt AD ... 53 </b>

<b>Hình 3. 8:Giao diện cài đặt AD ... 53 </b>

<b>Hình 3. 9: Giao diện cài đặt AD ... 54 </b>

<b>Hình 3. 10:Giao diện cài đặt AD ... 54 </b>

<b>Hình 3. 11:Giao diện cài đặt AD ... 55 </b>

<b>Hình 3. 12: Giao diện cài đặt DNS ... 56 </b>

<b>Hình 3. 13:Giao diện cài đặt DNS ... 56 </b>

<b>Hình 3. 14: Giao diện cài đặt DNS ... 57 </b>

<b>Hình 3. 15:Giao diện cài đặt DNS ... 57 </b>

<b>Hình 3. 16: Giao diện cài đặt DNS ... 58 </b>

<b>Hình 3. 17: Giao diện cài đặt DNS ... 58 </b>

<b>Hình 3. 18: Giao diện cài đặt IIS ... 59 </b>

<b>Hình 3. 19: Giao diện cài đặt IIS ... 60 </b>

<b>Hình 3. 20:Giao diện cài đặt IIS ... 60 </b>

<b>Hình 3. 21: Giao diện cài đặt IIS ... 61 </b>

<b>Hình 3. 22: Giao diện cấu hình dịch vụ Web Service ... 61 </b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Hình 3. 23: Giao diện cấu hình dịch vụ Web Service ... 62 </b>

<b>Hình 3. 24:Giao diện cấu hình dịch vụ Web Service ... 62 </b>

<b>Hình 3. 25:Giao diện cấu hình dịch vụ Web Service ... 63 </b>

<b>Hình 3. 26:Giao diện cấu hình dịch vụ Web Service ... 63 </b>

<b>Hình 3. 27:Giao diện cấu hình dịch vụ Web Service ... 64 </b>

<b>Hình 3. 28:Giao diện cấu hình DNS ... 64 </b>

<b>Hình 3. 29:Giao diện cấu hình DNS ... 65 </b>

<b>Hình 3. 30:Giao diện cấu hình DNS ... 65 </b>

<b>Hình 3. 31:Giao diện cấu hình DNS ... 66 </b>

<b>Hình 3. 32:Giao diện cấu hình DNS ... 66 </b>

<b>Hình 3. 33:Giao diện cấu hình DNS ... 67 </b>

<b>Hình 3. 34: Giao diện kết quả demo truy cập trang Web Server 1 ... 67 </b>

<b>Hình 3. 35:Giao diện kết quả demo truy cập trang Web Server 2 ... 68 </b>

    

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>Phần 1. MỞ ĐẦU 1.1. LÝ DO CHỌN ĐỀ TÀI </b>

Trong thời đại ngày nay, khi công nghệ đang dần chiếm ưu thế và tạo ra nhiều giá trị cho công việc của con người thì việc phát triển các hệ thống cơng nghệ trong tất cả các tổ chức là việc làm cần thiết. Cùng với đó thì cơng nghệ mạng và các hệ thống máy chủ ngày nay đã có những bước phát triển vượt bậc.

Nhờ đó đáp ứng được các ứng dụng thương mại rộng lớn như các giao dịch tài chính, hệ thống cơ sở dữ liệu, hệ thống Web Server, hệ thống Mail Server, hệ thống File Server và các ứng dụng truyền media. Trong các ứng dụng đòi hỏi phải sử dụng tần suất cao và hoạt động liên tục. Do vậy, hệ thống mạng phải có khả năng mở rộng tối ưu để đáp ứng được một lượng lớn các yêu cầu ngày càng tăng của người dùng mà không gây ra bất kỳ một độ trễ không mong muốn nào.

Một trong những xu hướng lựa chọn hệ thống mạng ngày nay là phân tán sự tính tốn giữa các hệ thống vật lý khác nhau. Nó có thể khác nhau về quy mô và chức năng. Hệ thống bao gồm các máy trạm, máy tính mini và hệ thống máy tính đa năng lớn. Hệ thống này được gọi là các nút.

Trong thực tế, một xu hướng kỹ thuật mới ra đời xu hướng phân tán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thơng tin. Song để khai thác có hiệu quả toàn hệ thống, vấn đề quan trọng hàng đầu cần phải tính đến là các tài ngun nói chung, đặc biệt tài ngun thơng tin nói riêng và chiến lược khai thác, sử dụng chúng một cách tối ưu. Hệ tin học phân tán với những nguyên lý, phương pháp của nó đang được nhiều người quan tâm.

Sự nghiên cứu về hệ thống mạng phân tán bao gồm nhiều lĩnh vực như: mạng truyền thông, hệ điều hành phân tán, cơ sở dữ liệu phân tán, lý thuyết về các hệ thống mạng song song và phân tán, cấu trúc mạng, độ tin cậy và khả năng chịu lỗi, hệ thống phân tán trong thời gian thực, khả năng gỡ lỗi phân tán và các ứng dụng phân tán. Như vậy, hệ phân tán mạng bao gồm mạng vật lý, các nút và các phần mềm điều khiển.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Có 5 lý do để xây dựng một hệ thống mạng phân tán, đó là: chia sẻ tài nguyên, cải tiến sự tối ưu, độ tin cậy, khả năng truyền thông và khả năng mở rộng. Một trong những vấn đề thú vị nhất trong hệ thống mạng phân tán là cải tiến sự tối ưu của hệ thống thông qua sự cân bằng tải giữa các nút trong hệ thống máy chủ.

Bên cạnh đó sự bùng nổ của các dịch vụ web trong những năm gần đây khiến số lượng người truy cập vào mạng internet ngày càng tăng mạnh, đặc biệt là các website mạng xã hội và các website chia sẻ video trực tuyến. Với nhiều lượt truy cập mỗi ngày, các website này đòi hỏi phải có một hệ thống máy chủ cực kỳ mạnh mẽ. Một hệ thống hoạt động tốt sẽ khiến người dùng hài lòng, sau một thời gian hoạt động số lượng người dùng sẽ tăng lên, máy chủ của hệ thống sẽ quá tải, dẫn đến yêu cầu nâng cấp. Đặc biệt sau khi nâng cấp thì thời gian vẫn trở lại như cũ. Vịng tuần hoàn này dẫn đến cần phải xây dựng một hệ thống cân bằng tải trong máy chủ nói chung và Web Server nói riêng.

Một hệ thống website có nhiều Web Server đặt ở nhiều nơi, cân bằng tải cho hệ thống này nghĩa là làm cách nào để các Web Server không bị quá tải, luôn đáp ứng được nhu cầu người dùng trong thời gian ngắn nhất. Vì vậy nhu cầu cân bằng tải là vơ cùng cần thiết và là sống còn đối với các nhà mạng.

Từ những yếu tố trên, cùng với sự phân tích cơng nghệ (phần cứng, phần mềm), chi phí bản quyền, kỹ năng vận hành cho người sử dụng. Em đã mạnh dạn

<i>chọn đề tài “Tìm hiểu và triển khai công nghệ cân bằng tải trên hệ thống máy chủ” </i>

làm đề tài nghiên cứu của mình. Đây là một vấn đề khá quan trọng trong việc thiết kế các hệ thống mạng, các trung tâm tính tốn hiệu năng cao và các trung tâm dữ liệu cho các ứng dụng lớn. Nó giúp phần thúc đẩy trong việc phát triển của công nghệ mạng.

<b>1.2. MỤC TIÊU CỦA ĐỀ TÀI </b>

<i>Với đề tài: “Tìm hiểu và triển khai cơng nghệ cân bằng tải trên hệ thống máy chủ”, tôi sẽ nghiên cứu sâu về công nghệ cân bằng tải và biết được sự cần </i>

thiết của nó cho hệ thống mạng. Bên cạnh đó xây dựng một chương trình demo minh họa cho kỹ thuật cân bằng tải.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>1.3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1.3.1. Đối tượng </b>

Một số thuật toán cân bằng tải và ứng dụng vào việc cân bằng tải các dịch vụ mạng trên hệ điều hành Windows Server 2003.

Sử dụng phần mềm Vmware Workstation để mô phỏng cho việc cài đặt hệ thống máy chủ, triển khai các dịch vụ mạng và kỹ thuật cân bằng tải. Minh hoạ kỹ thuật cân bằng tải trên dịch vụ Web Server.

<b>1.3.2. Phạm vi nghiên cứu </b>

Bài báo cáo này tập trung vào tìm hiểu và nghiên cứu cân bằng tải trên hệ thống máy chủ và xây dựng việc ứng dụng của cân bằng tải, điển hình trong Web Server.

<b>1.4. PHƯƠNG PHÁP NGHIÊN CỨU </b>

Cơ bản sử dụng phương pháp nghiên cứu tài liệu (sách, báo, các mục tiêu trên Internet có liên quan đến đề tài) để thu thập thơng tin nhằm phân tích, hệ thống lý thuyết liên quan đến vấn đề cân bằng tải và các giải pháp của nó. Bên

<b>cạnh đó cịn tìm hiểu thêm các ứng dụng trong cân bằng tải như Web Server. </b>

Phương pháp thực nghiệm: dựa vào lý thuyết để áp dụng vào triển khai xây dự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 lấy ý kiến chuyên gia: nhờ sự giúp đỡ của các thầy cơ giáo có kiến thức chun mơn để nhận xét, đánh giá, đóng góp ý kiến cho đề tài hoàn thiện hơn.

<b>1.5. LỊCH SỬ NGHIÊN CỨU </b>

Với vấn đề về cân bằng tải đang được rất nhiều tác giả phân tích nghiên cứu theo nhiều hướng khác nhau và được các tác giả đã nghiên cứu những trước

<b>đây như: </b>

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

<b>- Công nghệ cân bằng tải Server. </b>

- Cân bằng tải cho các hệ Web Server lớn và đảm bảo khả năng mở rộng.

<small> </small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>1.6. ĐÓNG GĨP CỦA ĐỀ TÀI </b>

Đề tài nhằm trình bày những kiến thức cơ bản và tổng quan về cân bằng tải, các giải pháp sử dụng trong cân bằng tải. Nó góp phần nào trong việc giải quyết vấn đề quá tải giữa các máy trong một hệ thống.

Kết quả nghiên cứu đề tài này có giá trị thực tiễn, đảm bảo rằng việc cân bằng tải giữa các máy chủ khi có nhiều máy con truy cập cùng một lúc.

<b>1.7. CẤU TRÚC ĐỀ TÀI </b>

<b>Đề tài được cấu trúc bao gồm các chương sau </b>

Chương 1: Cơ sở lý thuyết về cân bằng tải trong kiến trúc mạng phân tán. Chương 2: Một số thuật toán cân bằng tải phổ biến và ứng dụng được triển khai hiện nay.

Chương 3: Một số ứng dụng giải pháp trong cân bằng tải.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>PHẦN 2. NỘI DUNG NGHIÊN CỨU </b>

<b>CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ CÂN BẰNG TẢI TRONG KIẾN TRÚC MẠNG PHÂN TÁN </b>

<b>1.1. ĐẶT VẤN ĐỀ </b>

Công nghệ vốn dĩ là một món ăn tinh thần vơ cùng quan trọng đối với con người trong xã hội hiện đại. Ngày nay, với sự bùng nổ mạnh mẽ của công nghệ con người gần như đã ứng dụng hầu hết nó trong mọi cơng việc. Một cơng ty có thể có nhiều cở sở dữ liệu, nhiều máy chủ và nhiều máy con muốn chia sẻ tài ngun với nhau. Khi hệ thống có nhiều server thì vấn đề đặt ra cho người dùng truy cập vào website, yêu cầu người dùng đó sẽ chuyển đến server nào xử lý, lấy dữ liệu ở database - server nào? Làm thế nào các server trong hệ thống nhận được lượng tải phù hợp với server đó, đảm bảo các server không bị quá tải? Làm sao để hệ thống đáp ứng được số người dùng cao nhất? Đó chính là bài tốn cân bằng tải cho các server, cũng chính phần quan trọng nhất giữ hệ thống hoạt động ổn định, là nhân tố quyết định khả năng đáp ứng người dùng của hệ thống. Thuật ngữ cân bằng tải không chỉ dùng cho các server mà còn còn dùng hầu hết trong các thành phần kiến trúc khác.

<i>Bài toán đặt ra: “làm thế nào để cân bằng cho các cụm server khi các ứng dụng thường bị đe dọa bởi quá tải mạng cũng như sự cố xảy ra trên các máy chủ và các ứng dụng?” Chúng ta đều biết rằng việc sử dụng tài nguyên cân bằng </i>

sẽ dẫn đến các nguồn lực hiệu suất thấp thì đang quá tải với các yêu cầu, trong

<i>khi các nguồn lực hiệu suất cao vẫn nhàn rỗi. “Làm sao để giữa người dùng và hệ thống server, nhận yêu cầu từ phía người dùng sau đó chuyển đến các server phù hợp?” Qua đó để giải quyết bài tốn đặt ra một cách tối ưu nhất chúng ta </i>

phải tìm hiểu việc cân bằng tải như thế nào là hợp lý.

<b>1.2. GIỚI THIỆU HỆ PHÂN TÁN 1.2.1. Khái niệm hệ phân tán </b>

Hệ phân tán là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau và được liên kết với nhau thơng qua phương tiện viễn thông dưới sự điều khiển thống nhất của một hệ điều hành.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Hệ phân tán bao gồm 4 thực thể: phần cứng, phần mềm, dữ liệu và môi trường truyền thơng.

Vai trị, ý nghĩa:

Hệ tin học phân tán đã tạo ra bước ngoặt vĩ đại so với hệ tập trung và hệ khách – chủ.

Việc tính tốn phân tán về cơ bản giống với việc tính toán của hệ khách chủ trên phạm vi rộng lớn. Dữ liệu được chứa trên nhiều máy chủ ở tại nhiều vị trí địa lý khác nhau kết nối thông qua mạng diện rộng.

Hệ phân tán là phân tán hóa q trình xử lý thơng tin và thực hiện các việc đó ở các trạm xa nhau. Đó là cơ sở căn bản cho việc xây dựng các ứng dụng lớn như thương mại điện tử, chính phủ điện tử,…

Ví dụ như: hệ thống rút tiền ATM, hệ thống bán vé máy bay, hệ thống bán vé xe,…

<b>1.2.2. Đặc điểm của hệ phân tán </b>

Hệ phân tán có các đặc điểm cơ bản là: tính chia sẻ tài nguyên, tính mở, khả năng song song, khả năng mở rộng, khả năng thứ lỗi, tính trong suốt.

 Tính chia sẻ tài nguyên

- Thuật ngữ tài nguyên được dùng để chỉ tất cả mọi thứ có thể được chia sẻ trong hệ phân tán, bao gồm từ các thiết bị phần cứng (đĩa, máy in,...) tới các đối tượng (file, các cửa sổ, CSDL và các đối tượng dữ liệu khác).

- Trong hệ phân tán, chia sẻ tài nguyên được hiểu là tài nguyên của hệ thống được các tiến trình chia sẻ mà khơng bị hạn chế bởi tình trạng phân tán tài nguyên theo vị trí địa lý.

- Việc chia sẻ tài nguyên trên hệ phân tán được thực hiện thông qua truyền thông. Để chia sẻ tài nguyên một cách hiệu quả thì mỗi tài nguyên cần phải được quản lý bởi một chương trình có giao diện truyền thông, các tài nguyên có thể truy cập, cập nhật được một cách tin cậy và nhất quán.

 Tính mở

- Tính mở của một hệ thống máy tính là dễ dàng mở rộng phần cứng (thiết bị ngoại vi, bộ nhớ, các giao diện truyền thông,...) và phần mềm (các mơ hình

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

HĐH, các giao thức truyền thông, các dịch vụ chia sẻ tài nguyên,...) của nó. - Tính mở của hệ phân tán được thể hiện là hệ thống có thể được tạo nên từ nhiều loại phần cứng và phần mềm của nhiều nhà cung cấp khác nhau với điều kiện các thành phần này phải theo một tiêu chuẩn chung (liên quan đến HĐH là tính đa dạng tài nguyên; liên quan đến nhà cung cấp tài nguyên là tính chuẩn).

- Tính mở của hệ phân tán được xem xét theo mức độ bổ sung thêm các dịch vụ chia sẻ tài nguyên mà không phá hỏng hay nhân đơi các dịch vụ đang tồn tại. Tính mở được hoàn thiện bằng cách xác định hay phân định rõ các giao diện chính của hệ phân tán và làm cho nó tương thích với các nhà phát triển phần mềm.

- Tính mở của HĐH phân tán được thi hành dựa trên việc cung cấp cơ chế truyền thơng giữa các q trình và cơng khai các giao diện được dùng để truy cập tài nguyên chung.

 Khả năng song song

- Hệ phân tán hoạt động trên một mạng truyền thơng có nhiều máy tính, mỗi máy tính có thể có một hoặc nhiều CPU. Trong cùng một thời điểm nếu có từ hai tiến trình trở lên cùng tồn tại, ta nói rằng chúng được thực hiện đồng thời. Việc thực hiện các tiến trình đồng thời theo cơ chế phân chia thời gian (một CPU) hay song song (nhiều CPU).

- Khả năng làm việc song song trong hệ phân tán được thi hành do hai tình huống

Nhiều người sử dụng đồng thời đưa ra các lệnh hay tương tác với chương trình ứng dụng (đồng thời xuất hiện nhiều tiến trình khách).

Nhiều tiến trình phục vụ chạy đồng thời, mỗi tiến trình đáp ứng yêu cầu của một trong số các tiến trình khách.

- Từ điều kiện đa xử lý, khả năng song song của hệ thống phân tán trở thành một thuộc tính của nó.

 Khả năng mở rộng

- Hệ phân tán có khả năng hoạt động tốt và hiệu quả ở nhiều mức khác

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

nhau. Một hệ phân tán nhỏ nhất có thể hoạt động chỉ cần hai trạm làm việc và một phục vụ file. Các hệ lớn có thể bao gồm hàng nghìn máy tính, nhiều phục vụ file và phục vụ máy in,...

- Khả năng mở rộng của một hệ phân tán được đặc trưng bởi tính khơng thay đổi phần mềm hệ thống và phần mềm ứng dụng khi hệ thống được mở rộng.

- Yêu cầu mở rộng không chỉ là mở rộng về phần cứng hay về mạng trên đó hệ thống bao trùm mà cịn cần phải được phân tích, đánh giá trên tất cả các khía cạnh khi thiết kế hệ phân tán.

 Khả năng thứ lỗi

- Khả năng thứ lỗi thể hiện việc hệ thống không bị sụp đổ bởi các sự cố do các lỗi thành phần cả phần cứng lẫn phần mềm trong một bộ phận nào đó.

- Việc thiết kế khả năng chịu lỗi của các hệ thống máy tính dựa trên hai giải pháp sau đây

Dùng khả năng thay thế để đảm bảo việc hoạt động liên tục và hiệu quả. Dùng các chương trình đảm bảo cơ chế phục hồi dữ liệu khi xảy ra sự cố.  Tính trong suốt

Tính trong suốt là tính chất căn bản của hệ phân tán. Tính trong suốt của hệ phân tán được hiểu như là sự che khuất đi các thành phần riêng biệt của hệ thống máy tính (phần cứng và phần mềm) đối với người sử dụng và những người lập trình ứng dụng. Người sử dụng có quyền truy cập đến dữ liệu đặt tại một điểm dữ liệu ở xa một cách tự động nhờ hệ thống mà không cần biết đến sự phân tán của tất cả dữ liệu trên mạng. Hệ thống tạo cho người dùng cảm giác là dữ liệu được coi như đặt tại máy tính cục bộ của mình.

 

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>1.2.3. Cơ sở và kiến trúc của hệ phân tán </b>

Kiến trúc của hệ phân tán

<i><b>Hình 1. 1: Mơ hình kiến trúc hệ phân tán </b></i>

Hệ phân tán được cấu tạo bởi các mạng cục bộ A và B tại hai thành phố cách xa nhau, ba máy được nối mạng theo kiểu Intranet ở góc thấp phải của hình vẽ (hoạt động theo các tiêu chuẩn của mạng diện rộng) và các máy đơn. Các server kết nối mạng trực tiếp với mạng D. Các máy client ở mạng C có thể truy cập qua các mạng con ở mạng A, B. Các thành phần này được nối với nhau thông qua hệ thống viễn thông.

Hệ thống các CSDL chứa những thông tin thành phần cần thiết nằm trong thiết bị lưu trữ của các bộ phận và mang tính cục bộ của chính các bộ phận quản lý. Một điều cần phải lưu ý là tất cả các CSDL trong hệ đều được kết nối với nhau thông qua hệ thống viễn thông.

Nhằm đảm bảo hoạt động của hệ trong điều kiện đó, các hệ thống được kết nối với nhau phải thỏa mãn hai điều kiện cơ bản sau đây:

- Bất kỳ một hệ thống thành phần nào (hệ cục bộ) đều có thể liên lạc thơng suốt với hệ thống thành phần khác.

- Mỗi một hệ cục bộ được đặc trưng bằng một tên duy nhất và tên này có thể được nhận biết bởi các hệ thống viễn thông.

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>1.3. GIỚI THIỆU CÂN BẰNG TẢI 1.3.1. Khái niệm cân bằng tải </b>

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ính hoặ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ông lượng, giảm thời gian đáp ứng và tránh tình trạng quá tải trên máy chủ. Là cơ chế định tuyến các gói tin qua các đường có metric bằng nhau. Cân bằng tải dùng để chia sẻ dữ liệu truyền trên mạng giúp cho việc truyền tải thông suốt, không bị nghẽn mạng do quá tải hay do một sự cố nào đó. Hoặc khi có một máy server nào đó bị trục trặc thì sẽ có máy server khác thay thế để giúp nhận dữ liệu thay thế cho server bị trục trặc đó, giúp cho việc truyền tải khơng bị ngừng do máy server bị lỗi đó gây ra.

<b>1.3.2. Lợi ích việc cân bằng tải </b>

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.

Tăng độ tin cậy và khả năng dự phòng cho hệ thống: sử dụng cân bằng tải giúp tăng tính sẵn sàng cao cho hệ thống, đồng thời đảm bảo cho người dùng không bị gián đoạn dịch vụ khi xảy ra sự cố lỗi tại một điểm cung cấp dịch vụ.

Tăng tính bảo mật cho hệ thống: thông thường khi người dùng gửi yêu cầu dịch vụ đến hệ thống, yêu cầu đó sẽ được xử lý trên bộ cân bằng tải, sau đó thành phần cân bằng tải mới chuyển tiếp các yêu cầu cho các máy chủ bên trong. Quá trình trả lời cho khách hàng cũng thông qua thành phần cân bằng tải, vì vậy mà người dùng khơng thể biết được chính xác các máy chủ bên trong cũng như phương pháp phân tải được sử dụng. Bằng cách này có thể ngăn chặn người dùng giao tiếp trực tiếp với các máy chủ, ẩn các thông tin và cấu trúc mạng nội bộ, ngăn ngừa các cuộc tấn công trên mạng hoặc các dịch vụ không liên quan đang hoạt động trên các cổng khác.

<b>1.4. VÌ SAO PHẢI XÂY DỰNG HỆ THỐNG CÂN BẰNG TẢI </b>

Trong thời đại bùng nổ của công nghệ thông tin hiện nay, mạng máy tính đóng vai trị ngày càng quan trọng hơn trong hoạt động của các doanh nghiệp, tổ chức cũng như các cơ quan nhà nước. Thậm chí ở một số đơn vị, chẳng hạn như

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

các công ty hàng không hoặc ngân hàng lớn, mạng máy tính có thể ví như hệ thần kinh điều khiển hoạt động của toàn 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 trong những cơ quan này có thể làm tê liệt các hoạt động chính của đơn vị và thiệt hại khó có thể lường trước được.

Các doanh nghiệp đang hướng tới việc dùng máy chủ ảo trong xã hội ngày nay mục đích để có một hệ thống máy lưu trữ và xử lý thông tin với tốc độ cao và độ bảo mật lớn:

Việc sở hữu một server sẽ giúp cho doanh nghiệp chủ động trong việc quản lý và xử lý thông tin, không phụ thuộc vào bên cung cấp. Quan trọng hơn là khả năng quản lý thông tin tối ưu, tránh được nguy cơ mất cắp dữ liệu, hạn chế được các cuộc tấn công qua mạng, virus backdoor,…

Nhưng không nhiều doanh nghiệp ý thức được tầm quan trọng thực sự của một server. Để tiết kiệm hiện nay các doanh nghiệp, nhất là doanh nghiệp vừa và nhỏ vẫn đang sử dụng máy tính để bàn thông thường trong các hoạt động. Tuy nhiên, khi doanh nghiệp phát triển với nhiều nhân viên hơn, chuỗi cung ứng trở nên phức tạp hơn, doanh nghiệp cần kiểm soát các dữ liệu và lưu trữ để các hoạt động kinh doanh không bị gián đoạn, hệ thống máy tính để bàn bắt đầu bộc lộ các yếu điểm và không đáp ứng được nhu cầu hoạt động của doanh nghiệp.

Bên cạnh đó, hầu hết các ứng dụng trong doanh nghiệp hiện nay thường được viết để có thể chạy trong hệ thống có kết nối mạng. Tuy nhiên, một máy tính bình thường khó có khả năng và sức mạnh để xử lý khối lượng thông tin lớn trong một thời gian ngắn. Vì vậy, một máy chủ có tính ổn định và tốc độ xử lý cao sẽ mang lại thuận lợi cho hoạt động của doanh nghiệp.

Ngồi ra các doanh nghiệp cịn áp dụng bài toán cân bằng tải nhằm:

- Chặn lưu lượng mạng (chẳng hạn 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, nó sẽ là đối tượng đầu tiên nhận các yêu cầu trước khi chia tải. Do đó, chức năng này được coi như là thiết yếu của một 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ủ

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

nào nhận các yêu cầu đó. Đây là chức năng chủ chốt của cân bằng tải. Tùy vào thuật tốn áp dụng mà sẽ có từng cách thức khác nhau để phân chia cụ thể cho mỗi máy chủ.

- Duy trì một cơ chế ở những máy chủ đang sẵn sàng. Giữa cân bằng tải và máy chủ ln phải có liên lạc với nhau để biết được máy chủ đó cịn “sống” hay khơng.

- Cung cấp khả năng dự phịng bằng cách sử dụng nhiều hơn một kịch bản fail- over.

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

Chúng ta đều biết các máy chủ là trái tim của của mạng máy tính, nếu máy chủ mạng hỏng, hoạt động của hệ thống sẽ bị ngưng trệ. Điều đáng tiếc là dù các hãng sản xuất đã cố gắng làm mọi cách để nâng cao chất lượng của thiết bị, nhưng những hỏng hóc đối với các thiết bị mạng nói chung và các máy chủ nói riêng là điều không thể tránh khỏi.

Do vậy, 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ốt ngay cả khi có sự cố xảy ra đối với máy chủ mạng. Việc lựa chọn một server đơn lẻ có cấu hình cực mạnh để đáp ứng nhu cầu này sẽ kéo theo chi phí đầu tư rất lớn và không giải quyết được các vấn đề đặt ra của các 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.

Giải pháp cân bằng tải có rất nhiều hãng đưa ra giải pháp cân bằng tải như Cisco, Coyote Point, Sun Microsystems,... Với rất nhiều tính nǎng phong phú. Tuy nhiên, về cơ bản 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. Một kỹ thuật cân bằng tải điển hình là RRDNS (Round Robin DNS). Với giải pháp này, nếu một server trong nhóm bị lỗi, RRDNS sẽ vẫn tiếp tục gửi tải cho server đó cho đến khi người quản trị mạng phát hiện ra lỗi và tách server nà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ụ. Sau những phát triển, từ các thuật toán cân bằng tải tĩnh như

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

Round Robin, Weighted Round Robin đến các thuật toán cân bằng tải động như Least Connection, Weighted Least Connection, Optimized Weighted Round Robin và Optimized Weighted Least Connection, kỹ thuật cân bằng tải hiện nay nhờ sự kết hợp các thuật toán trên ngày càng trở nên hoàn thiện mặc dù nhược điểm vốn có như tạo điểm lỗi đơn và vấn đề nút cổ chai do sử dụng bộ điều phối tập trung vẫn cịn.

Ngồi khả nǎng áp dụng với Web Server, kỹ thuật này cịn có thể áp dụng với các hệ server ứng dụng khác. SLB không chỉ làm nhiệm vụ phân phối tải cho các server mà còn cung cấp cơ chế đảm bảo hệ thống server luôn khả dụng trước các client. SLB khơng có 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ờ đó 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.

So sánh hệ thống cân bằng tải với hệ thống thơng thường.

<i><b>Hình 1.2: So sánh hệ thống cân bằng tải server và hệ thống thường. </b></i>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

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

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

Tính sẵn sàng cao do hệ thống dùng nhiều server. Vì vậy hệ thống có tính dự phịng.

Tính quản lý: theo dõi và quản lý tập trung hệ thống server, bảo dưỡng hệ thống server mà không cần tắt các 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àm việc quá tải trong khi 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, 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,

<b>1.5. KỸ THUẬT CÂN BẰNG TẢI </b>

Như chúng ta đã biết, 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 cứng hoặc phần mềm được cài đặt trên 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 bế tắc, cần thiết 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-standby.

<b>1.5.1. Kiểm tra trạng thái server </b>

Để chọn được server phù hợp để gửi request, bộ cân bằng tải cần phải biết được server 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ạng thá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ị nghĩ là dùng được. Kỹ thuật kiểm tra này thường được gọi là "health checks".

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

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ối TCP, 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ác yê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ầu HTTP 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 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à rất thú vị. Một số test đôi khi phải cần truy xuất dữ liệu database nhằm đảm bảo rằng tồn bộ q 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ựa chọn server. Khoảng thời gian giữa 2 lần test liên tiếp phải đủ dài để không tố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ất của kỹ thuật cân bằng tải, nên 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ộ.

Phần mềm cân bằng tải có khả năng cung cấp, do đó nó đạt được độ linh hoạt rất cao. Thêm nữa, nếu như một bài 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>1.5.2. Lựa chọn server tốt nhất </b>

Phương pháp dễ nhất và thường được sử dụng nhất trong các hệ thống nhỏ là Round Robin, các server được lựa chọn quay vòng, tuy nhiên phươ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 2 servers khác nhau, thông tin giữa 2 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ác phiên chạy.

<b>1.5.3. Kỹ thuật Session Persistence </b>

Làm sao để giữ cho các yêu cầu của một người dù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

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

người dùng này cần phải được chuyển vào cùng một server. Nếu server bị chết, hoặc ngừng để bảo trì, cần phải có cơ chế để chuyển session của người dù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ụng một respone HTTP 302 hay tạo ra liên kết giữa người dùng - server. Tuy vậy 2 phươ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ôn ln 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ùng cá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.

<b>1.5.4. Cookies </b>

Cookies 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.

Một cookies được định nghĩa bằng cặp tên=giá trị (name=value). Trong thiết kế của bộ cân bằng tải, có 3 cách để sử dụng cookies: cookie chỉ đọc Read), bộ cân bằng tải chèn cookie nhằm chứng thực server (Cookie-Insert) và ghi cookie (Cookie-Rewrite).

 Cookie-Read

Khi người dùng lần đầu tiên gửi u cầu đến server, do khơng có cookie trong yêu cầu, nên nó sẽ được phân tải đến server RS1. Server RS1 sẽ tạo và đặt cookie server=1 vào trong dữ liệu trả về cho người dùng. Trình duyệt của người dùng sẽ nhận trả về này, đọc thấy cookies và lưu trữ nó vào trong đĩa cứng. Sau đó người dùng có thể đóng trình duyệt hoặc ngắt kết nối (giả sử rằng trình duyệt của người dùng khơng tự động xóa cookie sau khi đóng). Một thời gian sau ngườ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ết lập, trình duyệt người dùng sẽ gửi cookie server=1 như là một phần của yêu cầu HTTP. Bộ cân bằng tải sẽ đọc được cookie này và do đó sẽ chuyển yêu cầu của người dùng vào server RS1. Như vậy người dùng sẽ luôn được kết nối vào server 1 cho đến khi nào cookie 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.

 

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>Ưu điểm: khơng địi hỏi bộ cân bằng tải phải làm việc nhiều, chỉ cần đọc </b>

cookie được tạo ra từ phía web-server và từ yêu cầu của người dùng.

<b>Nhược điểm: ứng dụng ở server phải tạo ra một cookie, điều này khơng </b>

khó khăn lắm, nhưng nó sẽ khiến nhà phát triển ứng dụng phả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ằng tải.

 Cookie-Insert

Tương tự như cookie-read, nhưng ở đây khi server trả về dữ liệu cho người dùng, bộ cân bằng tải sẽ xem là server nào trả về dữ liệu, và chèn vào đó một cookie chứa thông tin về server này. Khi người dùng kết nối lần tiếp theo, bộ cân bằng tải sẽ đọc thông tin về cookie này, và chuyển hướng yêu cầu của người dùng vào đúng server RS1.

<b>Ưu điểm: nó "trong suốt" đối với ứng dụng được cài đặt trên server, hay </b>

nói cách khác ứng dụng server sẽ không cần phải tạo ra một cookie hay không cần quan tâm xem cookie là gì. Khi 1 server được thêm mới hoặc xóa bỏ, hoặc khi file cấu hình của bộ cân bằng tải bị thay đổi, người quản trị hệ thống sẽ không cần phải lo lắng về việc cập nhập file cấu hình cho server.

<b>Nhược điểm: có thể gây ra quá tải ở bộ cân bằng tải. Chúng ta có thể thấy </b>

rõ số lượng công việc mà bộ cân bằng tải phải làm khi chèn 1 cookie. Vì cần phải chèn dữ liệu nên gói dữ liệu trả về phải được sao lại 1 phần, vì vậy tăng dung lượng bộ nhớ cần thiết ở phía bộ cân bằng tải, thêm vào đó cịn tăng dung lượng gói tin trả về cho người dùng, có thể khiến gói tin bị chia đôi, dẫn đến mất dữ liệu.

 Cookie-Rewrite

Phương pháp cookie-read không đòi hỏi bộ cân bằng tải phải làm quá nhiều việc như cookie-insert, trong khi đó cookie-insert lại khơng u cầu ứng dụng phía server phải tạo cookie cịn cookie-read lại cần.

<b>Ưu điểm: tránh cho bộ cân bằng tải làm việc quá mức và tránh cho gói tin </b>

bị chia nhỏ.

<b>Nhược điểm: cần phải có một bộ nhớ phức tạp, và thêm nữa có thể khiến </b>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

gói tin bị chia thành 2 (do dung lượng vượt quá giá trị lớn nhất của gói tin được chấp nhận ở Ethernet) và dẫn đến mất dữ liệu.

<b>1.5.5. Cân bằng tải máy chủ với phần mềm </b>

Kết hợp nhiều server một cách chặt chẽ 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, một số hãng phần mềm khác như Veritas (Symantec) cũng cung cấp giải pháp theo hướng này.

<b>Ưu điểm: quen thuộc với những nhà quản trị chuyên nghiệp, có thể chia </b>

sẻ được nhiều tài nguyên trong hệ thống, theo dõi được trạng thái của các máy chủ trong nhóm để chia tải hợp lý.

<b>Nhược điểm: do sử dụng phần mềm trên server, tính phức tạp cao nên </b>

khả năng mở rộng của giải pháp này bị hạn chế, phức tạp khi triển khai cũng như khắc phục khi xảy ra sự cố, có rào cản về tính 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.

<b>1.5.6. Cân bằng tải với proxy </b>

Nhóm này thường tận dụng khả năng chia tải sẵn có trên phần mềm proxy như ISA Proxy của Microsoft hay Squid phần mềm mã nguồn mở cài trên máy phổ dụng. Proxy này sẽ thực hiện nhiệm vụ chia tải trên các server sao cho hợp lý. Giải pháp này vì hoạt động ở mức ứng dụng nên có khả năng caching (là công nghệ lưu trữ cục bộ dữ liệu được truy cập với tần suất cao) và khả năng firewall ở tầng ứng dụng.

<b>Ưu điểm: là chi phí thấp, khả năng mở rộng tốt vì cài đặt trên một máy </b>

độc lập, dễ quản trị. Tuy nhiên, cũng vì chỉ hoạt động ở mức ứng dụng nên hiệu năng khơng cao, vì sử dụng máy phổ dụng nên không được tối ưu, dễ tồn tại nhiều lỗi hệ thống, vì cài đặt trên một máy độc lập nên việc theo dõi trạng thái của các máy chủ gặp khó khăn.

<b>Nhược điểm: có tính ổn định kém, hiệu năng thấp, dễ mắc lỗi. Đây là </b>

điều không thể chấp nhận được đối với các hệ thống địi hỏi tính sẵn sàng cao như ngân hàng, tài chính.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>1.5.7. Cân bằng tải với thiết bị kết nối </b>

Nhóm này thường sử dụng các mođun cắm thêm trên các thiết bị chuyên dụng như bộ định tuyến (Router) hay bộ chuyển mạch (Switch) để chia tải theo luồng, thường hoạt động từ layer 4 trở xuống. Vì sử dụng thiết bị chuyên dụng nên có hiệu năng cao, tính ổn định cao, khả năng mở rộng tốt hơn nhưng khó phát triển được tính năng bảo mật phức tạp như giải pháp proxy, thường thuật tốn chia tải rất đơn giản như DNS Round-Robin. Nhóm này có khả năng chia tải động kém, khơng theo dõi được trạng thái của máy chủ, xử lý kết nối ở mức ứng dụng rất kém, dễ gây lỗi ứng dụng và giá thành cao. Cách thức này cũng hồn tồn khơng phù hợp đối với các hệ thống yêu cầu tính chuẩn xác của các hoạt động giao dịch như tài chính, ngân hàng.

<b>1.5.8. Xử lý các yêu cầu kết nối tập trung </b>

Thay vì ủy quyền cho DNS việc phân phối những yêu cầu đến các máy chủ riêng lẻ trong một nhóm, phương pháp xử lý các yêu cầu kết nối tập trung sử dụng một router cục bộ để thực hiện chức năng này.

Router hoạt động như một bảng chuyển mạch, phân phối các yêu cầu dịch vụ đến các node riêng lẻ trong cluster.

<b>Ưu điểm của kĩ thuật CCR: </b>

- Việc định huớng lại cho các kết nối client đến các server thích hợp trong hệ thống là hồn tồn trong suốt với người dùng.

- Tính linh hoạt cao: khi phát hiện một node bị chết, local router sẽ chuyển tất cả các yêu cầu kế tiếp đến node khác đang hoạt động.

<b>Nhược điểm của kĩ thuật CCR: </b>

- Khi kết nối từ client đến router tăng cao toàn bộ hệ thống sẽ gặp tình trạng nút cổ chai ngay tại thiết bị này.

- Thiết bị router là thiết bị phần cứng nên giá thành cao.

- Khi thiết bị trung tâm hỏng toàn bộ hệ thống sẽ ngưng hoạt động do đó tính chịu lỗi thấp.

   

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b>1.6. CÁC THÀNH PHẦN CỦA SLB (SERVER LOAD BALANCING) 1.6.1. Chức năng của các thành phần trong SLB </b>

Một giải pháp cân bằng tải phải có những chức năng sau đây: Can thiệp vào luồng dữ liệu mạng với tới một đỉnh đích.

Chia luồng dữ liệu đó thành các yêu cầu đơn lẻ và quyết định máy chủ nào sẽ xử lý những yêu cầu đó.

Duy trì việc theo dõi các máy chủ đang hoạt động, đảm bảo rằng các máy chủ này vẫn đang đáp ứng các yêu cầu đến. Nếu máy chủ khơng hoạt động đúng chức năng, máy chủ đó bắt buộc phải đưa ra khỏi danh sách xoay vòng.

Cung cấp sự đa dạng bằng việc tận dụng nhiều hơn một đơn vị trong tình huống fail-over.

Cung cấp sự phân phối dựa trên sự hiểu biết về nội dung ví dụ như đọc URL, can thiệp và cookies hoặc truyền XML.

Sever Load Balancer: Load Balancer là một thiết bị phân phối tải giữa các máy tính với nhau và các máy tính này sẽ xuất hiện chỉ như một máy tính duy nhất.

VIPS : Virtual IP (VIP): là một dạng thể hiện cân bằng tải. Mỗi VIP sử dụng địa chỉ cơng khai IP. Bên cạnh đó, một cổng TCP hay UDP sẽ đi kèm với một VIP như cổng TCP 80 được dành cho dữ liệu web. Mỗi VIP có ít nhất một máy chủ thực sự được gán địa chỉ IP đó và máy chủ này sẽ làm nhiệm vụ phân phối luồng dữ liệu được chuyển đến. Thường thường thì sẽ có vài máy chủ và VIP sẽ dàn đều luồng dữ liệu đến cho các máy chủ bằng cách sử dụng metric hoặc các hương thức được mô tả trong phần “Active – Active Scenario”.

Các máy chủ (Server): máy chủ chạy một dịch vụ được chia sẻ tải giữa các dịch vụ khác. Máy chủ thường được ám chỉ tới các máy chủ HTTP, mặc dù các máy chủ khác hoặc ngay cả các dịch vụ khác liên quan. Một máy chủ thường có một địa chỉ IP và một cổng TCP/UDP gắn liền với nó và khơng có địa chỉ IP cơng khai.

Nhóm (Group): dùng để chỉ một nhóm các máy chủ được cân bằng tải. Các thuật ngữ “farm” hoặc “server farm” có cùng một ý nghĩa với thuật ngữ này.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

Cấp độ người dùng truy cập (User – Access Levels): là một nhóm các quyền được gán cho một người dùng nào đó khi đăng nhập vào thiết bị cân bằng tải. Không chỉ những nhà cung cấp thiết bị khác nhau cung cấp những cấp độ truy cập khác nhau, mà hầu hết các dịch vụ cũng có những cách thức truy cập khác nhau.

Giải pháp dự phòng (Redundancy)

Giải pháp dự phòng rất đơn giản: nếu một thiết bị gặp trục trặc, thiết bị đó sẽ được thay thế bởi một thiết bị khác mà khơng hoặc ít gây ảnh hưởng nhất đến hoạt động của toàn bộ hệ thống. Thiết bị được thay thế sẽ thực hiện những chức năng giống như các thiết bị bị thay thế. Hầu hết các thiết bị trên thị trường đều có khả năng này.

Vai trị của việc dự phịng

Trong phương pháp dự phòng tồn tại một quan hệ active-standby. Một thiết bị, hay còn gọi là thiết bị đang hoạt động thực hiện một vài hoặc đầy đủ các chức năng chính, trong khi đó thiết bị dự phịng sẽ đợi để thực hiện các chức năng này. Mối quan hệ này cũng có thể được gọi là mối quan hệ master/slave.

Trong những tình huống nhất định, cả hai thiết bị là chủ (master) trong một vài chức năng và làm phục vụ (slave) trong một vài chức năng khác nhằm phân tán tải. Cũng trong một vài tình huống khác, cả hai thiết bị đều là (master) của tất cả các chức năng được chia sẻ giữa hai thiết bị. Quan hệ này còn được gọi là quan hệ active- active.

Hoạt động chờ (active- standby): một thiết bị sẽ nhận toàn dữ liệu đến, trong đó các thiết bị cịn lại phải chờ trong một tình huống trục trặc. Nếu thiết bị hoạt động gặp trục trặc, một thiết bị kia sẽ xác định trục trặc và nhận xử lý toàn bộ dữ liệu đến.

Hoạt động active- active: trong trường hợp cả hai thiết bị đều chấp nhận xử lý luồng dữ liệu đến. Trong tình huống một trong hai thiết bị gặp trục trặc thì thiết bị cịn lại sẽ thực thi ln cả chức năng của thiết bị gặp trục trặc.

   

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b>1.6.2. Hoạt động của hệ thống cân bằng tải server </b>

<i><b>Mơ hình SLB được mơ tả dưới hình sau đây: </b></i>

<i><b>Hình 1. 3: Hệ thống Server Load Balancing đơn giản </b></i>

SLB mở rộng hiệu năng của các server ứng dụng, chẳng hạn như Web Server, nhờ phân phối các yêu cầu của client cho cá server trong nhóm (cluster). Các server (hay cịn gọi là host) đều nhận gói IP đến, nhưng gói chỉ được xử lý bởi một server nhất định. Các host trong nhóm sẽ đồng thời đáp ứng các yêu cầu khác từ các client, cho dù một client có thể đưa ra nhiều yêu cầu. Ví dụ một trình Web cần rất nhiều hình ảnh trên một trang Web được lưu trữ tại nhiều host khác nhau trong một nhóm server. Với kỹ thuật cân bằng tải, quá trình xử lý và thời gian đáp ứng client sẽ nhanh hơn nhiều.

Mỗi host trong nhóm có thể định ra mức tải mà nó xử lý hoặc tải có thể phân phối một cách đồng đều giữa các host. Nhờ sử dụng phân phối tải này, mỗi server sẽ lựa chọn và xử lý một phần tải của host. Tải do các client gửi đến được phân phối mỗi server nhận được số lượng các yêu cầu theo đúng phần tải đã định của nó. Sự cân bằng tải này có thể điều chỉnh động khi các host tham gia vào hoặc rời khỏi nhóm. Đối với các ứng dụng Web Server, có rất nhiều client và thời gian mà các yêu cầu của client tồn tại tương đối ngắn, khả năng của kỹ thuật này nhằm phân phối tải thông qua ánh xạ thống kê sẽ giúp cân bằng tải một cách hiệu quả

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

Các server trong cân bằng tải phát đi một bản tin đặc biệt thông báo hoạt động trạng thái của nó (gọi là heartbead message) tới các host khác trong nhóm đồng thời nghe bản tin này từ các host khác. Nếu một server trong nhóm gặp trục trặc, các host khác sẽ điều chỉnh và tái phân phối lại tải để duy trì liên tục các dịch vụ client. Trong phần lớn các trường hợp, phần mềm client tự động kết nối lại và người sử dụng chỉ cảm thấy trễ vài giây khi nhận được đáp ứng trả lời.

<b>1.6.3. Kiến trúc hệ thống cân bằng tải </b>

Để tối đa hóa thơng lượng và độ khả dụng, công nghệ cân bằng tải sử dụng kiến trúc phần mềm phân tán hoàn tồn, trình điều khiển cân bằng tải và chạy song song trên tất cả các host trong nhóm. Trình điều khiển này sắp xếp tất cả các host trong nhóm vào một mạng con để phát hiện đồng thời lưu lượng đến địa chỉ IP chính của nhóm. Trên mỗi host, trình điều khiển hoạt động như một bộ lọc giữa trình điều khiển card mạng và họ giao thức TCP/IP, cho phép một phần lưu lượng mạng đến được nhận bởi host đó. Nhờ đó, các yêu cầu của client sẽ được phân vùng và cân bằng tải giữa các host trong nhóm.

Kiến trúc này tối đa hóa dung lượng nhờ việc sử dụng mạng quảng bá để phân phối lưu lượng mạng đến tất cả các host trong nhóm và loại bỏ sự cần thiết phải định tuyến các gói đến từng host riêng lẻ. Do thời gian lọc các gói khơng mong muốn diễn ra nhanh hơn thời gian định tuyến các gói (định tuyến bao gồm các q trình nhận gói, kiểm tra, đóng gói lại và gửi đi), kiến trúc này cung cấp thông lượng cao hơn các giải pháp dựa trên bộ điều phối. Khi tốc độ của mạng và server tăng lên, thông lượng cũng tăng theo tỉ lệ thuận, do đó loại bỏ được bất cứ sự lệ thuộc nào vào việc định tuyến dựa trên phần cứng đặc biệt. Trên thực tế, bộ cân bằng tải có thể đạt thơng lượng 250Mbit/s trong các mạng Gigabit. Một ưu điểm cơ bản của kiến trúc phân tán là độ khả dụng được tăng cường với (N-1) cách khắc phục lỗi trong một nhóm có N host. Các giải pháp dựa trên bộ điều phối tạo ra một điểm lỗi kế thừa mà chỉ có thể khắc phục bằng cách sử dụng một bộ điều phối dự phịng và do đó chỉ cung cấp một cách khắc phục lỗi duy nhất.

Kiến trúc cân bằng tải cũng tận dụng những ưu điểm về kiến trúc các thiết bị chuyển mạch (switch) hoặc các bộ tập trung (hub) của mạng con trong việc

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

đồng thời phân phối lưu lượng mạng đến tất cả các host trong nhóm. Tuy nhiên, phương pháp này làm tăng “tải trọng” trên các chuyển mạch do chiếm thêm băng thông cổng. Đây không phải là vấn đề trong phần lớn các ứng dụng như dịch vụ Web hay streaming media, do tỉ lệ lưu lượng đến chỉ chiếm một phần rất nhỏ trong tổng lưu lượng mạng. Tuy nhiên, nếu khơng kết nối mạng phía client đến thiết bị chuyển mạch có tốc độ nhanh hơn nhiều các kết nối phía server, lưu lượng có thể chiếm một tỉ lệ lớn quá mức cho phép của băng thơng phía cổng server.

<b>1.6.4. Phân phối lưu lượng trong SLB </b>

Như ta có thể thấy, luồng dữ liệu từ người dùng cuối tới thiết bị cân bằng tải, tới máy chủ thực sự phía sau và sau đó quay ngược trở lại người dùng cuối cùng. Phần này sẽ phân chia quá trình đi của gói tin trên từng đoạn mạng để giúp cho việc hiểu rõ SLB hoạt động như thế nào.

SLB hoạt động bởi sự điều khiển gói tin trước và sau khi nó với server thực sự phía sau. Việc này thực hiện một cách đơn giản bởi việc sử dụng địa chỉ IP đích và nguồn tại 3 lớp trong hoạt động sử lý được biết đến như là NAT (Network Address Translation)

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<i><b>Hình 1. 4: Hành trình của một gói dữ liệu. </b></i>

Trong hình, ta có thể thấy một gói dữ liệu có địa chỉ nguồn 203.185.50.83 tới địa chỉ đích là 192.168.100.90. Bộ định tuyến sử dụng các thông tin này để chuyển tiếp dữ liệu trên mạng qua các trạm trung gian tới đích. Một vấn đề có tính chất quan trọng sống còn với SLB nói riêng và mạng TCP/IP nói chung. Khi gửi một gói dữ liệu tới một địa chỉ đích, gói dữ liệu đó cần phải báo nhận lại với cùng địa chỉ nguồn và đích hay nói một cách khác, khi gửi một gói tin đến một máy đích, máy đích phải gửi ngược trở lại máy gửi với địa chỉ đích là máy gửi và địa chỉ nguồn là địa chỉ của chính máy nhận, nếu từ một địa chỉ khác gói dữ liệu sẽ bị loại bỏ. Ngun tắc này khơng có ý nghĩa quan trọng với gói tin UDP do nó sử dụng giao thức không hướng nối. Mặc dù vậy, phổ biến SLB dựa trên giao thức hướng nối TCP.

<b>Disrect Server Return (DSR) </b>

DSR là một trong các phương pháp phân phối lưu lượng các thiết bị cân

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

bằng tải từ các kết nối bên ngoài. Phương pháp phân phối này làm tăng thực thi của thiết bị cân bằng tải bởi việc giảm một cách đáng kể lưu lượng đi qua thiết bị và q tình xử lý viết lại thơng tin điều khiển trong gói dữ liệu. Xử lý đó được biết đến như là MAT ( MAC Address Translation ).

<b>Network Load Banlancing (NLB) </b>

NLB cung cấp chế độ thứ hai để phân phối lưu lượng mạng đến các host trong nhóm, chế độ multicast. Chế độ này gán địa chỉ multicast 2 lớp cho card nhóm thay vì thay đổi địa chỉ trạm làm việc của card.

Chế độ unicast của NLB gây ra tràn trên swicth do sự phân phối đồng thời lưu lượng mạng trên tất cả các cổng. Tuy nhiên, chế độ multicast của NLB đưa ra cơ hội hạn chế tràn switch để người quản trị hệ thống có thể cấu hình một mạng LAN ảo trên switch cho các cổng tương ứng với host. Có thể làm điều này bằng cách lập trình cho switch hoặc sử dụng giao thức IGMP (Internet Group Management Protocol) hoặc giao thức GARP (Generic Address Resolution Protocol), GMRP(GenericMulticast Resolution Protocol).

NLB cần triển khai các chức năng ARP (Address Resolution Protocol) để đảm bảo rằng địa chỉ IP chính của nhóm.

<b>1.6.5. Tư tưởng thuật toán cân bằng tải </b>

NLB sử dụng thuật tốn lọc phân tán hồn tồn để ánh xạ client đến các host trong nhóm. Thuật toán này cho phép các host trong nhóm đưa ra quyết định cân bằng tải một cách độc lập và nhanh chóng cho từng gói đến. Nó được tối ưu hóa để cung cấp khả năng cân bằng tải một cách thống kê đối với một số lượng lớn các yêu cầu nhỏ do vơ số client tạo ra, điển hình là đối với các Web Server. Nếu số client các kết nối client tạo ra các tải quá chênh lệch nhau trên server, thuật tốn cân bằng tải sẽ ít hiệu quả. Tuy nhiên, tính đơn giản và tốc độ thuật toán cho phép cung cấp hiệu năng rất cao bao gồm cả thông lượng cao và thời gian đáp ứng ngắn trong một dải rộng các ứng dụng client/server thông dụng.

NLB xử lý các yêu cầu của client bằng cách dẫn đường cho một tỉ lệ phần trăm đã chọn những yêu cầu mới cho từng host trong nhóm. Thuật tốn khơng

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

đáp ứng những thay đổi về tải trên mỗi host (chẳng hạn như CPU hay vấn đề sử dụng bộ nhớ). Tuy nhiên, quá trình ánh xạ sẽ thay đổi quan hệ thành viên trong nhóm thay đổi và tỉ lệ phần trăm tải phân bố sẽ được tải cân bằng.

Khi xem xét một gói đến, tất cả các host thực hiện đồng thời việc ánh xạ thống kê để xác định nhanh chóng host nào sẽ xử lý gói đó. Quá trình ánh xạ sử dụng một hàm ngẫu nhiên để tính mức ưu tiên của host dựa trên địa chỉ IP và cổng đến của client cùng các thông tin trạng thái khác để tối ưu hóa việc cân bằng tải. Host tương ứng sẽ chuyển gói đó từ các tầng TCP/IP cịn các host khác sẽ loại bỏ gói này. Q trình ánh xạ không thay đổi trừ khi quan hệ giữa các host trong nhóm thay đổi, để đảm bảo rằng địa chỉ IP và cổng đến client cho trước sẽ luôn được ánh xạ đến cùng một host trong nhóm. Tuy nhiên, host cụ thể trong nhóm mà địa chỉ IP và cổng của client ánh xạ tới không thể được xác định trước do hàm ngẫu nhiên có tính đến quan hệ thành viên trong nhóm hiện tại và quá khứ để tối thiểu hóa khả năng ánh xạ lại.

Nhìn chung, chất lượng cân bằng tải được xác định một cách thống kê bởi số lượng client tạo ra yêu cầu. Như kết cấu tăng giảm về số lượng client theo thống kê, sự đều đặn về chất lượng của thuật toán cân bằng tải sẽ thay đổi nhẹ. Để hoạt động cân bằng tải có độ chính xác cao trên mỗi host trong nhóm, một phần tài nguyên của hệ thống sẽ được sử dụng để đo và phản ứng trước những thay đổi của tải. Sự trả giá về hiệu năng này phải được cân nhắc so với lợi ích tối đa hóa khả năng sử dụng các tài nguyên trong nhóm (về cơ bản là CPU và bộ nhớ). Trong bất cứ trường hợp nào, việc sử dụng hợp lý các nguồn tài ngun server phải được duy trì để có thể phục vụ cho các tải client khác trong trường hợp lỗi xảy ra.

Khi một host mới tham gia vào nhóm, nó sẽ kích hoạt q trình hội tụ và một quan hệ thành viên mới trong nhóm sẽ được tính tốn. Khi q trình hội tụ hoàn thành, một phần tối thiểu client sẽ được ánh xạ tới một host mới. NLB dò các kết nối TCP trên mỗi host và khi kết nối TCP hiện tại của chúng hoàn thành, kết nối tiếp theo từ các client sẽ bị ảnh hưởng được xử lý bởi một host mới. Do đó, các host nên bổ sung vào nhóm tại những thời điểm tải tăng quá mạnh nhằm

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

tối thiểu hóa hiện tượng ngắt quãng các phiên. Để tránh vấn đề này, trạng thái phiên phải được quản lý bởi ứng dụng server sao cho nó có thể được tái cấu trúc hay được trả lại từ bất kỳ một host nào trong nhóm. Ví dụ, trạng thái phiên có thể được đẩy đến server cơ sở dữ liệu và lưu trong cookies của client.

<b>1.6.6. Q trình hội tụ SLB </b>

Các host trong nhóm trao đổi định kỳ các bản tin “heartbeat” multicast và broadcast với nhau. Điều này cho phép các host có thể giám sát trạng thái của nhóm. Khi trạng thái của nhóm thay đổi (chẳng hạn như các host bị trục trặc, rời khỏi hoặc tham gia vào nhóm ), SLB kích hoạt một chu trình gọi là hội tụ trong đó các host trao đổi bản tin “ heartbeart” để định ra một trạng thái mới, bền vững cho nhóm. Khi tất cả đạt được sự “nhất trí” trạng thái mới của chúng sẽ được thiết lập và những thay đổi này sẽ lưu vào nhật ký sự kiện.

Trong quá trình hội tụ, các host tiếp tục xử lý lưu lượng mạng đến như mọi khi ngoại trừ lưu lượng đến host bị lỗi khơng nhận được dịch vụ. Q trình hội tụ sẽ kết thúc khi tất cả các host trong nhóm có được một quan hệ thành viên ổn định trong vịng một vài chu trình heartbeat.

Khi hồn thành q trình hội tụ, lưu lượng đến các host bị lỗi sẽ được tái phân phối cho các host còn lại. Nếu một host tham gia vào nhóm, q trình hội tụ cho phép host này nhận được phần tải của nó trong lưu lượng đã được cân bằng. Việc mở rộng nhóm khơng ảnh hưởng đến các hoạt động của nhóm và theo một cách hoàn toàn trong suốt đối với tất cả các Internet client cũng như trước các chương trình phần mềm server. Tuy nhiên, nó ảnh hưởng đến các phiên client vì các client có thể phải tái ánh xạ tới các host khác trong nhóm.

<b>1.6.7. Hiệu suất của SLB </b>

Vai trò của NLB tác động đến hiệu năng của hệ thống có thể được đánh giá dựa trên các tiêu chí sau:

- CPU overhead trên các host của nhóm, phần trăm CPU cần thiết để phân tích và lọc các gói mạng (càng thấp càng tốt). Tất cả các giải pháp cân bằng tải đều cần sử dụng một phần tài nguyên đã xem xét đến và đưa ra quyết định cân bằng tải và do đó ít nhiều ảnh hưởng đến hiệu năng của mạng. Giải pháp cân

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

bằng tải dựa trên bộ điều phối cần kiểm tra, hiệu chỉnh và truyền lại gói tin tới các host trong nhóm (thường phải được sửa lại địa chỉ IP để tái định tuyến gói từ địa chỉ IP ảo tới địa chỉ IP của từng host cụ thể). Đối với NLB, nó phân phối đồng thời các gói đến tất cả các host trong nhóm và áp dụng một thuật toán lọc để loại bỏ các gói khơng mong muốn. Q trình lọc gây ảnh hưởng ít hơn q trình tái định tuyến và kết quả thời gian đáp ứng nhanh hơn với thơng lượng tồn hệ thống cao hơn.

- Thông lượng và thời gian đáp ứng các nhu cầu: NLB nâng cao hiệu năng của hệ thống bằng cách tăng thông lượng và tối thiểu hóa thời gian đáp ứng tới các yêu cầu của client. Khi năng lực của các host trong nhóm được khai thác tối đa, nó sẽ khơng cung cấp thêm thông lượng và thời gian đáp ứng tăng đột biến tùy theo độ trễ hàng đợi các yêu cầu của client. Bổ sung thêm host sẽ cho phép tăng thông lượng và giảm thời gian đáp ứng. Nếu yêu cầu của khách hàng tiếp tục tăng, các host sẽ được thêm vào cho đến khi mạng con được bão hòa. Và nếu tải tiếp tục tăng, cần sử dụng nhiều nhóm NLB và việc phân phối lưu lượng giữa các host được thực hiện bằng kỹ thuật Round Robin DNS.

- Băng thông sử dụng của switch: tỷ lệ băng thông của switch được sử dụng bởi quá trình làm tràn các yêu cầu của client. Kiến trúc lọc gói của NLB dựa trên mạng con broadcast để phân phối các yêu cầu của client tới tất cả các host cùng lúc. Trong các nhóm nhỏ, có thể sử dụng hub để kết nối các host. Với các nhóm lơn hơn switch sẽ là lựa chọn. Và như mặc định, NLB sẽ tạo ra hiện tượng “tràn” switch để phân phối các yêu cầu client tới tất cả host cùng lúc. Cần chắc chắn hiện tượng “tràn” switch không được vượt quá năng lực switch, đặc biệt switch được chia sẻ nhóm và các máy tính ngồi nhóm. Bình thường, băng thông sử dụng cho lưu lượng yêu cầu của client chỉ chiếm một tỉ lệ nhỏ trong tổng lưu lượng băng thơng cần thiết cho q trình truyền thơng giữa server và client. Tuy nhiên, quá trình “tràn” switch sẽ trở thành vấn đề trong ứng dụng có tỉ lệ phần trăm đáng kể lưu lượng mạng được dẫn tới nhóm (chẳng hạn như q trình upload file trong ứng dụng FTP) hay khi nhiều nhóm sử dụng chung switch.

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

- Trong những trường hợp này, chạy NLB chế độ multicast và thiết lập mạng LAN ảo để hạn chế tràn switch là biện pháp khắc phục rất hiệu quả khiếm khuyết này. Ngoài ra, tính khả mở của NLB quyết định khả năng cải thiện hiệu năng của hệ thống khi các host được thêm vào nhóm.

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<b>CHƯƠNG 2: MỘT SỐ THUẬT TOÁN CÂN BẰNG TẢI PHỔ BIẾN VÀ ỨNG DỤNG ĐƯỢC TRIỂN KHAI HIỆN NAY </b>

<b>2.1. THUẬT TỐN RANDOM (NGẪU NHIÊN) </b>

Trong thuật tốn random, tải sẽ được phân một cách ngẫu nhiên vào trong các Web Server đứng sau. Web Server được 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 tốn này hầu như khơng được dùng đến trong các bộ cân bằng tải mặc dù nó đã được cài đặt sẵn, nó chỉ thường thấy trong các gói phần mềm lớn mà trong đó cân bằng tải chỉ được đưa ra như một chức năng.

<b>2.2. THUẬT TOÁN ROUND ROBIN (RR) </b>

Thuật toán RR là thuật tốn ln chuyển vịng. Một phương pháp đơn giản của cân bằng tải các máy chủ hoặc để cung cấp khả năng chịu lỗi đơn giản. Nhiều máy chủ giống hệt nhau được cấu hình để cung cấp chính xác các dịch vụ tương tự. Tất cả đều được cấu hình để sử dụng tên miền Internet như nhau nhưng mỗi máy đều có một địa chỉ IP duy nhất. Một máy chủ DNS có một danh sách của tất cả các địa chỉ IP duy nhất có liên quan đến tên miền Internet. Khi yêu cầu cho địa chỉ IP kết hợp với tên miền Internet được nhận, các địa chỉ được trả lại một cách tuần tự luân phiên.

Ví dụ:

- Cấu hình một cụm Cluster bao gồm 03 máy chủ: A, B, C. - Yêu cầu dịch vụ thứ nhất sẽ được gửi đến máy chủ A. - Yêu cầu dịch vụ thứ hai sẽ được gửi đến máy chủ B. - Yêu cầu dịch vụ thứ ba sẽ được gửi đến máy chủ C. - Yêu cầu dịch vụ thứ tư sẽ lại được gửi cho máy chủ A,…

Như vậy bộ cân bằng tải sẽ phân phối tải và gửi yêu cầu lần lượt đến từng máy chủ thực trong cụm máy chủ. Số lượng các truy vấn đến từng máy chủ là ngang bằng nhau, điều này đảm bảo rằng các máy chủ đều phải hoạt động với một công suất tương tự như nhau.

</div>

×