Storage Spaces دیسکهای فیزیکی را در یک pool جمع میکند و روی آن دیسک مجازی با افزونگی (redundancy) میسازد، بدون نیاز به کارت RAID. برای سرور فایل یا مخزن بکاپ گزینهی خوبی است.
۱. دیسکهای آزاد
Get-PhysicalDisk -CanPool $true | Format-Table FriendlyName, SerialNumber, MediaType, Sizeدیسکی که پارتیشن دارد در این فهرست نیست. اگر مطمئنید دادهای روی آن نیست، اول با Clear-Disk -Number N -RemoveData پاکش کنید.
۲. pool
$disks = Get-PhysicalDisk -CanPool $true
New-StoragePool -FriendlyName DataPool `
-StorageSubSystemFriendlyName 'Windows Storage*' `
-PhysicalDisks $disks۳. دیسک مجازی آینهای
New-VirtualDisk -StoragePoolFriendlyName DataPool -FriendlyName Data `
-ResiliencySettingName Mirror -NumberOfDataCopies 2 `
-ProvisioningType Fixed -UseMaximumSize
Get-VirtualDisk -FriendlyName Data | Get-Disk |
Initialize-Disk -PartitionStyle GPT -PassThru |
New-Partition -DriveLetter E -UseMaximumSize |
Format-Volume -FileSystem ReFS -NewFileSystemLabel Data- Mirror با دو نسخه: حداقل ۲ دیسک لازم است و خرابی یک دیسک را تحمل میکند.
- Mirror با سه نسخه (
-NumberOfDataCopies 3): حداقل ۵ دیسک لازم است و خرابی دو دیسک را تحمل میکند. - Parity: فضای بیشتری میدهد، ولی نوشتن کندتر است و برای آرشیو و بکاپ مناسب است، نه ماشین مجازی.
ReFS در برابر خرابی بیصدای داده مقاومتر است و روی فضای آینهای میتواند دادهی خراب را خودکار از نسخهی سالم ترمیم کند.
۴. پایش
Get-VirtualDisk | Format-Table FriendlyName, ResiliencySettingName, HealthStatus, OperationalStatus, Size
Get-PhysicalDisk | Format-Table FriendlyName, SerialNumber, HealthStatus, Usage
Get-StorageJob۵. تعویض دیسک خراب
$bad = Get-PhysicalDisk | Where-Object HealthStatus -ne 'Healthy'
$bad | Set-PhysicalDisk -Usage Retired
Add-PhysicalDisk -StoragePoolFriendlyName DataPool -PhysicalDisks (Get-PhysicalDisk -CanPool $true)
Repair-VirtualDisk -FriendlyName Data
Get-StorageJob # wait until the repair job finishes
Remove-PhysicalDisk -StoragePoolFriendlyName DataPool -PhysicalDisks $badشمارهی سریال دیسک خراب را از خروجی Get-PhysicalDisk بردارید تا در سرور دیسک درست را بیرون بکشید.
۶. بزرگ کردن
Add-PhysicalDisk -StoragePoolFriendlyName DataPool -PhysicalDisks (Get-PhysicalDisk -CanPool $true)
Resize-VirtualDisk -FriendlyName Data -Size 4TB
$p = Get-VirtualDisk Data | Get-Disk | Get-Partition | Where-Object DriveLetter -eq 'E'
$p | Resize-Partition -Size ($p | Get-PartitionSupportedSize).SizeMaxبرای آینهی دوطرفه دیسکها را جفتجفت اضافه کنید.