Khi bạn xây dựng một server hay một hệ thống mạng máy tính, việc nâng cao bảo mật của toàn hệ thống là một điều vô cùng quan trọng. Vì thế, trong bài viết này, Tino Group sẽ giải đáp cho bạn về Computer cluster là gì và vì sao Computer cluster lại có khả năng hỗ trợ server của bạn nhé!
Tìm hiểu về Computer cluster
Computer cluster là gì?
Computer cluster là một kiến trúc nhằm đảm bảo nâng cao khả năng sẵn sàng cho các hệ thống mạng máy tính. Kiến trúc này là một nhóm hai hay nhiều server chuyên dụng chạy một hay nhiều ứng dụng cùng lúc. Các server này được kết nối lại với nhau để cung cấp fault tolerance (khả năng chịu đựng sai sót) và load balancing (khả năng cân bằng tải).
Hiểu đơn giản, Computer cluster là cụm máy tính hiệu năng cao. Đây là một dạng máy điện toán được kết nối qua mạng LAN (mạng cục bộ) để các máy tính có thể hoạt động như một máy đơn lẻ.
Nguyên tắc hoạt động của Computer cluster
Mỗi máy chủ trong Computer cluster được gọi là một node (cluster node). Máy chủ này có thể được thiết lập ở chế độ chủ động (active) hay thụ động (passive).
Khi một node ở chế độ chủ động, nó sẽ chủ động xử lý các yêu cầu.
Khi một node là thụ động, nó sẽ nằm ở chế độ dự phòng nóng (standby) chờ để sẵn sàng thay thế cho một node khác nếu bị hỏng.
Cấu trúc Computer cluster
Tùy theo nhu cầu mà chúng ta có thể triển khai nhiều dịch vụ trên cùng 1 cluster hay cài đặt trên mỗi node 1 dịch vụ. Cấu trúc của 1 Computer cluster không cố định.
Một số loại hữu ích điển hình như sau:
Dịch vụ chạy song song
Triển khai 2 dịch vụ trên hệ thống cluster thì có 1 phương pháp đơn giản là cài đặt cả 2 dịch vụ ấy vào mỗi node của cluster . Do chạy trên cùng một server nên nếu ứng dụng này bị lỗi thì sẽ ảnh hưởng đến dịch vụ kia, hiệu quả của hệ thống cluster thấp.
Computer cluster riêng lẻ
Đây là hình thức tạo 2 hệ thống Computer cluster riêng lẻ, trong mỗi cluster cài đặt duy nhất 1 dịch vụ.
Ở cấu trúc này, hệ thống sẽ hiệu quả hơn. Nếu có dịch vụ nào đó bị lỗi, các dịch vụ khác cũng không bị ảnh hưởng. Tuy nhiên, do số lượng các node cho mỗi dịch vụ nhiều nên chi phí đầu tư cho kiểu này rất cao.
Dịch vụ dự phòng
Dịch vụ này triển khai cả 2 dịch vụ trên cùng 1 Computer cluster, mỗi node cài 1 dịch vụ. Điểm khác biệt với Dịch vụ chạy song song là sẽ có 1 cluster làm nhiệm vụ backup.
Theo hình minh họa, ta thấy: hệ thống này có 1 node passive dùng làm backup và cài cả 2 dịch vụ của node 1 và node 2 (2 node Active). Nếu 1 trong 2 node này bị lỗi thì node passive sẽ thay thế chức năng của node bị lỗi.
Sử dụng Computer cluster mang đến ưu điểm gì?
Tiết kiệm chi phí
Trong cụm máy tính, hiệu quả chi phí là tỷ lệ chi phí so với đầu ra. Đó là nhóm kết nối của máy tính với cụm máy tính rẻ hơn nhiều so với máy tính lớn.
Tốc độ xử lý tốt
Tốc độ xử lý của cụm máy tính giống như máy tính lớn.
Khả năng mở rộng tối ưu
Lợi ích tốt nhất của cụm máy tính là nó có thể được mở rộng dễ dàng bằng cách thêm máy trạm để bàn bổ sung vào hệ thống.
Tính sẵn sàng cao
Nếu bất kỳ node nào bị lỗi trong cụm máy tính, một node khác trong cụm tiếp tục cung cấp xử lý không bị gián đoạn. Tuy nhiên, khi một hệ thống máy tính lớn bị lỗi, toàn bộ hệ thống bị lỗi.
Chuẩn thiết kế và lắp đặt
Việc thiết kế và lắp đặt Computer cluster cần phải đạt chuẩn RAS (Reliability-Availability-Serviceability). Do đó, những hệ thống đáp ứng được ba yêu cầu trên được gọi là hệ thống RAS (cần phân biệt với Remote Access Service là dịch vụ truy cập từ xa).
Yêu cầu về tính sẵn sàng cao (High availability)
Các tài nguyên mạng phải luôn sẵn sàng trong khả năng cao nhất để cung cấp và phục vụ các người dùng cuối và giảm thiểu sự ngưng hoạt động hệ thống ngoài ý muốn.
Yêu cầu về độ tin cậy cao (reliability)
Với cluster, độ tin cậy cao được hiểu là cả khả năng giảm thiểu tần số xảy ra các sự cố lẫn nâng cao khả năng chịu đựng sai sót của hệ thống.
Yêu cầu về khả năng mở rộng được (scalability)
Hệ thống phải có khả năng dễ dàng cho việc nâng cấp, mở rộng trong tương lai. Việc nâng cấp mở rộng bao hàm cả việc thêm các thiết bị, máy tính vào hệ thống để nâng cao chất lượng dịch vụ, cũng như việc thêm số lượng người dùng, thêm ứng dụng, dịch vụ và thêm các tài nguyên mạng khác.
Phân loại kỹ thuật Clustering
Dựa vào loại ứng dụng mà server cần chạy và bản chất của dữ liệu mà chúng sử dụng, Clustering được chia ra hai loại.
Server Clusters
- Được thiết kế cho những ứng dụng lớn đòi hỏi khả năng long-running in-memory states và thường xuyên thay đổi dữ liệu.
- Được dùng cho các ứng dụng Stateful applications (các ứng dụng hoạt động thường xuyên trong thời gian dài). Những ứng dụng này bao gồm các database server như là Microsoft MySQL Server, Microsoft Exchange Server, File and Print Server…
Tất cả các node đều truy cập tới cùng dữ liệu của ứng dụng. Do đó, bất kỳ node nào cũng có thể xử lý 1 yêu cầu từ client vào bất cứ lúc nào. Mỗi node trong server cluster phải được cấu hình ở trong trạng thái active hoặc passive. Nếu passive node duy trì trạng thái idle (hoặc active node fail) thì một active node nhận và xử lý yêu cầu từ client.
Tất cả các node trong Cluster dùng chung 1 nơi lưu trữ dữ liệu có thể dùng công nghệ SCSI hoặc Storage Area Network (SAN). Windows Server 2003 Enterprise và Datacenter hỗ trợ cluster lên đến 8 node trong khi đó Windows 2000 Advanced Server hỗ trợ 2 node còn Windows 2000 Datacenter Server được 4 node.
Hạn chế
- Lãng phí thời gian của passive node.
- Server clustering được định hướng để cung cấp tĩnh sẵn dùng cao cho ứng dụng, không dành cho dữ liệu.
- Server clustering không cung cấp khả năng chịu lỗi về dữ liệu như RAID cũng như các yêu cầu đòi hỏi backup hệ thống thường xuyên.
Giải pháp
Tùy thuộc vào khả năng của ứng dụng, có thể thiết kế server clusters với nhiều active node cùng lúc để chia sẻ tác vụ xử lý giữa chúng. A server cluster có cùng IP address và tên. Do đó khi 1 server xảy ra hỏng hóc, không có sự thay đổi nào về chức năng hoạt động từ phía client, chúng tiếp tục gửi yêu cầu đến cùng đích như mọi khi. Các passive node sẽ tiếp quản vai trò của active node ngay lập tức, vì thế không có sự trì hoãn đáng kể nào về hiệu suất hoạt động.
Network Load Balancing (NLB)
Network Load Balancing (NLB) tạm dịch là cân bằng tải mạng. Đây là một loại kỹ thuật Clustering có khả năng chia tải và nâng cao khả năng chịu lỗi của hệ thống được tốt hơn.
Được dùng cho các ứng dụng Stateless applications. Những ứng dụng này hoạt động mang tính nhất thời, vừa phải, ít có sự thay đổi (hay thậm chí là read-only) và không đòi hỏi khả năng chạy ở trạng thái long-running in-memory. Tiêu biểu như Web, File Transfer Protocol (FTP), Virtual Private Network (VPN), DHCP…
Mỗi node phải dùng riêng một nơi lưu trữ cục bộ (Local Storage) cho nên cần phải có quá trình đồng bộ hóa (replication) dữ liệu ở mỗi nơi lưu trữ. Nếu số lượng node càng nhiều thì thời gian cho việc replication càng lâu. Chính vì thế, để đảm bảo tính chính xác của dữ liệu, bạn không nên triển khai các ứng dụng Stateful trên kỹ thuật NLB.
Cung cấp tính năng sẵn dùng, độ tin cậy cũng như khả năng mở rộng ở mức cao là đặc điểm nổi bật của NLB.
Một số điểm lưu ý
- Hiệu quả hoạt động của hệ thống Clustering 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. Do đó, ta không thể triển khai cluster hay NLB khi các node sử dụng hệ điều hành khác nhau dù hệ điều hành đó có hỗ trợ hay không.
- Kỹ thuật clustering không thể chống lại các sự cố xảy ra do virus, sai sót của phần mềm hay các sai sót do người sử dụng. Xây dựng một cơ sở dữ liệu được bảo vệ chắc chắn và có các kế hoạch khôi phục, backup dữ liệu là giải pháp hàng đầu cho hạn chế này.
Vậy là chúng ta đã cùng nhau tìm hiểu về Computer cluster là gì rồi đấy! Tino Group hi vọng rằng bạn sẽ có thể bảo vệ hệ thống của mình thật tốt và tránh tình trạng bị nhiễm virus, malware hay những cuộc tấn công nhé!
Những câu hỏi thường gặp về Computer cluster
Quá trình Failover là gì?
Khi một node trong Cluster bị hỏng, các Resource Group sẽ thay thế Node đó bằng một hay nhiều Node trong Cluster mà còn hoạt động tốt. Hay nói cách khác, quá trình Failover là tài chỉ định quyền sở hữu các Resource.
Node là gì?
Trong Computer cluster, node là một server thuộc một Cluster nào đó mà những ứng dụng và Cluster Service được thiết lập.
Computer cluster có ảnh hưởng đến hệ thống hay không?
Computer cluster là cụm máy tính hỗ trợ và chịu trách nhiệm cho việc xử lý các rủi ro một cách hiệu quả hơn. Do đó, Computer cluster sẽ không ảnh hưởng đến hoạt động của hệ thống.
Những cơ chế kiểm tra tình trạng của node là gì?
Computer cluster có 2 cơ chế chính để kiểm tra tình trạng không hoạt động của node bao gồm: Detect Node Failure và Detect Resource Failure.