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, file server, các ứng dụng truyền media…. Các ứng dụng này coa tần suất sử dụng cao, yêu cầu 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 toán giữa các hệ thống vật lý khác nhau. Các hệ thống vật lý này có thể khác nhau về quy mô và chức năng. Chúng thường bao gồm các máy trạm, các máy tính mini và các hệ thống máy tính đa năng lớn. Các hệ thống này thường được gọi là các nút. 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 song song và phân tán, cấu trúc nội 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ệ thống mạng phân tán bao gồm mạng vật lý, các nút và các phần mềm điều khiển. 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ả mở. Một trong những vấn đề thú vị nhất của hệ thống mạng phân tán là cải tiến sự tối ưu của hệ thống qua sự cân bằng tải giữa các nút hay các máy chủ. Với lý do trên, em đã lựa chọn đề tài: “Tìm hiểu kỹ thuật cân bằng tải File Server”. Đây là một vấn đề khá quan trọng trong việc thiết kế các hệ thống mạng hiện nay, các trung tâm tính toán hiệu năng cao và các trung tâm dữ liệu phục vụ cho các ứng dụng lớn.
Trang 1MỤC LỤC
MỤC LỤC 1
LỜI CẢM ƠN 2
DANH MỤC HÌNH VẼ 4
MỞ ĐẦU 4
CHƯƠNG I: TỔNG QUAN VỀ CÂN BẰNG TẢI 6
1.2.6 Cân bằng tải máy chủ với phần mềm 16
1.2.7 Cân bằng tải với proxy 17
1.2.8 Cân bằng tải với thiết bị kết nối 17
CHƯƠNG II GIẢI PHÁP CÂN BẰNG TẢI TRÊN FILE SERVER 20
2.2 Các thành phần của cân bằng tải File Server 23
2.2.1 Chức năng của các thành phần cân bằng tải File Server 23
2.2.2 Kiến trúc hệ thống cân bằng tải 32
2.2.3 Hoạt động của hệ thống cân bằng tải File Server 33
2.3 Triển khai hệ thống File Server 35
2.3.1 Giới thiệu DFS (Distributed File System) 35
3.2 Đánh giá hệ thống 68
Trang 2LỜI CẢM ƠN
Lời đầu tiên, nhóm em muốn gửi lời cảm ơn chân thành nhất tới Ths.Trương Tiến
Vũ, người đã trực tiếp hướng dẫn và có những lời góp ý, cùng nhiều tài liệu bổ ích để đề tài này được hoàn thành
Em cũng xin chân thành cảm ơn các thầy cô giáo khoa công nghệ thông tin đã tạo điều kiện học tập và nghiên cứu trong những năm học tập vừa qua Xin chân thành cảm
ơn các bạn học cùng lớp đã có những lời động viên quý báu trong suốt thời gian thực hiện đề tài này
Lời cuối, nhóm muốn gửi lời biết ơn sâu sắc tới gia đình của từng thành viên Gia đình luôn là nguồn động viên tinh thần và cổ vũ lớn lao, là động lực giúp nhóm thành công trong học tập, công việc và cuộc sống
Đà Nẵng, ngày 10 tháng 1 năm 2013
Trang 3DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT
SLB Server load blancing Cân bằng tải máy chủ
NLB Network load blancing Cân bằng tải mạng
DNS Domain Name System Hệ thống tên miền
DFS Distributed File System Phân phối hệ thống tập tin
Trang 4Hình 1.7 Xử lý các yêu cầu kết nối tập trung 19
Hình 2.1 So sánh hệ thống cân bằng tải server và hệ thống thường 23
Hình 2.3 Hoạt động của kịch bản Active - Standby 28
Hình 2.5 Hoạt động của kịch bản Active - Active 29
Hình 2.6 Hoạt động của kịch bản Active - Active 30
Hình 2.8 Cấu trúc thư mục thật sự của 1 hệ thống DFS 37
Trang 5media… Các ứng dụng này coa tần suất sử dụng cao, yêu cầu 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 toán giữa các hệ thống vật lý khác nhau Các hệ thống vật lý này có thể khác nhau về quy
mô và chức năng Chúng thường bao gồm các máy trạm, các máy tính mini và các hệ thống máy tính đa năng lớn Các hệ thống này thường được gọi là các nút 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 song song và phân tán, cấu trúc nội 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ệ thống mạng phân tán bao gồm mạng vật lý, các nút và các phần mềm điều khiển 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ả mở Một trong những vấn đề thú vị nhất của hệ thống mạng phân tán là cải tiến sự tối ưu của hệ thống qua sự cân bằng tải giữa các nút hay các máy chủ
Với lý do trên, em đã lựa chọn đề tài: “Tìm hiểu kỹ thuật cân bằng tải File Server” Đây là một vấn đề khá quan trọng trong việc thiết kế các hệ thống mạng hiện nay, các trung tâm tính toán hiệu năng cao và các trung tâm dữ liệu phục vụ cho các ứng dụng lớn
II Mục tiêu
Đề tài này sẽ giúp chúng ta biết được các quá trình cần thiết để có thể cân bằng tải cho một hệ thống mạng Giúp ta biết sâu hơn về khái niệm cũng như chức năng cân bằng tải của File Server 2008
III Phạm vi nghiên cứu
Trang 6Trong quá trình nghiên cứu và tìm hiêu làm đề tài Có rất nhiều vấn đề về cân bằng tải trên server và các ứng dụng triển khai trên đó, nhưng ở đề tài này chỉ nghiên cứu một mảng nhỏ của hệ thống cân bằng tải đó là File Server, nghiên cứu tổng quan về khái niệm cân bằng tải, các chứng năng chính và phân loại cân bằng tải và cuối cùng là triển khai giải pháp cân bằng tải trên File Server 2008.
IV Phương pháp nghiên cứu
Đọc kỹ và nắm bắt các yêu cầu của đồ án đề ra Đi sâu trong việc tìm kiếm tài liệu và trình bày một cách hợp lý, chăm chú lắng nghe và tiếp thu những ý kiến đóng góp của giáo viên hướng dẫn và các thầy cô
V Ý nghĩa khoa học và thực tiễn của đề tài
Về mặt lý thuyết, đề tài là một cách tiếp cận trong vấn đề tìm hiểu các vấn đề trong cân bằng tải trên File Server, tìm hiểu về Windows Server 2008
Về mặt thực tiễn, đề tài sẽ góp phần nâng cao khả năng tổ chức và triển khai cân bằng tải trên File Server 2008 vào một hệ thống mạng nội bộ
CHƯƠNG I: TỔNG QUAN VỀ CÂN BẰNG TẢI
1.1 Giới thiệu cân bằng tải
1.1.1 Khái niệm cân bằng tải
Cân bằng tải là một phương pháp phân phối khối lượng tải trên nhiều máy tí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
Trang 7mạ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
1.1.2 Lợi ích cân bằng tải
• 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 HA (High Availability) 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 lỗi 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
1.2 Kỹ thuật cân bằng tải
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 SPOF[1], cần thiết phải
Trang 8cài đặt 2 bộ cân bằng tải song song, hoạt động theo cơ chế active hoặc standby.
active-1.2.1 Kiểm tra trạng thái server
Để chọn được server phù hợp để gửi request, bộ cân bằng tải cần phải biết đượ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”
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 toàn bộ quá trình của nó là đúng Hạn chế lớn nhất là những phương pháp kiểm tra này sẽ chiếm tài nguyên của hệ thống như là CPU, threads…
Do đó, cân bằng thời gian kiểm tra chính là vấn đề khó nhất trong kỹ thuật lự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 scripting, 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
1.2.2 Lựa chọn server tốt nhất
thống sẽ bị tê liệt
Trang 9Phươ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 - ví dụ như SSL key negociation - sẽ rất tốn thời gian.
Một cách khắc phục nhược điểm này là sử dụng một hàm băm theo địa chỉ IP, như vậy requests từ cùng một địa chỉ IP sẽ chỉ vào một server duy nhất Tuy vậy phương pháp này đòi hỏi người dùng phải có IP tĩnh Vậy thì cách khắc phục cho những hạn chế trên là gì? Đó chính là các kỹ Persistence
1.2.3 Kỹ thuật Session Persistence
Như đã đề cập ở trên, vấn đề cần giải quyết chính là làm sao để giữ cho các yêu cầu của một ngườ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 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 luôn tìm cách kết nối với một server duy nhất, kể cả khi server này đã “chết” Dù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
Vậy thì câu trả lời cuối cùng là gì? Đó chính là sử dụng cookie Cookie là một đối
tượng được điều khiển bởi Web Servers Trong kết quả trả về cho người dùng web servers sẽ chèn thêm một số thông tin Những yêu cầu tiếp theo của người dùng gửi đến server sẽ chứa thêm thông tin của cookie này, server sẽ đọc các cookie và biết phải làm gì với các yêu cầu này
1.2.4 Cookie
Một cookie được định nghĩa bằng cặp tên=giá trị (name=value) Hình 1.1 miêu tả
Trang 10Bên phía người dùng, cookie được điều khiển bởi trình duyệt và “trong suốt” đối với người dùng.
Hình 1.1 Cách làm việc của cookie user=1
Trong thiết kế của bộ cân bằng tải, có 3 cách để sử dụng cookie: Cookie chỉ đọc
(Cookie-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
Cách thức hoạt động của cookie-read được mô tả trong hình 1.2 dưới đây Khi người dùng lần đầu tiên gửi yê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 (1) Server RS1 sẽ tạo và đặt cookie server=1 vào trong dữ liệu trả về cho người dùng (2) Trình duyệt của người dùng sẽ nhận trả về này, đọc thấy cookies và lưu trữ nó vào trong đĩa cứng (3) Sau đó người dùng có thể đóng trình duyệt hoặc ngắt kết nối (giả sử rằ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 (4) 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
Trang 11Hình 1.2 Cookie read
Ưu điểm của phương pháp cookie-read là nó không đòi hỏi bộ cân bằng tải phải làm việc nhiều, chỉ cần đọc cookie được tạo ra từ phía web-server và từ yêu cầu của người dùng Nhược điểm của phương pháp này là ứng dụng ở server phải tạo ra một cookie, điều này không 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
Phương pháp này được mô tả trong hình 1.3 Trong phương pháp này, ứng dụng ở server sẽ không làm gì cả Kịch bản diễn ra tương tự như cookie-read, nhưng ở đây, khi server trả về dữ liệu cho người dùng (2), 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, chẳng hạn như cookie server=1 trong hình vẽ 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
Trang 12Hình 1.3 Cookie-insert
Ưu điểm của phương pháp này là nó “trong suốt” đối với ứng dụng được cài đặt trên server, hay 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 Nhược điểm của phương pháp này là có thể gây ra quá tải ở bộ cân bằng tải Chúng ta có thể thấy 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 trong hình 1.4 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
Trang 13
Hình 1.4 Bộ cân bằng tải chèn một cookie
+ 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 yêu cầu ứng dụng phía server phải tạo cookie còn cookie-read lại cần Cần phải có một phương pháp dung hòa ưu và nhược điểm của 2 phương pháp trên Đó chính là phương pháp ghi đè cookie
Nhược điểm lớn nhất trong cookie-insert là cần phải có một bộ nhớ phức tạp, và thêm nữa có thể khiến 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 Chuyện gì sẽ xảy ra nếu như chúng ta tạo một chỗ trống ở gói tin để lưu giá trị cookie, và bộ cân bằng tải chỉ cần đặt vào đó giá trị cần thiết Trong phương pháp ghi đè cookie, được mô tả như hình 1.5 ở
dưới, ứng dụng sẽ chèn vào gói tin trả về một cookie server=XXX Tất cả những gì bộ
cân bằng tải phải làm là tìm kiếm đoạn server=XXX này và thay “XXX” bằng giá trị ID
của server, chẳng hạn như server=001.
Trang 14Hình 1.5 Bộ cân bằng tải ghi đè một cookie
Ưu điểm của phương pháp này là 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ị chia nhỏ Bên cạnh đó nó cũng khắc phục được nhược điểm của phương pháp cookie-read Nó là phương pháp tốt nhất trong 3 phương pháp đã được đề cập ở trên và thường được chọn để dùng trong các bộ cân bằng tải
1.2.5 Cân bằng tải sử dụng phần cứng
Bộ cân bằng tải bằng phần cứng sẽ thể hiện một địa chỉ IP ảo đối với mạng bên ngoài, địa chỉ này bản đồ hóa đến các địa chỉ của mỗi máy trong một cluster Chính vì vậy toàn bộ các máy tính trong cluster sẽ chỉ được xem như là một máy duy nhất đối với thế giới bên ngoài Bộ cân bằng tải sử dụng phần cứng thường hoạt động ở tầng mạng và hoạt động dựa trên sự định tuyến, sử dụng một trong các phương pháp: Định tuyến trực tiếp (direct routing), tunnelling, IP address translation (NAT)
Khi một request đến bộ cân bằng tải, nó sẽ ghi lại header của request để trỏ đến các máy khác trong cluster Nếu một máy nào đó bị gỡ bỏ từ cluster thì request sẽ không chạy một cách rủi ro việc “hit” vào máy server đã chết này, vì tất cả các máy server khác trong cluster xuất hiện đều có cùng địa chỉ IP Địa chỉ này duy trì giống nhau thậm chí nếu một nút nào đó trong cluster bị hỏng Khi một đáp trả được trả về, client sẽ xem đáp trả đang đến từ bộ cân bằng tải phần cứng Hay nói theo cách khác thì người dùng sẽ xử
lý với một máy tính đó là bộ cân bằng tải sử dụng phần cứng
Trang 15Hình 1.6 Cân bằng tải sử dụng phần cứng
Ưu điểm của phương pháp này là:
• Mối quan hệ giữa các máy chủ Bộ cân bằng tải phần cứng đọc cookie hoặc các
URL đang được đọc trên mỗi một request bởi máy khách Dựa trên các thông tin này, nó
có thể ghi lại các thông tin header và gửi request đến nút thích hợp trong cluster, nơi session của nó được duy trì
Các bộ cân bằng tải này có thể cung cấp mối quan hệ giữa các máy server trong truyền thông HTTP, nhưng không thông qua kênh an toàn như HTTPS Trong kênh an toàn, các thông báo được mã hóa SSL và có thể tránh bộ cân bằng tải đọc các thông tin session
• Khả năng có sẵn cao thông qua hệ thống tự động chuyển đổi dự phòng Việc
chuyển đổi dự phòng xảy ra khi một nút trong cluster không thể xử lý một request và chuyển hướng nó đến một nút khác Có hai kiểu tự động chuyển đổi dự phòng:
Yêu cầu mức chuyển đổi dự phòng Khi một nút trong cluster không thể xử lý một
Trang 16 Chuyển đổi dự phòng session một cách trong suốt Khi một lời triệu gọi thất bại,
nó sẽ được định tuyến một cách trong suốt đến một nút khác trong cluster để hoàn tất công việc
Bộ cân bằng kiểu này cung cấp chuyển đổi dự phòng mức request; tức là khi nó phát hiện có một nút nào đó bị sự cố thì bộ cân bằng này sẽ chuyển hướng tất cả các request theo sau được gửi đến nút này sang một nút tích cực khác trong cluster Mặc dù vậy, bất kỳ một thông tin session nào trên nút chết sẽ bị mất khi các request được chuyển hướng đến một nút mới
Chuyển đổi dự phòng session trong suốt yêu cầu một số kiến thức về sự thực thi cho một quá trình trong một nút, vì bộ cân bằng tải phần cứng chỉ có thể phát hiện các vấn đề mức mạng, không có lỗi Để thực thi một cách trong suốt về vấn đề chuyển đổi dự phòng, các nút trong cluster phải kết hợp với các nút khác và có vùng bộ nhớ chia sẻ hoặc
cơ sở dữ liệu chung để lưu tất cả các dữ liệu session Cũng chính vì vậy nếu một nút trong cluster có vấn đề thì một session có thể tiếp tục trong một nút khác
• Metrics Vì tất cả các yêu cầu tới một ứng dụng web đều phải qua hệ thống cân
bằng tải, hệ thống có thể quyết định số lượng session hoạt động, số lượng session hoạt động được kết nối trong các trường hợp khác nhau, các khoảng thời gian đáp ứng, thời gian tối đa điện áp, số lượng session trong suốt khoảng tối đa điện áp, số lượng session trong suốt khoảng tối thiểu điện áp… Tất cả các thông tin kiểm định này được sử dụng để tinh chỉnh toàn bộ hệ thống nhằm tối ưu hiệu suất
1.2.6 Cân bằng tải máy chủ với phần mềm
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 Các giải pháp thuộc nhóm này có ưu điểm là quen thuộc với những nhà quản trị chuyên nghiệp, có thể chia sẻ được nhiều tài nguyên trong
hệ thống, theo dõi được trạng thái của các máy chủ trong nhóm để chia tải hợp lý Tuy nhiên, do sử dụng phần mềm trên server, tính phức tạp cao nên khả năng mở rộng của
Trang 17giả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.
1.2.7 Cân bằng tải với proxy
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 Vì sử dụng máy phổ dụng nên giải pháp này có ư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 độ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 Nhược điểm lớn nhất của các giải pháp này thường có tính ổn định kém, hiệu năng thấp, dễ mắc lỗi Đây là đ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
1.2.8 Cân bằng tải với thiết bị kết nối
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 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 toán chia tải rất đơn giản như DNS round-robin (đây là thuật toán chia tải phổ biến nhất và đơn giản, tuy nhiên cứng nhắc và hiệu quả thấp Với thuật toán này các yêu cầu về IP của một tên miền ứng với nhiều server sẽ được biên dịch thành địa chỉ IP của các server đó theo thứ tự quay vòng 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 hoàn
Trang 18toà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.
Như vậy, giải pháp có khả năng theo dõi trạng thái ứng dụng tốt thì mở rộng, tăng tốc, bảo mật kém(GP dùng phần mềm) Giải pháp mở rộng, tăng tốc, bảo mật tốt, thì theo dõi trạng thái ứng dụng kém, không ổn định, hiệu năng thấp(GP sử dụng proxy), giải pháp hiệu năng cao, ổn định, mở rộng tốt thì kém thông minh, dễ gây lỗi ứng dụng, tăng tốc kém(GP chia tải nhờ thiết bị chia kết nối) Trong khi đó, tất cả các yêu cầu về hiệu năng cao, ổn định, mở rộng tốt, tăng tốc tốt và bảo mật là rất quan trọng đối với các hoạt động của ngân hàng, chứng khoán và các nhà cung cấp dịch vụ GP sẵn có của các hãng chỉ đáp ứng được một phần trong các yêu cầu trên như Module CSS của Cisco, ISA của Microsoft, hay Netscaler của Citrix)
1.2.9 Xử lý các yêu cầu kết nối tập trung
Thay vì ủy quyền cho DNS việc phân phối những yêu cầu đến các server riêng lẻ trong một cluster, phuơng pháp xử lý các yêu cầu kết nối tập trung (Centrallized Connection Routing - CCR) sử dụng một router cục bộ để thực hiện chức năng này
Hình 1.7 Xử lý các yêu cầu kết nối tập trung
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
Trang 19Ưu điểm của kĩ thuật CCR:
• 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à hoàn toà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
Nhuợc điểm của kĩ thuật CCR:
• Khi kết nối từ client đến routẻ 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 hong toàn bộ hệ thống sẽ ngưng hoạt động do đó tính chịu lỗi thấp
Tóm lại, kỹ thuật xử lý các yêu cầu kết nối tập trung rõ ràng đã giải quyết được vấn đề cân bằng tải trên mạng Tuy nhiên kỹ thuật này có tính chịu lỗi thấp và chi phí cao
Trang 20CHƯƠNG II GIẢI PHÁP CÂN BẰNG TẢI TRÊN FILE SERVER
2.1 GIỚI THIỆU CÂN BẰNG TẢI TRÊN FILE SERVER
2.1.1 Giới thiệu Windows Server 2008
Window Server 2008 là hệ điều hành cho máy chủ được sản xuất bởi Microsoft, được giới thiệu giới thiệu ngày 04 tháng 02 năm 2008 có nhiều tính năng hơn so với hệ điều hành Windowns 2000 và Windows Server 2003 trước đó Windowns Server 2008 thiết kế nhằm tăng sức mạnh cho các mạng, ứng dụng và dịch vụ Web thế hệ mới Với Windows Server 2008, bạn có thể phát triển, cung cấp và quản lý các trải nghiệm người dùng và ứng dụng phong phú, đem tới một hạ tầng mạng có tính bảo mật cao, và tăng cường hiệu quả về mặt công nghệ và giá trị trong phạm vi tổ chức của mình Windows Server 2008 kế thừa những thành công và thế mạnh của các hệ điều hành Windows Server thế hệ trước, đồng thời đem tới tính năng mới có giá trị và những cải tiến mạnh
mẽ cho hệ điều hành cơ sở này Công cụ Web mới, công nghệ ảo hóa, tính bảo mật tăng cường và các tiện ích quản lý giúp tiết kiệm thời gian, giảm bớt các chi phí, và đem tới một nền tảng vững chắc cho hạ tầng Công nghệ Thông tin của bạn Hệ điều hành Windows Server 2008 hiện có 7 phiên bản bao gồm: Windows Server 2008 Standard (Bản tiêu chuẩn), Windows Server 2008 Enterprise (Bản dungfcho doanh nghiệp), Windows Server 2008 Datacenter (Bản dùng cho trung tâm dữ liệu), Windows Web Server 2008 (Bản dùng cho Web), Windows Server 2008 dành cho các hệ thống dựa trên nền tảng Itanium, Windows Server 2008 Standard without Hyper-V (Bản tiêu chuẩn, không có Hyper-V), cuối cùng là bản Windows Server 2008 Datacenter without Hyper-V (Bản dùng cho Trug tâm dữ liệu, không có Hyper-V) Hệ điều hành tiếp theo đã phát hành trên thị trường là Windows Server 2012 (hay còn gọi là Windows Server 8) (WS8)
là tên mã cho hệ điều hànhWindows tương lai được phát triển bởi Microsoft Nó là một phiên bản Windows 8 và nối tiếp phiên bản Windows Server 2008 R2 Windows Server 8
là phiên bản Windows Server đầu tiên không hỗ trợ cho các máy tính dựa nền tảng kiến trúc Itanium từ lúc ra đời Windows NT 4.0 Một phiên bản phát triển thử nghiệm (phiên bản Beta) được công bố vào ngày 9 tháng 9 năm 2011 tới các lập trình viên phát
Trang 21triển MSDN Vào ngày 1 tháng 3 năm 2012, Microsoft phát hành phiên bản Beta công cộng beta (build 8250)
2.1.2 Tại sao phải xây dựng hệ thống cân bằng tải
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ư 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
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ư Round Robin, Weighted Round Robin đến
Trang 22cá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 (centralized dispatcher) vẫn còn Ngoà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 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ó yêu cầu đặc biệt gì về phần cứng, bất cứ máy tính nào hợp chuẩn đều có thể được sử dụng làm server Chi phí triển khai nhờ đó 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.
2.1.3 So sánh hệ thống cân bằng tải server và hệ thống thông thường
Hình 2.1 So sánh hệ thống cân bằng tải server và hệ thống thông thường
Ư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
Trang 23- 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 nào cần có giải pháp cân bằng tải ?
- Trường đại học, viện nghiên cứu…
2.2 Các thành phần của cân bằng tải File Server
2.2.1 Chức năng của các thành phần cân bằng tải File Server
Một giải pháp cân bằng tải phải (Server Load Balancer) có những chức năng sau:
• Can thiệp vào luồng dữ liệu mạng tới một điểm đích
Trang 24• 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ủ nào 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 các tình huống fail-over (fail-over là khả năng tự động chuyển qua các thiết bị dự phòng khi gặp tình huống hỏng hóc hoặc trục trặc Việc thực thi này được thực hiện mà không có sự can thiệp của con người cũng như không có bất sự cảnh báo nào)
• Cung cấp sự phân phối dự trên sự hiểu biết về nội dung ví dụ như đọc URL, can thiệp vào cookies hoặc truyền XML
• Server Load Balancers: 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 Phần dưới đây sẽ thảo luận chi tiết hơn về các thành phần của các thiết bị SLB
• VIPs: Virtual IP (VIP): là một dạng thể hiện của của cân bằng tải Mỗi VIP sử dụng một đị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 luồng dữ liệu của web Một VIP sẽ
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 các metric hoặc các phương thức được mô tả trong phần “Active - Active Scenario” sau đây
• Các máy chủ (Servers): 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ả những dịch vụ khác 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 (điều này còn phụ thuộc vào topo của mạng)
• Nhóm (Groups): Dùng để chỉ một nhóm các máy chủ được cân bằng tải Các thuật ngữ như “farm” hoặc “server farm” có cùng một ý nghĩa với thuật ngữ này
Trang 25• Cấp độ người dùng truy nhậ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 một 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 nhập khác nhau, mà hầu hết các dịch vụ cũng sẽ có những cách thức truy nhập rất khác nhau Cách triển khai phổ biến nhất là của Cisco, cung cấp truy nhập dựa trên tài khoản người dùng (cho phép cả tài khoản superuser) Một phương thức phổ biến khác là cách thức truy cập cấp độ người dùng được dùng trong các hệ thống Unix
- Read-only: Cấp độ truy cập chỉ đọc (Read-only) không cho phép bất kỳ một thay đổi nào được thực hiện Một người dùng có quyền chỉ đọc chỉ có thể xem các thiết đặt, các cấu hình, và nhiều thứ khác nữa nhưng không thể thực hiện được bất kỳ một thay đổi nào
cả Một tài khoản như thế được sử dụng để xem các thống kê hiệu suất hoạt động của thiết bị.Truy nhập chỉ đọc thường là cấp độ truy cập đầu tiên của một người dùng khi đăng nhập vào hệ thống trước khi thay đổi sang các chế độ với quyền truy cập cao hơn
- Superuser: Superuser là cấp độ truy cập cho phép người dùng có đầy đủ quyền điều khiển hệ thống Superuser có thể thêm các tài khoản khác, xóa file, cấu hình lại hệ thống với bất kỳ tham số nào
- Các cấp độ khác: Rất nhiều sản phẩm cung cấp thêm một vài cấp độ người dùng trung gian ở giữa hai cấp độ trên, có những quyền giới hạn trên hệ thống
• 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 gây ít ả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ư 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
Có một vài cách để thực hiện khả năng này Cách thông thường nhất là sử dụng hai thiết bị Một giao thức sẽ được sử dụng bởi một trong hai thiết bị để kiểm tra tình trạng
Trang 26đáp ứng các luồng dữ liệu đến Trong một vài tình huống khác, sẽ chỉ có một thiết bị hoạt động chính, thiết bị còn lại sẽ được sử dụng trong tình huống hỏng hóc hoặc trục trặc.
• Vai trò của việc dự phòng
Trong giải pháp dự phòng, tồn tại một quan hệ là 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 những 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ị sẽ 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à chủ (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
• Kịch bản Active - Standby (hoạt động - chờ)
Kịch bản dự phòng hoạt động - chờ là cách dễ nhất để thực hiện Một thiết bị sẽ nhận toàn bộ luồng dữ liệu đến, trong khi đó thiết bị còn lại sẽ chờ trong các tình huống trục trặc
Trang 27Hình 2 Hình 2.2: Kịch bản Active – Standby
Nếu thiết bị đang 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ộ luồng dữ liệu đến
Hình 2.3: Hoạt động của kịch bản Active – Standby
• Kịch bản Active - Active
Trang 28Có một vài biến thể của kịch bản này Trong tất cả các 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ẽ nhận thực thi luôn cả những chức năng của thiết bị gặp trục trặc.Trong một biến thể khác, VIPs được phân phối giữa hai thiết bị cân bằng tải (Load Balancer - LB) để chia sẻ luồng dữ liệu đến VIP 1 đến LB A, VIP 2 đến LB B.
Hình 2.4: Kịch bản Active-Active
Trong một biến thể khác, cả hai VIPs sẽ đều trả lời trên cả hai LB với một giao thức phá
vỡ sự hạn chế rằng cả hai LB sẽ không có cùng một địa chỉ IP
Hình 2.5: Hoạt động của kịch bản Active-Active
Trang 29Trong tất cả các kịch bản active - active, nếu một LB gặp trục trặc, các VIP còn lại sẽ tiếp tục trả lời trên LB còn lại Những thiết bị còn lại sẽ thực thi hết tất cả các chức năng Hình 2-6.
Hình 2.6: Hoạt động của kịch bản Active-Active
Giao thức dự phòng phổ biến nhất là giao thức VRRP (Virtual Router Redundancy Protocol) Đây là một chuẩn mở và các thiết bị được cho là hỗ trợ VRRP sẽ đều phù hợp đối với các đặc điểm được mô tả trong RFC 2338
Mỗi một thiết bị trong một cặp gửi đi các packet và nhận phản hồi từ các thiết bị còn lại Nếu không nhận được phản hồi từ các thiết bị khác thì thiết bị này sẽ đánh giá là thiết bị kia bị vô hiệu hóa và bắt đầu thực hiện tiếp quản tất cả các chức năng
Chúng ta không cần nắm rõ tất cả các chi tiết bên trong của giao thức VRRP, tuy nhiên một vài đặc điểm của giao thức này cũng cần được nắm rõ VRRP sử dụng cổng UDP
1985 để gửi đi các packet tới địa chỉ multicast là 225.0.0.2 Những chi tiết này sẽ rất hữu ích trong khi làm việc với các bộ lọc IP hoặc các thiết bị có chức năng tường lửa
VRRP đòi hỏi cả hai thiết bị đều có thể giao tiếp được với nhau Nếu như cô lập một trong hai thiết bị đó với thiết bị còn lại thì mỗi thiết bị đó sẽ xác định thiết bị đã chết và
Trang 30tiếp quản trạng thái master Trường hợp này có gây ra những lỗi nghiêm trọng trong mạng bởi vì xung đột địa chỉ IP hoặc các vấn đề khác sẽ xảy ra khi cả hai thiết bị đều nghĩ rằng chúng đang là thiết bị đang hoạt động trong kịch bản active - standby.
• Kiểm tra dịch vụ (Service Checking)
Một nhiệm vụ của thiết bị SLB là nhận biết khi nào server hoặc dịch vụ bị treo và loại bỏ server đó ra khỏi danh sách quay vòng Tính năng này còn được gọi là kiểm tra tình trạng (Health Checking) Có một số cách để thực hiện việc kiểm tra này từ cách đơn giản nhất như ping kiểm tra, kiểm tra cổng (kiểm tra xem cổng 80 có trả lời hay không) hoặc kiểm tra nội dung trong trường hợp web server được truy vấn cho các phản hồi đặc biệt nào đó Một thiết bị SLB sẽ chạy kiểm tra các dịch vụ một cách liên tiếp, quan những khoảng thời gian được người dùng định nghĩa sẵn
• Thuật toán cân bằng tải (Load Balancing Algorithm)
Tùy theo những yêu cầu nhất định của người dùng mà có một số cách thức phân tán tải giữa các nhóm server sử dụng một metric cho sẵn Các cách thức đó dựa trên các thuật toán được lập trình sẵn trong thiết bị Các cách thức này chạy ở lớp trên cùng và kết hợp được với bất kỳ một cách thức duy trì tính liên tục nào Chúng được gán cho những VIP riêng lẻ
Trang 31• Cơ sở hạ tầng cung cấp
Hạ tầng cơ sở mạng là sự kết hợp của các mạng thành phần cung cấp kết nối tới Internet, Extranet hoặc Intranet cho máy chủ web Nó kết nối giữa các máy chủ web và người sử dụng dịch vụ Có hai cách để thực hiện điều này: tại một địa điểm được kiểm soát bởi một site hoặc một địa điểm được duy trì bởi một colocation / nhà cung cấp dịch vụ hosting cho các công ty
- Trung tâm dữ liệu: Các site của chúng ta dù chạy ở các mạng cục bộ hay chạy trên máy chủ của các nhà cung cấp hosting thì chúng đều được đặt tại các data center Data Center
là một khái niệm dùng để chỉ một khu vực có độ an toàn cao, môi trường được điều tiết (thường sử dụng điều hòa không khí), các thiết bị phòng cháy chữa cháy không sử dụng nước (như Halon hoặc FM200) và hệ thống các UPS lưu trữ điện năng Số tiền được đầu
tư vào đây có thể là một khía cạnh để xác định chất lượng của một data center
- Leased Line: Một site có thể chạy với một hoặc nhiều các kết nối leased line của một hay nhiều nhà cung cấp dịch vụ Leased line đơn giản có thể là các đường DSL cũng có thể rất phức tạp như sử dụng nhiều đường OC3s chạy trên các phiên BGP đầy đủ tới nhiều nhà sử dụng Lợi ích mà Leased line đem lại là người chủ có toàn quyền điều khiển
và truy cập vào các thiết bị của mình
- Colacation: Là một dịch vụ cho phép bạn lắp đặt và sắp xếp các máy chủ của mình tại địa điểm của nhà cung cấp dịch vụ Thông thường là các rack hoặc các lồng an ninh Nhà cung cấp sẽ đảm bảo an toàn, cung cấp điện năng, điều hòa không khí cũng như băng thông cho các thiết bị của bạn Những nhà cung cấp dịch vụ này sẽ cho phép các thiết bị của bạn kết nối tới các đường kết nối backbone của họ thông qua “network drop” thường
là sử dụng đường kết nối Ethernet Điểm lợi của cách này là băng thông của nhà cung cấp dịch vụ thường có khả năng mở rộng hơn là những gì bạn có với các thiết bị của mình Nếu bạn muốn mở rộng băng thông từ nhà cung cấp dịch vụ, bạn chỉ cần yêu cầu nhà cung cấp hoặc nâng cấp các kết nối Ethernet của mình Còn nếu khi bạn sử dụng Leased line như ở trên thì bạn phải mất từ 30 ngày đến 6 tháng để yêu cầu công ty viễn thông
Trang 32tăng thêm băng thông cho đường kết nối của mình như đường T-1 (1,5 Mbps) hoặc DS-3 (45 Mbps), với các đường kết nối có băng thông lớn hơn thì sẽ cần thời gian lâu hơn.Colocation là một dịch vụ được ưa chuộng nhất hiện nay bới các yếu tố giá cả và khả năng mở rộng mà nó đem lại Dịch vụ này sẽ tốn ít chi phí và dễ dàng triển khai hơn đối với các công ty vì các công ty sẽ không cần phải quan tâm đến data center cũng như là các đường kết nối Các đường kết nối mạng thường thường rất phức tạp, có liên quan đến các điểm ngang hàng, các leased line tới các nhà cung cấp, và có thể là chính đường backbone của bạn Thông thường, tất cả các site chỉ cần quan tâm đến network drop từ nhà cung cấp dịch vụ.
2.2.2 Kiến trúc hệ thống cân bằng tải
Để tối đa hoá 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 toàn, trình điều khiển cân bằng tải được cài đặt 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 mạng đến địa chỉ IP chính của nhóm (và các địa chỉ bổ sung của các host ở nhiều vị trí khác nhau) 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à chồng 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 hoá 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 quá 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 các 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 khác của kiến trúc phân tán hoàn toà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
Trang 33dựa trên bộ điều phối tạo ra một điểm lỗi kế thừa mà chỉ có thể được 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 được 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 đồ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 các 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 cổng phía server Vấn đề tương tự sẽ gia tǎng nếu nhiều nhóm kết nối trên cùng một thiết
bị chuyển mạch và các biện pháp thiết lập các mạng LAN ảo cho từng nhóm không được thực hiện Trong quá trình nhận gói, việc triển khai của SLB là sự kết hợp giữa việc phân phối các gói tới tầng TCP/IP và nhận các gói khác qua trình điều khiển card mạng Việc này giúp tǎng tốc độ xử lý chung và giảm trễ do TCP/IP có thể xử lý gói trong khi trình điều khiển NDIS (Network Driver Interface Specification) nhận gói tiếp theo Trong quá trình gửi gói, SLB cũng tǎng cường thông lượng, giảm độ trễ và phụ phí (overhead) nhờ tǎng số lượng gói mà TCP/IP có thể gửi trong một kết nối Để có được những cải thiện về hiệu nǎng này, SLB thiết lập và quản lý một tập hợp các bộ đệm gói và các ký hiệu (descriptor) được sử dụng để phối hợp các hoạt động của TCP/IP và trình điều khiển NDIS
2.2.3 Hoạt động của hệ thống cân bằng tải File Server
Mô hình SLB đơn giản được mô tả như ở hình dưới đây
Trang 34Hình 2.7: Hệ thống SLB đơn giản
SLB mở rộng hiệu nǎng của các server ứng dụng, như File server, Web server chẳng hạn, nhờ phân phối các yêu cầu của client cho cá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 nhau của các client, cho dù một client có thể đưa ra nhiều yêu cầu
Mỗi host trong nhóm có thể định ra mức tải mà nó sẽ 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 việc 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 sao cho 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 Các server trong nhóm cân bằng tải phát đi một bản tin đặc biệt thông báo trạng thái hoạt động của nó (gọi là heartbeat message) tới các host khác trong nhóm đồng thời nghe bản tin này từ các khá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ụ cho các client Trong phần lớn các trường hợp, phần mềm client thường tự động kết nối lại và người sử dụng chỉ cảm thấy trễ một vài giây khi nhận được đáp ứng trả lời
Trang 352.3 Triển khai hệ thống File Server
2.3.1 Giới thiệu DFS (Distributed File System)
DFS được sử dụng để xây dựng cấu trúc phân cấp đại diện cho nhiều vị trí chia sẻ dữ liệu trên nhiều File server khác nhau Nếu trong mạng của bạn có nhiều File server, mỗi File server đó có một vài thư mục chia sẻ chứa dữ liệu, bạn sẽ gặp khó khăn khi phải nhớ chia
sẻ nào nằm trên server nào Nhưng với DFS, thay vì phải nhớ từng share gắn với từng File server, bạn sẽ chỉ phải nhớ một tên duy nhất để có thể đi tới tất cả chia sẻ trên tất cả server Bạn có thể tưởng tượng cái tên đó như là một “home” của tất cả shared files, trong
“home” đó chứa đường dẫn trỏ tới vị trí thực sự của các thư mục chia sẻ trên các File server DFS có thể dẫn client tới File server gần nhất có thể bằng cách sử dụng “Active Directory site metric” DFS cũng có thể cài trên một hệ thống Cluster để cung cấp hiệu năng tốt hơn và độ tin cậy cao hơn Để hiểu DFS làm việc như nào, chúng ta cần phải hiểu một số thuật ngữ:
• DFS Root: là tên gốc cho mọi đường dẫn DFS Bạn có thể hiểu nó như một “Root
Share”, trong đó bạn có thể có các tệp tin và thư mục khác
• DFS Link: đường dẫn tới một thư mục chia sẻ nằm ở một vị trí cụ thể nào đó trên
mang Khi user truy cập tới DFS Link sẽ được chuyển hướng sang thư mục chia sẻ thật
• DFS Target (Replica): có thể là DFS Root hay DFS Link Nếu bạn có 2 chia sẻ
giống hệt nhau nhưng lưu trữ ở 2 vị trí khác nhau, bạn có thể nhóm chúng vào chung trong một DFS Target
Trang 36Hình 2.8: Cấu trúc thư mục thật sự của một hệ thống DFS
DFS có hai dạng:
1 Active Directory Intergrated DFS (Fault-tolerant DFS): Là hệ thống DFS dựa trên nền Active Directory Hệ thống DFS sẽ tự động đồng bộ giữa các Domain Controller
và người dùng có thể truy xuất đến DFS thông qua đường dẫn \\domainname\dfsname
Dạng này thường được áp dụng trong trường hợp các Bạn muốn xây dựng các Files Server đồng bộ với nhau, mục đích chính là đảm bảo tính liên tục trên hệ thống một khi
có sự cố ở một Files Server nào đó thì Files Server khác sẽ thay thế VÀ dữ liệu tự động nhân bản, cập nhật cho toàn bộ hệ thống DFS Server
2 Stand-alone DFS: Là hệ thống DFS trên một máy Server Stand-alone Người
dùng truy xuất hệ thống DFS thông qua đường dẫn \\servername\dfsname Dạng này
thường được dùng trong trường hợp các Bạn muốn tất cả các Files Server được QUI về một mốt kết nối duy nhất Người sử dụng chỉ cần kết nối tới DFS Server là có thể truy xuất tới các Files Server khác theo kiểu duyệt cây thư mục
2.4 Các thuật toán cân bằng tải
2.4.1 Thuật toán Round Robin: