Clustering là gì? Tổng quan về công nghệ Clustering

Như đã biết, những máy chủ chính là cơ sở để mạng máy tính có thể hoạt động ổn định. Nếu như máy chủ xảy ra sự cố, hoạt động của hệ thống quản trị CSDL sẽ bị ngưng trệ. Vì thế chúng ta 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ó xảy ra sự cố đối với máy chủ mạng. Clustering chính là câu trả lời cho vấn đề sự cố này. Vậy công nghệ Clustering là gì? 

Giới thiệu về Clustering

Clustering là một kiến trúc với mục đích là nhằm đảm bảo nâng cao khả năng sẵn sàng cho những hệ thống mạng. Clustering gồm nhiều server riêng lẻ được liên kết và hoạt động cùng với nhau trong cùng một hệ thống.

Clustering là gì?

Clustering là gì?

Những server này giao tiếp với nhau để có thể trao đổi thông tin và giao tiếp với mạng bên ngoài để thực hiện yêu cầu. Khi xảy ra lỗi, các dịch vụ trong cluster sẽ hoạt động tương tác với nhau để duy trình được tính ổn định và độ sẵn sàng cao cho hệ thống.

Khi thiết kế và lắp đặt các cluster cần phải thỏa mãn những yêu cầu sau:

  • Tính sẵn sàng cao – High availability: Những tài nguyên mạng phải luôn sẵn sàng trong khả năng cao nhất để có thể cung cấp và phục vụ người dùng cuối để có thể giảm thiểu được sự ngưng hoạt động hệ thống ngoài ý muốn.
  • Độ tin cậy cao – reliability: Độ tin cậy cao của cluster được hiểu là khả năng làm giảm thiểu những tần số xảy ra những sự cố và nâng cao khả năng chịu đựng được những sai sót của hệ thống.
  • Khả năng mở rộng được – scalability: Hệ thống cần phải có khả năng dễ dàng cho việc nâng cấp, mở rộng được trong tương lai. Việc nâng cấp mở rộng bao hàm cả việc thêm những thiết bị máy tính vào hệ thống với mục đích nhằm nâng cao chất lượng dịch vụ. Cũng như thêm số lượng người dùng, thêm ứng dụng, dịch vụ và những tài nguyên mạng khác.

Những yêu cầu trên được gọi tắt là RAS ( Reliability – Availability – Scalability). Hệ thống nào mà đáp ứng được 3 yêu cầu trên gọi là RAS, khác với Remote Access Service – dịch vụ truy cập từ xa).

Bạn đọc tham khảo thêm: Letter Of Intent là gì? Những rủi ro khi viết LOI mà không phải ai cũng biết

Cấu trúc của Cluster

Tùy theo nhu cầu sử dụng mà ta có thể triển khai được nhiều dịch vụ trên cùng 1 cluster. Hoặc cài đặt trên mỗi một node 1 dịch vụ. 

Cấu trúc của một Cluster là gì?

Cấu trúc của một Cluster là gì?

Cấu trúc của 1 cluster không cố định, nhưng ta chủ yếu thấy những loại cấu trúc như:

  • Dịch vụ chạy song song: Triển khai 2 dịch vụ trên cùng hệ thống cluster thì sẽ có 1 phương pháp đơn giản là cải đặt cả 2 dịch vụ đó vào mỗi node của cluster. Ở cấu trúc này thì sẽ cho thấy 2 dịch vụ trên cùng 1 server. Vì thế nếu ứng dụng này gặp lỗi thì nó sẽ ảnh hưởng trực tiếp đến dịch vụ kia, hiệu quả của hệ thống cluster sẽ bị thấp.
  • Cluster riêng lẻ: Cấu trúc này tạo 2 hệ thống Cluster riêng lẻ, trong mỗi cluster cài đặt duy nhất 1 dịch vụ. Ở cấu trúc này thì hệ thống sẽ hoạt động hiệu quả hơn. Nếu có dịch vụ bị lỗi thì cũng sẽ không có ảnh hưởng đến những dịch vụ khác. Nhưng chi phí đầu tư cho kiểu này là rất cao bởi vì số lượng các node cho mỗi dịch vụ nhiều hơn loại ở trên.
  • Dịch vụ dự phòng: Cấu trúc này sẽ triển khai cả 2 dịch vụ trên cùng 1 cluster, mỗi node sẽ cài 1 dịch vụ nhưng sẽ khác với loại 1 là cùng có 1 cluster làm nhiệm vụ backup. Hệ thống này sẽ có 1 node passive dùng làm backup và cài cả 2 dịch vụ của node1 và node 2. Nếu 1 trong 2 node này mà bị lỗi thì node passive sẽ thay thế chức năng của node bị lỗi.

Phân loại Clustering

