April 21, 2015 hotro@hostingviet.vn 02466.567.555       Giới thiệuTuyển dụng    Liên hệ   Đăng nhập   Đăng ký

Cluster Là Gì? Cơ Chế Hoạt Động, Các Thành Phần Và Ưu Nhược Điểm

Clustering là kiến trúc nhằm nâng cao tính sẵn sàng của hệ thống mạng. Clustering gồm nhiều máy chủ kết nối với nhau và hoạt động trong cùng một hệ thống.

Cluster chắc hẳn vẫn là khái niệm khá mới mẻ với nhiều người. Vì thế, sau đây, Hosting Việt sẽ tổng hợp các kiến thức tổng quan về Cluster là gì để các bạn tham khảo nhé.

Cluster là gì?

Clustering là kiến trúc nhằm nâng cao tính sẵn sàng của hệ thống mạng. Clustering gồm nhiều máy chủ kết nối với nhau và hoạt động trong cùng một hệ thống. Các máy chủ giao tiếp với nhau để trao đổi thông tin nội bộ lẫn giao tiếp với các mạng bên ngoài khi có yêu cầu của người dùng. Trong trường hợp xảy ra bất kỳ lỗi nào thì các dịch vụ trong Cluster sẽ tương tác với nhau, để đảm bảo duy trì được sự ổn định của hoạt động và khả năng sẵn sàng cho hệ thống. 

Vậy khái niệm Cluster Server là gì? Đó là hệ thống có nhiều máy chủ kết nối song song hoặc phân tán với nhau. Tất cả các máy chủ được dùng như một tài nguyên thống nhất. Khi có một máy chủ nào nâng cấp, bảo trì và gây ra sự cố ngừng hoạt động thì các công việc của nó sẽ chuyển tự động đến máy chủ khác trong cùng Cluster. Nhờ vậy, hoạt động của hệ thống luôn được đảm bảo mà không bị gián đoạn. Thuật ngữ chuyên ngành gọi quá trình này là “fail-over” và quá trình phục hồi tài nguyên cho máy chủ trong Cluster gọi là “fail-back”.

cluster la gi

Các ưu nhược điểm của Server Cluster

  • Dễ dàng, thuận tiện trong quản lý: Cluster Administrator tools cho phép người dùng có thể quản lý Cluster tương tự như hệ thống đơn, đồng thời, quản lý một ứng dụng khi nó chạy trên máy chủ riêng lẻ. Tiếp đến, công cụ còn cung cấp cho người dùng tính năng di chuyển các ứng dụng qua lại giữa nhiều máy chủ khác nhau trong cùng một Cluster. 
  • Dễ mở rộng: Khi các ứng dụng dùng quá nguồn tài nguyên của hệ thống, người dùng dễ dàng thêm node vào Cluster để đáp ứng cho nhu cầu truy cập. Bên cạnh đó, người dùng còn được phép thêm bộ nhớ RAM hoặc các bộ xử lý. 
  • Tính sẵn sàng cao: Server Cluster mang đến tính sẵn sàng cao cho tất cả các ứng dụng và máy chủ ngay cả khi có một hoặc một vài thành phần phần mềm hay phần cứng bị lỗi. Thậm chí, khi một máy chủ xảy ra sự cố, quyền sở hữu tài nguyên (ví dụ ổ đĩa, địa chỉ IP) sẽ chuyển tự động đến máy chủ khác còn hoạt động trong hệ thống.
  • cluster la gi

Các thành phần của Cluster Service

Trong Server Cluster, Cluster Service chạy trên mỗi node và điều khiển tất cả các hoạt động của hệ thống. Cluster service chứa nhiều thành phần phần mềm làm việc với nhau. Chúng thực hiện công tác theo dõi, duy trì sự ổn định, vận chuyển tài nguyên giữa các node.

Các thành phần của Cluster Service gồm:

  • Resource DLLs: Mỗi ứng dụng sẽ đảm nhận việc theo dõi, điều khiển hoạt động của chính nó. 

