LoginSignup
0
0

記憶域プールで「削除の準備」が表示されない時に、物理ディスクを削除する方法

Last updated at Posted at 2023-08-20

概要

Windowsには便利なSoftware Defined Storage機能として記憶域プールと呼ばれる機能があります。
これを利用するといわゆるRAID1やRAID5のような領域を構築でき、かつ柔軟に管理できます。具体的には構築後の物理ディスクの追加や削除、またストレージ容量の異なる物理ディスクの組み合わせによる活用等が可能です。まぁ要は便利なわけ。

そんな便利なはずの記憶域プールをメンテナンスしていたのですが、便利じゃない事象にぶち当たってしまいます。
「空き容量もあるはずなのに、何故かディスクが削除できない。」

image (59).png

最終的に解決させたわけなのですが、明らかに忘れそうなのでメモっておきます。

やりたかったこと

下記のような構成で記憶域プール(パリティ)を構築していました。

  • DiskA: 4TB
  • DiskB: 4TB
  • DiskC: 2TB
  • DiskD: 2TB
  • DiskE: 2TB

これに対してDiskF: 3TBを追加した後にDiskEを削除。

  • DiskA: 4TB
  • DiskB: 4TB
  • DiskC: 2TB
  • DiskD: 2TB
  • DiskE: 2TB
  • DiskF: 3TB

その後再度DiskEを追加してDiskFを削除…ということをやりたかった感じでした。

  • DiskA: 4TB
  • DiskB: 4TB
  • DiskC: 2TB
  • DiskD: 2TB
  • DiskE: 2TB ←再度投入した
  • DiskF: 3TB ←これを消したいけど消せない

しかし前述のようにうまく行かない。困った。中身のファイルは変わってないからうまくいくはずでは?

GUIはアレらしいのでPoweShellで試してみる

弊社情シスな部署に所属している友人氏に聞いてみたところ「記憶域プールのGUIはイケてないのでPowerShellでやるべき」との助言を頂いたので、それでやってみる

とりあえずリタイア状態に

調べてみるとどうやらリタイア状態ってステータスがあるらしいです。適当にPowerShellでポチポチしてみましょう。(要管理者権限で実行)

下記で物理ディスク名(FriendlyName)を確認します。(GUIで確認した名前と同じなわけなのですが)

Get-PhysicalDisk | Select FriendlyName,FirmwareVersion

image.png

そして確認した名前のディスクを Retired させます。

Set-PhysicalDisk -FriendlyName "確認した削除する物理ディスクのFriendlyName"  -Usage Retired

image.png

これで再度 Get-PhysicalDisk を叩くと Retired になったことがわかります。
image.png

意気揚々と Remove-PhysicalDisk してみる (失敗)

プール名を念のために確認しておきます。(私はプール名をミスるという凡ミスをしたので、ここはちゃんとチェックしておきましょう)

Get-StoragePool

image.png

Remove-PhysicalDisk を実行してみます。

$PhysicalDiskToRemove = Get-PhysicalDisk -Friendlyname "確認した削除する物理ディスクのFriendlyName"
Remove-PhysicalDisk -PhysicalDisks $PhysicalDiskToRemove -StoragePoolFriendlyName "対象の記憶域プールなFriendlyName"

しかし「Remove-PhysicalDisk : Not enough available capacity」という容量不足っぽいエラーで死にます。 (StorageWMI 40000,Remove-PhysicalDisk)
image.png

「Recommended Actions」として下記が記載されていました。まぁ知ってる。

  • Add more physical disks to the storage pool.
  • Free capacity by deleting unneeded virtual disks.

Virtual Diskの容量を減らしてみる

とりあえず「ディスクの管理」から対象のパーティションを縮小してみました。
image.png

しかしながらエラーは出たままです。

よく見るとこれの縮小限界が概ねプールの AllocatedSize とイコールになっているっぽいですね。ってことは最悪サードパーティツールでパーティションを縮小すればなんとかなるってことかな?

Repair-VirtualDiskOptimize-StoragePool をそれぞれ実行 (これで好転)

半分諦めムードで色々ガチャガチャしてみました。

Get-PhysicalDisk -SerialNumber "確認した削除する物理ディスクのFriendlyName" | Get-VirtualDisk | Repair-VirtualDisk
Get-StoragePool -FriendlyName "対象の記憶域プールなFriendlyName" | Optimize-StoragePool -Asjob

image.png

とりあえず Get-StorageJob したところ、何かが走り始めているような感じです。
そして、なんと当該ディスクが「削除の準備中」に!
image.png
(この 記憶域-Regeneration ってやつが効いたのかも。だとしたら Get-PhysicalDisk の方が効いているかもしれません。)

若干ストレージ容量が足りないみたいなのでサードパーティーツールで縮小する

足りない…
image.png

慣れ親しんだEaseUS Partition Master Freeを使おうかと思いましたが、8TB以上のドライブには対応していないらしいのでMiniTool Partition Wizard 無料版の方を使うことに。(これ大丈夫なソフトなのか?と昔から思っていましたが、まぁ試しに使ってみましょう)
image.png

とりあえずガッツリ減らしてみます。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3133333636362f63343735396430392d346165352d323532632d666265342d3661616531633530303437652e706e.png

やっと削除できるようになりました

やったー
image.png
image.png

結論

どうやらVirtualDisk上の物理的なデータの並びがAllocatedSizeに直接影響しているみたいです。「ディスクの管理」でうまく縮小できなければ、サードパーティーツールを使って何とかすると良いのかな?まぁなかなかに力技ですが…

所感

何とかうまく行ったわけなんですけど、かなりWindowsらしい謎挙動に悩まされたなーという感想です。
そういえばその昔は皆サードパーティ製のデフラグソフトとかでデフラグしていたわけで「物理層の痒いところに手が届くような実装って案外OSには入ってないものなんだよなぁー」みたいな謎の懐かしい気持ちになっていました。

参考文献

2つ目の記事がかなり役に立ちました。同じようなガチャガチャをいっぱいしてらっしゃいそう。感謝。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0