記憶域プールは複数の物理ディスクを単一の仮想ディスクにするテクノロジーです。
今回は、Windows Server 2012 R2 Essentials の記憶域プールをPowerShellから再構成した際に使用したコマンドレットをメモします。
再構築した環境と設定
- 記憶域プールは、2TBの物理ディスク 3本を使用する
- データ保護は、パリティ(Parity)を選択する
- ファイル システムは、NTFSでフォーマットする
※Windows Azure Backup を利用するためです
記憶域プールの再構築手順
私が行った再構築手順になります。
データを退避する
記憶域プール上の全データを退避ディスクへ移動させます。
RoboCopy コマンドや、Windows Server 2012 R2 Essentialsの[サーバー フォルダーの移動]機能を使いました。
ボリュームを削除する
- パーティションを削除
> Remove-Partition -DriveLetter D - 確認
> Get-Partition
記憶域スペースを削除する
- 記憶域スペースを削除
> Remove-VirtualDisk -FriendlyName "VirtualDisk" - 確認
> Get-VirtualDisk
記憶域プールを削除する
- 記憶域プールを削除
> Remove-StoragePool -FriendlyName “StoragePool” - 確認
> Get-StoragePool
記憶域プール削除後のHDDリセット
不要な操作かもしれませんが、念のため。
- リセット
> Reset-PhysicalDisk -FriendlyName PhysicalDisk1, PhysicalDisk2, PhysicalDisk3, PhysicalDisk6
記憶域プールを作成する
- プール可能な物理ディスクを確認
> Get-PhysicalDisk -CanPool $True | Sort FriendlyName | ft FriendlyName, CanPool, Size -AutoSize - StorageSubSystemのFriendlyNameをメモ
> Get-StorageSubSystem - 物理ディスクを変数に格納
> $PhysicalDisks = Get-PhysicalDisk -FriendlyName PhysicalDisk1,PhysicalDisk2,PhysicalDisk3 - 記憶域プールを作成
> New-StoragePool -StorageSubSystemFriendlyName "Storage Spaces on nasunoserver" -FriendlyName "StoragePool" -PhysicalDisks $PhysicalDisks
メディアタイプを指定する
- 対象可能な物理ストレージのMediaTypeを手動で設定
> Set-PhysicalDisk -FriendlyName PhysicalDiskX -MediaType HDD
※複数本ある場合は、複数回指定。メディアタイプはHDD/SSDがあるので注意。
- 5の設定結果を確認
> Get-StoragePool -FriendlyName "StoragePool" | Get-PhysicalDisk | Sort FriendlyName | Format-Table FriendlyName, Size, MediaType -AutoSize
> $PhysicalDisks = Get-PhysicalDisk -CanPool $True
話が少し逸れます。
SSDを使った記憶域階層を作成する場合は、この操作をした方が良いです。
特にGUIから設定する場合、SSDにメディアタイプが指定されていないと「この仮想ディスクに記憶域階層を作成する(C)」のチェックが出来ませんでした。仮想ディスクを作成
仮想ディスクの作成はいくつかのパラメータを指定できます。シンプロビジョニングを使う場合
> New-VirtualDisk -StoragePoolFriendlyName "StoragePool" -FriendlyName "VirtualDisk" -ProvisioningType Thin -Size 10TB -NumberOfColumns 3 -ResiliencySettingName parity固定の場合
> New-VirtualDisk -StoragePoolFriendlyName "StoragePool" -FriendlyName "VirtualDisk" -ProvisioningType Fixed -Size 3.63TB -NumberOfColumns 3 -ResiliencySettingName parity記憶域スペースをフォーマット
- ディスクを確認
> Get-Disk -FriendlyName "*space*"
- 初期化
> Initialize-Disk -VirtualDisk (Get-VirtualDisk -FriendlyName "VirtualDisk")
※初期化せずに他操作を行うとエラーになりました
- パーティションを作成
> New-Partition -DiskNumber X -UseMaximumSize -DriveLetter D - NTFS フォーマット
※場合によっては時間がかかります。コーヒーでも飲んで待ちましょう
> Format-Volume -DriveLetter D -FileSystem NTFS -Force -Confirm:$False
ボリューム ラベルを変更
- ラベルを変更
> Set-Volume -DriveLetter D -NewFileSystemLabel "StoragePool"
余談:PowerShellらしくワンライナーで書くことも可能
仮想ディスク作成後の処理をワンライナーで書くことも可能です。
PowerShell、やっぱり便利ですね!
Get-VirtualDisk -FriendlyName "VirtualDisk" | Get-Disk | Initialize-Disk -Passthru | New-Partition -UseMaximumSize -DriveLetter D | Format-Volume -DriveLetter D -FileSystem NTFS -Force -Confirm:$False