| 
       咨詢電話:010-51727811/12/13
      當前位置: 首頁 > 新聞中心 > 業內新聞 >
      如何恢復集群服務器共享磁盤柜丟失的數據
      時間:2012-08-21 09:38  來源:飛客數據恢復   作者:飛客數據恢復工程師
      一下文章所介紹的是由于Cluster軟件的故障,出現了無法對共享磁盤柜進行訪問的案例,由于故障導致服務不可正常工作,對于這個棘手的難題使用冗余方法也很難解決,希望下面這篇文章能給大家帶來啟示。
       
      應用硬件環境為兩臺服務器與一臺RA4100磁盤柜通過光纖HUB組成了一個集群環境。運行軟件環境為MicrosoftWindows2000AdvancedServer,使用Windows2000自帶的Cluster軟件。
      錯誤現象
      系統啟動后,發現集群服務無法正常啟動,集群管理器也無法正常打開,在任一節點,打開資源管理器,都無法看到共享磁盤柜,相應安裝在共享磁盤柜上的軟件也就無法正常啟動和使用。打開事件日志,可以發現以下錯誤:
       
      EventID1019
      EventTypeWarning
      EventSourceClusSvc
      EventCategoryLogMgr
       
      DescriptionThelogfileQMSCSquolog.logwasfoundtobecorrupt.Anattemptwillbemadetoresetit,oryoushouldusetheClusterAdministratorutilitytoadjustthemaximumsize.
      除以上比較明顯描述的錯誤外,事件日志中還可以發現以下記錄:
      EventID1067;EventID1148
      解決方法
      從事件日志分析,quorum.log文件出現了錯誤,導致了系統集群服務不能正常啟動,解決問題的關鍵在于能夠把quorum.log文件恢復到一個初始化狀態,從而可以使系統集群服務正常啟動。
      解決步驟
      1.通過-ResetQuorumLog參數來啟動Cluster,以達到初始化quorum.log的目的。
      1)打開控制面板,雙擊“服務”(Service)圖標;
      2)在服務管理器中找到Clusterservice,右鍵點擊“屬性”(properties);
      3)在啟動變量(StartParameters)空白框中寫入-ResetQuorumLog,啟動Cluster服務。
      2.如果以上方法無法啟動Cluster,則通過-NoQuorumLogging參數停止Cluster。
      步驟1不能正常啟動Cluster服務,說明需要完全重建檢查點和quorum.log文件,可以按以下步驟實施:
      1)打開控制面板,點擊“服務”(Service)圖標;
      2)在服務管理器中找到Clusterservice,右鍵點擊“屬性”(properties);
      3)在啟動變量(StartParameters)空白框中寫入-NoQuorumLogging,啟動Cluster服務。
      然后,再次用-ResetQuorumLog參數來啟動Cluster:
      4)打開共享磁盤柜,找到mscs目錄,刪除它;
      5)在服務管理器中找到Clusterservice,右鍵點擊“停止”,將Cluster服務停止;
      6)在服務管理器中找到Clusterservice,右鍵點擊“屬性”(properties);
      7)在啟動變量(StartParameters)空白框中寫入-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文件達到了其最大重置尺寸(在Windows2000中為64KB);
      在注冊表HKEY_LOCAL_MACHINEClusterQuorumCheckpointInterval中設定了一個時間間隔,在Windows2000中設置為4小時,如果在此時間間隔內Cluster沒有任何變化時,也會產生一個檢查點。
      此次集群服務啟動失敗,關鍵在于Quolog.log文件被破壞,所以此次修復的關鍵在于能夠讀取一個正常的Quolog.log文件。筆者采用的方法是:刪除Mscs目錄下的所有文件,然后設置參數-NoQuorumLogging讓Cluster重建Quolog.log文件。這種操作有一定的風險,因為此時集群兩個節點的狀態的任何改變將無法被記錄下來,從而也就無法保持兩節點的一致性
       
      隨著目前Windows2000服務器的大量應用,在比較關鍵性的業務平臺上,都使用了基于Windows2000Cluster的集群服務器。集群服務器在幾乎所有的故障點上都采用了冗余的手段保證系統的可用性。而以下的實例,則是由于Cluster軟件的故障造成了無法對共享磁盤柜進行訪問,也就從事實上導致了服務的不可用性,這是用冗余手段也難以解決的問題。筆者希望通過對此實例的分析,能帶給大家一些解決集群故障的啟示。
      應用硬件環境為兩臺服務器與一臺RA4100磁盤柜通過光纖HUB組成了一個集群環境。運行軟件環境為MicrosoftWindows2000AdvancedServer,使用Windows2000自帶的Cluster軟件。