[Cluster là gì?] Ứng dụng cluster trong quản trị cơ sở dữ liệu

Mục lục

1. Tìm hiểu chung về cluster

1.1. Giải nghĩa thuật ngữ cluster là gì?

Cluster có thể hiểu là một kiến trúc nhằm nâng cao được khả năng sẵn sàng cho các hệ thống mạng máy tính. Hay nói cách khác thì đây là một cụm máy tính hiệu năng cao bao gồm các máy tính kết nối qua hệ thống mạng LAN để chúng hoạt động như một máy đơn lẻ. Hệ thống này cho phép nhiều máy chủ kết hợp với nhau để tạo nên một cụm máy tính có khả năng chịu được được các sai sót, từ đó nâng cao được độ sẵn sàng của hệ thống mạng.

Các máy chủ trong cluster được kết nối với nhau theo các dạng phân tán hoặc song song và được sử dụng như một tài nguyên thống nhất. Cụ thể đó là nếu một máy chủ ngừng hoạt động bởi gặp sự cố hoặc là để nâng cấp, bảo trì thì toàn bộ khối lượng công việc mà nó đảm nhận sẽ vẫn được tiếp tục tự động chuyển sang các máy chủ khác cùng một cluster. Điều này giúp cho quá trình làm việc, hoạt động của hệ thống không bị gián đoạn và ảnh hưởng đến các hệ thống khác hay hiệu quả của công việc.  Và quá trình này được gọi là “failover”, khả năng phục hồi lại các tài nguyên trong 1 máy chủ sẽ được gọi là “failback”.

Đối với 1 cluster sẽ bao gồm có nhiều server riêng lẻ, khác nhau được liên kết sẵn, đồng thời nó có thể hoạt động theo tính năng tích hợp trong cùng 1 hệ thống. Theo đó, những server nhỏ lẻ này sẽ có thể giao tiếp được với nhau ở bên ngoài thông qua hệ thống các thông tin đã được yêu cầu bởi người dùng.

Hiện nay, một cụm máy tính (cluster) có thể giải quyết được khá nhiều các hoạt động phức tạp một cách hiệu quả hơn rất nhiều bởi tốc độ xử lý nhanh, dữ liệu được đảm bảo toàn vẹn so với một máy tính thông thường duy nhất. Do đó, cluster cũng chỉ được sử dụng cho một số ứng dụng quan trọng.

1.2. Một số thuật ngữ được sử dụng phổ biến trong cluster

Trong cluster, để đảm bảo quá trình sử dụng, vận hành hệ thống cụm máy được tốt nhất, áp dụng chính xác các tính năng của nó thì bạn sẽ cần phải biết về một số thuật ngữ chuyên môn. Có rất nhiều yếu tố trong cluster, tuy nhiên, có 3 thuật ngữ quen thuộc, phổ biến nhất là các bạn cần hết sức lưu ý đó chính là:

- FAILOVER – đây là quá trình có thể xảy ra một cách tự động khi mà 1 node ở trong cluster bất ngờ gặp phải lỗi, bị hỏng và các resource group sẽ được chuyển đến 1 hoặc là nhiều node trong chính hệ thống cluster vẫn còn có thể hoạt động được. Việc tự động failover này cũng có thể xem như việc lập kế hoạch cho quá trình tái chỉ định quyền sở hữu những resource trong cluster

- NODE được hiểu là 1 server thuộc 1 cluster nào đó được thiết lập bởi những ứng dụng và cluster server.

- CLUSTER chính là hệ thống song song và đồng thời cũng được phân phối bởi 1 nhóm các server sử dụng riêng cho mục đích chạy ứng dụng đặc biệt. Hệ thống này được kết nối với nhau nhằm cung cấp khả năng chịu lỗi, load balance. Bên cạnh đó thì cluster cũng được sử dụng để nâng cấp các tính năng giúp máy tính có thể truy cập theo yêu cầu người dùng.

2. Các thành phần của cluster hiện nay

Đối với hệ thống cluster hiện nay có rất nhiều thành phần khác nhau, cấu tạo nên một cấu trúc hoàn chỉnh. Cụ thể các thành phần đó bao gồm:

- Backup hay Restore Manager: với thành phần này thì cluster server sẽ đưa ra 1 API để sử dụng cho việc backup các cơ sở dữ liệu có trong cluster và nó được gọi là backup cluster database. Theo đó, backup cluster database sẽ thực hiện tương tác với failover manager để đẩy các yêu cầu đó đến node đã chứa quorum resource. Tiếp đến, các database manager ở trên node sẽ được yêu cầu tạo ra 1 bản backup cho quorum log file cùng những file checkpoint.

