Windows 10 上的存储空间和分层

Windows 10 上的存储空间和分层

我的 Windows 10(如果重要的话是专业版)桌面上有许多磁盘,我一直在研究存储空间。我想听听一些关于如何为我的用例配置存储卷的建议。我知道 Windows 10 UI 有限制,但似乎你可以从 Powershell 获得分层功能。我很乐意阅读存储空间的文档并尝试解开该功能,但如果我的策略合理,我希望得到一些意见。

以下是我目前拥有的:

  • 2x256GB SSD - 未分配,是我的旧 RAID0 启动+应用程序卷
  • 1x5TB HDD - 媒体+游戏+应用程序(我想退役这个驱动器)
  • 1x8TB HDD - 媒体+文档+照片
  • 2x8TB HDD - 新的未使用的磁盘
  • CPU:Z97 芯片组主板上的 i7 4790k,到时候可能会升级到 Ryzen3
  • 我的启动驱动器是 512GB NVMe 磁盘

我想用上述驱动器构建两个卷。理想情况下,我想要的是:

  • 游戏+暂存卷:256GB 条带化 SSD 层 + 3TB 条带化 HDD 层
  • 媒体+文档+照片卷:256GB 镜像 SSD 层 + 14TB“奇偶校验”HDD 层

我可以忍受丢失游戏+暂存卷中的所有内容,因为我可以重新下载数据。例如,我会将我的 VM“内存”文件、plex 数据库等放在暂存盘上。我会将任何敏感信息备份到其他卷。

我希望在媒体+文档+照片卷上至少有一个驱动器冗余。我的文档+照片已备份到异地。所以如果我丢失了一个驱动器,这可以帮我省去一些麻烦。

这个设置看起来合理吗?我能在 Windows 10 专业版机器上实现吗?

我还读到,在以前版本的 Windows 中,存储空间的“奇偶校验”池性能确实很差。这是仍然真的吗?我还没有能够对奇偶校验配置进行真正的测试,因为我的 4 个硬盘中有 2 个被使用了。我想我会在这里问一下,以防有人以前有过这样的经验。

我还应该研究哪些其他解决方案?

答案1

要创建 Windows 10 分层存储空间,请参阅以下参考资料:

我在这里复制了 Nils Schimmelmann 的 PowerShell 脚本,用于为 SSD 和 HDD 创建两层存储空间:

#Variables
$StoragePoolName = "My Storage Pool"
$TieredSpaceName = "My Tiered Space"
$ResiliencySetting = "Simple"
$SSDTierName = "SSDTier"
$HDDTierName = "HDDTier"

#List all disks that can be pooled and output in table format (format-table)
Get-PhysicalDisk -CanPool $True | ft FriendlyName,OperationalStatus,Size,MediaType

#Store all physical disks that can be pooled into a variable, $PhysicalDisks
$PhysicalDisks = (Get-PhysicalDisk -CanPool $True | Where MediaType -NE UnSpecified)       

#Create a new Storage Pool using the disks in variable $PhysicalDisks with a name of My Storage Pool
$SubSysName = (Get-StorageSubSystem).FriendlyName
New-StoragePool -PhysicalDisks $PhysicalDisks -StorageSubSystemFriendlyName $SubSysName -FriendlyName $StoragePoolName

#View the disks in the Storage Pool just created
Get-StoragePool -FriendlyName $StoragePoolName | Get-PhysicalDisk | Select FriendlyName, MediaType

#Create two tiers in the Storage Pool created. One for SSD disks and one for HDD disks
$SSDTier = New-StorageTier -StoragePoolFriendlyName $StoragePoolName -FriendlyName $SSDTierName -MediaType SSD
$HDDTier = New-StorageTier -StoragePoolFriendlyName $StoragePoolName -FriendlyName $HDDTierName -MediaType HDD

#Identify tier sizes within this storage pool
$SSDTierSizes = (Get-StorageTierSupportedSize -FriendlyName $SSDTierName -ResiliencySettingName $ResiliencySetting).TierSizeMax
$HDDTierSizes = (Get-StorageTierSupportedSize -FriendlyName $HDDTierName -ResiliencySettingName $ResiliencySetting).TierSizeMax 

#Create a new virtual disk in the pool with a name of TieredSpace using the SSD and HDD tiers
New-VirtualDisk -StoragePoolFriendlyName $StoragePoolName -FriendlyName $TieredSpaceName -StorageTiers $SSDTier, $HDDTier -StorageTierSizes $SSDTierSizes, $HDDTierSizes -ResiliencySettingName $ResiliencySetting  -AutoWriteCacheSize -AutoNumberOfColumns

#Alternatively try adjusting the sizes manually:
#New-VirtualDisk -StoragePoolFriendlyName $StoragePoolName -FriendlyName $TieredSpaceName -StorageTiers @($SSDTier,$HDDTier) -StorageTierSizes @(228GB,1.816TB) -ResiliencySettingName $ResiliencySetting -AutoWriteCacheSize -AutoNumberOfColumns

答案2

以下示例显示如何创建多弹性卷,其中 SSD 层是镜像的,并且 HDD 层在奇偶校验中配置。

New-StorageTier -StoragePoolFriendlyName Pool1 -FriendlyName SSD_Tier -MediaType SSD -ResiliencySettingName Mirror
New-StorageTier -StoragePoolFriendlyName Pool1 -FriendlyName HDD_Tier -MediaType HDD -ResiliencySettingName Parity
$ssd_tier = Get-StorageTier -FriendlyName SSD_Tier
$hdd_tier = Get-StorageTier -FriendlyName HDD_Tier
New-VirtualDisk -StoragePoolFriendlyName Pool1 -FriendlyName "VirtualDisk" -StorageTiers @($ssd_tier,$hdd_tier) -StorageTierSizes 100GB, 300GB

来源:https://www.starwindsoftware.com/blog/configure-a-resilient-volume-on-windows-server-2016-using-storage-spaces

答案3

@harrymc 的回答对我没用。

我必须将两个尺寸都缩小一点(这里是“除数”的一个因子)

另外,我看到层级将弹性报告为“镜像”,所以我也将它们设置为“简单”,但我不确定是否有必要。

#Variables
$StoragePoolName = "MyPool"
$TieredSpaceName = "MySpace"
$ResiliencySetting = "Simple"
$SSDTierName = "SSDTier"
$HDDTierName = "HDDTier"

#List all disks that can be pooled and output in table format (format-table)
Get-PhysicalDisk -CanPool $True | ft FriendlyName,OperationalStatus,Size,MediaType

#Store all physical disks that can be pooled into a variable, $PhysicalDisks
$PhysicalDisks = (Get-PhysicalDisk -CanPool $True | Where MediaType -NE UnSpecified)       

#Create a new Storage Pool using the disks in variable $PhysicalDisks with a name of My Storage Pool
$SubSysName = (Get-StorageSubSystem).FriendlyName
New-StoragePool -PhysicalDisks $PhysicalDisks -StorageSubSystemFriendlyName $SubSysName -FriendlyName $StoragePoolName

#View the disks in the Storage Pool just created
Get-StoragePool -FriendlyName $StoragePoolName | Get-PhysicalDisk | Select FriendlyName, MediaType

#Create two tiers in the Storage Pool created. One for SSD disks and one for HDD disks
$SSDTier = New-StorageTier -StoragePoolFriendlyName $StoragePoolName -FriendlyName $SSDTierName -MediaType SSD -ResiliencySettingName $ResiliencySetting
$HDDTier = New-StorageTier -StoragePoolFriendlyName $StoragePoolName -FriendlyName $HDDTierName -MediaType HDD -ResiliencySettingName $ResiliencySetting

#Identify tier sizes within this storage pool
$SSDTierSizes = (Get-StorageTierSupportedSize -FriendlyName $SSDTierName -ResiliencySettingName $ResiliencySetting)
$HDDTierSizes = (Get-StorageTierSupportedSize -FriendlyName $HDDTierName -ResiliencySettingName $ResiliencySetting)

#Create a new virtual disk in the pool with a name of TieredSpace using the SSD and HDD tiers
New-VirtualDisk -StoragePoolFriendlyName $StoragePoolName -FriendlyName $TieredSpaceName -StorageTiers $SSDTier, $HDDTier -StorageTierSizes @(($SSDTierSizes.TierSizeMax - $SSDTierSizes.TierSizeDivisor * 8), ($HDDTierSizes.TierSizeMax - $HDDTierSizes.TierSizeDivisor * 10)) -ResiliencySettingName $ResiliencySetting  -AutoWriteCacheSize -AutoNumberOfColumns

答案4

RAID 冗余可以解决驱动器故障问题,但如果勒索病毒加密了您的文件,或者(不太可能)电源发生灾难性故障,导致与其连接的所有硬盘驱动器(我见过这种情况),RAID 冗余就无能为力了。我的方法是将完整的硬盘驱动器集副本放在一个离线抽屉上,每两个月更新一次,并将其与工作集交换。这样就可以分配使用时间。关键数据有额外的备份。为了快速同步,我使用 Total Commander。所有内容的完整 MD5 文本文件也有助于检测可能的损坏。一个非常有用的冗余文件生成器可以添加到备份中,以便在发生损坏或删除时恢复:http://www.ice-graphics.com/ICEECC/IndexE.html

相关内容