Windows Server 2016 や Windows 10 で、ディスクが頻繁にオフラインになる問題に対処するのは非常に面倒です。特に、ディスクがシステムドライブではなく、FC で接続された SAN LUN である場合はなおさらです。再起動後に「オフライン」ステータスが繰り返し表示されると、システムがディスクを無視しているように見え、非常に煩わしいものです。実は、これは多くの場合、共有環境やフェールオーバークラスターにおける Windows の外部ディスク処理を制御する SAN ポリシー設定に関連しています。当然のことながら、Windows は複雑な処理を強いられるため、SAN に接続されていてもプラグアンドプレイでは対応できません。しかし、この問題を解決するのはそれほど難しくありません。DiskPart や PowerShell などのコマンドラインツールを少し使うだけで済みます。これらの変更を加えれば、ディスクは再起動後もオンライン状態を維持し、毎回手動で操作する必要がなくなります。
Windows Server 2016 および Windows 10 で再起動後も SAN ディスクをオンライン状態に保つ方法
方法1:DiskPartでSANポリシーを変更する
これが役立つ理由:Windows は、破損や競合を防ぐため、共有ディスク、外付けディスク、または SAN ディスクをオフラインにする SAN ポリシー(「オフライン共有」など)を使用します。これを「OnlineAll」に変更すると、Windows はディスクを自動的にオンラインに切り替えます。これは、専用ストレージや非共有ディスクに適しています。再起動後にディスクが「オフライン」と表示される場合や、共有ディスクポリシーが問題となる環境の場合に適用されます。
該当する場合:主にクラスター設定時、またはディスクが共有リソースであり、再起動のたびに接続が切断される場合に発生します。ポリシー変更後、他の問題が発生しない限り、ディスクはオンライン状態を維持すると予想されます。
期待される効果:ディスクはブーストごとに手動でオンラインコマンドを実行する必要がなくなり、ストレスが軽減されます。設定が反映されていることを確認するために、サーバーを再起動する必要がある場合があります。
実行方法は次のとおりです: 管理者特権のコマンド プロンプトまたは PowerShell を開き、次のコマンドを実行します。
diskpart DISKPART> san SAN Policy : Offline Shared DISKPART> san policy=OnlineAll DiskPart successfully changed the SAN policy for the current operating system. DISKPART> san SAN Policy : Online All
このコマンドセットは、SANポリシーを「OnlineAll」に変更します。これにより、Windowsはディスクが接続されたときに自動的にオンラインになります。「その後はどうすればいいの?」と疑問に思う場合は、diskpartを再度開くか、ディスクの管理を確認してください。ディスクは「オンライン」状態になっているはずです。設定によっては、完全に適用するために再起動が必要になる場合もありますが、通常はこれで問題ありません。
方法2: PowerShellを使用してより詳細な制御を行う
PowerShell を使いたい場合や、複数のディスクに対してスクリプトを作成したい場合は、便利なコマンドSet-Diskがあります。例えば、ディスク 2 をオンラインにするには、次のコマンドを実行します。
Set-Disk 2 -IsOffline 0
これが良い理由:複数のディスクを管理している場合や、プロセスを自動化したい場合に、より柔軟に操作できます。また、必要に応じてコマンドを組み合わせて読み取り専用属性を確認したり無効にしたりすることもできます。
Get-Disk -Number 2 | Set-Disk -IsReadOnly $false
これは、SAN ディスクや不適切なシャットダウンの後にディスクが書き込み禁止として表示される場合に発生することがあります。
追加のヒントと注意点
ディスクがオフラインのままになる場合は、ディスクの属性を再確認し、読み取り専用に設定されていないか、その他の問題がないか確認してください。ディスクの管理でディスクを右クリックし、「プロパティ」を開いて、ポリシーやドライバーによってブロックされているかどうかを確認してください。また、デバイスマネージャーで、ディスクまたはコントローラーに警告サインが出ていないか確認してください。
Windows 10の外付けUSBドライブやSSDにも同様のロジックが適用されます。レジストリや上記のようなコマンドでSANポリシーを変更すると、多くの場合問題が解決します。場合によっては初期化やフォーマットが必要になることもありますが、これは別のトピックです。
正直、これを理解するのは少し面倒でしたが、一度設定すればディスクの動作は格段に良くなります。通常、適切なポリシーを適用すれば、再起動後もディスクは表示されアクセス可能な状態を維持するので、面倒な作業が大幅に軽減されます。
まとめ
sanDiskPart 内で SAN ポリシーを確認します。- 起動時にディスクがオフラインにならないようにするには、SAN ポリシーをOnlineAllに変更します。
- 必要に応じて、 PowerShell コマンドを使用して
Set-Diskディスク属性を管理します。 - 再起動して、ディスクがオンラインのままであることを確認します。その後は問題なく動作するはずです。
まとめ
結局のところ、SANポリシーの変更が鍵となるようです。一度解決すれば、ディスクがオフラインになり続けることは過去のものになります。すべての環境がこれほど複雑である必要はありませんが、Windowsは必要以上に複雑にするのが好きです。とはいえ、何を実行し、どこを確認すればよいかがわかれば、対処可能な修正です。他のシステムで同様の問題が発生した場合にも、この方法が役立つことを願っています。幸運を祈ります!