- Resource Monitor: thành phần này được phát triển nhằm mục đích cung cấp 1 interface để giao tiếp giữa 1 resource DLLs với cluster server trong trường hợp mà cluster cần phải lấy 1 resource hay resource monitor để tiếp nhận các yêu cầu, đồng thời đưa các yêu cầu đó đến resource DLLs phù hợp nhất. Và ngược lại, khi mà 1 resource DLLs cần phải báo cáo trạng thái của nó hoặc là thông báo đến cho cluster server 1 vấn đề, sự kiện nào đó thì resource sẽ cần phải đưa các thông tin này đến cho cluster server.

- Node Manager: thành phần này chạy trên mỗi node và đồng thời duy trì được 1 danh sách cục bộ bao gồm có các node, network, network interface,… ở trong cluster. Theo đó, dựa vào quá trình giao tiếp của các node mà node manager sẽ đảm bảo được cho các node có cùng chung danh sách với những node đang hoạt động tại hệ thống.

- Membership manager có nhiệm vụ chính là duy trì 1 cái nhìn nhất quán về các node có trong cluster đang hoạt động ở hệ thống hoặc là bị lỗi ở 1 thời điểm nào đso. Đối với thành phần này thì chỉ tập trung chủ yếu vào các thuật toán regroup và được yêu cầu hoạt động ở bất cứ thời điểm nào mà nó phát hiện ra có dấu hiệu của 1 hoặc nhiều node bị hỏng, lỗi.

- Checkpoint manager có vai trò đảm bảo cho quá trình phục hồi resource đã bị lỗi đồng thời tiến hành kiểm tra các khóa registry khi mà 1 resource online ghi lại dữ liệu checkpoint mang đến quorum resource ở các trường hợp mà nó offline.

3. Ưu điểm của hệ thống cluster

Hiện nay, cluster được sử dụng khá phổ biến và rộng rãi ở nhiều nơi bởi các ưu điểm vượt trội mà chúng mang lại. Điều này sẽ giúp cho quá trình làm việc được hiệu quả, đảm bảo không bị gián đoạn trong khi làm việc.

- Cluster có ưu điểm là mang đến hiệu quả cao trong vấn đề chi phí. Thực chất, trong cụm máy tính thì hiệu quả của chi phí sẽ là tỷ lệ của chi phí sử dụng so với đầu ra. Và đó chính là nhím kết nối của máy tính với cụm máy tính. Điều này sẽ giúp cho chi phí rẻ hơn rất nhiều so với các máy tính lớn thông thường.

- Hệ thống cluster có tốc độ xử lý khá nhanh và tốt tương đương với các máy tính lớn.

- Khả năng mở rộng cũng là một ưu điểm, lợi thế của cluster, giúp cho cụm máy tính có thể được mở rộng một cách dễ dàng thông qua việc thêm các trạm để bàn bổ sung vào hệ thống hoạt động.

- Cluster có tính sẵn có, tức là bất kỳ 1 node nào xảy ra lỗi ở cluster thì 1 node khác sẽ tiếp tục cung cấp để quá trình hoạt động không bị gián đoạn.

- Hệ thống cluster này cũng cung cấp đến cho người dùng khả năng quản lý dễ dàng bằng tool giống như 1 hệ thống đơn và quản lý được các ứng dụng khi chúng chạy trên các server đơn lẻ. Ngoài ra thì người dùng cũng có thể di chuyển được các ứng dụng giữa các server khác nhau ở trong cùng 1 cluster.

4. Cơ chế hoạt động của cluster như thế nào?

Đối với mỗi máy chủ trong hệ thống cluster sẽ được gọi là 1 node và chúng có thể được thiết lập ở chế độ chủ động hoặc thụ động. Theo đó, khi 1 node ở chế độ chủ động thì nó sẽ có thể xử lý được tất cả các yêu cầu khi cần thiết. Còn nếu đang ở thế thụ động thì sẽ chỉ nằm ở chế độ dự phòng và sẵn sàng để thay thế cho các node khác nếu như chúng xảy ra lỗi hay bị hỏng.

