Windows Server環境でiSCSI接続しているストレージのボリュームが突然消えてしまうと、業務継続に大きな影響が出てしまいます。原因追及や対策を誤ると、システムダウンのリスクが高まるだけでなく、データの整合性にも悪影響を及ぼしかねません。ここでは、実際の事例をもとに、Windows Server 2019でiSCSIボリュームがサプライズ削除されるトラブルについて原因や解決策を詳しく掘り下げていきます。
Windows Server 2019のiSCSI接続で起こりうる突然のボリューム消失とは
Windows Server 2019(Desktop Experience)やHyper-V 2022など、様々なサーバー環境でiSCSIストレージをマウントしている最中に、ディスク管理画面やエクスプローラーから突然ボリュームが消失してしまうケースがあります。まさに「いきなりディスクが消えた」という表現がぴったりで、このトラブルが起こるとOS上でディスクがサプライズ削除されたと認識され、ファイルシステムがアクセス不能に陥ります。イベントビューアには「Disk <番号> がサプライズ削除された」「ターゲットがSCSIリクエストに応答しなかった」などのエラーや警告が残されることが多いです。
よく見られるイベントログとその意味
突然のボリューム消失時に最も多く報告されているイベントログは以下の通りです。これらのログを総合的に分析することで、原因の切り分けを進める際の大きな手掛かりになります。
イベントID | ログの種類 | 内容 |
---|---|---|
51 | Disk | デバイス \Device\Harddisk でページング操作中にエラーが検出された |
157 | Disk | Disk <番号> がサプライズ削除された |
63 | iScsiPrt | ターゲットまたはLUNをリセットできない、セッション再取得を試行 |
9 | iScsiPrt | ターゲットがSCSIリクエストに応答しなかった |
49 | iScsiPrt | ターゲットがタスク管理リクエストに時間内に応答しなかった |
129 | iScsiPrt | \Device\RaidPort4 で問題が発生 |
これらのログの多くはiSCSI通信の途切れやSCSIバスでのエラーを示唆しています。また、ストレージ装置やNICドライバーの不具合によっても類似の症状が引き起こされるため、原因を一つに断定しないで、複合的に検討する必要があります。
ボリューム消失の主な原因と想定される要因
ボリュームが「サプライズ削除」される主な原因は、大きく分けるとハードウェア由来の問題とソフトウェア的な不具合、さらにはネットワーク通信のトラブルです。具体的には以下のような要因が考えられます。
1. ストレージ装置側の不具合やキャッシュ障害
ストレージ装置そのもののキャッシュコントローラやファームウェアで何らかの不具合が発生すると、OSから見ると突然LUNがレスポンスしなくなるケースがあります。Nexsan UnityやPowerStoreなど高機能なストレージでは、キャッシュ領域を利用してIO性能を最適化していますが、このキャッシュ周りのエラーが原因でアクセス不能になると、Windows側でディスクが「消えた」と扱われることがあります。
キャッシュ障害時の典型的な症状
- ランダムIOの処理が急激に遅延し、ディスク使用率が上がる
- OSのイベントログに度重なる書き込みエラー・読み取りエラーが発生
- ストレージ装置のWebGUIでキャッシュ障害やバッテリー警告が表示される
このような状況ではストレージ側のサポートに連絡し、キャッシュ不良やファームウェアエラーを疑うのが有効です。
2. iSCSI通信の途切れやSCSIバスエラー
iSCSIはTCP/IP上でSCSIコマンドをやり取りするため、ネットワークの品質が安定していないと通信が途中で途切れてしまう可能性があります。特に、大量のIOが発生する環境ではネットワーク帯域が逼迫し、パケットドロップや遅延が顕著になるかもしれません。
通信断の原因例
- スイッチの負荷が高い、あるいはポート設定ミス
- NICがチーミング構成されているが正しく動作していない
- iSCSI専用ネットワークが帯域不足になっている
- VLANやQoSの設定が不適切
これらの問題が発生しているとき、イベントログにはSCSI要求へのタイムアウトを示すEvent 9(iScsiPrt)が頻発します。まれにタスク管理が応答しなくなるEvent 49も併発することがあり、最終的にはOSがデバイスを切り離してしまうのです。
3. NICドライバーやファームウェアのアップデートが原因
サーバー本体のNICドライバーやファームウェア更新が原因となり、iSCSI関連の設定がリセットされたり、互換性トラブルを起こしたりするケースもあります。具体的には以下のような事例があります。
- Dell PowerEdge R730やR760などのサーバーでNICドライバーを更新した途端、不明なデバイスとして認識される
- iSCSI Offload機能の有効化/無効化設定が変わり、パフォーマンス低下や切断が頻発
- OSのアップデートとNICドライバーのバージョンが噛み合わず、Event 129などのエラーが連続
アップデート履歴を確認し、問題の発生時期と照合するのはトラブルシューティングの基本中の基本です。
トラブルシューティングの具体的な対策
突然のボリューム消失を防ぐため、または発生してしまった際に復旧を速やかに行うためには、いくつかの手順を実施することが推奨されます。
1. サーバーとストレージ装置の同時再起動によるキャッシュクリア
実際の事例で、Nexsan Unity 3300などを利用している環境において、Windows Server側をシャットダウンした後、ストレージ装置もいったん電源断→再起動することで症状が改善したケースがあります。これはストレージキャッシュの障害や一時的な不整合をクリアする効果が期待できます。ただし、重要な本番環境では再起動時のダウンタイムを考慮し、メンテナンス計画を綿密に立てる必要があります。
2. NICドライバーやBIOS、ファームウェアのバージョン管理
安定して稼働しているドライバーやファームウェアのバージョンを押さえておき、それを定期的に確認・更新することは非常に大切です。特に以下のポイントを確認しておきましょう。
- オフィシャルサイトやサーバーメーカーのリリースノートでNICドライバーの既知の不具合情報をチェック
- 現在適用中のバージョンと過去に問題のなかったバージョンを比較
- BIOSやチップセットドライバー、NICのファームウェアなどの整合性
- iSCSI OffloadやRSS(Receive Side Scaling)などの機能のON/OFF設定
もし、直近のドライバー更新がきっかけでトラブルが発生したのであれば、いったんロールバックして状態を観察するのが賢明な方法です。
3. iSCSI接続設定の再確認とMPIO導入
iSCSIのイニシエーター設定で意外と見落としがちな要素として、ターゲットポータルやCHAP認証の設定漏れ、MPIO構成の不備などがあります。Microsoft iSCSIイニシエーターのプロパティを開き、以下の点をチェックしましょう。
- ターゲットポータル(IPアドレスやポート番号)の入力誤りはないか
- イニシエーターIQNやCHAPのユーザー名/パスワードが一致しているか
- 必要に応じてMPIO(Multipath I/O)を有効にして冗長化を実装しているか
MPIOを使うことで、NICが一つダウンしても残りのNIC経由でIOを継続でき、切断やサプライズ削除が起こるリスクを軽減できます。下記はMPIO機能を有効にする際の簡単なPowerShell例です。
# MPIO機能をインストールする
Install-WindowsFeature -Name Multipath-IO
# iSCSI接続先のデバイスをMPIOデバイスとして認識させる
Enable-MPIO -DeviceID "MSFT2005iSCSIBusType_0x9"
# 設定を反映させるために再起動を推奨
Restart-Computer
4. レジストリ設定やイベントID情報の活用
Microsoftの公式ドキュメントでは、Event 129 (Reset to device)、Event 157 (Surprise Removal) などのエラーが連続発生する場合の対処法が掲載されています。たとえば、レジストリでTimeOutValueを調整し、SCSIコマンドのタイムアウトを長めに設定することで、一時的な通信断に耐えられるケースがあります。ただし、レジストリ変更はシステムの根幹に関わるため、バックアップを取ったうえで実施し、適切な検証期間を設けることが望ましいです。
5. ハードウェアやネットワーク経路の総点検
「単にNICケーブルが緩んでいただけだった」という笑えないオチも現場では珍しくありません。以下のチェックリストを参考に、物理的なトラブルや単純な設定ミスがないかを総点検しましょう。
- ケーブルの抜き差しや結線方式に問題はないか
- スイッチのポートステータスにエラーや巨大なパケットドロップが発生していないか
- VLAN設定の重複や不整合はないか
- Jumbo Frameを設定しているなら、全経路で対応しているか
チーミングやPort Channelといった冗長化構成を取っている場合、スイッチ側とサーバー側でリンクアグリゲーションのモードが食い違っていることもよくある問題の一つです。
再発防止策と運用上のポイント
一度トラブルが収まっても、再度同じ事象が起こるリスクはゼロにはできません。そこで、以下のような運用策を講じておくと、万が一の際のダメージを最小限に抑えられます。
バックアップポリシーの強化
突然のディスク消失に備え、日次/週次のバックアップやスナップショットを確実に取得しておきましょう。Hyper-V環境であればチェックポイント(スナップショット)を活用する方法もありますが、本番運用では容量管理を十分考慮する必要があります。
監視ツールによる事前検知
ZabbixやNagios、SolarWindsなどの監視ツールを導入し、以下の項目をリアルタイム監視することでトラブルを早期に検知できます。
- NICの送受信エラー数
- スイッチポートのエラーカウンタ
- iSCSIセッションの数と切断履歴
- ストレージのキャッシュステータスやログ
しきい値を超えた場合にアラートを出す仕組みがあれば、突然のボリューム消失を未然に防げる可能性があります。
エラー発生時のログ収集と分析フロー整備
問題が再発した際には、慌てずに原因を迅速に特定できるよう、ログ収集の手順を標準化しておくと良いでしょう。Windowsのイベントログのみならず、ストレージ装置側のログも同時に取得し、タイムスタンプを合わせて相関を調べることが重要です。また、エラー発生前後のネットワークトラフィック量やNIC統計情報などもあわせて分析すると、根本原因を発見しやすくなります。
ケーススタディ: Nexsan Unity 3300での解決事例
ある企業の事例では、Windows Server 2019とNexsan Unity 3300をiSCSI接続し、業務システムの仮想ディスクとして運用していました。ある日を境にディスク消失が相次ぎ、Event 157やEvent 9が連続して記録されました。そこで以下の手順を実施したところ、問題が解決したとのことです。
- Windows Server 2019をシャットダウン
- Nexsan Unity 3300を電源断し、数分待機後に再起動
- サーバーを再度起動し、iSCSIイニシエーターでターゲットを再接続
- NICドライバーのバージョン確認と適宜ロールバック
- MPIOを導入して複数NICにて冗長化
最終的にはストレージ側のキャッシュ周りで不具合が起こっていた可能性が示唆され、完全再起動で緩和。NICドライバーの調整により通信断も大幅に減少し、以後はトラブルがほぼ起こらなくなったそうです。
まとめ
Windows Server 2019のiSCSI環境で突然ボリュームが消えてしまうトラブルは、ストレージのキャッシュ障害やNICドライバーの不具合、ネットワーク通信の途切れといった複合的な要因が絡むことが多いです。サーバー側とストレージ装置の同時再起動で問題が解決した事例や、NICドライバーのロールバックで安定したという事例など、対策方法は状況によってさまざまです。再発防止のためには、ドライバーやファームウェアの管理を徹底し、MPIOなど冗長化構成の導入や監視体制の強化を行うのが効果的です。万が一に備え、バックアップとトラブルシューティング体制を見直し、システムダウンによる影響を最小限に食い止めましょう。
コメント