Nếu một máy chủ ngừng hoạt động do bị sự cố hoặc để nângcấp, bảo trì, thì toàn bộ công việc mà máy chủ này đảm nhận sẽ được tựđộng chuyển sang cho một máy chủ khác trong cùng một cluster
Trang 1MỤC LỤC
Đề mục Trang
LỜI MỞ ĐẦU 3
CHƯƠNG I CƠ BẢN VỀ CLUSTER 4
1.1 Khái niệm Clustering 4
1.1.1 Lợi ích của hệ thống Cluster 6
1.1.2 Khái niệm tính sẵn sàng cao 7
1.2 Các thành phần của dịch vụ Cluster 11
1.3 Nguyên tắc hoạt động của dịch vụ Cluster 16
1.4 Phân loại Cluster 21
1.4.1 Cluster dựa trên nền tảng phần mềm 21
1.4.2 Cluster dựa trên nền tảng phần cứng 21
1.4.3 Máy chủ chủ động (active) và thụ động ( passive) 22
CHƯƠNG II CLUSTERING MỨC HỆ ĐIỀU HÀNH 25
2.1 Microsofte Cluster Server (MSCS) 25
2.1.1 Tài nguyên 27
2.1.2 Resource Monitor 27
2.1.3 Loại tài nguyên 28
2.1.4 Trạng thái tài nguyên 31
2.1.5 Tài nguyên Quorum 31
2.1.6 TCP/IP 32
2.1.7 Domain 32
2.1.8 Failover 33
2.1.9 Failback 36
2.1.10 LooksAlive và IsAlive 36
2.2 Linux Clustering 38
2.2.1 Cấu hình Linux Clustering 40
2.2.2 Dịch vụ FOS 41
2.2.3 Chia sẻ dữ liệu giữa các Node 43
CHƯƠNG III GIẢI PHÁP LƯU TRỮ SAN CHO HỆ THỐNG CLUSTER 48
3.1 Định nghĩa SAN 49
3.2 Lợi ích khi sử dụng SAN 50
3.3 Điều khiển đĩa 51
3.4 Các dạng SANs 52
3.5 SANs trong môi trường làm việc 53
3.6 SAN trong ứng dụng ngày nay 53
CHƯƠNG IV CÀI ĐẶT THỬ NGHIỆM HỆ THỐNG 55
4.1 Mô hình thử nghiệm 55
4.1.1 Kịch bản thử nghiệm 55
4.1.2 Công cụ hỗ trợ 56
Trang 24.2 Thử nghiệm hệ thống 58
4.2.1 Thử nghiệm Cluster mức hệ điều hành 60
4.2.2 Hệ thống Cluster mức ứng dụng (Application) 63
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 69
PHỤ LỤC 69
Trang 3LỜI MỞ ĐẦU
Trong thời đại bùng nổ của công nghệ thông tin hiện nay, mạng máy tínhđóng vai trò ngày càng quan trọng hơn trong hoạt động của các doanhnghiệp, tổ chức cũng như các cơ quan nhà nước Thậm chí ở một số đơn vị,chẳng hạn như các công ty hàng không hoặc các ngân hàng lớn, mạng máytính có thể ví như hệ thần kinh điều khiển hoạt động của toàn doanh nghiệp
Sự ngừng hoạt động của mạng máy tính trong những cơ quan này có thể làm
tê liệt các hoạt động chính của đơn vị, và thiệt hại khó có thể lường trướcđược
Chúng ta đều biết các máy chủ là trái tim của của mạng máy tính, nếu máychủ mạng hỏng, hoạt động của hệ thống sẽ bị ngưng trệ Điều đáng tiếc là dùcác hãng sản xuất đã cố gắng làm mọi cách để nâng cao chất lượng của thiết
bị, nhưng những hỏng hóc đối với các thiết bị mạng nói chung và các máychủ nói riêng là điều không thể tránh khỏi Do vậy, vấn đề đặt ra là 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ó sự
cố xảy ra đối với máy chủ mạng, và công nghệ clustering (bó) là câu trả lờicho vấn đề này Ngày nay, trong môi trường công nghệ thông tin hiện đại,
chúng ta đã khá quen thuộc khái niệm Clustering Vậy bản chất cốt lõi của
Clustering là gì? Và nó đem lại lợi ích gì khi ứng dụng công nghệ này?
Trang 4CHƯƠNG I CƠ BẢN VỀ CLUSTER
1 Khái niệm Clustering
Clustering là một kiến trúc nhằm đảm bảo nâng cao khả năng sẵn sàngcho các hệ thống mạng máy tính Clustering cho phép sử dụng nhiều máychủ kết hợp với nhau tạo thành một cụm (cluster) có khả năng chịu đựng haychấp nhận sai sót (fault-tolerant) nhằm nâng cao độ sẵn sàng của hệ thốngmạng Cluster là một hệ thống bao gồm nhiều máy chủ được kết nối vớinhau theo dạng song song hay phân tán và được sử dụng như một tài nguyênthống nhất Nếu một máy chủ ngừng hoạt động do bị sự cố hoặc để nângcấp, bảo trì, thì toàn bộ công việc mà máy chủ này đảm nhận sẽ được tựđộng chuyển sang cho một máy chủ khác (trong cùng một cluster) mà khônglàm cho hoạt động của hệ thống bị ngắt hay gián đoạn Quá trình này gọi làkhả năng chống chịu lỗi (fail-over); và việc phục hồi tài nguyên của mộtmáy chủ trong hệ thống (cluster) được gọi là “fail-back”
Nếu giả sử chúng ta sử dụng MSCS (Microsoft Cluster Server), trong hệ
thống Cluster này có N máy tính kết nối Các máy tính khác trong mạng cóthể truy xuất tài nguyên từ N máy tính trên Để làm được việc này, người sửdụng chỉ cần gọi tên cluster mà không cần biết tên riêng của các máy tínhtrong nhóm Như vậy hệ thống cluster luôn đảm bảo khả năng cung cấp tàinguyên cho người sử dụng mà client sẽ không biết là tài nguyên này đangđược điều khiển bởi máy tính nào (đây là tính năng trong suốt đối với người
sử dụng) Điều này có nghĩa là các Client sẽ được tách biệt và được bảo vệbởi những thay đổi về mặt vật lý của hệ thống Cluster Hầu hết thì lợi ích
quan trọng nhất của Cluster đó là tính sẵn sàng cao “High Availibility” Tài
nguyên trên các máy chủ Cluster cũng có khả năng sẵn sàng cao như là tàinguyên của Cluster Nếu môt node (tức là một máy tính, một máy chủ) trong
hệ thống Cluster không sẵn sàng (ví dụ như là chưa được khởi động) hoặc là
Trang 5có quá trình tiến trình đang chạy trên đó khiến máy chủ này không thể đápứng được các yêu cầu khác thì ngay lập tức các yêu cầu này được chuyểnsang node còn lại có khả năng đáp ứng được, một cách trong suốt đối vớiClient Chính vì vậy mà các Client không cần biết được chính xác vị trí củatài nguyên đang sử dụng này là ở đâu Ví dụ, khi một Client có yêu cầu sửdụng một ứng dụng trên Cluster, thì Client này sẽ không cần biết tài nguyênvật lý đang nằm ở đâu (tức là trên máy chủ nào quản lý) và cũng không biếtđược máy chủ nào đang thực sự xử lý yêu cầu này Một cách đơn giản,người sử dụng chỉ việc truy nhập vào các ứng dụng một cách trong suốt vàluôn sẵn sàng, tin cậy cao.
Hình 1.1: Cấu trúc của hệ thống Cluster.
Một lợi ích khác là dễ dàng mở rộng về quy mô trong mô hình Cluster, ví
dụ khi xây dựng hệ thống Cluster ban đầu có thể về mặt kinh phí hoặc chưa
rõ lợi ích của Clustering đem lại, hệ thống chỉ được xây dựng dựa trên 2Node Nhưng nếu muốn hệ thống vẫn có thể được mở rộng thành 4 node, 8node, tùy thuộc vào nhu cầu mà vẫn không gây ra ảnh hưởng gì đến hệ
thống đang vận hành, không có thời gian chết “downtime” của hệ thống Để tăng hiệu năng của hệ thống cũng có thể lắp thêm các CPU (Central Processing Unit) (tạo thành máy SMP Symmetric Multiprocessing ), tăng
bộ nhớ truy cập ngẫu nhiên RAM, cho hệ thống Cluster Tuy việc này
Trang 6cũng làm cho hiệu năng của hệ thống nhưng nó không phải là giải pháp cótính lâu dài đối với việc mở rộng quy mô, chia sẻ các ứng dụng trên hệthống Hình vẽ sau mô tả việc mở rộng hệ thống Cluster và việc sử dụngSMP
Hình 1.2: mô tả việc mở rộng hệ thống Cluster và việc sử dụng SMP
Khi muốn mở rộng quy mô của hệ thống Cluster chỉ đơn giản là việc mở
rộng CPU, RAM thì sẽ gây ra các vấn đề về “bottleneck” (nghẽn cổ chai)
khi mà tất cả các yêu cầu được gửi đến Cluster, làm cho CPU phải tính toánnhiều hơn, bộ nhớ RAM được truy cập nhiều hơn làm lưu lượng trên BUS
bộ nhớ tăng lên đáng kế làm giới hạn thông lượng, và giảm hiệu năng của hệthống
1.1 Lợi ích của hệ thống Cluster
Có rất nhiều lý do khác nhau để đưa ra mô hình xây dựng hệ thống
Cluster Chúng ta luôn muốn đạt được, xây dựng một hệ thống có tính sẵn sàng cao “High Availability” và tính dễ dàng mở rộng “Scalability” và những đặc điểm này được nói rất nhiều bởi nó là đặc điểm nổi trội của
Cluster
Tính sẵn sàng cao (High Availability)
Trang 7Nếu một Node trong Cluster có lỗi, thì toàn bộ tác vụ sẽ ngay lập tứcđược chuyển sang xử lý bởi một Node (hoặc các Node còn lại) trong hệthống Cluster (nếu trong hệ thống không có máy chủ Cluster thì nếu mộtmáy chủ nào đó có lỗi thì toàn bộ ứng dụng hoạt động trên máy chủ này sẽtạm thời ngừng phục vụ).
Dễ dàng mở rộng (Scalability)
Cùng với sự phát triển của hệ thống cả về sự đòi hỏi về tài nguyên, sựtăng trưởng của ứng dụng thì hệ thống Cluster sẽ ngày càng trở nên quả tảinếu không được mở rộng Với hệ thống Clustering, nếu muốn giải quyết khókhăn này thì hoàn toàn không khó khăn, một Node sẽ dễ dàng được thêmvào Cluster với thời gian “no-downtime” hoặc “downtime” là tối thiếu
Hiệu suất (Performance)
Việc sử dụng Cluster để “Load Balancing” (cân bằng tải) sẽ đáp ứng
được số lượng tối đa người sử dụng đồng thời và tận dụng được tối đa tàinguyên của hệ thống Cluster
Chi phí/Hiệu năng (Price/Performance)
Việc sử dụng hệ thống Cluster đem lại hiệu quả cao tính trên chi phí đầutư
Dễ dàng quản lý (Managebility)
Với hệ thống Cluster, người quản trị cũng rất dễ dàng quản lý chỉ thôngqua một giao diện duy nhất, có thể chuyển tài nguyên ứng dụng giữa cácNode (được dụng để điều khiển cân bằng tải)
1.2 Khái niệm tính sẵn sàng cao
Hầu hết các ứng dụng trong các hệ thống thông tin đều đòi hỏi tính sẵn
sàng cao hoặc thời gian “uptime” của hệ thống được liên tục Những ứng
dụng nhậy cảm với lỗi (đòi hỏi tính sẵn sàng cao, không cho phép ngừng hệthống) như là các máy chủ e-business, không thể ngừng hệ thống vì bất cứ lý
do nào Tuy nhiên, bởi vì các hệ thống máy tính được xây dựng sử dụng các
Trang 8linh kiện điện tử nên cũng rất có thể có lỗi, cả về phần cứng và phần mềm.Các nhà thiết kế hệ thống phải làm sao phải loại bỏ các lỗi như này và giảmthiểu các ảnh hưởng.
Một cách truyền thống trước đây, các ứng dụng này sử dụng một hệ
thống máy tính lớn (mainframe) rất tin cậy đối với các ứng dụng nhậy cảm
với lỗi này Các hệ thống này có nhược điểm rất lớn đó là chi phí trên hiệu
năng “price/performance” thường rất cao Ngày nay, các ứng dụng này hầu
hết được chạy trên các máy chủ hệ thống trên nền Intel, có tính cạnh tranhhơn về price/performance
Trước khi xem xét vấn đề làm thể nào để tăng cường khả năng sẵn sàngcủa hệ thống, chúng ta sẽ định nghĩa nó gần gũi hơn Đơn giản có thể hiểu,tính sẵn sàng là phần trăm thời gian mà hệ thống vận hành và sẵn sàng vớicác ứng dụng của người sử dụng Tính sẵn sàng được tính bằng thời giantrong suốt khoảng thời gian mà hệ thống sẵn sàng, ví dụ nếu ứng dụng yêucầu hệ thống luôn sẵn sàng từ 6 AM đến 11 PM hàng ngày, thì thời gian
downtime để bảo dưỡng hệ thống được tính từ 11:01 PM đến 5:59 AM của
ngày hôm sau sẽ không được tính vào thời gian sẵn sàng Tuy nhiên, nếu hệthống đòi hỏi liên tục 24x7 thì bất cứ thời điểm nào hệ thống ngừng hoạt
động cũng được xem là thời gian downtime của hệ thống Khả năng sẵn sàng của hệ thống mainframe là khoảng 99.5% nhưng đối với hệ thống sẵn sàng
cao ngày nay, có thể đạt tới 99.99% và có thể còn tốt hơn nữa Có thể đạtđược con số này, các người thiết kế hệ thống phải thiết kế rất chi tiết và phải
có kế hoạch dài hạn Việc thiết kế này thường phải kết hợp với đặc tính chịu
đựng lỗi của hệ thống fault-tolerance.
Các nhà thiết kế hệ thống có kinh nghiệm luôn đưa ra các kiến trúc hệthống tối ưu với khả năng sẵn sàng cao, tính chịu đựng lỗi tốt, cho phép hệthống vẫn có thể tiếp tục hoạt động ngay cả khi có lỗi trong bất kỳ một thànhphần nào trong mạng Phương pháp phổ biến để tăng khả năng chịu đựng lỗi
Trang 9của hệ thống là thiết kế các thành phần có tính dự phòng hoặc trên cùng mộtmáy tính hoặc bất cứ các thành phần nào trên mạng Điều này làm cho việcbackup có thể thực hiện dễ dàng khi có lỗi.
Có một số thành phần có khả năng dự đoán được lỗi và đưa ra các cáchthức để chống lại các lỗi này hoặc ít ra thì cũng làm giảm thiểu ảnh hưởng
do lỗi này gây ra làm ảnh hưởng đến khả năng vận hành của toàn hệ thống
Ví dụ, ngay trong các hệ thống không sử dụng công nghệ Cluster, các ổ
cứng sử dụng PFA (Predictive Failure Analysis) có thể cảnh báo hệ thống sắp có lỗi trên ổ cứng (đĩa cứng sắp hỏng), cho phép Disk Controller chuyển
ổ cứng này sang trạng thái offline và thay thế ổ này bằng ổ cứng dự phòng nóng Hot Spare mà không can thiệp gì đến hệ thống và không có thời gian downtime của hệ thống.
Trong giải pháp hệ thống Cluster, tất cả các thành phần chính hoặc cácthành phần phụ của một Node có thể có lỗi nhưng đều không làm ảnh hưởngđến người dùng Dịch vụ Clustering sẽ phát hiện ra lỗi và sẽ tự động chuyểncác tác vụ này sang máy chủ khác xử lý và trong suốt đối với người dùng.Khi xây dựng hệ thống Cluster có tính sẵn sàng cao, có các phân loại nhưsau:
Tính sẵn sàng cao là rất quan trọng đối với hầu hết các hệ thống, lỗi trong
hệ thống làm ngừng hoạt động của doanh nghiệp sẽ gây ra các ảnh hưởng rấtlớn đối với người dùng (đặc biệt là đối với các doanh nghiệp như là Ngânhàng, Hàng không, ), khách hàng
Trang 10Đòi hỏi về tính sẵn sàng của hệ thống cũng ngày càng tăng, và thời gianngừng hệ thống cũng được phân loại như sau:
Sự vững chắc của server (Server Consolidation)
Server Consolidation có thể đạt được một trong 3 cách sau: Logical Consolidation, Physical Consolidation, và Re-Centralization.
Sự vững chắc về logic (Logical Consolidation)
Logical Server Consolidation làm cho môi trường vận hành máy chủ trở
lại làm việc bình thường với các tác vụ như backup và các kết nối người
dùng Lợi ích là của vấn đề này là làm giảm các thao tác của người quản trị
và giảm tải công việc việc quản lý Đặc điểm này được gọi là ROI (Return
On Investment) (bảo vệ chi phí đầu tư).
Sự vững chắc về vật lý (Physical Consolidation)
Các máy chủ đều nằm trong một phạm vi vật lý (phòng server) cho phépcải thiện tính an ninh ở mức vật lý và tăng dung lượng, khả năng lưu trữ củamáy chủ, môi trường chia sẻ các thiết bị ngoại vi tốt hơn Điều này có nghĩa
là làm giảm chi phí kết nối cable, đóng gói, phần cứng
Re-Centralization
Các máy chủ trong hệ thống Cluster được nhóm lại thành một máy chủ
Logic, có tính năng rất mạnh Bộ xử lý của máy chủ này có thể luân phiên
được sử dụng để tận dụng tối đa nguồn tài nguyên xử lý, tận dụng tối đa
Trang 11khoảng không gian đĩa cứng của hệ thống Ngoài ra còn có những lợi thếsau:
Chỉ cần duy nhất một hệ điều hành (tất cả các máy trong
hệ thống Cluster đều sử dụng cùng một hệ điều hành)
Giảm thiểu chi phí về License cho phần mềm hệ điều hành
Giảm thiểu chi phí về phần mềm các ứng dụng
Giảm thiểu số lượng các version phần mềm hệ thống, ứngdụng hỗ trợ (khi phần mềm đã hỗ trợ 1 Node thì cũng sẽ hỗ trợ các Nodecòn lại)
2 Các thành phần của dịch vụ Cluster
Dịch vụ Cluster chạy trên mỗi node trong server cluster và điều khiển
mọi hoạt động của server cluster Cluster service bao gồm nhiều thành phầnsoftware làm việc cùng với nhau Các thành phần này thực hiện việc theodõi, duy trì tính ổn định và vận chuyển các resource từ một node qua mộtnode khác
Resource DLLs: cho mỗi ứng dụng chịu trách nhiệm theo dõi và điều
khiển ứng dụng đó Ví dụ : Resource DLL sao lưu và phục hồi các thuộc
tính của ứng dụng trong Cluster database, mang resource online và offline vàkiểm tra trạng thái của resource đó Khi cần thiết phải thực hiện failover,
Resource DLL làm việc cùng với Resource Monitor và Failover Manager
để đảm bảo quá trình failover được thực hiện dễ dàng
Checkpoint Manager: Để đảm bảo cho việc Cluster service có thể
phục hồi từ một tài nguyên bị lỗi, Checkpoint Manager kiểm tra các khóa
registry khi một tài nguyên được mang online và ghi dữ liệu checkpoint lênquorum resource khi resource này offline Một vài ứng dụng chứa thông tincấu hình tại cục bộ thay cho việc chứa thông tin trong cơ sở dữ liệu cấu hìnhCluster Nếu một ứng dụng yêu cầu chứa đựng cục bộ thông tin có thể
failover, Checkpoint Manager cung cấp cho yêu cầu này bằng cách duy trì
Trang 12một bản sao của thông tin cục bộ hiện hành này trên tài nguyên Quorum.Đối với các ứng dụng chứa thông tin cấu hình trong registry trên server,
Checkpoint Manager theo dõi dữ liệu này khi ứng dụng đang online Khi
có sự thay đổi xảy ra, Checkpoint Manager cập nhật tài nguyên quorum
với dữ liệu cấu hình hiện hành
Database Manager: Chạy trên mỗi node và duy trì một bản sao lưu
cục bộ của cơ sở dữ liệu cấu hình Cluster - chứa những thông tin về nhữngthực thể vật lý và logic trong một Cluster Những thực thể này bao gồm bảnthân Cluster, các node thành viên, các nhóm tài nguyên (resource group), cácloại tài nguyên và những mô tả của các loại tài nguyên đặc biệt như là các ổ
đĩa và địa chỉ IP Database Manager dùng Global Update Manager cho
việc cập nhật lẫn nhau (replicate) tất cả những thay đổi tới các node kháctrong cluster Theo cách này, những thông tin cấu hình được duy trì quaCluster nay cả khi một node bị hỏng và khi Administrator thay đổi cấu hình
Cluster trước khi node đó quay trở lại phục vụ Database Manager cũng
cung cấp một interface chứa những thay đổi trong cơ sở dữ liệu cấu hìnhCluster thông qua các thành phần dịch vụ Cluster khác như là FailoverManager và Node Manager Interface này dùng để tạo ra những thay đổitương tự như interface dùng để tạo ra những thay đổi tới registry qua
Windows Programming Interface (API) Những thay đổi khác này được Database Manager tiếp nhận để cập nhật cho các node khác trong cluster qua Global Update Manager
Event Log Replication Manager: Là một phần của dịch vụ Cluster
làm việc cùng với Event Log Service để sao chép các event log tới tất cả cácnode trong Cluster Các sự kiện này được đánh dấu để cho thấy node nào mà
sự kiện xảy ra trên đó Các sự kiện được ghi lại trên một node được sắp xếp,
củng cố và gửi qua Event Log Replication Manager để broadcast tới các
node đang hoạt động khác Nếu một vài sự kiện được ghi lại trong một
Trang 13khoảng thời gian, mỗi sự kiện có thể broadcast một cách riêng lẻ, nhưng nếunhiều sự kiện được ghi lại trong một khoảng thời gian ngắn, chúng được kếthợp với nhau trước khi broadcast Các sự kiện được dán nhãn để cho biếtnode nào chúng được xảy ra Các node khác tiếp nhận các sự kiện và ghichúng lên local log
Failover Manager: Quản lý các tài nguyên và các nhóm tài nguyên.
Nó chịu trách nhiệm tắt hay khởi động các tài nguyên, quản lý các tàinguyên liên quan và chuẩn bị cho một quá trình failover các nhóm tàinguyên Để thực hiện các hoạt động này, nó tiếp nhận tài nguyên và thôngtin trạng thái hệ thống từ các thành phần Cluster trên một node và từResource Monitors Resource Monitors cung cấp môi trường thực hiện chocác tài nguyên DLL và cung cấp sự giao tiếp giữa các tài nguyên DLL và
FailoverManager Failover Manager xác định node nào trong Cluster nên
sở hữu nhóm tài nguyên Khi cần thiết phải failover một nhóm tài nguyên,
Failover Manager trên mỗi node trong Cluster làm việc cùng nhau để tái
chỉ định quyền sở hữu cho nhóm tài nguyên đó Dựa trên cách mà nhóm tài
nguyên được cấu hình, Failover Manager có thể cục bộ khởi động lại tài
nguyên bị hỏng hay có thể làm cho tài nguyên đó offline đối với các tàinguyên liên quan với nó và sau đó chuẩn bị cho một quá trình failover
Global Update Manager: được dùng bởi các thành phần bên trong
cluster như là Failover Manager hay Database Manager để mang những cậpnhật thay đổi tới mỗi node trong Cluster Khi quá trình cập nhật xảy ra, nóbắt đầu tại một node client và một node khác được bổ nhiệm theo dõi việccập nhật để đảm bảo việc cập nhật được xảy ra trên tất cả các node Nodeclient yêu cầu node này gửi tới một global lock để thực hiện cập nhật Nếulock này chưa sẵn sàng, nó sẽ chờ Khi lock này sẵn sàng node giám sát sẽgán cho node client và chỉ định cập nhật tại cục bộ Nếu node này cập nhậtthành công mà quá trình update bị lỗi trên một node khác thì node này sẽ bị
Trang 14loại bỏ khỏi danh sách các node đang hoạt động và sự cập nhật tiến hànhtrên các node còn hoạt động khác Nếu việc này xảy ra, quorum log sẽ đượcghi lại để đảm bảo rằng node bị lỗi có thể nhận được tất cả các thông tin cấuhình cần thiết khi nó quay trở lại hoạt động
Log Manager: Cùng với Checkpoint Manager tương tác với nhau
đảm bảo rằng recover log trên tài nguyên quorum chứa đựng dữ liệu cấuhình mới nhất và các checkpoint thay đổi Nếu một hay nhiều node trongCluster bị hỏng, các node còn hoạt động khác vẫn có thể thực hiện thay đổi
cấu hình Khi những node này bị hỏng, Database Manager sử dụng Log Manager để ghi lại sự thay đổi cấu hình lên tài nguyên Quorum Khi các
node bị lỗi quay trở lại phục vụ, chúng đọc vị trí của tài nguyên quorumtrong local cluster Các cơ chế được xây dựng bên trong sẽ dò tìm trong cơ
sở dữ liệu cũ những tài nguyên quorum nào không đúng Sau đó Database Manager sẽ yêu cầu Log Manager cập nhật bản sao cục bộ của Cluster sử
dụng file checkpoint trong tài nguyên Quorum và sau đó đối chiếu với filelog trong Quorum disk Kết quả là hoàn thành việc cập nhật Cluster
Membership Manager: Chịu trách nhiệm duy trì một một cái nhìn
nhất quán về các node trong Cluster hiện đang hoạt động hay bị hỏng tại một
thời điểm nhất định Trọng tâm của thành phần này là thuật toán regroup
được yêu cầu thực hiện bất cứ khi nào có dấu hiệu của một hay nhiều node
bị lỗi
Node Manager: Chạy trên mỗi node và duy trì một danh sách cục bộ
các node, các network, các network interface trong cluster Qua sự giao tiếpgiữa các node, Node Manager đảm bảo cho tất cả các node có cùng một
danh sách các node đang hoạt động Node Manager dùng những thông tin
trong cơ sở dữ liệu cấu hình Cluster để xác định các node nào được thêmvào hay bị loại bỏ khỏi Cluster Node Manager trên mỗi node cũng theo dõicác node khác để tìm ra node bị lỗi Để thực hiện việc theo dõi, nó gửi và
Trang 15nhận những tin nhắn gọi là các heartbeat tới mỗi node trong Cluster Nếu
một node có một sự giao tiếp bị lỗi với một node khác, nó gửi broadcast mộttin nhắn tới các node khác sao cho tất cả các node nhận tin nhắn này để xácnhận lại danh sách các node đang hoạt động trong cluster Quá trình này gọi
là một regroup event Node Manager cũng tham gia vào quá trình một node
tham gia vào Cluster Tại thời điểm một node được thêm vào Cluster, Node Manager trên node đó thành lập một quá trình giao tiếp với các Node Manager trên các node khác để thực hiện quá trình chứng thực
Resource Monitor: Cung cấp một interface giao tiếp giữa các tài
nguyên DLL và dịch vụ Cluster Khi Cluster cần lấy dữ liệu từ một tài
nguyên, Resource Monitor tiếp nhận yêu cầu và đẩy yêu cầu đó tới tài
nguyên DLL thích hợp Ngược lại, khi một tài nguyên DLL cần báo cáotrạng thái của nó hoặc thông báo cho dịch vụ Cluster một sự kiện, tài nguyênđẩy thông tin này từ tài nguyên tới dịch vụ Cluster
Backup/RestoreManager: Dịch vụ Cluster đưa ra một API dùng để
backup cơ sở dữ liệu cluster, Backup Cluster Database Backup Cluster Database trước tiên tương tác với Failover Manager, sau đó đẩy yêu cầu
tới node sở hữu tài nguyên quorum Database Manager trên node đó sẽ đượcyêu cầu và sau đó tạo một bản backup cho quorum log file và các filecheckpoint
Dịch vụ Cluster cũng đưa ra một API khác, Restore Cluster Database
để restore cơ sở dữ liệu Cluster từ một backup path API này có thể chỉ đượcyêu cầu tại cục bộ từ một trong các node của Cluster Khi API được yêu cầu,trước tiên nó tắt dịch vụ Cluster, restore cơ sở dử liệu Cluster từ bản backup,tạo một giá trị registry chứa backup path và sau đó khởi động lại dịch vụCluster Dịch vụ Cluster khi khởi động sẽ dò tìm yêu cầu restore và tiếnhành restore cơ sở dữ liệu Cluster từ backup path tới tài nguyên Quorum
Trang 163 Nguyên tắc hoạt động của dịch vụ Cluster
Khi một node hay một ứng dụng trong Cluster bị lỗi, Server Cluster có
thể phản ứng bằng cách khởi động lại application bị lỗi hay phân tán côngviệc từ node bị fail tới các node khác còn hoạt động trong Cluster đó Dịchvụ
Cluster kiểm tra tình trạng không hoạt động của các tài nguyên riêng biệthay một node, và tự động di chuyển hay khởi động lại các ứng dụng, dữ liệu
và file tài nguyên tới một node còn hoạt động trong Cluster Quá trình nàycho phép các tài nguyên như là cơ sở dữ liệu, file chia sẻ (file share) và ứngdụng duy trì tính sẵn sàng cao cho các ứng dụng củau ser và client ServerCluster đưa ra 2 cơ chế kiểm tra tình trạng không hoạt động khác nhau:
Detect Node Failure: Một cách định kỳ, mỗi node trao đổi các gói tin
nhắn với những node khác trong Cluster sử dụng private cluster network
Những tin nhắn này được gọi là Heartbeat Sự trao đổi Heartbeat cho phép
mỗi node kiểm tra tính sẵng sàng của các node khác và các ứng dụng của
chúng Nếu một server bị fail trong việc phản hồi 1 Heartbeat, các server
còn hoạt động bắt đầu một quá trình Failover để đàm phán quyền sở hữu đốivới các tài nguyên và ứng dụng của node bị fail Việc đàm phán này sử dụng
Challenge và Defense protocol Việc bị fail trong quá trình phản hồi
Heartbeat có thể xảy ra trong nhiều sự kiện như là computer failure,
network interface failure, network failure, hay trong lúc hoạt động cao bất thường nào đó Thông thường, khi tất cả các node giao tiếp với nhau,
Configuration Database Manager gửi Global Configuration Database
update tới mỗi node Tuy nhiên, khi fail trong quá trình trao đổi heartbeat
xảy ra, Log Manager cũng lưu lại cấu hình database thay đổi tới tài nguyên Quorum Nó đảm bảo các node còn hoạt động có thể truy cập thông tin cấu
hình Cluster mới nhất và dữ liệu registry cục bộ trên node trong quá trìnhphục hồi
Trang 17 Detect Resource Failure: Failover Managervà Resource Monitors
làm việc cùng với nhau để dò tìm và khôi phục resource bị fail Resource Monitors theo dõi trạng thái của tài nguyên bằng cách kiểm tra định kỳ các
tài nguyên sử dụng Resource DLLs Việc kiểm tra vòng gồm hai bước, một query LookAlive lướt qua và một query lâu hơn, cuối cùng - IsAlive Khi
Resource Monitor dò tìm một tài nguyên bị lỗi, nó thông báo cho Failover Manager và tiếp tục giám sát tài nguyên này Failover Manager duy trì
trạng thái của các tài nguyên và nhóm tài nguyên Nó cũng chịu trách nhiệm
thực hiện việc phục hồi khi một tài nguyên bị lỗi và sẽ yêu cầu Resource Monitor phản hồi tới người tình trạng hoạt động hay không hoạt động của tài nguyên Sau khi tài nguyên bị fail được tìm thấy, Failover Manager có
thể thực hiện việc phục hồi bằng cách khởi động lại một tài nguyên và cáctài nguyên hay di chuyển toàn bộ nhóm tài nguyên tới một node khác Công
việc phục hồi xác định đã được thực hiện bởi resource và resource group properties và node availability .Trong quá trình failover, một resource group được coi như là một failover unit, để đảm bảo resource được phục hồi
đúng Khi một tài nguyênđược phục hồi từ trạng thái fail, Resource Monitor thông báo tới Failover Manager để tự động thực hiện quá trình
“failback” các resource group dựa trên cấu hình của resource group failback properties.
Datacenter Edition và một số node khác chạy windows 2000) các Cluster
gửi những thông điệp unicast, không dùng multicast.
Trang 18 Heartbeat: Là một UDP packet chuyển đổi giữa các node mỗi 1.2
giây một lần để xác định mỗi node trong Cluster vẫn hoạt động Nếu mộtnode thiếu hụt liên tiếp 5 heartbeat, node đó sẽ chuẩn bị một quá trình
regroup event để đảm bảo rằng tất cả các node đi tới một sự nhất quán danh
sách các node còn đang hoạt động Server Cluster network có thể là private ( chỉ có sự giao tiếp giữa các node với nhau), public ( giao tiếp giữa client với node), hay mixed (cả sự giao tiếp giữa các node và sự giao tiếp giữa
client với node) Heartbeat được giao tiếp qua tất cả các loại network, tuynhiên việc theo dõi heartbeat và cách mà Cluster thể hiện các heartbeat bị lỗidựa trên các kiểu network sau:
- Trên private hay mixed network, cả hai đều có sự giao tiếp giữa các
node, heartbeat được theo dõi để xác định node có hoạt động trong
- Trên public network, chỉ có sự giao tiếp giữa client với node, heartbeat
được theo dõi chỉ để xác định network adapter của node có hoạt động haykhông
Regroup event: Nếu một node thiếu hụt liên tiếp 5 heartbeat, một quá
trình regroup event được xảy ra Nếu node vẫn duy trì tính trạng không thểphản hồi, node đó sẽ được loại bỏ khỏi danh sách các node hoạt động Nếunode không phản hổi này đang sở hữu một tài nguyên quorum, các node cònlại cũng bắt đầu một quá trình đàm phán quorum Sau đó, quá trình failoverđược bắt đầu
Quá trình đàm phán quorum: Quá trình đàm phán quorum xảy ra khi
một node đang sở hữu một tài nguyên quorum bị lỗi hay không hoạt động,
và các node còn lại sẽ xác định node nào sẽ giữ quyền sở hữu tài nguyênquorum Mục đích của quá trình đàm phán quorum là tại một thời điểm đảmbảo rằng chỉ một node duy nhấ tđược sở hữu quorum resource Việc chỉ chomột node sở hữu tài nguyên quorum là rất quan trọng bởi vì nếu tất cả các
Trang 19giao tiếp giữa 2 hay nhiều node bị lỗi, nó có khả năng chia Cluster thành 2hay nhiều phần riêng biệt để giữ cho nó vần tiếp tục hoạt động (split brain).Server Cluster ngăn ngừa nó bằng cách chỉ cho phép duy nhất một Clustertách ra này có chứa node đang sở hữu tài nguyên quorum tiếp tục hoạt độngnhư một Cluster Bất kỳ node nào không thể giao tiếp với node đang sở hữu
tài nguyên quorum, thì node đó sẽ không còn là node thành viên trong
Cluster
Cách cluster giữ cho các nhóm tài nguyên luôn sẵn sàng: Cluster
giữ cho các nhóm tài nguyên luôn sẵn sàng bằng cách theo dõi trạng thái củacác tài nguyên, mang các tài nguyên online, và tiến hành failover
Theo dõi trạng thái các tài nguyên: Resource Monitor đưa ra 2 cách
theo dõi trạng thái các tài nguyên trên node mà nó giám sát : Look Alive (tài nguyên xuất hiện là online) và IsAlive (kiểm tra chi tiết trạng thái online và
hoạt động của tài nguyên là đúng chức năng)
Cách Failover xảy ra: Quá trình failover xảy ra khi một nhóm hay
một node đang sở hữu tài nguyên bị lỗi Một tài nguyên bị lỗi có thể là lý do
cho một nhóm lỗi nếu ta cấu hình Affect the group cho tài nguyên đó.
Failover có hai dạng: Resource failure hay Group failure và Node failure hay mất sự giao tiếp giữa các node.
o Resource failure và Group failure: Khi một tài nguyên bị hỏng quá
trình sau sẽ xảy ra :
Resource Monitor dò tìm lỗi qua Looks Alive hay Is Alive hoặc qua một sự kiện được ghi bởi tài nguyên đó Resource Monitor gọi điểm vào Is Alive của resource DLL để xác định tài nguyên đó bị hỏng
Nếu Is Alive bị lỗi, trạng thái tài nguyên chuyển thành lỗi
Nếu ta cấu hình cho tài nguyên khởi động lại khi bị lỗi, FailoverManager cố gắn khởi động lại tài nguyên để mang nó online trở lại Nếu sự
Trang 20cố gắng mang tài nguyên online không đạt được hay vượt qua ngưỡng haythời gian cho phép khởi động lại, Resource Monitor dừng tài nguyên này
Thông qua Resource Monitor, Failover Manager gọi Terminal entrypoint của tài nguyên DLL
Nếu tài nguyên này được cấu hình là Affect the group, quá trình làm
việc được tiếp tục, ngược lại, nó sẽ kết thúc mà không có hoạt động nào
khác Khi cấu hình là Affect the group, Failover Manager trên các node trong
cluster làm việc cùng với nhau để tái chỉ định quyền sở hữu cho nhóm đó
Trên node mà tài nguyên bị hỏng, Failover Manager kết thúc tàinguyên đó và các tài nguyên liên quan với nó
Failover Manager trên node mà tài nguyên bị hỏng thông báo cho
Failover Manager trên node sẽ sở hữu tài nguyên đó và cũng thông báo với
Failover Manager trên tất cả các node khác cho sự thay đổi này
Nếu bất kỳ tài nguyên nào được cấu hình lưu thông tin cấu hình trêncục bộ registry, Checkpoint Manager sẽ restore bản sao registry cho tàinguyên đó từ tài nguyên quorum
Node mà Failover Manager sẽ chuyển tài nguyên tới là duy nhất, sửdụng danh sách phụ thuộc để xác định thứ tự đúng
Node mới sở hữu group sẽ điều khiển các tài nguyên của nhóm đóthông qua Resource Monitor tương ứng
o Node failure và mất sự giao tiếp giữa các node: Failover xảy ra khi
một node bị hỏng khác với Failover xảy ra khi một tài nguyên bị hỏng.Trong Clustering, một node được coi là bị hỏng nếu nó mất sự giao tiếp vớicác node khác Nếu một node mất liên tiếp 5 heartbeat, nó được coi là bịhỏng và một quá trình regroup event được xảy ra Sau khi một node bị hỏng,các node còn lại tiến hành đàm phán cho việc sở hữu các nhóm tài nguyên.Failover Manager trên các node còn sử dụng được xác định quyền sở hữucác nhóm tài nguyên dựa trên :
Trang 21 Các node mà ta chỉ định có khả năng sở hữu các nhóm tài nguyên đó
Thứ tự được chỉ định trong danh sách các node ưu tiên
Cách Failback xảy ra: Failback là quá trình dịch vụ Cluster chuyển
các nhóm tài nguyên trả về node thích hợp hơn sau khi node này online trởlại
Node mà một group được trả về chuẩn bị một quá trình failback FailoverManager trên node đó tương tác với Failover Manager trên node đang sởhữu group và tiến hành đàm phán sau đó chuyển quyền sở hữu nhóm tàinguyên trở về node thích hợp hơn
4 Phân loại Cluster
Có nhiều cách để phân lọai Cluster như:
Clustering dựa trên nền tảng của phần mềm hay phầncứng
Clustering chạy như một dịch vụ của Hệ điều hành hay làmột dịch vụ độc lập
Kiểu phần cứng được dùng để dữ liệu có tính ClusteringNgày nay, các hệ thống Cluster trên nền Intel có các phương pháp khácnhau và sẽ được tìm hiểu trong các phần tiếp theo
4.1 Cluster dựa trên nền tảng phần mềm
Tùy thuộc vào nhu cầu mong muốn Clustering về khả năng sẵn sàng, cónhiều mức để thiết lập Clustering:
Mức hệ điều hành như là MSCS, Linux Clustering,
Mức ứng dụng như Exchange Clustering, SQL Clustering,Oracle Clustering, Lotus Clustering
Cả mức hệ điều hành và mức ứng dụng
4.2 Cluster dựa trên nền tảng phần cứng
Phương pháp dùng phần cứng Clustering thường được áp dụng đối với hệthống lưu trữ, có 2 loại Cluster được xem xét đó là Cluster trên đĩa lưu trữ
Trang 22dùng chung (share disk), Cluster không sử dụng đĩa dùng chung (sử dụng local disk).
Share local disk
Mỗi Node trong Cluster có một vùng đĩa riêng (local disk), khi một Nodetrong Cluster cần thiết truy nhập vào dữ liệu được quản lý bởi Node kháctrong Cluster, nó sẽ phải được sự cho phép của Node sở hữu tài nguyên này
Nếu một Node fail, dữ liệu nó quản lý được chuyển sang cho Node khác
quản lý trong Cluster
4.3 Máy chủ chủ động (active) và thụ động ( passive)
Các Node trong Cluster có thể hoạt động theo nhiều cách, tùy thuộc vàoviệc chúng được cấu hình như thế nào Trong một hệ thống Cluster lý tưởnggồm 2 Node, cả 2 máy chủ cùng chủ động đồng thời Điều đó có nghĩa làcác ứng dụng có thể đồng thời được chạy trên cả 2 Node Trong trường hợp
có 1 Node fail, các ứng dụng đang chạy trên Node fail này sẽ được chuyểnsang Node còn chủ động Khi đó, hiệu năng của hệ thống sẽ bị giảm xuống,bởi vì tất cả các tác vụ đều được chạy trên Node còn chủ động này
Một giải pháp khác là luôn có 1 Node trong trạng thái thụ động khi hệthống Cluster hoạt động bình thường, và Node này sẽ chủ động khi 1 Nodeđang ở trạng thái chủ động lỗi Tuy nhiên, giải pháp này không phải là giảipháp có hiệu quả tính về mặt chi phí, bởi vì khi đó phải cần 2 máy chủnhưng chỉ có 1 máy chủ làm việc trong một thời điểm Mặc dù, với mô hìnhnày thì hiệu năng hoạt động của hệ thống trước và sau khi có 1 Node fail là
Trang 23như nhau nhưng hiệu quả tính theo price/performance trong khi hoạt độngbình thường là không kinh tế.
Do đó, dựa vào đây, chúng ta có một cách khác nữa để phân loại Clusterdựa trên 2 Node:
Tất cả các dịch vụ của máy Client vẫn luôn trong suốt khi failover giữa
các Node nhưng hiệu năng có giảm xuống
Chủ động/Thụ động (Active/Passive)
Mặc dù luôn cung cấp tính sẵn sang cao cho hệ thống và tối thiểu ảnhhưởng đến hiệu năng của tài nguyên, nhưng mô hình Chủ động/Thụ độngcũng yêu cầu các Node có phần cứng như trong mô hình Chủ động/Chủ
động , trong khi đó hiệu năng chỉ đạt được bằng 1/2 trong trạng thái hoạt
động bình thường so với mô hình Chủ động/Chủ động Node chủ động(Primary) xử lý tất cả các yêu cầu từ phía Client trong khi Node thụ động
(Secondary) thì xử lý rất ít hoặc hầu như không xử lý (idle) Khi Node
Primary lỗi, thì Node Secondary sẽ khởi tạo tất cả các tài nguyên và tiếp tụcphục vụ các yêu cầu của Client mà không gây ảnh hưởng gì về phía Client
về hiệu năng
Mô hình Hybrid là sự kết hợp của cả 2 mô hình trên, bằng cách cho phép
chỉ failover các ứng dụng nhậy cảm Hệ thống vẫn đảm bảo tính sẵn sàng
Trang 24cao như trong mô hình Chủ động/Chủ động , trong khi các ứng dụng ít nhậy
cảm vẫn có thể chỉ chạy trên máy chủ riêng lẻ, không cần Cluster Khi có
failover, các ứng dụng ít nhậy cảm đang hoạt động trên máy chủ fail sẽ
chuyển sang trạng thái không sẵn sàng (downtime) mà không làm giảm hiệunăng của các ứng dụng đang chạy
Trang 25CHƯƠNG II CLUSTERING MỨC HỆ ĐIỀU HÀNH
Trong phần này, chúng ta sẽ xem xét công nghệ Clustering ở mức hệ điềuhành Phần mềm Clustering được tích hợp sẵn vào trong hệ điều hành (chủyếu xem xét Clustering trên nền tảng Microsoft và trên UNIX như LinuxClustering)
2.1 Microsofte Cluster Server (MSCS)
MSCS là một phần của các dòng hệ điều hành Enterprise của Microsoft:
Windows NT 4.0 Enterprise Edition
Windows 2000 Datacenter Server
Windows 2003 Enterprise Server
Phiên bản đầu tiên có hỗ trợ Clustering của Microsoft là Windows NT4.0 Enterprise Edition Với phiên bản này, 2 máy chủ được liên kết với nhau
cho phép khả năng chịu đựng lỗi fault-tolerance qua failover Thậm chí,
trước khi phiên bản MSCS này, các nhà sản xuất phần cứng như IBM, HP,Fujitsu, Dell, đã cung cấp khả năng dự phòng (redundancy) đối với cáclinh kiện của máy chủ bao gồm như là nguồn, đĩa cứng và bộ nhớ Tuy nhiênđây chỉ là mức bảo vệ cho từng linh kiện phần cứng, tức là ở mức phầncứng, chứ không phải ở mức ứng dụng Phiên bản tiếp theo của MSCS làWindows 2000 Advanced Server, cung cấp thêm các tính năng mới tích hợptrong Clustering Service như DHCP, WINS, SMTP, NNTP Phiên bản hiệnnay hỗ trợ MSCS là Windows 2003 Enterprise Server, có đầy đủ các tínhnăng như phiên bản trước và có thềm các tính năng về bảo mật
Cung cấp khả năng dự phòng tức là bất kỳ một máy chủ nào bị lỗi nhưngvẫn không tác động đến truy nhập của máy Client vào tài nguyên MSCS mởrộng tính năng bằng cách cho phép phần mềm lỗi, cả phần mềm hệ thống vàphần mềm ứng dụng Nếu hệ điều hành của 1 Node lỗi, tất cả các ứng dụng
Trang 26và dịch vụ có thể được khởi tạo lại trên Node còn lại MSCS thực hiện việcnày bằng cách liên tục cập nhật trạng thái của dịch vụ và ứng dụng, đảm bảobất cứ sự cố nào làm ngừng ứng dụng hoặc treo ứng dụng đều được khởi tạolại trên chính máy chủ đó hoặc trên máy chủ khác Khi 1 Node lỗi, quá trìnhkhởi tạo lại các ứng dụng đang chạy trên Node khác được gọi là quá trình
failover Failover có thể hoặc xảy ra tự động (khi các ứng dụng hoặc máy chủ có sự cố) hoặc xảy ra một cách thủ công (manually) Bằng việc failover
thủ công, người quản trị có thể chuyển tất cả các ứng dụng và tài nguyêntrên 1 Node sang Node còn lại (ví dụ như mục đích bảo dưỡng) Khi máychủ đó khởi động lại, trở lại trạng thái hoạt động bình thường thì các ứngdụng cũng có thể được chuyển trở lại máy chủ này tự động hoặc thủ công
Việc trả lại tài nguyên cho máy chủ này được gọi là quá trình failback.
Cách kết nối của hệ thống Cluster điển hình như sau:
Hình 2.1: Cách kết nối của hệ thống Cluster điển hình
Mỗi Node có tối thiểu là 2 kết nối mạng, 1 cho Private(hearbeat, chỉ trao đổi dữ liệu giữa 2 Node với nhau), 1 cho Public (trao đổi
dữ liệu với mạng bên ngoài và cho chính các Node với nhau)
Tủ đĩa lưu trữ dùng chung cho hệ thống Cluster (ShareDisk), đây là tử đĩa ngoài, cho phép tất cả các Node có thể truy nhập tới,
Trang 27nhưng được điều khiển bởi dịch vụ Clustering để đảm bảo tại mỗi thời điểmchỉ có 1 Node ghi dữ liệu vào một phân vùng nhất định trên tủ.
2.1.1 Tài nguyên
Các file ứng dụng, dữ liệu, đĩa, địa chỉ IP và tất cả các tài nguyên phục
vụ cho Cluster đều được gọi là tài nguyên Các tài nguyên này được tổ chứcthành nhóm, một nhóm có thể nằm ở trên 1 Node này nhưng cũng có thểnằm trên 1 Node khác bất cứ thời điểm nào và đó là các thành phần nhỏ nhất
mà MSCS có thể thực hiện failover Tài nguyên là các ứng dụng, dịch vụhoặc bất cứ thành phần nào được điều khiển bởi Cluster Service Trạng tháicủa tài nguyên được giám sát bởi Resource Monitor Kết nối giữa ResourceMonitor và các tài nguyên DLL này sẽ phát hiện ra bất cứ thay đổi nào vềtrạng thái các tài nguyên tương ứng và thông báo cho Resource Monitor, vàsau đó Resource Monitor sẽ lần lượt cung cấp thông tin cho dịch vụ Cluster
Hình 2.2: Mô hình tài nguyên của Cluster
2.1.2 Resource Monitor
Resource Monitor theo dõi các tài nguyên được cấp và thông báo cho dịch vụ Cluster nếu có bất cứ thay đổi nào về trạng thái Trong hình vẽ trên
Trang 28chỉ đưa ra 1 Resource Monitor, nhưng trên thực tế, mỗi Node có thể có nhiều hơn 1 Resource Monitor Mặc định, Cluster Service sẽ khởi tạo 1 Resource Monitor để phục vụ cho tất cả các tài nguyên trên 1 Node Người quản trị có thể chọn các tài nguyên với các Resource Monitor riêng lẻ trong quá trình định nghĩa các tài nguyên của Cluster ( thông thường chỉ dùng để
cô lập các tài nguyên nhằm phát hiện lỗi xung đột)
Nếu các Resource Monitor tách biệt ra sẽ hỗ trợ khả năng an toàn tốt hơn.Tài nguyên DLL hoạt động trên vùng địa chỉ của chính các ứng dụng, nếu ứng dụng fail, tài nguyên DLL có thể gặp phải trục trặc, nguyên nhân dẫn đến Resource Monitor cũng lỗi theo Tuy nhiên, trong các trường hợp này Cluster Service vẫn đảm bảo sẵn sàng, trong suốt
2.1.3 Loại tài nguyên
MSCS định nghĩa 12 loại tài nguyên chuẩn khác nhau, các loại tàinguyên khác cũng có thể được các hãng khác, phần mềm khác, hay công cụkhác định nghĩa thêm nếu như chúng tạo ra các tài nguyên DLL tương thích
sử dụng API trong Microsoft Platform SKD.
DHCP server
Loại tài nguyên này cung cấp các dịch vụ DHCP (Dynamic HostConfiguration Protocol), dịch vụ cung cấp IP động Thông số duy nhất đốivới DHCP Server là đường dẫn tới cơ sở dữ liệu Tài nguyên DHCP Servercần thiết các phụ thuộc là tài nguyên IP Address và tài nguyên lưu trữ cơ sở
dữ liệu, thường là tài nguyên Physical Disk.
Distributed Transaction Coodinator
Loại tài nguyên này cho phép sử dụng MSDTC (Microsoft DistributedTransaction Coordinator) trong MSCS Có 2 phụ thuộc cần thiết cho loại tài
nguyên này là tài nguyên Physical Disk và tài nguyên Network Name.
Fileshare
Trang 29Loại tài nguyên này cho phép chia sẻ các thư mục trên tủ đĩa ShareStorage của Cluster, cho phép các Client trong mạng truy nhập tới tàinguyên chia sẻ này và ứng dụng chúng Khi tạo ra tài nguyên này, các thông
số cần phải cung cấp để khởi tạo là tên, đường dẫn của thư mục chia sẻ, chúthích và số lượng tối đa người sử dụng có thể kết nối tới tài nguyên chia sẻnày đồng thời Do đó các phụ thuộc của loại tài nguyên này là Physical Disk
và Network Name
Generic Application
Loại tài nguyên này được sử dụng trên nền Window NT, để tạo ra loại tàinguyên này cần phải nhập chính xác tên của Service Loại tài nguyên nàykhông có phụ thuộc
IIS Virtual Root
Loại tài nguyên này cho phép failover đối với các Version IIS 3.0 trở lên.IIS Virtual Root có 3 phụ thuộc là IP Address, Physical Disk, và NetworkName
IP Address
Tài nguyên IP Address được sử dụng để chỉ các địa chỉ IP, Subnet Masktĩnh đối với các giao tiếp mạng được chọn trong mạng để sử dụng phục vụcho các loại tài nguyên khác Tài nguyên IP Address cúng không có tàinguyên phụ thuộc
Microsoft Message Queue Server (MSMQ)
Tài nguyên này dùng để cài đặt MSMQ Clustered và có các phụ thuộccủa MSDTC, Physical Disk, Network Name
Network Name
Loại tài nguyên này dùng để xác định 1 Group, cho phép các Client nhìnthấy Group như là 1 máy chủ duy nhất Phụ thuộc duy nhất đối với NetworkName là tài nguyên IP Address Ví dụ: nết 1 Group được tạo ra có NetworkName được gọi là WORKGROUp và có tài nguyên cần chia sẻ là CUSTOM
Trang 30thì từ các máy Client cần phải đưa vào đường dẫn đầy đủ là \\WORKGROUP\CUSTOM Với truy nhập này cho phép các Client truy cậpvào tài nguyên chia sẻ mà không cần biết được máy chủ nào đang sở hữu tàinguyên
Physical Disk
Ngay khi MSCS được khởi tạo trên Node đầu tiên, MSCS đã yêu cầu chỉ
ra các tài nguyên Share Disk trên tủ đĩa dùng chung Mỗi Logical Disk đượccấu hình như là 1 tài nguyên Physical Disk Nếu sau khi khởi tạo, chúng tamuốn mở rộng dung lượng tủ đĩa, hoặc có thêm các Logical Disk mới thì cáctài nguyên này cũng dễ dàng được thêm vào bằng cách sử dụng Add tàinguyên Physical Disk Loại tài nguyên này cũng không có phụ thuộc
Print Spooler
Loại tài nguyên này cho phép tạo ra 1 thư mục trên Share Disk, có các tác
vụ in ấn được đưa và tuần tư Tài nguyên này có 2 loại phụ thuộc là PhysicalDisk và Network Name
Time Server
Loại tài nguyên đặc biệt này dùng để duy trì các thông số về thời gian,ngày giờ giữa 2 Node Loại tài nguyên này cũng không có phụ thuộc Trong
1 hệ thống Cluster chỉ có thể có duy nhất 1 tài nguyên Time Service
Cho đến các phiên bản MSCS của Windows 2000 và Windows 2003 thìloại tài nguyên này không còn cần thiết nữa, bởi vì các Node này đều nằmtrong cùng 1 Domain nên có thể tự động điều chỉnh ngày giờ theo giờ củaDomain Controller
Chú ý: Các tài nguyên sau không nên tạo ra nhiều hơn 1
- DHCP Server
- Distributed Transaction Coordinator
- Microsoft Message Queue Server
- Time Server
Trang 312.1.4 Trạng thái tài nguyên
Các tài nguyên có thể có 1 trong 5 trạng thái sau:
- Offline: Khi tài nguyên ở trạng thái này thì nó sẽkhông sẵn sàng cho các tài nguyên khác hoặc các Client
- Offline Pending: Đây là trạng thái chuyển tiếp đểtài nguyên chuyển sang trạng thái Offline
phép các tài nguyên khác có thể Online và các Client có thể sử dụng
trạng thái Online
- Failed: Trạng thái này là tài nguyên đang có vấn
đề mà MSCS không thể xử lý được MSCS cho phép chỉ ra khoảng thời gianchính xác cho phép tài nguyên chuyển trạng thái Online hoặc Offline Trongkhoảng thời gian này thì tài nguyên sẽ chuyển sang trạng thái lỗi
2.1.5 Tài nguyên Quorum
Một vùng đĩa vật lý mà cả 2 Node có thể truy nhập vào được sử dụng đểlưu thông tin trạng thái Cluster được gọi là ổ đĩa Quorum Vùng đĩa nàydùng để lưu trữ các dữ liệu Log thiết yếu để duy trì trạng thái của Cluster vàduy trì hoạt động đồng bộ thông tin trạng thái giữa 2 Node, đặc biệt khi 1Node lỗi Tại 1 thời điểm chỉ có 1 Node quản lý các tài nguyên của Cluster
Ví dụ, nết 1 Node mất kết nối với Node còn lại thì Node mất kết nối này sẽkhông thể trao đổi trạng thái với ổ đĩa Quorum được nên nó sẽ bị loại ra khỏi
hệ thống Cluster Khi khởi tạo MSCS sẽ yêu cầu phải chỉ ra tài nguyên ổ đĩaQuorum, và ổ đĩa này phải nằm trên Share Disk Mặc dù ổ đĩa Quorum cóthể lưu trữ các dữ liệu ứng dụng khác nhưng điều này là không nên, và chỉ
để ổ đĩa này lưu trữ, cập nhật trạng thái thông tin của các Node trongCluster
Trang 322.1.6 TCP/IP
MSCS sử dụng giao thức TCP/IP để kết nối các tài nguyên và ứng dụngmạng Địa chỉ IP cho Cluster không thể là địa chỉ được cấp từ máy chủDHCP TCP/IP bao gồm các tài nguyên về IP Address, địa chỉ IP được chínhcác Node sử dụng kết nối mạng vật lý Mỗi Node sẽ sử dụng tối thiểu là 2kết nối mạng, do đó cần tối thiểu 2 Network Interface Card Trong đó, 1 kếtnối mạng dùng để trao đổi trạng thái giữa các Node với nhau (trong trườnghợp kết nối mạng kia bị lỗi) Mặc dù các địa chỉ IP vật lý của các NIC này
có thể lấy từ máy chủ DHCP nhưng theo khuyến nghị thì không nên dùngđịa chỉ IP động này mà nên dùng địa chỉ IP tĩnh Vì trong trường hợp máychủ DHCP có sự cố, hoặc thời gian dùng địa chỉ IP hết thì các Node sẽkhông nhận được địa chỉ IP này nữa, do đó khả năng mà hệ thống Clustergặp phải lỗi là rất cao Địa chỉ IP dùng để trao đổi trạng thái các NodeCluster là địa chỉ private, các dải địa chỉ private được dùng là:
2.1.7 Domain
Phần này sẽ chỉ ra liên hệ của hệ thống Cluster với Domain
- Cả 2 máy chủ phải đều là member của cùng 1 Domain
- Mỗi máy chủ chỉ có thể là member của 1 hệ thống Cluster
Mặc dù, cả 2 Node đều có thể là máy chủ Domain Controller hoặc mãychủ Stand-alone nhưng Microsoft khuyến nghị nên để cả 2 Node này ở dạngStand-alone để giảm tải cho 2 Node Chỉ trong trường hợp quy mô của mạngnhỏ, số lượng máy chủ hạn chế thì có thể dùng luôn máy chủ DomainController làm máy chủ Cluster Nếu máy chủ này chuyển trạng thái là
Trang 33member server sang là domain controller hoặc ngược lại khi khởi tạo dịch
vụ Cluster có thể làm cho hệ thống Cluster này lỗi như sau:
Event ID: 7013
Source: Service Control Manager
Description: Logon attempt with current password failed with the
following error: Logon failure: the user has not been granted the
requested logon type at this computer
Event ID: 7000
Source: Service Control Manager
Description: The Cluster service failed to start due to the following
ErrorID: The service did not start due to a logon failure.
2.1.8 Failover
Failover là quá trình chuyển quyền xử lý, điều khiển tài nguyên từ Node
lỗi sang Node còn hoạt động Việc phát hiện ra lỗi này là nhiệm vụ của
Resource Monitor, khi xảy ra lỗi của các tài nguyên thì Resource Monitor sẽ thông báo cho Cluster Service và sau đó sẽ chuyển đổi trạng thái của Cluster
bằng quá trình failover đối với tài nguyên đó Mặc dù có thể lỗi chỉ xảy rabởi các tài nguyên đơn lẻ nhưng quá trình failover sẽ thực hiện failover toàn
bộ tài nguyên trong Group đó Mặc định, MSCS cấu hình tất cả các tàinguyên trong Cluster cùng chia sẻ 1 Resource Monitor Điều này có nghĩa
là, bất cứ thời điểm nào, bất cứ tài nguyên nào fail thì Resource Monitor này
sẽ kiểm tra lại tất cả các tài nguyên để đưa ra quyết định chính xác Tấtnhiên, trong trường hợp này, các tài nguyên sẽ mất nhiều thời gian hơn để
chuyển sang trạng thái online bởi vì nó phải làm việc chỉ dựa trên cơ sở 1
Resource Monitor duy nhất phục vụ Để tránh khỏi hạn chế này, Microsoft
khuyến nghị tất cả các tài nguyên IP Address và tài nguyên Physical Disk
(ServeRAID Logical Disk) sử dụng chính Resource Monitor của tài nguyên
Trang 34này Sử dụng như vậy để tối đa khả năng sẵn sàng của các tài nguyênMSCS.
Failover xảy ra trong 3 trường hợp sau: manually (thường là do thao tác của người quản trị), automatically (tự động) hoặc vào một thời điểm định trước được thực hiện Cluster Manager.
Việc tự động failover xảy ra tuần tự theo 3 bước:
Chuyển quyền điều khiển tài nguyên
Khởi động lại các ứng dụng dịch vụ (thường mất nhiều
thời gian nhất trong quá trình failover)
Thiết lập failover tài nguyên
Mức ngưỡng để xảy ra failover là số lần trong một khoảng thời gian nhất
định mà MSCS cho phép tài nguyên được khởi tạo lại trên cùng 1 Node.Nếu số lần này vượt quá mức ngưỡng thì tài nguyên này và tất cả các tài
nguyên khác trong Group sẽ được failover cho Node khác trong Cluster.
Khoảng thời gian failover là thời gian (được tính băng giây) trong suốt quá
trình mà 1 Node khởi tạo dịch vụ trước khi nhóm dịch vụ đó được failover.
Sau khi vượt quá mức ngưỡng này, MSCS sẽ failover Group mà chứa tàinguyên bị lỗi đó và tất cả các tài nguyên còn lại trong Group sang Node tiếptheo và lại cố gắng để chuyển các tài nguyên này sang trạng thái online
Thiết lập failover nhóm
Mức ngưỡng là số lần tối đa mà Group cho phép failover trong mộtkhoảng thời gian nhất định Nếu Group vượt quá số lần failover này trongkhoảng thời gian đó, MSCS sẽ chuyển trạng thái của tài nguyên này ở trạng
thái offline và chuyển sang trạng thái partially online đối với Group đó, tùy
thuộc vào trạng thái của các tài nguyên còn lại trong nhóm Khoảng thờigian failover là khoảng thời gian (tính bằng giờ) được chỉ ra trong mức
Threshold Ví dụ, xem xét ứng Domino Clustering trong nhóm Lotus
Trang 35Domino, các tài nguyên khác trong nhóm bao gồm tài nguyên File Share vàtài nguyên Physical Disk.
H ình 2.3: Thiết lập failover nhóm
Với hình vẽ minh họa trên, người quản trị thiết lập hệ thống Cluster với
mức failover threshold là 3, khoảng thời gian failover là 60s đối với tài nguyên Domino và failover threshold là 5 và khoảng thời gian failover là 1h
đối với Lotus Domino Group Chúng ta sẽ lần lượt xem xét các tình huốngxảy ra, khi Domino từ từ lỗi, tài nguyên Generic Application sẽ khởi độnglại trên Node này 3 lần Nếu đến lần thứ 4 vẫn không khởi tạo lại được trongvòng 1 phút thì chính tài nguyên này và nhóm tài nguyên chứa chúng, LotusDomino Group sẽ failover sang Node B, lúc này được tính là nhóm LotusDomino Group failover 1 lần Khi Domino lỗi 4 lần (vượt quá mức ngưỡng)trên Node B, nó sẽ lại được failover trở lại Node A, lúc này được tính làfailover 2 lần đối với Lotus Domino Group Nếu như tài nguyên Dominovẫn không khởi tạo được thì quá trình sẽ tiếp tục diễn ra như trên Sau lầnthứ 5 failover của Lotus Domino Group trong vòng 1 giờ (Node A->B->A-
>B->A ), MSCS không thể khởi động lại được Domino thì Domino sẽchuyển sang trạng thái lỗi, và Lotus Domino Group sẽ chuyển sang trạng