Trong 1 cluster có thể có nhiều node kết hợp và hoạt động với nhau bao gồm cả các thế chủ động và thụ động. Cụ thể, cơ chế hoạt động của các node trong cluster được thiết lập theo từng trường hợp cụ thể như sau:

- Nếu như 1 node chủ động gặp phải sự cố nào đó thì các node thụ động sẽ sẵn sàng cung ứng các dịch vụ đang chạy trên node, lập tức chuyển sang node thụ động bởi máy chủ đảm nhiệm vai trò node thụ động chưa chạy bất kỳ ứng dụng, dịch vụ nào nên nó có thể hoàn toàn gánh được các công việc từ máy chủ bị hỏng và không gây ảnh hưởng đến các ứng dụng cung cấp cho người dùng cuối cùng.

- Trong trường hợp toàn bộ các máy chủ ở cluster đều ở thế chủ động mà lại có 1 node gặp sự cố thì toàn bộ các ứng dụng, dịch vụ chạy trên máy chủ hỏng sẽ cần phải được chuyển sang 1 máy chủ khác cũng có vai trò tương đương. Bởi là node chủ động nên các máy chủ này cũng đã đảm nhận các vai trò của các ứng dụng, dịch vụ nào đó và khi gặp vấn đề sẽ phải gánh thêm các công việc của máy chủ nữa. Chính vì vậy, để đảm bảo được hệ thống cluster hoạt động ổn định, bình thường ngay cả những khi có sự cố thì các máy chủ trong cluster sẽ cần phải có các cấu hình dư ra, đủ khả năng gánh thêm các khối lượng công việc khác.

- Trong cấu trúc hoạt động của cluster, mỗi node chủ động đều được dự phòng bởi 1 node thụ động khác, theo đó các máy chủ cần có cấu hình sao cho đảm bảo được sự phù hợp với khối lượng các công việc. Trung bình chúng sẽ sử dụng hết khoảng 50% CPU cũng như dung lượng của bộ nhớ.

- Đối với các trường hợp mà node chủ động trong cluster nhiều hơn so với node thụ động thì các máy chủ sẽ cần phải có cấu hình tài nguyên CPU đồng thời bộ nhớ sẽ phải mạnh hơn nữa để đủ khả năng xử lý được khối lượng các công việc khi cần thiết.

- Hiện nay, các node trong 1 cluster thường là 1 bộ phận của 1 vùng nào đó và có thể được cấu hình chính là máy điều khiển của vùng hoặc là máy chủ thành viên. Cơ chế hoạt động lý tưởng nhất của cluster đó chính là mỗi cluster sẽ có nhiều node và có ít nhất là 2 node có vai trò là máy điều khiển vùng, đảm nhiệm các công việc failover. Bởi nếu không hoạt động như vậy thì các tài nguyên ở cluster sẽ bị phụ thuộc rất nhiều vào khả năng sẵn sàng của các máy điều khiển trong vùng xác định.

5. Yêu cầu cơ bản để lắp đặt hệ thống cluster

Đối với việc lắp đặt hệ thống cluster thực chất không quá khó khăn, tuy nhiên cần đảm bảo theo một nguyên tắc nhất định cũng như các yêu cầu để quá trình hoạt động được chính xác và mang đến hiệu quả cao nhất.

- Yêu cầu về tính sẵn sàng cao, tức là các tài nguyên sẽ phải luôn sẵn sàng ở mức độ cao nhất, khả năng cao nhất để cung cấp, phục vụ cho người dùng, đồng thời giảm thiểu sự ngưng hoạt động ngoài ý muốn.

- Lắp đặt hệ thống cluster cần yêu cầu về khả năng tin cậy cao hay còn được hiểu là khả năng giảm thiểu tần số xảy ra của các sự cố, từ đó nâng cao được việc chịu được các sai sót xảy ra trong hệ thống.

- Yêu cầu về khả năng mở rộng hệ thống để có thể dễ dàng nâng cấp cũng như mở rộng tương lai bao gồm cả vấn đề thêm các thiết bị, máy tính vào trong hệ thống, số lượng người dùng, ứng dụng, dịch vụ hay các tài nguyên khác,…

Qua bài viết trên đây, chắc hẳn các bạn đã hiểu rõ về cluster là gì cùng những vấn đề xoay quanh thuật ngữ này rồi phải không? Hy vọng những thông tin này sẽ hữu ích và đáp ứng được các nhu cầu trong quá trình sử dụng hệ thống máy tính của mọi người.

Đăng ngày 20/11/2020, 53 lượt xem