存储空间 - 将 SSD 与 HDD 混合使用

Mar*_*way 9 windows-8 storage-spaces storage-pool

真的找不到任何信息,所以我希望这里有人可以提供一些信息。

我安装了 Windows 8 Pro 的全新副本。我想使用带有 4 个内部 HDD 和 2 个内部 SSD 的存储空间。Windows 8 是否以任何特殊方式(例如缓存)利用 SSD 来提高存储池的速度?

或者 SSD 只是作为数据池的一部分而没有任何性能优势?

Ala*_*ood 13

这在某种程度上扩展了 TiernanO 的答案——我一直在努力寻找关于这一切的详细背景,所以我想我会为每个人写得很好:

SSD 可用于加速池,但它仅适用于某些情况,并且必须遵守许多条件。

首先,您不能简单地将 SSD 添加到现有池中并期望它加速您的系统。事实上,如果你在同一个池中混合 SSD 和 HDD,你基本上是在浪费 SSD,因为你的每个文件都分散在其他磁盘上,所以你的文件的一半可能在 SSD 上,另一半在HDD——所以你仍然需要等待 HDD 启动并寻找数据,然后才能真正被你的计算机使用,即使 SSD 很久以前就找到了前半部分数据。[这是一种过度简化,实际上数据是在块级别而不是文件级别上拆分到不同磁盘的]

因此,您可能不想在同一个虚拟磁盘中混合使用 SSD 和 HDD - 池只由 HDD 或仅由 SSD 组成,而不是由两者组成。顺便说一句,将它们放在同一个存储池中是可以的,只是不在同一个虚拟磁盘上工作。

现在,回到您的问题——是的,可以通过使用存储空间的“日志”功能来使用 SSD 来加快速度——但有一些条件:

  1. 您必须使用弹性设置为“奇偶校验”的虚拟磁盘,日志磁盘不能与“简单”或“镜像”虚拟磁盘一起使用
  2. 您必须至少有两个 SSD——您不能覆盖它(在后台,它们本身被配置为一个镜像空间,以防万一)
  3. SSD 上的所有空间都必须专用于日志记录,您将无法使用任何一个 SSD 来存储数据
  4. 这些都不能从 Windows 8 或 Server 2012 中的 Windows 用户界面进行配置——您必须使用 PowerShell 手动完成
  5. 如果您手动增加池中奇偶校验空间的数量,那么您应该同样增加日志磁盘的数量(例如,如果您使用默认的 1 个奇偶校验空间,则需要 2 个 SSD。如果您有 2 个奇偶校验空间,您需要 4 个 SSD 等)。
  6. 可能很明显,但添加日志磁盘只会提高数据写入虚拟磁盘的速度——数据读取速度不会受到影响

假设您对这些限制感到满意,那么您需要在提升的 PowerShell 窗口中执行以下操作:

对于这个例子,我假设你还没有创建你的存储池或虚拟磁盘——如果你有一个现有的集合,请修改说明以适应。

# See what disks you've got available so you can set the below variables
Get-StoragePool -IsPrimordial $true | Get-PhysicalDisk `
    | Where-Object CanPool -eq $True

# Tell Windows which disk is a traditional HDD and which is an SSD
$HDDs = "PhysicalDisk1", "PhysicalDisk2", "PhysicalDisk3"
$SSDs = "PhysicalDisk4", "PhysicalDisk5"

# Create a new storage pool (these are fairly default options)
New-StoragePool -FriendlyName "Your Storage Pool" `
    -PhysicalDisks (Get-PhysicalDisk $HDDs) `
    -StorageSubSystemFriendlyName "Storage Spaces*" `
    -ResiliencySettingNameDefault Parity

# Add in your two (or more) Journal disks
Add-PhysicalDisk -StoragePoolFriendlyName "Your Storage Pool" `
    -PhysicalDisks (Get-PhysicalDisk $SSDs) -Usage Journal

# Create the virtual disk and get it ready for use
New-VirtualDisk -FriendlyName "Parity Protected & Journaled Data" `
    -StoragePoolFriendlyName "Your Storage Pool" -NumberOfColumns 3 `
     -ProvisioningType Thin -ResiliencySettingName Parity -Size 2TB `
    | Initialize-Disk -PassThru -PartitionStyle MBR `
    | New-Partition -AssignDriveLetter -UseMaximumSize `
    | Format-Volume -FileSystem NTFS `
        -NewFileSystemLabel "Parity Protected & Journaled" -Confirm:$false
Run Code Online (Sandbox Code Playgroud)

您现在可以使用以下命令检查所有工作Get-PhysicalDisk

FriendlyName  CanPool OperationalStatus HealthStatus Usage            Size
------------  ------- ----------------- ------------ -----            ----
PhysicalDisk1 False   OK                Healthy      Auto-Select  10.25 GB
PhysicalDisk2 False   OK                Healthy      Auto-Select  10.25 GB
PhysicalDisk3 False   OK                Healthy      Auto-Select  10.25 GB
PhysicalDisk4 False   OK                Healthy      Journal      10.25 GB
PhysicalDisk5 False   OK                Healthy      Journal      10.25 GB
Run Code Online (Sandbox Code Playgroud)

资料来源:


小智 5

我认为这在Windows server 2012 r2上有所改进。

  • 写回缓存

Storage Spaces 可以使用存储池中现有的固态驱动器来创建一个回写缓存,该缓存可以容忍电源故障,并在以后将它们写入硬盘驱动器之前缓冲对固态驱动器的少量随机写入。

  • 这种变化增加了什么价值?

小的随机写入通常在常见的企业工作负载中占主导地位,它们会影响正在发生的其他数据传输的性能。通过将固态驱动器(在随机访问方面表现出色)用于回写缓存,存储空间可以减少随机写入的延迟,并大大减少对其他数据传输性能的任何影响。

  • 有什么不同?

回写缓存对管理员和用户是透明的,如果存储池中有足够数量的固态驱动器,它就会在所有新的虚拟磁盘上创建,这取决于相关存储空间的以下要求:

  1. 简单空间需要一个固态驱动器
  2. 双向镜像空间和单奇偶校验空间需要两个固态驱动器
  3. 三路镜像空间和双奇偶校验空间需要三个固态驱动器

回写缓存适用于所有类型的存储空间,包括具有存储层的存储空间。

当存储池包含足够的物理磁盘且 MediaType 设置为 SSD 或 Usage 设置为 Journal 以支持指定的弹性设置时,默认情况下新创建的存储空间会自动使用 1 GB 的回写缓存。如果具有这些设置的物理磁盘不足,则回写缓存大小设置为 0,奇偶校验空间除外,当它设置为 32 MB 时。


Tie*_*anO 2

关于此的文档很少,但我确实在某处读到存储空间可以选择将磁盘添加到日志池中。我找不到原始文章,但如果你查看Add-PhysicalDisk cmdlet,在“使用”下,有一个“日志”选项...当我读到它时,那家伙提到他使用 SSD 作为日志磁盘,并且将其添加到 8 个 2Tb 驱动器池中,读写速度提高了 40% 以上...您的里程可能会有所不同,但可能值得一试...

作为第三方选项,您可能还想看看FancyCache。您可以使用内存和 SSD 作为较慢媒体的缓存。我以前用过它,效果很好,只是自从迁移到 Server 2012 以来一直没有机会重新安装......