Kỹ thuật Clustering được chia làm 2 loại đó là:

  • Cluster: Dùng trong những ứng dụng Stateful Applications (những ứng dụng có hoạt động trong thời gian dài) bao gồm cả các database server như Microsoft MySQL Server, Microsoft Exchange Server, File and Print Server,… Tất cả các node trong cùng Cluster dùng chung 1 nơi lưu trữ, và nó có thể dùng công nghệ SCSI hoặc Storage Area Network. Window Server 2003 Enterprise và Datacenter hỗ trợ cluster lên đến 8 node trong khi windows 2000 chỉ hỗ trợ 2 node, còn windows 2000 Datacenter Server hỗ trợ 4 node.
  • NLB (Network Load Balancing) – Cân bằng tải mạng: Đây là một loại khác của kỹ thuật Clustering, nó có khả năng chia tải và nâng cao khả năng chịu đựng các lỗi của hệ thống. Nó được dùng cho các ứng dụng hoạt động không liên tục như File transfer protocol (FTP) hay Virtual Private Network (VPN). Những node trong cluster không dùng chung một nơi lưu trữ CSDL, vì thế cần phải có quá trình đồng bộ hóa để đưa dữ liệu giữa những nơi lưu trữ. Số lượng node càng nhiều thì dẫn đến việc thời gian cho đồng bộ càng lâu.

Note: Có điều cần phải chú ý đó là, hiệu quả hoạt động của hệ thống Clustering cần phải phụ thuộc vào sự tương thích giữa các ứng dụng và dịch vụ, giữa phần cứng và phần mềm. Bạn sẽ không thể triển khai cluster hay NLB khi các node sử dụng hệ điều hành khác nhau mặc dù hệ điều hành đó có hỗ trợ hay không. Kỹ thuật clustering không thể chống lại những sự cố xảy ra do virus, sai sót của phần mềm hay sai sót từ phía người sử dụng. Để chống lại những sự cố này bạn cần xây dựng một CSDL được bảo vệ chắc chắn cũng như cần phải có những kế hoạch khôi phục, backup lại dữ liệu.

Bạn đọc tham khảo thêm: Automation Testing là gì? Manual Test & Automation Test khác nhau ở điểm nào? Tại đây

Nguyên tắc hoạt động

Mỗi một máy chủ trong cluster được gọi là một node và nó cũng có thể được thiết lập ở chế độ chủ động (active) hay thụ động (passive). Khi mà một node được đặt ở chế độ chủ động, nó sẽ chủ động xử lý những yêu cầu. Còn khi node mà đặt ở thụ động, nó sẽ nằm ở chế độ dự phòng nóng (standby), sẵn sàng chờ để thay thế cho 1 node nào đó nếu bị hỏng.

Nguyên tắc, cơ chế hoạt động của 1 Clustering là gì?

Nguyên tắc, cơ chế hoạt động của 1 Clustering là gì?

Trong 1 cluster có nhiều node có thể kết hợp cả node chủ động và thụ động. Trong những mô hình này việc quyết định node được cấu hình là chủ động hay thụ động là điều rất quan trọng. Để hiểu được lý do tại sao hãy cùng xem xét tình huống dưới đây:

  • Trường hợp 1: Nếu 1 node chủ động mà gặp phải sự cố và có 1 node thụ động đang sẵn sàng thì các ứng dụng và dịch vụ đang chạy trên node hỏng sẽ lập tức chuyển sang node thụ động. Bởi vì, máy chủ đóng vai trò node thụ động hiện tại chưa chạy ứng dụng hay bất kỳ dịch vụ gì cả. Vì thế, nó có thể gánh toàn bộ công việc của máy chủ hỏng mà không hề ảnh hưởng gì đến những ứng dụng và dịch vụ cung cấp cho người dùng cuối.
  • Trường hợp 2: Nếu tất cả những máy chủ trong cluster là chủ động và có 1 node gặp phải sự cố, những ứng dụng, dịch vụ đang chạy trên máy chủ hòng sẽ phải chuyển ngay sang 1 máy chủ khác cũng đóng vai trò node chủ động. Bởi vì là node chủ động nên bình thường máy chủ này sẽ cần phải đảm nhận một số ứng dụng hay dịch vụ gì đó khi mà có sự cố xảy ra. Nó sẽ phải gánh thêm những công việc của máy chủ hỏng. Để đảm bảo hệ thống có thể hoạt động bình thường, kể cả khi gặp sự cố thì máy chủ trong cluster cũng cần phải có cấu hình dư ra để có thể gánh thêm khối lượng công việc của máy chủ khác khi cần thiết.

Trên đây là toàn bộ những thông tin tổng quan về Clustering. Hy vọng những chia sẻ trên đây đã giúp bạn hiểu hơn về Clustering là gì? Cơ chế hoạt động của nó diễn ra sao? 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *