پرش به محتوا

Storage Spaces: دیسک آینه‌ای نرم‌افزاری با ReFS در Windows Server

چند دیسک را در یک storage pool جمع کنید، روی آن یک دیسک مجازی آینه‌ای با ReFS بسازید و دیسک خراب را بدون از دست رفتن داده تعویض کنید.

Windows Server 2025سطح: متوسطبرای: Windows Server 2025، Windows Server 2022، Windows Server 2019به‌روزرسانی: ۱۷ آبان ۱۴۰۵

Storage Spaces دیسک‌های فیزیکی را در یک pool جمع می‌کند و روی آن دیسک مجازی با افزونگی (redundancy) می‌سازد، بدون نیاز به کارت RAID. برای سرور فایل یا مخزن بکاپ گزینه‌ی خوبی است.

۱. دیسک‌های آزاد

powershell
Get-PhysicalDisk -CanPool $true | Format-Table FriendlyName, SerialNumber, MediaType, Size

دیسکی که پارتیشن دارد در این فهرست نیست. اگر مطمئنید داده‌ای روی آن نیست، اول با Clear-Disk -Number N -RemoveData پاکش کنید.

۲. pool

powershell
$disks = Get-PhysicalDisk -CanPool $true
New-StoragePool -FriendlyName DataPool `
  -StorageSubSystemFriendlyName 'Windows Storage*' `
  -PhysicalDisks $disks

۳. دیسک مجازی آینه‌ای

powershell
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 در برابر خرابی بی‌صدای داده مقاوم‌تر است و روی فضای آینه‌ای می‌تواند داده‌ی خراب را خودکار از نسخه‌ی سالم ترمیم کند.

۴. پایش

powershell
Get-VirtualDisk | Format-Table FriendlyName, ResiliencySettingName, HealthStatus, OperationalStatus, Size
Get-PhysicalDisk | Format-Table FriendlyName, SerialNumber, HealthStatus, Usage
Get-StorageJob

۵. تعویض دیسک خراب

powershell
$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 بردارید تا در سرور دیسک درست را بیرون بکشید.

۶. بزرگ کردن

powershell
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

برای آینه‌ی دوطرفه دیسک‌ها را جفت‌جفت اضافه کنید.