Windows Server 2003 R2 クラスタ環境下におけるイベント ID 1034 への対処

Windows Server 2003 R2 までのクラスタ構成環境下において、次のような状況後、物理ディスク リソースがオンラインにならない場合や、クラスタ サービスを開始できない場合があります。

  • 故障したハード ディスクを交換したり、共有ディスク リソースのドライブを (別の SCSI ID や SCSI ラックの物理的に別の場所に) 変更した場合
  • ディスク障害等でクラスタ サービスが当該ディスクを見つけられない場合
  • ディスクの署名が意図せず変更されてしまった場合

これは、クラスタ側で認識しているディスク署名と、実際の物理ディスクのディスク署名が異なってしまったために発生します。
物理ディスク クラスタ リソースがオンラインにならない場合には、システム イベント ログに ID 1034 エラー イベントが記録されます。

ID1034

クラスタ サービスを開始できない場合は、クラスタ アドミニストレーター内で次のエラーが出力されます。

また、クラスタ ログには以下のログが記録されます。

ERR Physical Disk <Disk Q:>: [DiskArb] Signature of disk has changed or failed to find disk with id, old signature 0xf06047dd new signature 0xf06047de, status 0
ERR Physical Disk <Disk Q:>: SCSI: Attach, error attaching to signature f06047dd, error 2.
ERR Physical Disk <Disk Q:>: Arbitrate: Unable to attach to signature f06047dd. Error: 2.
INFO [MM] MmSetQuorumOwner(0,0), old owner 1.
ERR [FM] FmGetQuorumResource failed, error 2.
ERR [INIT] ClusterForm: Could not get quorum resource. No fixup attempted. Status = 5086
INFO [INIT] Cleaning up failed form attempt.
ERR [INIT] Failed to form cluster, status 5086.
ERR [CS] ClusterInitialize failed 5086
WARN [INIT] The cluster service is shutting down.

[対処方法]
対処方法としては、問題の起きている物理ディスクが OS で認識されている事を確認し、ディスク署名を正常に稼動していた時と同じ番号に変更します。
まず準備として、2つの情報と1つのツールを用意します。

  • [ディスクの管理] 管理コンソールから問題の起きているディスク ドライブのディスク番号を記録します。例: ディスク 1
  • イベント ID 1034 エラー メッセージの "説明" 部分からディスク署名を取得します。例 : "ディスクの予期された署名は、12345678 です。"
  • Dumpcfg.exe ツールを用意します。Dumpcfg.exe は Windows 2000 リソース キットから入手できます。

※    Windows 2000 リソース キットのものはX86 版になります。
※    x64、IA64 環境下の場合は、それぞれに対応したDumpcfg.exe ツールがあります。マイクロソフト サポート サービス <https://www.microsoft.com/japan/customer/contract/default.aspx> を通じて入手下さい。

それを踏まえ以下の作業を実施します。

(1) クラスタ セットの中で稼動しているノードを一つだけの状態にします。
(2) 稼動ノード上で、クラスタ サービスを [自動] から [手動] にします。再起動後にクラスタ サービスが自動で起動しないようにするためです。

1 

(3) 稼動ノード上で、クラスタ ディスク ドライバを [システム] から [無効] にします。これも再起動後にクラスタ ディスク ドライバが起動しないようにするためです。
[デバイス マネージャ] 管理コンソールを起動し、メニュー バーの [表示]-[非表示のデバイスの表示] にチェックを入れます。すると、右ペインに [プラグ アンド プレイではないドライバ] が表示されますので、それを展開し、[クラスタ ディスク ドライバ] のプロパティにて設定します。

2

3

(4) システムを再起動します。
(5) 再起動後、管理者でログオンし、コマンド プロンプトを起動します。
(6) 問題の起きているディスクの署名を、正常稼動時に認識していた番号に戻すために、以下のコマンドを実行します。 <ディスク署名> <ディスク番号> は準備時に用意した情報を使用します。

> dumpcfg.exe –s <ディスク署名> <ディスク番号>

例: 4

※ Windows 2003 リソースキットの Clusterrecovery.exe を使用しても良いですが英語環境下に限定されます。日本語環境下においては以下のサポート技術情報 843295 から修正された ClusterRecovery.exeを入手し使用して下さい。
リソースキットツール ClusterRecovery.exe の日本語環境での使用について
https://support.microsoft.com/kb/836503/ja

(7) 手順 2 と 3 で設定変更したクラスタ サービスとクラスタ ディスク ドライバの変更を元に戻します。

5 6

(8) システムを再起動します。
(9) 再起動後、クラスタ サービスや物理ディスク リソースが正常稼動していることを確認して下さい。

7

(10) クラスタ セットに参加している他のノードも起動します。

[参考情報]
ディスクを交換した後 MSCS の共有ディスクでイベント ID 1034 が発生する
https://support.microsoft.com/kb/243195/ja

サーバー クラスタでイベント ID 1034 から回復する
https://support.microsoft.com/kb/280425/ja

Windows 2000 または Windows Server 2003 サーバー クラスタでディスクを交換する方法
https://support.microsoft.com/kb/305793/ja

[追加情報]
最後に、Windows Server 2008 以降のフェールオーバー クラスタリングではどうでしょうか。
明示的なディスク署名の変更は不要となっています。自己修復するロジックに変更されていますので、上記でご紹介した作業は必要ありません。

Windows Server 2008 フェールオーバー クラスタリングの概要
https://technet.microsoft.com/ja-jp/magazine/2008.07.failover.aspx

Windows Server 2008 Failover Clustering Architecture Overview - p.17
https://download.microsoft.com/download/3/b/5/3b51a025-7522-4686-aa16-8ae2e536034d/Windows%20Server%202008%20Failover%20Clustering%20Architecture%20Overview.doc

Sorting out some myths and facts concerning Windows Server 2008 Failover Clustering
https://blogs.technet.com/askcore/archive/2009/01/26/sorting-out-some-myths-and-facts-concerning-windows-server-2008-failover-clustering.aspx