Cân bằng tải là một kỹ thuật để phân phối khối lượng công việc phải xử lý một cách đồng đều trên hai hoặc nhiều máy tính về các vấn đề liên kết mạng, CPU, ổ cứng... để có thể sử dụng tài nguyên một cách tối ưu, giảm thiểu thời gian hoạt động, tránh tình trạng quá tải.
Sử dụng nhiều dịch vụ với cân bằng tải thay vì một dịch vụ duy nhất có thể làm tăng độ tin cậy thông qua các máy dự phòng. Trong đó, cân bằng tải mạng là một kỹ thuật nhằm mở rộng hiệu năng của các máy chủ ứng dụng, chẳng hạn như máy chủ Web, nhờ phân phối các yêu cầu của máy khách cho các máy chủ trong nhóm. Khi đó, các máy chủ đều nhận gói IP đến nhưng gói chỉ được xử lý bởi một máy chủ nhất định. Các máy chủ trong nhóm sẽ đồng thời đáp ứng các yêu cầu khác nhau của các máy trạm. Với kỹ thuật cần bằng tải, quá trình xử lý và thời gian đáp ứng yêu cầu của máy trạm sẽ nhanh hơn nhiều (Hình 1).
Chức năng của cân bằng tải
Cân bằng tải có một số chức năng cơ bản sau:
- 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 (Application Layer), 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ủ 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 toá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ủ luôn phải có liên lạc với nhau (Keep Alive) để 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 cookie 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.
Ưu điểm của cân bằng tải
Khả năng của cân bằng tải thể hiện ở các mặt sau:
- Tính linh hoạt (Flexibility): Hệ thống cho phép bổ sung và loại bỏ các máy chủ bất kỳ khi nào cần và hiệu quả ngay tức thì. Thực tế, việc này không làm gián đoạn tới hoạt động của cả hệ thống, mà chỉ tại một điểm (node) trong hệ thống đó. Điều này cho phép duy trì, sửa chữa bất kỳ máy chủ nào trong hệ thống (thậm chí trong giờ cao điểm) mà ít tác động hoặc không có tác động nào tới hệ thống. Một cân bằng tải (Load Balancer) cũng có thể trực tiếp điều khiển lưu lượng mạng bằng cách sử dụng tập tin cookie, phân tích cú pháp URL, các thuật toán tĩnh/động... để tìm ra cách phân tải tối ưu cho hệ thống.
- Tính sẵn sàng cao (High availability): Hệ thống sẽ liên tục kiểm tra trạng thái của các máy chủ trong hệ thống và tự động “loại” bất kỳ máy chủ nào không “trả lời” trong một chu kỳ, cũng như tự động bổ sung máy chủ đó ngay khi nó hoạt động trở lại. Quá trình này là hoàn toàn tự động, thông qua cơ chế giao tiếp của cân bằng tải và các máy chủ, không cần có sự tham gia điều khiển trực tiếp của người quản trị. Do dó, một hệ thống cân bằng tải hướng đến tính dự phòng cho thiết bị chính trong trường hợp có thiết bị nào đó bị “hỏng”.
- Khả năng mở rộng (Scalability): Cân bằng tải chịu trách nhiệm phân phối tải tới nhiều máy chủ trong một hệ thống (Server Farm theo mặt vật lý và được gọi là Server Cluser – các bó Server), với mục đích là nâng cao hiệu quả, tăng sức mạnh phục vụ với số lượng lớn các máy chủ. Điều này mang lại lợi ích lớn về kinh tế, vì chỉ phải chi phí cho nhiều máy chủ nhỏ, thay vì đầu tư cho một máy chủ lớn, thiết bị chuyên dụng. Ngoài ra, trong quá trình hoạt động, số các máy chủ có thể thay đổi, thêm/bớt, loại bỏ, thay thế một cách dễ dàng mà không ảnh hưởng đến hoạt động của hệ thống, giữ cho hệ thống luôn có tính sẵn sàng cao.
Thuật toán cân bằng tải
Thuật toán được sử dụng phổ biến là Weighted Round Robin (WRR). Thuật toán này điều phối các máy chủ thực (real server) cũng luân phiên giống Round- Robin, nhưng nó còn kết hợp vào khả năng xử lý của từng máy chủ (Round - Robin xem như khả năng xử lý tất cả máy chủ bằng nhau). Mỗi máy chủ được đánh giá bằng một số nguyên (giá trị trọng số Weight – mặc định giá trị là 1), chỉ ra khả năng xử lý của nó. Ví dụ, các máy chủ thực A, B, C có weight lần lượt là 4, 3, 2 và thứ tự điều phối các yêu cầu AABABCABC, nó luân phiên trong chu kỳ (mod sum(Wi)). Thứ tự chọn máy chủ thực phục vụ dựa vào số Weight của máy chủ.
Trong WRR, các máy chủ thực có giá trị trọng số cao sẽ nhận được kết nối mới đầu tiên và nhận nhiều kết nối hơn máy chủ có trọng số thấp, máy chủ có giá trị trọng số bằng nhau sẽ nhận sự phân tải các kết nối mới bằng nhau.
Ngoài thuật toán WRR còn có một số thuật toán như: Round Robin, Least Connection, Weighted Least Connection.
Kỹ thuật sử dụng trong cân bằng tải
Kỹ thuật được sử dụng phổ biến là Linux
Virtual Server (LVS) - Network Address Translation (NAT ). Kiến trúc LVS-NAT được mô tả trong hình 2:
Hoạt động của LVS - NAT như sau: khi một người dùng truy cập vào máy chủ ảo (virtual server - được cung cấp bởi cluster server), một gói yêu cầu (request packet) được gửi đến địa chỉ IP ảo (virtual IP address, IP chấp nhận yêu cầu cho Virtual service) và cân bằng tải. Cân bằng tải xác định địa chỉ đích và số hiệu cổng của gói. Nếu nó hợp lệ với máy chủ ảo được cung cấp bởi các máy chủ ảo dựa vào bảng quy tắc thì một máy chủ thực sẽ được chọn để phục vụ bằng các thuật toán cân bằng tải, thông tin về kết nối này được lưu vào bảng băm (hash) để ghi nhận kết nối. Tiếp theo, địa chỉ đích và số hiệu cổng của gói được ghi lại cho phù hợp với máy chủ được chọn và gói được chuyển tiếp đến máy chủ. Khi các gói tiếp theo của kết nối đã được thiết lập trước đó (kết nối này được tìm thấy trong bảng băm) và các gói này sẽ được ghi và chuyển đến cùng máy chủ đã phục vụ nó trước đó.
Ngoài ra còn một số kỹ thuật như sau: DNS (Domain Name Service) để chỉ định từng máy chủ cho mỗi nhóm người dùng được xác định trước; Kỹ thuật chia tải – giảm số người dùng cho mỗi máy chủ; Linux Virtual Server (LVS) - Tunnelling (TUN); Linux Virtual Server (LVS)- Direct Routing.
Một số mô hình triển khai
Mô hình cân bằng tải LVS - Direct Routing gồm các thành phần chính sau (Hình 3):
- Cân bằng tải 1 (Load Balancer 1) - Master (LDirector 1): được cấu hình để điều phối các yêu cầu từ bên ngoài tới các máy chủ thực bên trong, hoạt động ở chế độ Active.
- Cân bằng tải 2 (Load Balancer 2) - Backup (LDirector 2): được cấu hình tương tự như Master nhưng ở trạng thái chờ (Stand- by). Khi Master gặp sự cố thì Backup sẽ thay thế vai trò của Master.
- Máy chủ thực (Real Server): chứa nội dung dịch vụ Website.
- Kỹ thuật sử dụng: LVS – Direct Routing.
- Thuật toán sử dụng: Weighted Round Robin, thuật toán này điều phối các máy chủ thực luân phiên dựa vào khả năng xử lý của từng máy.
- Master và Backup sẽ dùng tín hiệu Heartbeat để trao đổi với nhau, nếu Master có sự cố thì Backup sẽ thay thế vai trò của Master. Khi Master xử lý xong sự cố thì Backup sẽ nhường lại vai trò cho Master.
- Master dùng LDirector để giám sát các máy chủ thực. Nếu một trong các máy chủ thực gặp sự cố thì Master chỉ chia yêu cầu cho các máy chủ thực còn lại. Khi máy chủ thực bị sự cố được khắc phục xong Master lại tiếp tục chia yêu cầu cho máy chủ thực đó.
Trên đây đã giới thiệu tổng quan về cân bằng tải và các thuật toán, chức năng, ưu điểm và một số kỹ thuật trong cân bằng tải. Nhằm giảm tải cho các máy chủ dịch vụ, nhà cung cấp và người sử dụng có thể sử dụng nhiều giải pháp khác nhau để máy chủ làm việc hiệu quả hơn, trong đó có giải pháp cân bằng tải
10:00 | 09/03/2020
16:00 | 04/08/2024
Với sự phát triển mạnh mẽ của công nghệ số, số lượng các phần mềm chương trình được công bố ngày càng lớn. Song hành với đó là việc tin tặc luôn tìm cách phân tích, dịch ngược các chương trình nhằm lấy cắp ý tưởng, bẻ khóa phần mềm thương mại gây tổn hại tới các tổ chức, cá nhân phát triển phần mềm. Đặc biệt, trong ngành Cơ yếu có những chương trình có tích hợp các thuật toán mật mã ở mức mật và tối mật thì việc chống phân tích, dịch ngược có vai trò hết sức quan trọng. Do đó, việc phát triển một giải pháp bảo vệ các chương trình phần mềm chống lại nguy cơ phân tích, dịch ngược là rất cấp thiết.
10:00 | 17/05/2024
Mã độc không sử dụng tệp (fileless malware hay mã độc fileless) còn có tên gọi khác là “non-malware”, “memory-based malware”. Đây là mối đe dọa không xuất hiện ở một tệp cụ thể, mà thường nằm ở các đoạn mã được lưu trữ trên RAM, do vậy các phần mềm anti-virus hầu như không thể phát hiện được. Thay vào đó, kẻ tấn công sử dụng các kỹ thuật như tiêm lỗi vào bộ nhớ, lợi dụng các công cụ hệ thống tích hợp và sử dụng các ngôn ngữ kịch bản để thực hiện các hoạt động độc hại trực tiếp trong bộ nhớ của hệ thống. Bài báo tìm hiểu về hình thức tấn công bằng mã độc fileless và đề xuất một số giải pháp phòng chống mối đe dọa tinh vi này.
09:00 | 28/04/2024
Thời gian gần đây, lĩnh vực an toàn thông tin ghi nhận hình thức bảo mật Bug Bounty đang ngày càng nở rộ. Tuy nhiên, bên cạnh những số liệu khủng về giải thưởng, lỗ hổng được phát hiện, vẫn có những ý kiến trái chiều về hiệu quả thực sự mà Bug Bounty đem lại cho các tổ chức, doanh nghiệp.
09:00 | 04/04/2024
Mạng riêng ảo (VPN) xác thực và mã hóa lưu lượng truy cập mạng để bảo vệ tính bí mật và quyền riêng tư của người dùng ngày càng được sử dụng phổ biến trong cả môi trường cá nhân và doanh nghiệp. Do đó, tính bảo mật của VPN luôn là chủ đề nghiên cứu nhận được nhiều sự quan tâm. Bài báo sẽ trình bày hai tấn công mới khiến máy khách VPN rò rỉ lưu lượng truy cập bên ngoài đường hầm VPN được bảo vệ thông qua khai thác lỗ hổng TunnelCrack. Hai tấn công này đã được xác nhận là có khả năng ảnh hưởng đến hầu hết các VPN của người dùng. Ngoài ra, nhóm tác giả cũng đưa ra các biện pháp đối phó để giảm thiểu các cuộc tấn công lợi dụng lỗ hổng này trong thực tế.
Trong thời đại ngày nay, cùng với sự phát triển của khoa học kỹ thuật có ngày càng nhiều những cuộc tấn công vào phần cứng và gây ra nhiều hậu quả nghiêm trọng. So với các loại tấn công khác, tấn công qua kênh kề đang được nghiên cứu do khả năng khôi phục lại khóa bí mật trong khi hệ thống vẫn hoạt động bình thường mà không hề làm thay đổi phần cứng. Bài báo này sẽ trình bày một cách sơ lược về những kết quả cuộc tấn công kênh kề lên mã hóa RSA cài đặt trên điện thoại thông minh sử dụng hệ điều hành Android tại Viện Khoa học - Công nghệ mật mã. Nhóm tác giả đã tấn công khôi phục được một phần khóa bí mật của mã hóa RSA cài đặt trên điện thoại thông minh và chứng minh khả năng rò rỉ thông tin qua kênh kề.
14:00 | 11/09/2024
Nhằm trang bị cho người dân “vũ khí” chống lừa đảo trên không gian mạng, Cục An toàn thông tin (Bộ TT&TT) triển khai chiến dịch quốc gia với 5 nhóm kỹ năng thiết yếu, từ nhận biết dấu hiệu lừa đảo đến xử lý tình huống khi bị tấn công.
10:00 | 18/10/2024