- 论坛徽章:
- 0
|
本文的實例,則是由於Cluster軟體的故障造成了無法對共用磁片櫃進行訪問,也就從事實上導致了服務的不可用性,這是用冗余手段也難以解決的問題。筆者希望通過對此實例的分析,能帶給大家一些解決集群故障的啟示。
應用硬體環境為兩台伺服器與一台RA4100磁片櫃通過光纖HUB組成了一個集群環境。運行軟體環境為Microsoft Windows 2000 Advanced Server,使用Windows 2000自帶的Cluster軟體。
錯誤現象
系統啟動後,發現集群服務無法正常啟動,集群管理器也無法正常打開,在任一節點,打開資源管理器,都無法看到共用磁片櫃,相應安裝在共用磁片櫃上的軟體也就無法正常啟動和使用。打開事件日誌,可以發現以下錯誤:
Event ID: 1019
Event Type: Warning
Event Source: ClusSvc
Event Category: Log Mgr
Description: The log file Q:MSCSquolog.log was found to be corrupt. An attempt will be made to reset it, or you should use the Cluster Administrator utility to adjust the maximum size.
除以上比較明顯描述的錯誤外,事件日誌中還可以發現以下記錄:
Event ID:1067;Event ID: 1148
解決方法
從事件日誌分析,quorum.log 文件出現了錯誤,導致了系統集群服務不能正常啟動,解決問題的關鍵在於能夠把quorum.log文件恢復到一個初始化狀態,從而可以使系統集群服務正常啟動。
解決步驟
1.通過-ResetQuorumLog參數來啟動Cluster,以達到初始化quorum.log的目的。
1)打開控制面板,雙擊“服務”(Service)圖標;
2)在服務管理器中找到Cluster service,右鍵點擊“屬性”(properties);
3)在啟動變數(Start Parameters)空白框中寫入-ResetQuorumLog,啟動Cluster服務。
2.如果以上方法無法啟動Cluster,則通過-NoQuorumLogging參數停止Cluster。
步驟1不能正常啟動Cluster服務,說明需要完全重建檢查點和quorum.log文件,可以按以下步驟實施:
1)打開控制面板,點擊“服務”(Service)圖標;
2)在服務管理器中找到Cluster service,右鍵點擊“屬性”(properties);
3)在啟動變數(Start Parameters)空白框中寫入-NoQuorumLogging,啟動Cluster服務。
然後,再次用-ResetQuorumLog參數來啟動Cluster:
4)打開共用磁片櫃,找到mscs目錄,刪除它;
5)在服務管理器中找到Cluster service,右鍵點擊“停止”,將Cluster服務停止;
6)在服務管理器中找到Cluster service,右鍵點擊“屬性”(properties);
7)在啟動變數(Start Parameters)空白框中寫入-ResetQuorumLog,再次啟動Cluster服務;
8)此時Cluster服務將正常運行,主節點將可成功訪問共用資源。
3.若此時集群中第二節點處在故障狀態,可採用以下方法來解決。
1)在開始選單的管理工具中打開集群管理器;
2)點擊出現故障的節點, 右擊“evict”,使故障節點退出集群資源;
3)在第二節點上重新安裝Cluster服務,再次加入集群資源。
案例思考
集群的每個節點都在其本地電腦上維護一個集群服務數據庫的拷貝。這個拷貝位於%SystemRoot%ClusterClusdb。當集群服務在一個節點上首次啟動時,一個集群數據庫的更新數據將註冊到註冊表的一個蜂巢中(HKEY_LOCAL_MACHINECluster)。當重新啟動集群伺服器時,一個存在的Cluster註冊表將被使用。
集群服務將Cluster的註冊資訊也保存在共用資源的一個文件中。檢查點文件位於MscsChkxxx.tmp,每次檢查點文件生效,都將把有關資訊記錄入MscsQuolog.log 文件中,以下四類情況將使Cluster服務產生檢查點:
·主節點轉移到另一節點上;
·任何節點上的Cluster服務停止;
·Quolog.log文件達到了其最大重置尺寸(在Windows 2000中為64KB);
·在註冊表HKEY_LOCAL_MACHINECluster QuorumCheckpointInterval中設定了一個時間間隔,在Windows 2000中設置為4小時,如果在此時間間隔內Cluster沒有任何變化時,也會產生一個檢查點。
此次集群服務啟動失敗,關鍵在於Quolog.log文件被破壞,所以此次修復的關鍵在於能夠讀取一個正常的Quolog.log文件。筆者採用的方法是:刪除 Mscs目錄下的所有文件,然後設置參數-NoQuorumLogging讓Cluster重建Quolog.log文件。這種操作有一定的風險,因為此時集群兩個節點的狀態的任何改變將無法被記錄下來,從而也就無法保持兩節點的一致性
隨著目前Windows 2000 伺服器的大量應用,在比較關鍵性的業務平臺上,都使用了基於Windows 2000 Cluster的集群伺服器。集群伺服器在幾乎所有的故障點上都採用了冗余的手段保證系統的可用性。而以下的實例,則是由於Cluster軟體的故障造成了無法對共用磁片櫃進行訪問,也就從事實上導致了服務的不可用性,這是用冗余手段也難以解決的問題。筆者希望通過對此實例的分析,能帶給大家一些解決集群故障的啟示。
應用硬體環境為兩台伺服器與一台RA4100磁片櫃通過光纖HUB組成了一個集群環境。運行軟體環境為Microsoft Windows 2000 Advanced Server,使用Windows 2000自帶的Cluster軟體。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/72067/showart_1012101.html |
|