Ví dụ: Resource DLL thực hiện nhiệm vụ sao lưu, phục hồi những thuộc tính của ứng dụng có trong Cluster database, chứa nguồn tài nguyên trực tuyến và ngoại tuyến, kiểm tra trạng thái của tài nguyên. Trong trường hợp cần thiết, Resource DLL có thể thực hiện failover, bằng cách nó làm việc với Resource Monitor cùng Failover Manager nhằm đảm bảo quá trình failover diễn ra dễ dàng.

  • Checkpoint Manager: Đảm bảo cho Cluster service được phục hồi từ một nguồn bị lỗi. Thông qua việc nó kiểm tra những khóa registry đối với một nguồn dữ liệu được đưa lên trực tuyến, đồng thời ghi thông tin checkpoint lên quorum resource khi nguồn dữ liệu này ngoại tuyến.
  • Database Manager: Đây là thành phần chạy trên từng node nhằm thực hiện việc duy trì một bản sao của dữ liệu cấu hình Cluster. Các thực thể này gồm Cluster, node thành viên, tất cả resource (kể cả resource group), mô tả các resource đặc biệt (gồm thông tin ổ đĩa, địa chỉ IP). Database Manager thực hiện cập nhật tất cả các thay đổi đến toàn bộ node thông qua Global Update Manager. Nhờ thế, toàn bộ thông tin cấu hình vẫn được duy trì ngay cả khi có bất kỳ node nào bị hỏng, hoặc Administrator thay đổi cấu hình trong thời gian node gặp sự cố.

Ngoài ra, thông qua Cluster service như Failover Manager hay Node Manager, Database Manager cung cấp interface chứa thông tin bị thay đổi trong dữ liệu cấu hình Cluster. Interface này được sử dụng cho mục đích tạo ra các thay đổi và chúng sẽ được Database Manager tiếp nhận, rồi cập nhật cho những node khác.

  • Event Log Replication Manager: Thực chất, đây là 1 thành phần của Cluster service nhưng nó làm việc với Event Log Service, nhằm thực hiện việc sao chép toàn bộ event log đến các node. Trong đó, Event Log Replication Manager sẽ đánh dấu sự kiện để thể hiện nó được xảy ra ở node nào.
  • Failover Manager: Đóng vai trò quản lý resource và resource group. Công việc của nó là tắt và khởi động resource, kiểm soát những resource liên quan, chuẩn bị failover của resource group. Nguyên tắc hoạt động của Failover Manager là tiếp nhận resource, thông tin từ Resource Monitors về trạng thái của hệ thống và các thành phần Cluster. Sau đó, Resource Monitors cung cấp môi trường làm việc và giao tiếp cho các resource DLL với Failover Manager. 

Failover Manager thực hiện xác định resource group thuộc sở hữu của node nào. Nếu cần failover resource group, Failover Manager của từng node sẽ làm việc để chỉ định lại quyền sở hữu của chính resource group đó.

Ngoài ra, Failover Manager còn có thể tái khởi động cục bộ bất kỳ resource bị hỏng nào, hoặc làm cho một resource trở nên ngoại tuyến đối với tất cả resource liên quan. Tất nhiên, hoạt động này chỉ diễn ra để chuẩn bị cho quá trình failover.

cluster la gi

  • Global Update Manager: Đây là thành phần được Failover Manager và Database Manager sử dụng với mục đích chuyển các thay đổi đến từng node. Khi một tiến trình cập nhật diễn ra, nó sẽ bắt đầu từ node client kết hợp với một node bổ nhiệm khác đóng vai trò theo dõi, nhằm đảm bảo quá trình cập nhật sẽ xảy ra trên toàn bộ node. 

Theo đó, node client yêu cầu node bổ nhiệm gửi một global lock để tiến hành cập nhật. Trong trường hợp, node bổ nhiệm chưa sẵn sàng, node client sẽ chờ. Ngược lại, khi đã sẵn sàng, node bổ nhiệm sẽ thực hiện gán cho node client và chỉ định nó cập nhật cục bộ. Khi node client cập nhật thành công nhưng lại xảy ra lỗi cập nhật trên node khác thì node client bị loại, đồng thời, hệ thống sẽ tiến hành cập nhật trên các node đang hoạt động khác. Lúc này, Quorum log đảm nhận trách nhiệm ghi lại hoạt động để node bị lỗi có thể nhận đầy đủ các thông tin cấu hình khi nó được khắc phục sự cố, và hoạt động trở lại.

  • Log Manager: Thành phần này tương tác với Checkpoint Manager để đảm bảo recover log trên quorum resource lưu trữ được các dữ liệu cấu hình và checkpoint thay đổi mới nhất. Giả sử có một hay một vài node bị hỏng, những node khác vẫn thực hiện thay đổi cấu hình. Tuy nhiên, nếu tất cả các node đều gặp sự cố thì Log Manager sẽ được Database Manager sử dụng để ghi lại toàn bộ những thay đổi của cấu hình lên Quorum resource.

