Khi một nodetrong Cluster bị hỏng, các resource group của nó sẽ được chuyển tới một hay nhiềunode trong Cluster mà đang còn hoạt động.. Failover Manager xác định node nào trong Cluster n
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Trang 2NGHỆ AN - 2012
TRƯỜNG ĐẠI HỌC VINH
KHOA CÔNG NGHỆ THÔNG TIN
Trang 3Nghệ An, tháng 12 năm 2012
Trang 4Chúng em xin chân thành cảm ơn thầy Nguyễn Công Nhật đã tận tình giúp đỡ,
hướng dẫn và cung cấp tài liệu liên quan đến đồ án này
Xin chân thành cảm ơn khoa Công nghệ Thông tin, trường Đại học Vinh đã tạođiều kiện thuận lợi trong học tập cũng như trong quá trình làm đồ án thực tập này.Chúng em cũng gửi lời cảm ơn chân thành tới các thầy cô trong khoa đã tận tìnhgiảng dạy, trang bị cho chúng em những kiến thức quý báu trong những năm học vừaqua
Cảm ơn các anh chị đồng nghiệp và bạn bè đã góp ý và giúp đỡ tận tình xây dựng
Trang 5LỜ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 đóngvai trò ngày càng quan trọng hơn trong hoạt động của các doanh nghiệp, tổ chức cũngnhư cơ quan nhà nước Thậm chí ở một số đơn vị, chẳng hạn như các công ty hàngkhông hoặc các ngân hàng lớn, mạng máy tính có thể ví như hệ thần kinh điều khiểnhoạt động của toàn doanh nghiệp Sự ngừng hoạt động của mạng máy tính trongnhữ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
Chúng ta đều biết các máy tính chủ là trái tim của mạng máy tính, nếu máy chủ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ảnxuấ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ỏnghóc đối với các thiết bị mạng nói chung và các máy chủ 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ó các giải pháp để đảm bảo cho hệ thống vẫnhoạ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 là câu trả lời cho vấn đề này
Đề tài “Tìm hiểu Clustering và xây dựng hệ thống Exchange Cluster” giới thiệunguyên lý, phân tích và triển khai một số giải pháp Clustering đang được áp dụng chocác hệ thống mạng máy tính với hi vọng có thể giúp chúng ta hiểu rõ hơn về côngnghệ tưởng như đơn giản nhưng thực tế lại khá phức tạp này
Nội dung đồ án gồm 3 chương:
Chương 1: Tổng quan về công nghệ Clustering.
Chương 2: Cluster Services.
Chương 3: Cấu hình và cài đặt Exchange Cluster.
Trong quá trình thực hiện đồ án, do còn nhiều hạn chế về kiến thức cũng nhưthời gian nên nội dụng đề tại không tránh khỏi những thiếu sót Em hy vọng nhậnđược ý kiến đóng góp của quý thầy cô và các bạn để đồ án được hoàn thiện hơn
Cuối cùng, em xin chân thành cảm ơn thầy giáo Ths Nguyễn Công Nhật đãnhiệt tình hướng dẫn và các thầy cô trong khoa Công nghệ thông tin đã tạo điều kiệntốt giúp cho em hoàn thành đồ án này
Trang 6MỤC LỤC
Trang
Chương II CLUSTER SERVICE
Trang 7Chương I
TỔNG QUAN VỀ CÔNG NGHỆ CLUSTERING
1.2 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àng cho các
hệ thống mạng máy tính Clustering cho phép sử dụng nhiều máy chủ kết hợp vớinhau tạo thành một cụm có khả năng chịu đựng và chấp nhận sai sót (fault-tolerant) nhằm nâng cao độ sẵn sàng của hệ thống mạng Cluster là một hệ thống baogồm nhiều máy chủ được kết nối với nhau theo dạng song song hay phân tán và được
sử dụng như một tài nguyên thống nhất
Nếu một máy chủ ngừng hoạt động do bị sự cố hoặc để nâng cấ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áychủ khác trong cùng một Cluster mà không làm cho hoạt động của hệ thống bị ngắthay gián đoạn Quá trình này gọi là “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”
Việc thiết kế và lắp đặt các cluster cần thỏa mãn các yêu cầu sau:
- Yêu cầu về tính năng 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 dungcuố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): Độ tin cậy cao của cluster được hiểu
là khả năng giảm thiểu tần số xảy ra các sự cố, và nâng cao khả năng chịu đựng saisó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 them 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ũngnhư 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ênmạng khác
Ba yêu cầu trên được gọi tắt là RAS (Reliability-Availability-Scalability), 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ớiRemote Access Service là dịch vụ truy cập từ xa)
1.2 Phân loại Clustering
Kỹ thuật Clustering được chia làm 2 loại gồm Cluster và Network LoadBalancing (NLB)
Trang 8- Cluster: đượ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) bao gồm các database server như là MicrosoftMySQL Server, Microsoft Exchange Server, File and Print Server… Tất cả các nodetrong Cluster dùng chung một nơi lưu trữ dữ liệu có thể dùng công nghệ SCSI hoặcStorage Area Network (SAN) Windows Sever 2003 Enterprise và Datacenter hỗ trợcluster lên đến 8 node trong khi đó Windows 2000 Advance Server hỗ trợ 2 node cònWindows 2000 Datacenter Server được 4 node.
- NLB (Cân bằng tải mạng): Là một loại khác của 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ùngcho các ứng dụng Stateless applications (các ứng dụng hoạt động mang tính nhất thời)như Web, File Tranfer Protocol (FTP), Virtual Private Network (VPN), DHCP…Mỗinode 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ữ, số lượng node càng nhiềuthì thời gian cho việc replication càng lâu chính vì điều này nên ta không nên triểnkhai các ứng dụng Stateful trên kỹ thuật NLB này nhằm đảm bảo tính chính xác của
dữ liệu Đề tài không nói chi tiết về kỹ thuật này
Trang 9Chương II
CLUSTER SERVICE
Cluster: Là một hệ thống song song và được phân phối bởi một nhóm các
server dành riêng để chạy những ứng dụng đặc biệt nào đó và kết nối với nhau để
cung cấp khả năng chịu lỗi (faul tolerance) và load balance Cluster đùng dể cung cấp tính luôn sẵn sàng cho việc truy cập
2.1 Cấu trúc của Cluster
Trong Cluster tùy theo nhu cầu mà chúng ta có thể triển khai nhiều ứng dụngtrên cùng một Cluster hay cài đặt mỗi node một ứng dụng Nói chung cấu trúc củamột Cluster không cố định nhưng chủ yếu chúng ta thấy hữu ích nhất là các loại cấutrúc sau:
- Thứ 1: Nếu ta triển khai 2 ứng dụng stateful trên hệ thống cluster thì có một
phương pháp đơn giản là cài đặt cả 2 ứng dụng ấy vào mỗi node của cluster Ở cấutrúc này thì 2 ứng dụng trên cùng một server do đó nếu ứng dụng này bị lỗi thì sẽ ảnhhưởng đến ứng dụng kia, hiệu quả của hệ thống cluster thấp
- Thứ 2: Tạo 2 hệ thống cluster riêng lẻ, trong mỗi cluster cài đặt duy nhất 1
ứng dụng Ở cấu trúc này thì hệ thống sẽ hiệu quả hơn nếu có ứng dụng nào đó bị lỗithì cũng không ảnh hưởng đến các ứng dụng khác Nhưng chi phí đầu tư cho kiểu nàyrất cao bởi vì số lượng các node cho mỗi ứng dụng nhiều hơn loại 1
Trang 10- Thứ 3: Triển khai cả 2 ứng dụng trên cùng một cluster, mỗi node cài một ứng
dụng nhưng khác với loại 1 là sẽ có 1 cluster làm nhiệm vụ backup Hệ thống này có
1 node passive dung làm backup và cài 2 ứng dụng của node 1 và node 2 (2 nodeActive) Nếu 1 trong 2 node này bị lỗi thì node passive sẽ thay thế chức năng củanode bị lỗi Hệ thống này có hiệu quả cao hơn 2 loại trước
2.2 Các thuật ngữ sử dụng trong Server Cluster
- Node: Là một server thuộc một Cluster nào đó mà trên đó các ứng dụng vàCluster service được cài đặt
- Failover: Quá trình failover có thể xảy ra một cách tự động Khi một nodetrong Cluster bị hỏng, các resource group của nó sẽ được chuyển tới một hay nhiềunode trong Cluster mà đang còn hoạt động Quá trình tự động failover tương tự như
kế hoạch cho việc tái chỉ định quyền sở hữu các resource
Failover yêu cầu xác định các resource group nào đang chạy trên node bị hỏng
và các node nào nên giữ quyền sở hữu các resource group đó Tất cả các node trongCluster mà có khả năng giữ các resource group đó tiến hành đàm phán với nhau đểlấy quyền sở hữu Quá trình đàm phán dựa trên khả năng của node, tải hiện hành, khảnăng phản hồi ứng dụng hay danh sách node ưu tiên Danh sách node ưu tiên là mộtphần của các thuộc tính trong resource group và được dùng để chỉ định một resourcegroup tới một node Khi việc đàm phán quyền sở hữu resource group được hoàn tất,tất cả các node trong Cluster cập nhật database của chúng và tiếp tục theo dõi node sởhữu resource group đó
Trang 11- Failback: Khi một node trở lại phục vụ, Cluster trả lại quyền sở hữu tài nguyêncho nó và nó sẵn sàng để thực hiện yêu cầu.
- Quorum Resource: Trong mỗi Cluster, Quorum resource chứa đựng và duy trìnhững thông tin cấu hình cần thiết cho việc phục hồi Cluster
- Resource: Các Cluster resource bao gồm các phần cứng vật lý như là các ổ đĩa,các network card và các thực thể logic như là các địa chỉ IP, các ứng dụng và cơ sở dữliệu của ứng dụng Mỗi node trong Cluster sẽ có quyền sở hữu các resource cục bộ.Tuy nhiên, Cluster cũng có các resource chúng như các thiết bị lưu trữ chung vàprivate network card Mỗi node trong Cluster đều có khả năng truy cập tới cácresource chung này Một resource chung đặc biệt được biết như là Quorum resource –
là một ổ đĩa vật lý trong dãy các ổ đĩa chung của Cluster đóng một vai trò quan trọngtrong các hoạt động của Cluster Nó phải được dành riêng cho hoạt động của các nodenhư tạo một Cluster hay thêm node
- Resource Group: Resource group là một tập hợp logic của các resource trongmột Cluster Một resource group tiêu biểu được tạo ra bởi các resource liên kết logicvới nhau như là các ứng dụng và các thiết bị ngoại vi và dữ liệu kết hợp với các ứngdụng đó Resource group cũng có thể chứa đựng các thực thể của Cluster và chỉ đượcliên kết khi cần như là các server ảo và địa chỉ IP Một resource group tại một thờiđiểm chỉ được sở hữu bởi một node và các resource riêng lẻ bên trong group đó phảitồn tại trên node đó Các node khác trong Cluster không thể sở hữu các resourcegroup khác nhau trong cùng một resource group
2.3 Các thành phần của Cluster Service
Cluster service 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ần software làm việccùng với nhau Các thành phần này thực hiện việc theo dõi, duy trì tính ổn định vàvận chuyển các resource từ một node qua một node 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ụngtrong Cluster database, bring resource online và offline và kiểm tra trạng thái củaresource đó Khi cần thiết phải thực hiện failover, Resource DLL làm việc cùng vớiResource 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 resource lỗi, Checkpoint Manager kiểm tra các khóa registry khi một resource
Trang 12được bring online và ghi dữ liệu checkpoint lên quorum resource khi resource nàyoffline.
Một vài ứng dụng chứa thông tin cấu hình tại cục bộ thay cho việc chứa thôngtin trong cơ sở dữ liệu cấu hình cluster 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áchduy trì một bản sao của thông tin cục bộ hiện hành này trên Quorum resource Đối vớicác ứng dụng chứa thông tin cấu hình trong registry trên server, Checkpoint Managertheo dõi dữ liệu này khi ứng dụng đang online Khi có sự thay đổi xảy ra, CheckpointManager cập nhật quorum resource 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ững thực thể vật lý vàlogic trong một Cluster Những thế lực này bao gồm bản thân Cluster, các node thànhviên, các resource group, các loại resource và những mô tả của các loại resource đặcbiệt như là các ổ đĩa và địa chỉ IP Database Manager dùng Global Update Managercho việc cập nhật lẫn nhau (replicate) tất cả những thay đổi tới các node khác trongCluster Theo cách này, những thông tin cấu hình được duy trì qua Cluster ngay 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ình cluster thông qua các thành phần Cluster Service khác như làFailover Manager 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 WindowsApplication Programming Interface (API) Những thay đổi khác này được DatabaseManager tiếp nhận để cập nhật cho các node khác trong Cluster qua Global UpdateManager
- Event Log Replication Manager: là một phần của Cluster service làm việccùng với Event Log Service để sao chép các event log tới tất cả các node trongCluster 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 quaEvent Log Replication Manager để broadcast tới các node đang hoạt động khác Nếumột vài sự kiện được ghi lại trong một khoảng thời gian, mỗi sự kiện có thể broadcastmột cách riêng lẻ, nhưng nếu nhiều sự kiện được ghi lại trong một khoảng thời gianngắn, chúng được kết hợp với nhau trước khi broadcast Các sự kiện được dán nhãn
Trang 13để cho biết node 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 resource và các resource group Nó chịu tráchnhiệm tắt hay khởi động các resource, quản lý các resource liên quan và chuẩn bị chomột quá trình failover các resource group Để thực hiện các hoạt động này, nó tiếpnhận resource và thông tin trạng thái hệ thống từ các thành phần Cluster trên mộtnode và từ Resource Monitors Resource Monitors cung cấp môi trường thực hiện choresource DLLs và cung cấp sự giao tiếp giữa resource DLLs và Failover Manager
Failover Manager xác định node nào trong Cluster nên sở hữu resource group.Khi cần thiết phải failover một resource group, Failover Manager trên mỗi node trongCluster làm việc cùng nhau để tái chỉ định quyền sở hữu cho resource group đó
Dựa trên cách mà resource group được cấu hình, Failover Manager có thể cục bộkhởi động lại resource bị hỏng hay có thể làm cho resource đó offline đối với cácresource 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ập nhật thay đổi tới mỗinode 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ệc cập nhật để đảm bảo việc cập nhật đượcxảy ra trên tất cả các node Node client yêu cầu node này gửi tới một global lock đểthực hiện cập nhật Nếu lock này chưa sẵn sàng, nó sẽ chờ Khi lock này sẵn sàngnode 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àycập nhật thành công mà quá trình update bị lỗi trên một node khác thì node này sẽ bịloại bỏ khỏi danh sách các node đang hoạt động và sự cập nhật tiến hành trên cácnode còn hoạt động khác Nếu việc này xảy ra, quorum log sẽ được ghi lại để đảmbảo rằng node bị lỗi có thể nhận được tất cả các thông tin cấu hì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ằngrecover log trên quorum resource chứa đựng dữ liệu cấu hình mới nhất và cáccheckpoint thay đổi Nếu một hay nhiều node trong Cluster bị hỏng, các node cònhoạ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ênQuorum resource Khi các node bị lỗi quay trở lại phục vụ, chúng đọc vị trí củaquorum resource trong local cluster Các cơ chế được xây dựng bên trong sẽ dò tìmtrong cơ sở dữ liệu cũ những quorum resource nào không đúng Sau đó DatabaseManager sẽ yêu cầu Log Manager cập nhật bản sao cục bộ của Cluster sử dụng file
Trang 14checkpoint trong Quorum resource và sau đó đối chiếu với file log trong Quorumdisk 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ếp giữa các node, NodeManager đả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êm vào hay bị loại bỏ khỏi Cluster Node Manager trên mỗinode cũng theo dõi các node khác để tìm ra node bị lỗi Để thực hiện việc theo dõi, nógửi và nhận những message gọi là các heartbeat tới mỗi node trong Cluster Nếu mộtnode có một sự giao tiếp bị lỗi với một node khác, nó gửi broadcast một message tớicác node khác sao cho tất cả các node nhận message này để xác nhận lại danh sáchcác node đang hoạt động trong cluster Quá trình này gọi là một regroup event NodeManager cũng tham gia vào quá trình một node tham gia vào Cluster Tại thời điểmmột node được thêm vào Cluster, Node Manager trên node đó thành lập một quá trìnhgiao tiếp với các Node Manager trên các node khác để thực hiện quá trình chứngthực
- Resource Monitor: cung cấp một interface giao tiếp giữa resource DLLs vàCluster service Khi Cluster cần lấy dữ liệu từ một resource, Resource Monitor tiếpnhận yêu cầu và đẩy yêu cầu đó tới resource DLL thích hợp Ngược lại, khi mộtresource DLL cần báo cáo trạng thái của nó hoặc thông báo cho Cluster service một
sự kiện, resource đẩy thông tin này từ resource tới Cluster service
- Backup/Restore Manager: Cluster service đưa ra một API dùng để backup cơ
sở dữ liệu cluster, BackupClusterDatabase BackupClusterDatabase trước tiên tươngtác với Failover Manager, sau đó đẩy yêu cầu tới node sở hữu quorum resource.Database Manager trên node đó sẽ được yêu cầu và sau đó tạo một bản backup choquorum log file và các file checkpoint Cluster service cũng đưa ra một API khác,Restore Cluster Database để restore cơ sở dữ liệu Cluster từ một backup path APInày có thể chỉ được yê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 Cluster service, restore cơ sở dử liệu Cluster từ bảnbackup, tạo một giá trị registry chứa backup path và sau đó khởi động lại Cluster
Trang 15service Cluster service khi khởi động sẽ dò tìm yêu cầu restore và tiến hành restore
cơ sở dữ liệu Cluster từ backup path tới Quorum resource
2.4 Nguyên tắc hoạt động của Server Cluster
Khi một node hay một application trong Cluster bị fail, 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ông việc từ node bịfail tới các node khác còn hoạt động trong Cluster đó
Cluster service kiểm tra tình trạng không hoạt động của các resource 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à fileresource tới một node còn hoạt động trong Cluster Quá trình này cho phép cácresource như là database, file share và application duy trì tính sẵn sàng cao cho cácứng dụng của user và client Server Cluster đưa ra 2 cơ chế kiểm tra tình trạng khônghoạt động khác nhau:
- Detect Node Failure: Một cách định kỳ, mỗi node trao đổi các gói message vớinhững node khác trong Cluster sử dụng private cluster network Những message nàyđược gọi là Heartbeat Sự trao đổi Heartbeat cho phép mỗi node kiểm tra tính sẵngsà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ệcphản hồi 1 Heartbeat, các server còn hoạt động bắt đầu một quá trình Failover để đàmphán quyền sở hữu đối với các tài nguyên và ứng dụng của node bị fail Việc đàmphá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ệnnhư 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ớinhau, Configuration Database Manager gửi Global Configuration Database update tớimỗi node Tuy nhiên, khi fail trong quá trình trao đổi heartbeat xảy ra, LogManager cũng lưu lại cấu hình database thay đổi tới Quorum Resource Nó đảm bảocá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ệuregistry cục bộ trên node trong quá trình phục hồi
- Retect Resource Failure: Failover Manager và Resource Monitors làm việccùng với nhau để dò tìm và khôi phục resource bị fail Resource Monitors theo dõitrạng thái của resource bằng cách kiểm tra định kỳ các resource sử dụng ResourceDLLs Việc kiểm tra vòng gồm hai bước, một query LookAlive lướt qua và mộtquery lâu hơn, cuối cùng - IsAlive Khi Resource Monitor dò tìm một resource bị fail,
nó thông báo cho Failover Manager và tiếp tục giám sát resource này
Failover Manager duy trì trạng thái của các resource và resource group Nó cũngchịu trách nhiệm thực hiện việc phục hồi khi một resource bị fail và sẽ yêu
Trang 16cầu Resource Monitor phản hồi tới user tình trạng hoạt động hay không hoạt động củaresource
Sau khi resource bị fail được tìm thấy, Failover Manager có thể thực hiện việcphục hồi bằng cách khởi động lại một resource và các resource hay di chuyển toàn bộresource group tới một node khác Công việc phục hồi xác định đã được thực hiệnbở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 resource được phục hồi từ trạngthá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 failbackproperties
Lưu ý:
- Đối với những Cluster có 2 node, dùng thông điệp unicast cho traffic trong nội
bộ Cluster Không dùng multicast
- Đối với những cluster có từ 3 node trở lên mà ở dạng mixed version (một sốnode chạy Windows Server 2003 Enterprise Edition hay 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ôngdùng multicast
- 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ột node thiếu hụt liên tiếp 5heartbeat, node đó sẽ chuẩn bị một quá trình regroup event để đảm bảo rằng tất cả cácnode đi tới một sự nhất quán danh sách các node còn đang hoạt động Server Clusternetwork có thể là private (chỉ có sự giao tiếp giữa các node với nhau), public (giaotiếp giữa client với node), hay mixed (cả sự giao tiếp giữa các node và sự giao tiếpgiữa client với node)
Heartbeat được giao tiếp qua tất cả các loại network, tuy nhiên việc theo dõiheartbeat và cách mà Cluster thể hiện các heartbeat bị lỗi dựa trên các kiểu networksau:
- 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 Cluster hay không
- Trên public network, chỉ có sự giao tiếp giữa client với node, heartbeat đượctheo dõi chỉ để xác định network adapter của node có hoạt động hay không
- Regroup event: Nếu một node thiếu hụt liên tiếp 5 heartbeat, một quá trìnhregroup event được xảy ra Nếu node vẫn duy trì tính trạng không thể phản hồi, node
Trang 17đó sẽ được loại bỏ khỏi danh sách các node hoạt động Nếu node không phản hồi nàyđang sở hữu một quorum resource, các node còn lại cũng bắt đầu một quá trình đàmphá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 quorum resource 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 quorum resource Mục đích của quá trình đàmphán quorum là tại một thời điểm đảm bảo rằng chỉ một node duy nhất được sở hữuquorum resource
Việc chỉ cho một node sở hữu quorum resource là rất quan trọng bởi vì nếu tất
cả các giao tiếp giữa 2 hay nhiều node bị lỗi, nó có khả năng chia Cluster thành 2 haynhiều phần riêng biệt để giữ cho nó vần tiếp tục hoạt động (split brain) Server Clusterngăn ngừa nó bằng cách chỉ cho phép duy nhất một Cluster tách ra này có chứa nodeđang sở hữu quorum resource tiếp tục hoạt động như một Cluster Bất kỳ node nàokhông thể giao tiếp với node đang sở hữu quorum resource, thì node đó sẽ không còn
là node thành viên trong Cluster
- Cách cluster giữ cho các resource group luôn sẵn sàng: Cluster giữ cho cácresource group luôn sẵn sàng bằng cách theo dõi trạng thái của các resource, mangcác resource online, và tiến hành failover
- Theo dõi trạng thái các resource: Resource Monitor đưa ra 2 cách theo dõitrạng thái các resource trên node mà nó giám sát: Look Alive (resource 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 resource làđúng chức năng)
- Cách Failover xảy ra: Quá trình failover xảy ra khi một group hay một nodeđang sở hữu resource bị lỗi Một resource bị lỗi có thể là lý do cho một group fail nếu
ta cấu hình Affect the group cho resource đó
Failover có hai dạng: Resource failure hay Group failure và Node failure haymất sự giao tiếp giữa các node
+ Resource failure và Group failure: Khi một resource 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 resource đó Resource Monitor gọi điểm vào Is Alive của resourceDLL để xác định resource đó bị hỏng
Nếu Is Alive bị lỗi, trạng thái resource chuyển thành fail
Nếu ta cấu hình cho resource khởi động lại khi bị lỗi, Failover Manager cố gắnkhởi động lại resource để mang nó online trở lại Nếu sự cố gắng mang resource
Trang 18online không đạt được hay vượt qua ngưỡng hay thời gian cho phép khởi động lại,Resource Monitor stop resource này.
Thông qua Resource Monitor, Failover Manager gọi Terminal entry point củaresource DLLs
Nếu resource này được cấu hình là Affect the group, quá trình làm việc đượctiế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ớinhau để tái chỉ định quyền sở hữu cho group đó
Trên node mà resource bị hỏng, Failover Manager kết thúc resource đó và cácresource liên quan với nó
Failover Manager trên node mà resource bị hỏng thông báo cho FailoverManager trên node sẽ sở hữu resoure đó và cũng thông báo với Failover Manager trêntất cả các node khác cho sự thay đổi này
Nếu bất kỳ resource nào được cấu hình lưu thông tin cấu hình trên cục bộregistry, Checkpoint Manager sẽ restore bản sao registry cho resource đó từ quorumresource
Node mà Failover Manager sẽ chuyển resource tới là duy nhất, sử dụng danhsách phụ thuộc để xác định thứ tự đúng
Node mới sở hữu group sẽ điều khiển các resource của group đó thông quaResource Monitor tương ứng
+ 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 resource bị hỏng Trong Clustering, một nodeđược coi là bị hỏng nếu nó mất sự giao tiếp với cá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ìnhregroup event được xảy ra Sau khi một node bị hỏng, các node còn lại tiến hành đàmphán cho việc sở hữu các resource group Failover Manager trên các node còn sửdụng được xác định quyền sở hữu các resource group dựa trên:
Các node mà ta chỉ định có khả năng sở hữu các resouce group đó
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 Cluster service chuyển các resourcegroup 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 Failover Managertrên node đó tương tác với Failover Manager trên node đang sở hữu group và tiến
Trang 19hành đàm phán sau đó chuyển quyền sở hữu resource group trở về node thích hợphơn.
2.5 Tính mở của Cluster
Một vấn đề mà các nhà đầu tư xây dựng hệ thống cần quan tâm là khả năng mởrộng của hệ thống Clustering Tuỳ theo yêu cầu cụ thể các cluster có thể cần phảithêm các máy chủ vào Cluster, hoặc thêm CPU và RAM cho các máy chủ để tăng khảnăng đảm nhận công việc cho các máy chủ đã có
Muốn mở rộng Cluster bằng cách thêm các server thì cả hai yếu tố là kỹ thuậtClustering lẫn Hệ điều hành mà server sử dụng đều quan trọng Ví dụ như trình bàytrong 2 bảng sau đây, sự khác nhau cơ bản về khả năng mở rộng của AdvancedServer và Datacenter Server là số nút có thể dùng với Cluster Bảng sau nêu chi tiết sốlượng tối đa của các nút được hỗ trợ trong một Cluster và chuẩn lưu trữ yêu cầu:
Hệ điều hành Số lượng các
nodes Lưu trữWindows NT 4.0 Enterprise Edition
1 - 2 SCSIWindows 2000 Advanced Server
Windows 2000 Datacenter Server
Windows Server 2003 Enterprise
EditionWindows Server 2003 Enterprise x64
Edition
Windows Server 2003 Datacenter
EditionWindows Server 2003 Datacenter x64
Edition
Trang 20Windows NT 4.0 Enterprise Edition
1-2 Fibre ChannelWindows 2000 Advanced Server
Windows 2000 Datacenter Server 1-4 Fibre Channel
Windows Server 2003 Enterprise
version for Itanium – based systems
Windows Server 2003 Datacenter
Edition Windows Server 2003
Datacenter Edition x64
Windows Server 2003 Datacenter
Edition for Itanium – based systems
Windows Server 2008 Enterprise
EditionWindows Server 2008 Enterprise
Edition for Itanium – based systems
Windows Server 2008 Datacenter
EditionWindows Server 2008 Enterprise x64
Fibre Channel,iSCSI, SASWindows Server 2008 Datacenter
x64 EditionWindows Server 2008 R2 Enterprise
Windows Server 2008 R2 Datacenter
Microsoft Hyper – V Server 2008 R2
Trang 21Số node tương ứng với các hệ điều hành và chuẩn lưu trữ
Muốn mở rộng Cluster bằng cách thêm vào các CPU và RAM thì việc đangdùng hệ điều hành nào là vấn đề rất quan trọng Ví dụ như Hệ điều hành WindowAdvanced Server hỗ trợ tối đa 8 bộ vi xử lỷ và 8 GB RAM, trong khi đó WindowDatacenter Server hỗ trợ tối đa 32 bộ vi xử lý và 64GB RAM Như vậy, có thể phảinâng cấp hệ điều hành từ Advanced Server lên Datacenter Server nếu yêu cầu thêmCPU và RAM vượt quá khẳng năng của hệ điều hành đang dùng
2.6 Công cụ Cluster Administrator
Đây là công cụ dùng để khởi tạo, thiết lập và quản lý Cluster
Vào Star/ Programs/Administrative Tools/Cluster Administrator để khởi độngcông cụ này
Để tạo mới một Cluster chọn Creater new Cluster, Thêm một node vào mộtCluster đã có chọn Add nodes to cluster, để mở một Cluster đã có sẵn chọn Openconnection to Cluster
Quá trình tạo mới Cluster, thêm node sẽ được trình bày chi tiết trong phần môphỏng
Chỉnh sửa thông tin cấu hình Cluster: Chuột phải vào Cluster chọn Propeties
Trang 22- Tab General : thiết lập tên Cluster.
- Quorum: thiết lập đường dẫn lưu trữ thông tin Quorum
- Network: mức động ưu tiên của card mạng mà Cluster sẽ truyền
dữ liệu nội bộ
- Security: thiết lập quyền quản lý Cluster cho các user
Tạo mới các Group, Resource:
Trang 23Trong mục Modify ta có thể thiết lập mực ưu tiên của một node sẽ sở hữuCluster khi quá trình Failover xảy ra:
- Tab Failover: quy định số lần bị fail của một node (Threshold)trong một khoảng thời gian Nếu một node mà vượt quá số lần bị failtrong một khoảng thời gian nhất định thì node đó sẽ tạm thời bị loại rakhỏi nhóm
Trang 24- Tab Failback: quy định khoảng thời gian một node sau khi hoạtđộng trở lại thì sẽ được đảm nhiệm vai trò cũ sau một khoảng thời giannhất định
Prevent failback: không cho trở lại vai trò cũ
Allow failback: cho phép trở lại ngay lập tức (Immediately)hoặc sau một khoảng thời gian (Failback between)
Trang 25Chương III
CÀI ĐẶT VÀ CẤU HÌNH HỆ THỐNG EXCHANGE CLUSTER
3.1 Mô hình hệ thống
3.2 Yêu cầu hệ thống và các bước chuẩn bị cài đặt
- Một máy Domain Controller (DC) Domain Name: test.com
- Hai máy cài Windows Server 2003 Enterprise Edition SP2 (Node1, Node2) đãjoin vào máy DC
3.3 Quy trình cài đặt và cấu hình
3.3.1 Cấu hình thiết lập mạng cho các nút Cluster
Đặt tên cho các kết nối mạng là Public và Private tương ứng với mạng bên
trong và mạng bên ngoài (thực hiện điều này cho cả hai nút)
Trang 26Cấu hình Public network cho các thiết lập mạng tương ứng.
- Cấu hình cho máy Node1
+ C u hình Public networkấ
+ Cấu hình Private network
Trang 27- Cấu hình mạng cho máy Node2
+ C u hình Public networkấ
+ C u hình Private networkấ
Trang 28Kích Advanced, chọn tab DNS Hủy chọn Register this connection's addresses in DNS và Use this connection's DNS suffix.
Kích vào tab WINS, hủy chọn Enable LMHOSTS lookup và chọn Disable
NetBIOS over TCP/IP