Công nghệ cân bằng tải server
Trang 11.3 Phân loại mạng máy tính 10
1.3.1 Mạng cục bộ (Local Area Networks - LAN) 10
1.3.2 Mạng diện rộng (Wide Area Networks - WAN) 11
TỔNG QUAN VỀ HỆ THỐNG CÂN BẰNG TẢI SERVER 17
2.1 Tại sao phải xây dựng hệ thống cân bằng tải? 17
2.1.1.So sánh hệ thống cân bằng tải và hệ thống thông thường 18
2.2.Các giải pháp chia tải trên thế giới 19
2.2.2 Chia tải nhờ proxy 20
2.2.3 Chia tải nhờ thiết bị chia kết nối 20
2.3 Các thành phần của SLB 21
1
Trang 22.3.1 Chức năng của các thành phần trong SLB 21
2.3.3 Hoạt động của hệ thống cân bằng tải server 30
2.3.4 Kiến trúc hệ thống cân bằng tải 31
2.3.5 Phân phối lưu lượng trong SLB 33
2.3.6 Thuật toán cân bằng tải 38
2.3.7 Quá trình hội tụ của SLB 39
2.3.7 Hiệu suất của SLB 40
CHƯƠNG 3: 42
TRIỂN KHAI VÀ ĐÁNH GIÁ HỆ THỐNG 42
SERVER LOAD BALANCING 42
3.1 Giải pháp SLB dựa trên luân chuyển vòng DNS 42
3.2 Đánh giá SLB dựa trên luân chuyển vòng DNS 44
3.2.1 Ưu điểm của phương pháp luân chuyển vòng DNS 44
3.2.2 Nhược điểm của phương pháp này 44
3.3 Demo giải pháp SLB dựa trên DNS round robin 46
Cân bằng tải máy chủ web 46
KẾT LUẬN 49
Tài liệu tham khảo 50
2
Trang 3LỜI CẢM ƠN
Lời đầu tiên, em muốn gửi lời cảm ơn chân thành nhất tới PGS.TS Nguyễn KimGiao 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 đểluận văn 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 điện tử viễn thông đã 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ànhcảm ơn các bạn bè đồng nghiệp, 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 luận văn này.
Lời cuối, em muốn gửi lời biết ơn sâu sắc tới gia đình em 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 em thành công trong học tập,công việc và cuộc sống
Hà nội, tháng 05 năm 2008
Dương Ngọc Thắng
Trang 4DANH 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ạngDNS Domain Name System Hệ thống tên miền
Trang 6MỞ ĐẦU
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ểnvượ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ịchtài chính, hệ thống cơ sở dữ liệu, hệ thống web server, các ứng dụng truyền media….Các ứng dụng này có 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êucầ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 mongmuố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ínhtoá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 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ềnthô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 songsong 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ántrong 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ó 5lý 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 thông qua sự cânbằ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 luận văn tốt nghiệp là “Công nghệ cân bằngtải server” Đâ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 toán hiệu năng cao và các trung tâm dữ liệu phục vụ cho các ứngdụng lớn.
Nội dung nghiên cứu của luận văn này được xây dựng trên cơ sở những kiến thứcđã được tiếp thu trong quá trình học tập, nghiên cứu tại trường đại học Công Nghệ,Đại Học Quốc Gia Hà Nội cũng như thời gian làm việc tại phòng phát triển hệ thốngcông ty máy tính Anh Đức Với thời gian nghiên cứu hạn hẹp, luận văn không tránhkhỏi những sai sót, em xin được sự góp ý chỉ bảo của các quý thầy cô và các bạn.
Trang 7CHƯƠNG 1: CẤU TRÚC MẠNG
Sự kết hợp của máy tính với các hệ thống truyền thông đặc biệt là các hệ thốngviễn thông đã tạo ra một sự chuyển biến có tính cách mạng trong vấn đề khai thác vàsử dụng các hệ thống máy tính Mô hình tập trung dựa trên các máy tính lớn vớiphương thức khai thác theo lô đã được thay thế bằng mô hình tổ chức mới, trong đócác máy tính đơn lẻ được kết hợp lại để cùng thực hiện một công việc Một môi trườnglàm việc đà người dùng sử dụng tài nguyên phân tán đã hình thành và cho phép nângcao hiệu quả khai thác tài nguyên chung từ những vị trí địa lý khác nhau Các hệ thốngnhư thế gọi là các mạng máy tính
Trong những năm 70 của thế kỉ 20, khi bắt đầu xuất hiện khái niệm Mạng truyềnthông, trong đó các thành phần chính của nó là các nút mạng, được gọi là các bộchuyển mạch dùng để chuyển thông tin đến đích của nó Các nút mạng được nối vớinhau bằng các đường truyền vật lý còn các máy tính xủ lý thông tin qua trạm Hosthoặc các trạm cuối được kết nối trực tiếp vào các nút mạng để khi cần thì sẵn sàng traođổi thông tin qua mạng
1.1 Định nghĩa mạng máy tính
Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi đườngtruyền theo một cấu trúc nào đó và thông qua đó các máy tính trao đổi thông tin qualại cho nhau.
Đường truyền là hệ thống các thiết bị truyền dẫn có dây hay không dây dùng đểchuyển các tín hiệu điện tử từ máy tính này đến máy tính khác Các tín hiệu điện tử đóbiểu thị các giá trị dữ liệu dưới dạng các xung nhị phân (on - off) Tất cả các tín hiệuđược truyền giữa các máy tính đều thuộc một dạng sóng điện từ Tùy theo tần số củasóng điện từ có thể dùng các đường truyền vật lý khác nhau để truyền các tín hiệu Ởđây đường truyền được kết nối có thể là dây cáp đồng trục, cáp xoắn, cáp quang, dâyđiện thoại, sóng vô tuyến
Các đường truyền dữ liệu tạo nên cấu trúc của mạng Hai khái niệm đườngtruyền và cấu trúc là những đặc trưng cơ bản của mạng máy tính.
Trang 8Hình 1.1: Một mô hình liên kết các máy tính trong mạng
Với sự trao đổi qua lại giữa máy tính này với máy tính khác đã phân biệt mạngmáy tính với các hệ thống thu phát một chiều như truyền hình, phát thông tin từ vệ tinhxuống các trạm thu thụ động vì tại đây chỉ có thông tin một chiều từ nơi phát đến nơithu mà không quan tâm đến có bao nhiêu nơi thu, có thu tốt hay không.
Đặc trưng cơ bản của đường truyền vật lý là băng thông Băng thông của mộtđường chuyền chính là độ đo phạm vi tần số mà nó có thể đáp ứng được Tốc độtruyền dữ liệu trên đường truyền còn được gọi là thông lượng của đường truyền -thường được tính bằng số lượng bit được truyền đi trong một giây (Bps).
1.2 Kiến trúc mạng máy tính
Kiến trúc mạng máy tính thể hiện cách nối các máy tính với nhau ra sao và tậphợp các quy ước mà tất cả các thực thể tham gia truyền thông trên mạng phải tuân theođể đảm bảo cho mạng hoạt động tốt Sự sắp xếp vật lý đặc trưng của các thành phầnmạng được gọi là hình trạng (topology) mạng Còn tập hợp các quy tắc, qui ước truyềnthông gọi là giao thức mạng.
1.2.1 Topo mạng
Topo mạng xác định cấu trúc của mạng Có hai kiểu topo mạng là topo vật lý vàtopo luận lý.
Topo vật lý: xác định các thành phần của mạng được nối thực tế với nhau như thế
nào Có các dạng topo vật lý được dùng phổ biến như.
Bus: dùng một trục cáp đơn được kết cuối ở cả hai đầu Tất cả các host được kếtnối trực tiếp vào trục này.
Trang 9 Ring: kết nối host này đến host kế tiếp và cứ thế cho đến host cuối lại kết nốivới host đầu Từ đó tạo nên vòng tròn cáp vật lý.
Star: Kết nối tất cả các host đến một điểm trung tâm.
Start mở rộng: liên kết các star riêng lại với nhau bằng cách nối các hub hoặcswitch với nhau, dạng này có khả năng mở rộng phạm vi và mức bao phủ củamạng
Topo phân cấp: tương tự như star mở rộng Tuy nhiên, thay vì liên kết các hubhay switch với nhau, hệ thống này được liên kết đến một máy tính kiểm soátlưu lượng trên topo.
Mesh: được triển khai nhằn tăng cường mức bảo vệ càng nhiều càng tốt đối vớitình huống gián đoạn dịch vụ Việc sử dụng mesh trong các hệ thống điềukhiển được nối thành mạng của một cơ sở hạt nhân là một ví dụ điển hình Nhưcó thể thấy trên hình dưới, mỗi host có các kết nối riêng đến tất cả các host cònlại Mặc dù Internet có nhiều đường dẫn đến bất kì một vị trí nào, nhưng nó vẫnkhông được coi là một topo dạng lưới đầy đủ.
Topo luận lý: là cách thức mà host truyền thông xuyên qua môi trường Có hai loại
phổ biến nhất của topo luận lý là broadcast và token passing
Broadcast có nghĩa đơn giản là mỗi host truyền số liệu của nó đến tất cả các hosttrên môi trường mạng Không có trật tự ưu tiên nào mà các trạm phải tuân theo trongviệc sử dụng mạng, mà hoạt động theo phương thức đến trước phục vụ trước Kiểuhoạt động này hoạt động theo cách của mạng Ethernet.
Token passing điều khiển truy nhập mạng bằng cách chuyển một thể điện mộtcách tuần tự đến các host Mỗi khi một host nhận được thẻ bài này là lúc nó có thểtruyền số liệu lên mạng Nếu host không có số liệu để truyền nó lập tức chuyển thẻđiện đến host kế tiếp và tiến trình cứ như thế lặp lại Hai mạng sử dụng token passinglà Token Ring và FDDI Một biến thể khác của Token Ring và FDDI là Arcnet Arcnetlà một token passing trên một topo dạng bus.
1.2.2 Giao thức mạng
Việc trao đổi thông tin cho dù là đơn giản nhất cũng phải tuân theo những quytắc nhất định Ngay cả hai người nói chuyện với nhau muốn cho cuộc nói chuyện cókết quả thì hai người cũng phải ngầm theo một quy tắc nào đó Việc truyền tín hiệutrên mạng cũng vậy, cần phải có những quy tắc, quy ước về nhiều mặt, từ khuôn dạng
Trang 10của dữ liệu cho tới các thủ tục gửi nhận dữ liệu, kiểm soát hiệu quả và chất lượngtruyền tin, xử lý các lỗi và sự cố Yêu cầu về xử lý và trao đổi thông tin của người sửdụng càng cao thì các quy tắc càng nhiều và phức tạp hơn Tập hợp tất cả các quy tắc,quy ước đó được gọi là giao thức của mạng.
1.3 Phân loại mạng máy tính
Do hiện nay mạng máy tính được phát triển khắp nơi với những ứng dụng ngàycàng đa dạng cho nên việc phân loại mạng máy tính là một việc rất phức tạp Người tacó thể chia các mạng máy tính theo khoảng cách địa lý ra làm các loại: Mạng diệnrộng,Mạng cục bộ, mạng đô thị, Mạng lưu trữ và Mạng riêng ảo.
1.3.1 Mạng cục bộ (Local Area Networks - LAN)
Mạng cục bộ là mạng được thiết lập để liên kết các máy tính trong một khu vựcnhư trong một toà nhà, một khu nhà Mạng LAN bao gồn các thành phần sau:
Trang 11Hình 1.2: Hình ảnh một mạng LAN
1.3.2 Mạng diện rộng (Wide Area Networks - WAN)
Mạng WAN là mạng được thiết lập để liên kết các máy tính của hai hay nhiều khuvực khác nhau như giữa các thành phố hay các tỉnh Các Wan được thiết kế để phụcvụ các mục đích sau:
Hoạt động qua các vùng tách biệt về mặt địa lý.
Cho phép người sử dụng có khả năng truyền thông tin thơì gian thực với ngườikhác.
Cung cấp các kết nối liên tục đến các vùng tài nguyên. Một số công nghệ WAN phổ biến là:
Modem ISDN DSL
Frame Relay.
Các đường truyền chuẩn Bắc Mỹ và Châu Âu T1, E1, T3, E3. Mạng quang đồng bộ SONET
Trang 12Hình 1.3: Hình ảnh một mạng WAN
1.3.3 Mạng đô thị (MAN)
MAN là mạng được thiết lập giữa hai hay nhiều LAN toạ lạc trong cùng mộtvùng địa lý, một vùng nội thị hay ngoại ô Một mạng MAN cũng có thể được tạo bằngcông nghệ cầu không dây (wireless bridge) với các tín hiệu vô tuyến lan truyền quacác vùng có cộng đồng người sử dụng.
Hình 1.4: Hình ảnh một mạng MAN
Trang 131.3.4 Mạng lưu trữ (SAN)
SAN là mạng chất lượng cao, cấp riêng được dùng để di chuyển dữ liệu qua lạigiữa các server và các tài ngyên lưu giữ Bởi nó là mạng cấp riêng tách biệt nên tránhđược bất kì sự xung đột nào giữa clien và server Công nghệ SAN cho phép thực hiệncác cuộc nối tốc độ cao giữa các server với các thiết bị lưu trữ
Hình 1.5: Hình ảnh một mạng SAN
1.3.5 Mạng riêng ảo (VPN)
VPN là mạng riêng được kiến tạo bên trong một hạ tầng mạng công cộng nhưinternet Sử dụng VPN, mọi người có thể làm việc tại nhà qua mạng (telecommuter)có thể truy xuất vào mạng của công ty qua internet bằng cách xây dựng một đườnghầm bí mật (secure tunnel) giữa máy tính của họ và một VPN router đặt tại vănphòng công ty.
Trang 14Hình 1.6: Hình ảnh một mạng VPN
Sự phân biệt trên chỉ có tính chất ước lệ, các phân biệt trên càng trở nên khó xácđịnh với việc phát triển của khoa học và kỹ thuật cũng như các phương tiện truyềndẫn Tuy nhiên với sự phân biệt trên phương diện địa lý đã đưa tới việc phân biệt trongnhiều đặc tính khác nhau của hai loại mạng trên, việc nghiên cứu các phân biệt đó chota hiểu rõ hơn về các loại mạng.
1.4 Mô hình OSI
Sự phát triển các mạng thời kỳ đầu không được tổ chức và diễn ra theo nhiềucách Những năm đầu thập niên 80 đã chứng kiến sự gia tăng mạnh mẽ về số lượng vàkích thước của các mạng Khi các công ty bắt đầu nhận thức được ưu điểm của việc sửdụng công nghệ mạng, các mạng được thêm vào và mở rộng nhanh chóng Do sự pháttriển quá nhanh khiến các công ty gặp phải những khó khăn, cũng giống như conngười bất đồng ngôn ngữ khi tiếp xúc với người khác ngôn ngữ, các mạng của cáccông ty và các hãng cũng gặp phải tình trạng tương tự do những đặc tả và những quyđịnh khác nhau trong việc thiết kế hệ thống mạng của mình
Để giải quyết vấn đề bất tương thích mạng, tổ chức tiêu chuẩn hóa quốc tế (ISO)đã nghiên cứu các mô hình mạng thiết lập như DECnet, SNA và TCP/IP để tìm ra mộtsố luật định có thể áp dụng một cách tổng quát cho tất cả các mạng Sử dụng nghiêncứu này ISO đã đưa ra một mô hình mạng, qua đó giúp các nhà cung cấp thiết bị mạngtạo ra các mạng có thể tương thích tốt với các mạng khác.
Mô hình tham chiếu các hệ thống mở OSI đã được công bố vào năm 1984, và làmô hình có tính chất mô tả được tạo ra bởi ISO Nó cung cấp cho các nhà sản xuất
Trang 15một tập các tiêu chuẩn đảm bảo khả năng tương thích và khả năng liên kết hoạt độngtốt hơn giữa các công nghệ mạng khác nhau được giới thiệu bởi các công ty trênkhắp thế giới
Môt hình tham chiếu OSI đã trở thành mô hình chính thức cho hoạt động truyềnthông mạng Mặc dù tồn tại một số mô hình khác nhưng hầu hết các nhà chế tạo đềuđựa vào mô hình OSI để chế tạo các sản phẩn của họ
1.5 Mô hình OSI với hệ thống cân bằng tải
Khi nói về thiết bị cân bằng tải, các lớp của mô hình OSI thường được đề cậpđến OSI đã được phát triển và được coi như một framework cho việc phát triển cácgiao thức và các ứng dụng Mô hình OSI có một sự tương đồng với các chuẩn của môhình mạng Internet (Mô hình TCP/IP) cái mà hệ thống cân bằng tải đang được ứngdụng ngày nay
Tầng ứng dụng (Application layer): tầng ứng dụng quy định giao diện giữa người sử
dụng và môi trường OSI, nó cung cấp các phương tiện cho người sử dụng truy cập vảsử dụng các dịch vụ của mô hình OSI
Tầng trình bày (Presentation layer): tầng trình bày chuyển đổi các thông tin từ cú
pháp người sử dụng sang cú pháp để truyền dữ liệu, ngoài ra nó có thể nén dữ liệutruyền và mã hóa chúng trước khi truyền đễ bảo mật.
Tầng giao dịch (Session layer): tầng giao dịch quy định một giao diện ứng dụng cho
tầng vận chuyển sử dụng Nó xác lập ánh xa giữa các tên đặt địa chỉ, tạo ra các tiếpxúc ban đầu giữa các máy tính khác nhau trên cơ sở các giao dịch truyền thông Nó đặttên nhất quán cho mọi thành phần muốn đối thoại riêng với nhau.
Các tầng từ 5 tới 7 thực hiện chức năng cân bằng tải qua việc sử dụng URL hoặc cácthông tin trong gới dữ liệu như cookie DNS round robin là một ứng dụng điển hình.
Tầng giao vận (Transport layer): tầng vận chuyển xác định địa chỉ trên mạng, cách
thức chuyển giao gói tin trên cơ sở trực tiếp giữa hai đầu mút (end-to-end) Để bảođảm được việc truyền ổn định trên mạng tầng vận chuyển thường đánh số các gói tinvà đảm bảo chúng chuyển theo thứ tự SLB sử dụng các thông tin về cổng và địa chỉđể thực hiện các chức năng cân bằng tải.
Trang 16Hình 1.7: Mô hình 7 tầng OSI
Tầng mạng (Network layer): tầng mạng có nhiệm vụ xác định việc chuyển hướng,
vạch đường các gói tin trong mạng, các gói tin này có thể phải đi qua nhiều chặngtrước khi đến được đích cuối cùng Thường chức năng cân bảng tải cũng được thựchiện trên các router tại lớp mạng
Tầng liên kết dữ liệu (Data link layer): tầng liên kết dữ liệu có nhiệm vụ xác định cơ
chế truy nhập thông tin trên mạng, các dạng thức chung trong các gói tin, đóng các góitin Tại lớp liên kết dữ liệu các thiết bị như switch thường được nối với nhau bởinhiều đường, và cũng thực hiện các chức năng phân phối tải theo các thuật toán đãđược cài đặt sẵn trong thiết bị
Tầng vật lý (Phisical layer): tầng vật lý cung cấp phương thức truy cập vào đường
truyền vật lý để truyền các dòng Bit không cấu trúc, ngoài ra nó cung cấp các chuẩn vềđiện, dây cáp, đầu nối, kỹ thuật nối mạch điện, điện áp, tốc độ cáp truyền dẫn, giaodiện nối kết và các mức nối kết Chức năng cân bằng tải ở lớp vật lý thường đề cậpđến việc kết nối các thiết bị qua các cáp vật lý như cat 5, fiber…
Trang 17Chú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ảnxuấ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ỏnghó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ẫnhoạ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ộtserver đơ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ềukhiể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 ragiải pháp cân bằng tải như Cisco, Coyote Point, Sun Microsystems với rất nhiều tínhnǎ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ữngquan đ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ịchvụ 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 các thuật toán cân bằng tải động như Least Connection,Weighted Least Connection, Optimized Weighted Round Robin và OptimizedWeighted Least Connection, kỹ thuật cân bằng tải hiện nay nhờ sự kết hợp các thuậttoá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ớicá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
Trang 18server 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ácclient 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úcphầ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.1.So sánh hệ thống cân bằng tải 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
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.
Trang 19 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àmviệ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
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…
2.2.Các giải pháp chia tải trên thế giới
Việc chia tải có thể thực hiện bằng nhiều phương cách, hình thức khác nhau, vớicác công nghệ khác nhau hoặc kết hợp chúng lại:
2.2.1 Chia tải bằng phần mềm cài trên các máy chủ
Kết hợp nhiều server một cách chặ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ũngcung 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à quenthuộc với những nhà quản trị chuyên nghiệp, có thể chia sẻ được nhiều tài nguyêntrong 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ợplý Tuy nhiên, do sử dụng phần mềm trên server, tính phức tạp cao nên khả năng mởrộng của giải pháp này bị hạn chế, phức tạp khi triển khai cũng như khắc phục khi xảyra 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ảomật cho ứng dụng.
Trang 202.2.2 Chia tải nhờ 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àyvì 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ụngmá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 ứngdụ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áicủ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 dòng nàythườ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ấpnhậ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.
2.2.3 Chia tải nhờ thiết bị chia 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ụngnhư 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ệună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ínhnă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ảnnhư DNS round-robin (đây là thuật toán chia tải phổ biến nhất và đơn giản, tuy nhiêncứ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áicủ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ànhcao Cách thức này cũng hoàn toàn không phù hợp đối với các hệ thống yêu cầu tínhchuẩ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ụngproxy), 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ácyê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 quantrọ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ụ.
Trang 21GP 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)
Như vậy yêu cầu thực tế đặt ra là phải xây dựng được một hệ thống hoàn chỉnhcó khả năng quản trị lưu lượng, có khả năng kiểm soát, điều khiển và tối ưu hóa lưulượng mạng chạy qua nó SLB là một giải pháp có thể giải quyết được hầu hết các yêucầu đặt ra ở trên với một sự tối ưu cao nhất.
2.3 Các thành phần của SLB
2.3.1 Chức năng của các thành phần trong SLB
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 đây: Can thiệp vào luồng dữ liệu mạng tới một điểm đí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ủ 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 đượcthự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, canthiệ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 VIPnhư 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ộtmá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ốiluồ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ươngthức được mô tả trong phần “Active - Active Scenario” sau đây.
Trang 22Cá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áchoặ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ỉ IPvà 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ònphụ 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.
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ôngchỉ những nhà cung cấp thiết bị khác nhau cung cấp những cấp độ truy nhập khácnhau, 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ảnngườ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áchthứ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ể xemcá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 để xemcá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 khithay đổ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ấuhì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ốngnhư 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ụnghai 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ìnhtrạng hoạt động của thiết bị còn lại Trong một vài tình huống, cả hai thiết bị đều hoạt
Trang 23động, đá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ộtthiế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óchoặ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ăngchính, trong khi đó thiết bị dự phòng sẽ đợi để thực hiện những chức năng này Mốiquan 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ộtvà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ácchứ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ìnhhuống trục trặc
Hình 2.1: 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ặcvà nhận xử lý toàn bộ luồng dữ liệu đến.
Trang 24Hình 2.2: Hoạt động của kịch bản Active - Standby
Kịch bản Active - Active
Có 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ếtbị đề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ặptrụ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ặptrụ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.Xem hình 2 - 3.
Trang 25Hình 2.3: 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 giaothứ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.4: Hoạt động của kịch bản Active-Active
Trong 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ònlạ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ácchức năng Hình 2-5.