Đến lúc các node bị lỗi hoạt động trở lại, chúng sẽ đọc Quorum resource. Sau đó, hệ thống thực hiện việc dò tìm những Quorum resource không đúng và Log Manager được Database Manager yêu cầu cập nhật bản sao, bằng cách dùng tập tin checkpoint của Quorum resource. Cuối cùng, hệ thống đối chiếu kết quả với file log của Quorum disk để hoàn tất quá trình cập nhật.

  • Membership Manager: Phụ trách việc duy trì nhất quán đối với toàn bộ các node, bao gồm node đang hoạt động và bị hỏng tại bất kỳ thời điểm nhất định nào. Với trọng tâm của Membership Manager là thuật toán regroup đảm nhận việc thực hiện yêu cầu khi có hệ thống phát hiện dấu hiệu cho thấy một, hay vài node bị lỗi.
  • Node Manager: Cơ chế hoạt động của thành phần này là duy trì danh sách các node, network, network interface. Dựa vào sự giao tiếp của các node, Node Manager sẽ đảm bảo toàn bộ node sẽ nhận được cùng danh sách những node đang hoạt động.

Dựa vào các thông tin dữ liệu cấu hình, Node Manager xác định các node được thêm hay bị loại khỏi Cluster. Bên cạnh đó, trên mỗi node đều có Node Manager theo dõi tất cả node khác nhằm phát hiện node bị lỗi, bằng cách gửi và nhận tin nhắn (heartbeat) đến từng node. Khi một node giao tiếp với node khác lỗi thì nó sẽ gửi broadcast một tin nhắn đến những node còn lại. Điều này giúp đảm bảo toàn bộ node sẽ xác nhận được danh sách node đang hoạt động. Đây là quá trình regroup event.

Khi một node được thêm mới vào Cluster, Node Manager của node đó sẽ tiến hành quá trình chứng thực, thông qua việc tạo một tiến trình giao tiếp với những Node Manager trên tất cả các node khác.

  • Resource Monitor: Đảm nhận việc cung cấp interface cho quá trình giao tiếp giữa resource DLLs với Cluster service. Theo đó, nếu Cluster muốn lấy dữ liệu từ resource, thì Resource Monitor sẽ nhận yêu cầu rồi chuyển đến cho resource DLL tương ứng. Còn khi resource DLL muốn báo cáo trạng thái hoặc thông báo về một sự kiện, thì resource đóng vai trò chuyển thông tin của resource DLL đến Cluster service.
  • Backup/Restore Manager: BackupClusterDatabase là một API có chức năng backup dữ liệu do Cluster service đưa ra. Đầu tiên, BackupClusterDatabase tương tác với Failover Manager rồi mới chuyển yêu cầu tới node. Sau đó, Database Manager trên node sẽ tạo bản backup cho file quorum log và file checkpoint.

Song song đó, Cluster service lại đưa ra một API khác để restore dữ liệu của Cluster từ backup path. Khi được yêu cầu, API sẽ thực hiện tắt Cluster service, rồi restore dữ liệu từ bản backup để tạo giá trị registry có chứa backup path. Tiếp đến, nó tái khởi động Cluster service. Sau khi khởi động lại, Cluster service tiến hành dò tìm yêu cầu và thực hiện restore dữ liệu từ backup path lên Quorum resource.

cluster la gi

Tìm hiểu các thuật ngữ của hệ thống Server Cluster là gì?

Sau đây là 3 thuật ngữ thường gặp khi làm việc với Cluster:

  • Failover: Đây là quá trình xảy ra tự động. Khi Cluster có một node hỏng thì các resource group được hệ thống chuyển đến một hay một vài node còn hoạt động. 
  • Node: Đây là một máy chủ thuộc Cluster mà trên đó có Cluster service cùng các ứng dụng được thiết lập.
  • Cluster: Phần đầu bài viết, Hosting Việt có nhắc đến khái niệm về Cluster. Đó là hệ thống song song do một nhóm dịch vụ phân phối. Mục đích hoạt động của Cluster là chạy các ứng dụng đặc biệt và nối kết với nhau để tăng cường khả năng chịu lỗi, cân bằng tải. Tiếp đến, Cluster còn sử dụng để cung cấp tính sẵn sàng cho hoạt động truy cập của người dùng.
  • cluster la gi