記憶域スペースと記憶域スペース ダイレクトの正常性と操作状態のトラブルシューティング
このトピックでは、記憶域スペース ダイレクトと記憶域スペースの記憶域プール、仮想ディスク (記憶域スペースのボリュームの下にある)、およびドライブの正常性と操作状態について説明します。 これらの状態は、読み取り専用構成のために仮想ディスクを削除できない理由など、さまざまな問題のトラブルシューティングを試みる場合に非常に重要です。 また、ドライブをプールに追加できない理由 (CannotPoolReason) についても説明します。
記憶域スペースには、"記憶域プール" に追加される "物理ディスク" (ハード ドライブ、SSD など) の 3 つの主なオブジェクトがあります。記憶域を仮想化することで、次に示すように、プール内の空き領域から "仮想ディスク" を作成できます。 プール メタデータは、プール内の各ドライブに書き込まれます。 ボリュームは仮想ディスク上に作成され、ファイルが格納されますが、ここではボリュームについては説明しません。
正常性と操作状態は、サーバー マネージャーで、または PowerShell を使用して表示できます。 クラスター ノードのほとんどが見つからない記憶域スペース ダイレクト クラスターでのさまざまな (ほとんどが良くない) 正常性と操作状態の例を次に示します (列ヘッダーを右クリックすると、操作状態が追加されます)。 これは問題があるクラスターです。
記憶域プールの状態
すべての記憶域プールには、Healthy (正常)、Warning (警告)、またはUnknown (不明)/Unhealthy (異常) の正常性状態と、1 つ以上の操作状態があります。
プールの状態を確認するには、次の PowerShell コマンドを使用します。
Get-StoragePool -IsPrimordial $False | Select-Object HealthStatus, OperationalStatus, ReadOnlyReason
次の出力例は、正常性状態が "Unknown (不明)" で、操作状態が "Read-only (読み取り専用)" の記憶域プールを示しています。
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly
------------ ----------------- ------------ ------------ ----------
S2D on StorageSpacesDirect1 Read-only Unknown False True
以降のセクションでは、正常性状態と操作状態について説明します。
プールの正常性状態: Healthy (正常)
操作状態 | 説明 |
---|---|
[OK] | 記憶域プールは正常です。 |
プールの正常性状態: Warning (警告)
記憶域プールが警告の正常性状態にある場合は、プールにはアクセスできるが、1 つ以上のドライブが見つからないか、障害が発生していることを意味します。 その結果、記憶域プールの回復性が低下している可能性があります。
操作状態 | 説明 |
---|---|
低下しています | 記憶域プールに障害が発生しているか、ドライブが見つかりません。 この状態は、プール メタデータをホストしているドライブでのみ発生します。 アクション: ドライブの状態を確認し、さらに障害が発生する前に、障害が発生しているドライブを交換してください。 |
プールの正常性状態: Unknown (不明) または Unhealthy (異常)
記憶域プールが Unknown (不明)または Unhealthy (異常) の正常性状態にある場合は、記憶域プールが読み取り専用であり、Warning (警告) または OK の正常性状態に戻るまで変更できないことを意味します。
操作状態 | 読み取り専用の理由 | 説明 |
---|---|---|
読み取り専用 | Incomplete (不完全) | これは、記憶域プールでクォーラムが失われている場合に発生することがあります。これは、プール内のほとんどのドライブで障害が発生しているか、何らかの理由でオフラインになっていることを意味します。 プールでクォーラムが失われると、記憶域スペースでは、十分なドライブが再び使用可能になるまで、自動的にプール構成が読み取り専用に設定されます。 アクション: 1. 欠落しているドライブを再接続し、記憶域スペース ダイレクトを使用している場合は、すべてのサーバーをオンラインにします。 2. 管理アクセス許可を使用して PowerShell セッションを開き、次のように入力して、プールを読み取り/書き込みに戻します。 Get-StoragePool <PoolName> -IsPrimordial $False | Set-StoragePool -IsReadOnly $false |
ポリシー | 管理者が記憶域プールを読み取り専用に設定しました。 アクション: クラスター化された記憶域プールをフェールオーバー クラスター マネージャーで読み取り/書き込みアクセスに設定するには、[プール] に移動し、該当するプールを右クリックして、[オンラインにする] を選択します。 その他のサーバーと PC については、管理アクセス許可を使用して PowerShell セッションを開き、次のように入力します。 Get-StoragePool <PoolName> | Set-StoragePool -IsReadOnly $false |
|
開始中 | 記憶域スペースは開始中か、プール内でドライブが接続されるのを待機しています。 これは一時的な状態です。 完全に開始されると、プールは別の操作状態に移行します。 アクション: プールが "Starting (開始中)" 状態のままである場合は、プール内のすべてのドライブが正常に接続されていることを確認してください。 |
Windows Server 記憶域フォーラムも参照してください。
仮想ディスクの状態
記憶域スペースでは、ボリュームは、プール内の空き領域から分割される仮想ディスク (記憶域スペース) に配置されます。 すべての仮想ディスクには、Healthy (正常)、Warning (警告)、Unhealthy (異常)、または Unknown (不明) の正常性状態と、1 つ以上の操作状態があります。
仮想ディスクの状態を確認するには、次の PowerShell コマンドを使用します。
Get-VirtualDisk | Select-Object FriendlyName,HealthStatus, OperationalStatus, DetachedReason
デタッチされた仮想ディスクと、低下した、または不完全な仮想ディスクを示す出力例を次に示します。
FriendlyName HealthStatus OperationalStatus DetachedReason
------------ ------------ ----------------- --------------
Volume1 Unknown Detached By Policy
Volume2 Warning {Degraded, Incomplete} None
以降のセクションでは、正常性状態と操作状態について説明します。
仮想ディスクの正常性状態: Healthy (正常)
操作状態 | 説明 |
---|---|
[OK] | 仮想ディスクは正常です。 |
Suboptimal (最適でない) | データが複数のドライブに均等に書き込まれていません。 アクション: Optimize-StoragePool コマンドレットを実行して、記憶域プール内のドライブ使用率を最適化します。 |
仮想ディスクの正常性状態: Warning (警告)
仮想ディスクが Warning (警告) の正常性状態の場合は、データの 1 つ以上のコピーが使用不可だが、記憶域スペースでは少なくとも 1 つのデータ コピーを読み取れることを意味します。
操作状態 | 説明 |
---|---|
サービス中 | ドライブを追加または削除した後などに、Windows で仮想ディスクを修復しています。 修復が完了すると、仮想ディスクは "OK" の正常性状態に戻ります。 |
Incomplete (不完全) | 1 つ以上のドライブで障害が発生したか、見つからないため、仮想ディスクの回復性が低下しています。 ただし、見つからないドライブにはデータの最新のコピーが格納されています。 アクション: 1. 欠落しているドライブを再接続し、障害が発生したドライブを交換します。また、記憶域スペース ダイレクトを使用している場合は、オフラインになっているすべてのサーバーをオンラインにします。 2. 記憶域スペース ダイレクトを使用していない場合は、次に Repair-VirtualDisk コマンドレットを使用して仮想ディスクを修復します。 ドライブを再接続または交換した後、必要であれば記憶域スペース ダイレクトにより自動的に修復が開始されます。 |
低下しています | 1 つ以上のドライブで障害が発生したか、見つからず、それらのドライブ上に期限切れのデータ コピーがあるために、仮想ディスクの回復性が低下しています。 アクション: 1. 欠落しているドライブを再接続し、障害が発生したドライブを交換します。また、記憶域スペース ダイレクトを使用している場合は、オフラインになっているすべてのサーバーをオンラインにします。 2. 記憶域スペース ダイレクトを使用していない場合は、次に Repair-VirtualDisk コマンドレットを使用して仮想ディスクを修復します。 ドライブを再接続または交換した後、必要であれば記憶域スペース ダイレクトにより自動的に修復が開始されます。 |
仮想ディスクの正常性状態: Unhealthy (異常)
仮想ディスクが Unhealthy (異常) の正常性状態の場合は、その仮想ディスク上のデータの一部またはすべてに現在アクセスできません。
操作状態 | 説明 |
---|---|
No redundancy (冗長性なし) | 障害が発生したドライブの数が多すぎるため、仮想ディスクでデータが消失しました。 アクション: 障害が発生したドライブを交換し、バックアップからデータを復元します。 |
仮想ディスクの正常性状態: Information/Unknown (情報または不明)
管理者が仮想ディスクをオフラインにした場合や仮想ディスクがデタッチされた場合、仮想ディスクは、Information (情報) の正常性状態 (記憶域スペースのコントロールパネル項目に示される) または Unknown (不明) の正常性状態 (PowerShell に示される) になることもあります。
操作状態 | デタッチされた理由 | 説明 |
---|---|---|
デタッチ | ポリシーによる | 管理者が仮想ディスクをオフラインにしたか、手動でのアタッチを要求するように仮想ディスクを設定しました。この場合は、Windows が再起動されるたびに、仮想ディスクを手動でアタッチする必要があります。 アクション: 仮想ディスクをオンラインに戻します。 仮想ディスクがクラスター化された記憶域プール内にある場合にそれを行うには、フェールオーバー クラスター マネージャー で [記憶域]>[プール]>[仮想ディスク]を選択し、オフライン状態を示している仮想ディスクを選択し、[オンラインにする] を選択します。 クラスター内にないときに仮想ディスクをオンラインに戻すには、管理者として PowerShell セッションを開き、次のコマンドを使用してみてください。 Get-VirtualDisk | Where-Object -Filter { $_.OperationalStatus -eq "Detached" } | Connect-VirtualDisk クラスター化されていないすべての仮想ディスクを Windows の再起動後に自動的にアタッチするには、管理者として PowerShell セッションを開き、次のコマンドを使用します。 Get-VirtualDisk | Set-VirtualDisk -ismanualattach $false |
Majority Disks Unhealthy (大多数のディスクが異常) | この仮想ディスクで使用されている非常に多くのドライブで障害が発生したか、見つからないか、古いデータがあります。 アクション: 1. 欠落しているドライブを再接続します。また、記憶域スペース ダイレクトを使用している場合は、オフラインになっているすべてのサーバーをオンラインにします。 2. すべてのドライブとサーバーがオンラインの場合は、障害が発生したドライブを交換します。 詳しくは、ヘルス サービスに関するページをご覧ください。 ドライブを再接続または交換した後、必要であれば記憶域スペース ダイレクトにより自動的に修復が開始されます。 3. 記憶域スペース ダイレクトを使用していない場合は、次に Repair-VirtualDisk コマンドレットを使用して仮想ディスクを修復します。 データのコピー数よりも多くのディスクで障害が発生し、仮想ディスクが障害の間に修復されなかった場合は、仮想ディスク上のすべてのデータが永久に失われます。 この残念なケースでは、仮想ディスクを削除し、新しい仮想ディスクを作成した後、バックアップから復元します。 |
|
Incomplete (不完全) | 仮想ディスクを読み取るのに十分なドライブがありません。 アクション: 1. 欠落しているドライブを再接続します。また、記憶域スペース ダイレクトを使用している場合は、オフラインになっているすべてのサーバーをオンラインにします。 2. すべてのドライブとサーバーがオンラインの場合は、障害が発生したドライブを交換します。 詳しくは、ヘルス サービスに関するページをご覧ください。 ドライブを再接続または交換した後、必要であれば記憶域スペース ダイレクトにより自動的に修復が開始されます。 3. 記憶域スペース ダイレクトを使用していない場合は、次に Repair-VirtualDisk コマンドレットを使用して仮想ディスクを修復します。 データのコピー数よりも多くのディスクで障害が発生し、仮想ディスクが障害の間に修復されなかった場合は、仮想ディスク上のすべてのデータが永久に失われます。 この残念なケースでは、仮想ディスクを削除し、新しい仮想ディスクを作成した後、バックアップから復元します。 |
|
Timeout | 仮想ディスクのアタッチに時間がかかりすぎました。 アクション: これは頻繁には発生しないので、この状態がしばらくしてなくなるかどうか確認できます。 または、Disconnect-VirtualDisk コマンドレットを使用して仮想ディスクを切断してから、Connect-VirtualDisk コマンドレットを使用して再接続することもできます。 |
ドライブ (物理ディスク) の状態
以降のセクションでは、ドライブの正常性状態について説明します。 プール内のドライブは、PowerShell では "物理ディスク" オブジェクトとして表されます。
ドライブの正常性状態:Healthy
操作状態 | 説明 |
---|---|
[OK] | ドライブは正常です。 |
サービス中 | ドライブ内部でハウスキープ処理を実行中です。 アクションが完了すると、ドライブは OK の正常性状態に戻ります。 |
ドライブの正常性状態:警告
ドライブが [警告] 状態の場合には、データの読み取りと書き込みは正常に実行できるものの、ドライブに何らかの問題が発生しています。
操作状態 | 説明 |
---|---|
通信の切断 | ドライブが見つかりません。 記憶域スペース ダイレクトを使用している場合は、サーバーがダウンしていることが原因の可能性があります。 アクション: 記憶域スペース ダイレクトを使用している場合は、すべてのサーバーをオンラインに戻します。 それでも解決しない場合は、ドライブを再接続するか、交換するか、Windows エラー報告を使用したトラブルシューティングに関するページの「物理ディスクのタイムアウト」の手順に従って、このドライブに関する詳細な診断情報を取得してみてください。 |
Removing from pool (プールから削除中) | 記憶域スペースが、記憶域プールからドライブを削除しています。 これは一時的な状態です。 削除が完了した後、ドライブがまだシステムにアタッチされている場合、ドライブはルート プール内で別の操作状態 (通常、"OK") に移行します。 |
Starting maintenance mode (メンテナンス モードを起動中) | 管理者がドライブをメンテナンス モードにした後、記憶域スペースがドライブをメンテナンス モードにしているところです。 これは一時的な状態であり、しばらくするとドライブは "メンテナンス モード" 状態に変わります。 |
メンテナンス モード | 管理者がドライブをメンテナンス モードにし、ドライブからの読み取りと書き込みを停止しました。 これは通常、ドライブ ファームウェアを更新する前、または障害をテストするときに行われます。 アクション: ドライブのメンテナンス モードを停止するには、Disable-StorageMaintenanceMode コマンドレットを使用します。 |
Stopping maintenance mode (メンテナンス モードを停止中) | 管理者がドライブのメンテナンス モードを停止し、記憶域スペースがドライブをオンラインに戻しているところです。 これは一時的な状態であり、しばらくするとドライブは別の状態 (理想的には "Healthy (正常)") に変わります。 |
予測される障害 | ドライブで障害が発生しそうであることが報告されました。 アクション: ドライブを交換します。 |
IO エラー | ドライブにアクセスする際に一時的なエラーが発生しました。 アクション: 1. ドライブが OK 状態に戻らない場合は、Reset-PhysicalDisk コマンドレットを使用してドライブをワイプしてみてください。 2. Repair-VirtualDisk を使用して、影響を受けた仮想ディスクの回復性を復元します。 3. この問題が発生し続ける場合は、ドライブを交換してください。 |
一時的なエラー | ドライブに一時的なエラーが発生しました。 これは通常、ドライブが応答しなかったことを意味しますが、また、記憶域スペースの保護パーティションがドライブから不適切に削除されたことを意味する場合もあります。 アクション: 1. ドライブが OK 状態に戻らない場合は、Reset-PhysicalDisk コマンドレットを使用してドライブをワイプしてみてください。 2. Repair-VirtualDisk を使用して、影響を受けた仮想ディスクの回復性を復元します。 3. これが発生し続ける場合は、ドライブを交換するか、Windows エラー報告を使用したトラブルシューティングに関するページの「物理ディスクをオンラインにできない」の手順に従って、このドライブに関する詳細な診断情報を取得してみてください。 |
Abnormal latency (待機時間の異常) | 記憶域スペース ダイレクトのヘルス サービスの測定によると、ドライブのパフォーマンスが低下しています。 アクション: これが発生し続ける場合は、記憶域スペースの全体的なパフォーマンスが低下しないように、ドライブを交換してください。 |
ドライブの正常性状態:異常
状態が [異常] のドライブには、書き込みまたはアクセスができません。
操作状態 | 説明 |
---|---|
使用不可 | このドライブは記憶域スペースで使用できません。 詳細については、記憶域スペース ダイレクトのハードウェア要件に関する記事を参照してください。記憶域スペース ダイレクトを使用していない場合は、記憶域スペースの概要に関する記事を参照してください。 |
Split | ドライブがプールから隔離されています。 アクション: ドライブをリセットして、ドライブからすべてのデータを消去し、空のドライブとしてプールに再び追加します。 これを行うには、管理者として PowerShell セッションを開き、Reset-PhysicalDisk コマンドレットを実行してから、Repair-VirtualDisk を実行します。 このドライブに関する詳細な診断情報を取得するには、Windows エラー報告を使用したトラブルシューティングに関するページの「物理ディスクをオンラインにできない」の手順に従ってください。 |
古いメタデータ | 記憶域スペースによってドライブ上の古いメタデータが検出されました。 アクション: これは一時的な状態です。 ドライブが [OK] に戻らない場合は、Repair-VirtualDisk を実行して、影響を受けた仮想ディスクの修復操作を開始できます。 それでも問題が解決しない場合は、Reset-PhysicalDisk コマンドレットを使用してドライブをリセットし、ドライブからすべてのデータをワイプしてから、Repair-VirtualDisk を実行できます。 |
認識されないメタデータ | 記憶域スペースで認識されないメタデータがドライブで検出されました。これは通常、ドライブに別のプールからのメタデータが含まれていることを意味します。 アクション: ドライブをワイプして現在のプールに追加するために、ドライブをリセットします。 ドライブをリセットするには、管理者として PowerShell セッションを開き、Reset-PhysicalDisk コマンドレットを実行してから、Repair-VirtualDisk を実行します。 |
エラーのあるメディア | ドライブにエラーが発生したので、このドライブが今後記憶域スペースで使われることはありません。 アクション: ドライブを交換します。 このドライブに関する詳細な診断情報を取得するには、Windows エラー報告を使用したトラブルシューティングに関するページの「物理ディスクをオンラインにできない」の手順に従ってください。 |
Device hardware failure (デバイスのハードウェア障害) | このデバイスでハードウェア障害が発生しました。 アクション: ドライブを交換します。 |
Updating firmware (ファームウェアを更新中) | Windows はドライブ上のファームウェアを更新しています。 これは通常 1 分未満で終了する一時的な状態であり、その間の読み取りと書き込みはすべて、プール内の別のドライブにより処理されます。 詳細については、ドライブ ファームウェアの更新に関する記事を参照してください。 |
開始中 | ドライブが稼働開始のための準備をしている状態です。 これは一時的な状態であり、準備が完了すると、ドライブが別の操作状態に移行します。 |
ドライブをプールできない理由
一部のドライブで、記憶域プールに属する準備ができていません。 ドライブがプーリングに適格でない理由を確認するには、物理ディスクの CannotPoolReason
プロパティを確認してください。 CannotPoolReason プロパティを表示する PowerShell スクリプト例を次に示します。
Get-PhysicalDisk | Format-Table FriendlyName,MediaType,Size,CanPool,CannotPoolReason
出力例を次に示します。
FriendlyName MediaType Size CanPool CannotPoolReason
------------ --------- ---- ------- ----------------
ATA MZ7LM120HCFD00D3 SSD 120034123776 False Insufficient Capacity
Msft Virtual Disk SSD 10737418240 True
Generic Physical Disk SSD 119990648832 False In a Pool
次の表は、それぞれの理由をもう少し詳しく説明したものです。
理由 | 説明 |
---|---|
In a pool (プール内) | このドライブは既に記憶域プールに属しています。 ドライブは、一度に 1 つの記憶域プールにのみ属することができます。 このドライブを別の記憶域プールで使用するには、まず既存のプールからドライブを削除します。これによって、そのドライブ上のデータをプール内の他のドライブに移動することを記憶域スペースに指示します。 または、記憶域スペースに通知せずにドライブがプールから切断されている場合は、ドライブをリセットします。 ドライブを記憶域プールから安全に削除するには、Remove-PhysicalDisk を使用するか、サーバー マネージャー >[ファイルおよび記憶域サービス]>[記憶域プール]>[物理ディスク] に移動し、ドライブを右クリックし、[ディスクの削除] を選択します。 ドライブをリセットするには、Reset-PhysicalDisk を使用します。 |
異常 | ドライブが正常な状態にないため、交換が必要な可能性があります。 |
リムーバブル メディア | ドライブがリムーバブル ドライブとして分類されています。 ブルーレイ ドライブなど、Windows によってリムーバブルと認識されているメディアは、記憶域スペースでサポートされていません。 多くの固定ドライブはリムーバブル スロット内にありますが、一般に、Windows によってリムーバブルと "分類されている" メディアは、記憶域スペースでの使用に適していません。 |
In use by cluster (クラスターで使用中) | ドライブが現在、フェールオーバー クラスターによって使用されています。 |
オフライン | ドライブがオフラインになっています。 すべてのオフライン ドライブをオンラインにし、読み取り/書き込みに設定するには、管理者として PowerShell セッションを開き、次のスクリプトを使用します。 Get-Disk | Where-Object -Property OperationalStatus -EQ "Offline" | Set-Disk -IsOffline $false Get-Disk | Where-Object -Property IsReadOnly -EQ $true | Set-Disk -IsReadOnly $false |
Insufficient capacity (容量の不足) | これは通常、ドライブ上の空き領域を使用しているパーティションがある場合に発生します。 アクション: ドライブ上のすべてのボリュームを削除し、ドライブ上のすべてのデータを消去します。 これを行うには、Clear-Disk PowerShell コマンドレットを使用できます。 |
Verification in progress (検証中) | ドライブ、またはドライブ上のファームウェアがサーバー管理者によって使用を承認されているかどうかを、ヘルス サービスで確認しています。 |
確認に失敗しました | ヘルス サービスでは、ドライブ、またはドライブ上のファームウェアがサーバー管理者によって使用を承認されているかどうかを確認できませんでした。 |
Firmware not compliant (非準拠ファームウェア) | 物理ドライブ上のファームウェアは、ヘルス サービスを使用してサーバー管理者によって指定された承認済みファームウェア リビジョン一覧に含まれていません。 |
Hardware not compliant (非準拠ハードウェア) | ドライブは、ヘルス サービスを使用してサーバー管理者によって指定された承認済みストレージ モデル一覧に含まれていません。 |