[Windows]記憶域の操作に使用できるPowerShellコマンド

Windows

概要

記憶域の操作はGUIでは限界がある。役立つコマンドは以下の通り

コマンド一覧

記憶域プールにある物理ディスクを自動/使用中止にする

Set-PhysicalDisk -FriendlyName “名前” -Usage Retired

AutoSelect:自動

Retired:使用中止

※ Retired にしてからディスク交換してAutoSelectにすると見かけ上うまくディスク交換ができたように見えるが,実際は「仮想ディスクの修復」をしないとデータは破損している

記憶域プールにある物理ディスクの名前を変更する

Set-PhysicalDisk -FriendlyName “旧名前” -NewFriendlyName ”新名前”

もし旧名前が重複しているものがあるなら

Get-PhysicalDisk -SerialNumber “xxx” | Set-Physicaldisk -NewFriendlyName “新名前”

シリアルナンバーは Get-PhysicalDisk (パラメーターなしコマンド)で調べる

物理ディスクを記憶域プールに追加

Add-PhysicalDisk -PhysicalDisks 新しいHDD -StoragePoolFriendlyName 記憶域プール名

(追加できない場合,問題となっているディスクをローレベルフォーマットすると追加できることがある。以前使用していた記憶域プール情報が問題となっているHDDに残っている場合など)

物理ディスクのリセット

記憶域プールに追加したい物理ディスクが出てこない時に行う

Reset-PhysicalDisk -friendlyname “xxxxxxxxxxxxx”

物理ディスクのメディアの種類を設定

Set-PhysicalDisk -FriendlyName ‘xxxxxxxxxx’ -MediaType HDD

メディアタイプは HDD , SSD , SCM のいずれか

メディアの種類が 不明 となっていても HDDやSSDに手動設定できる

記憶域プールをライトバックにする

Set-StoragePool -FriendlyName "Pool1" -IsPowerProtected $True

※ライトバックつまり,見かけ上書き込み完了としておいてバックグラウンドで書き込みを実行する動作。

メリット:書き込みが高速になる
デメリット:電源トラブル時,書き込まれていないデータが欠落するリスクが高まる。

現在の設定値の取得は
Get-Storagepool|fl FriendlyName, isPowerProtected

仮想ディスクの作成

例1)パリティ,ディスクの数3,キャッシュ 2G,容量は固定で最大

New-VirtualDisk -StoragePoolFriendlyName "PL1" -FriendlyName "VD1" -ResiliencySettingName Parity -UseMaximumSize -ProvisioningType Fixed -NumberOfColumns 3 -NumberofDataCopies 1 -PhysicalDiskRedundancy 2 -WriteCacheSize 2GB

例2)シンプル,JMicron Generic DISK02 と JMicron Generic DISK03 の空き容量をすべて使用する,容量は固定

New-VirtualDisk -StoragePoolFriendlyName "PL1" -FriendlyName "VDTEMP" -ResiliencySettingName Simple -UseMaximumSize -ProvisioningType Fixed -PhysicalDiskstoUse (Get-Physicaldisk "JMicron Generic DISK02"),(Get-Physicaldisk "JMicron Generic DISK03"),(Get-Physicaldisk "JMicron Generic DISK04") 

ResiliencySettingName:仮想ディスクの構成。Simple・Mirr・Parity のいずれか。圧倒的にシンプル構成の方が速度が早い

UseMaximumSize:最大サイズを自動的に割り当てる。

Size:-size (1024GB) という感じでサイズ指定

ProvisioningType:Fixed 固定容量(最初から領域を確保する)。Thin プロビジョニング(論理的なサイズ-基本的には使用しない。容量があると思ってユーザーが大容量を急に使い始めてシステムを停止させてしまう)

NumberOfColumns:何台のHDDに分散して保存するか。パリティでの規定値は3である。記憶域プールで4本以上HDDを接続していたとしてもGUIで設定すると3本までしか使用されない。5本のHDDなら5をセットする。シンプル構成の場合は記憶域プールにあるディスクの数がデフォルト値となる。
最大は8まで。もし物理ディスクが9台あり全部使いたい場合は3にする。3の倍数で物理ディスクの使用数が決まる。物理ディスクが10本全部使いたいならこの値を5にする。5つのディスクに分散して書き込まれるが,それが2セットあるという意味合いになるようです。

NumberofDataCopies:仮想ディスクの構成が Mirr の場合 3 にすると3方向ミラーとなる。

PhysicalDiskRedundancy:Parityの場合 2 とすると デュアルパリティ(RAID6みたいな感じ)構成にできます。

WriteCacheSize:いったんメモリーにため込んで,そのあと地道にHDDへ書き込みするときのキャッシュサイズ。パリティの場合,指定しないと 32MB となり,とてつもなく書き込みが遅い。仮想ディスクがシンプル の場合は0しか指定(または記述なし)できなかった。

PhysicalDiskstoUse:プール内にある物理ディスクを指定できる。記憶領プールの余っている容量を使いたいときに便利。GUIで作れなかった仮想ディスクが作れるようになる。
例)記憶域プールにある DISK02 , DISK03 のみを指定したい場合
-PhysicalDiskstoUse (Get-Physicaldisk “DISK02”) , (Get-Physicaldisk “DISK03”)

仮想ディスクの自動アタッチ

OSを再起動したとき自動的にアタッチされない場合,以下のコマンドをPowerShellで実施する。一度手動でデタッチすると勝手に 手動でアタッチする に設定されてしまうようです。

Set-VirtualDisk -IsManualAttach $False “仮想ディスク名前”

現在の設定値は仮想ディスクのプロパティで確認できる。

仮想ディスクの修復

Repair-VirtualDisk -FriendlyName 仮想ディスク名

再構築の進捗状況

Get-StorageJob

プロパティ

Windows Server 2016
Windows Server 2012R2
Windows Server 2019
Windows Server 2022
Windows 10 Pro

コメント

スポンサーリンク
タイトルとURLをコピーしました