
私は Windows 10 (Pro 版でも構いません) デスクトップに多数のディスクを持っており、ストレージ スペースをいじっています。私のユース ケースに合わせてストレージ ボリュームを構成する方法についてアドバイスをお願いします。Windows 10 の UI には制限があることは承知していますが、Powershell から階層化機能を利用できるようです。ストレージ スペースのドキュメントを読んで機能を解明するのは喜んでやります。ただし、私の戦略が妥当かどうかについてアドバイスをいただければ幸いです。
現在私が持っているものは次のとおりです:
- 2x256GB SSD - 未割り当て、古い RAID0 ブート+アプリボリュームでした
- 1x5TB HDD - メディア+ゲーム+アプリ (このドライブは廃止したい)
- 1x8TB HDD - メディア+ドキュメント+写真
- 2x8TB HDD - 新品未使用ディスク
- CPU: Z97 チップセットマザーボード上の i7 4790k、時期が来たら Ryzen3 にアップグレードする予定です
- 私のブートドライブは512GBのNVMeディスクです
上記のドライブから 2 つのボリュームを構築したいと思います。理想的には、次のようになります。
- ゲーム+スクラッチボリューム: 256GB ストライプ SSD 層 + 3TB ストライプ HDD 層
- メディア+ドキュメント+写真ボリューム: 256GB ミラーリング SSD 層 + 14TB 'パリティ' HDD 層
ゲーム+スクラッチ ボリューム内のデータはすべて、データを再ダウンロードできるので、失ってもかまいません。たとえば、VM の「メモリ」ファイル、プレックス データベースなどをスクラッチ ディスクに置きます。機密性の高いものはすべて、他のボリュームにバックアップします。
メディア + ドキュメント + 写真ボリュームに少なくとも 1 つのドライブ冗長性が必要です。ドキュメントと写真はオフサイトにバックアップしてあります。これにより、ドライブを紛失した場合の頭痛の種が軽減されます。
この設定は妥当でしょうか? また、Windows 10 Pro マシンで実現できるものなのでしょうか?
また、過去のバージョンのWindowsでは、記憶域スペースの「パリティ」プールのパフォーマンスが非常に悪かったと読んだことがあります。これはまだ本当ですか? 4 台の HDD のうち 2 台が使用されているため、パリティ構成の実際のテストは実行できませんでした。以前にこれを実行した経験のある人がいるかもしれないので、ここで質問しようと思いました。
他にどのような解決策を検討すべきでしょうか?
答え1
Windows 10 階層化記憶域スペースを作成するには、次のリファレンスを参照してください。
- Nils Schimmelmann のブログ: Intel Smart Response テクノロジーと Windows 10 階層化ストレージ スペースの比較
- Windows 10 で階層型ストレージ スペースを構成する方法
- 階層型ストレージ プールを備えた vWorkspace Hyper-v – パート 1
ここでは、SSD と HDD の 2 層のストレージ スペースを作成する Nils Schimmelmann の PowerShell スクリプトを再現します。
#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
答え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 冗長性はドライブ障害には役立ちますが、ランサムウェア ウイルスによってファイルが暗号化された場合や、(ありそうもないことですが) 電源の壊滅的な障害によって接続されたすべてのハードドライブが壊れる (実際に見たことがあります) 場合には役に立ちません。私のアプローチは、引き出しにハードドライブ セットの完全なコピーをオフラインで保存し、2 か月に 1 回更新して作業セットと交換することです。この方法では、使用時間を分散できます。重要なデータには追加のバックアップがあります。すばやく同期するには、Total Commander を使用します。また、すべてのコンテンツの完全な MD5 テキスト ファイルは、破損の可能性を検出するのに役立ちます。破損または削除が発生した場合に回復するためにバックアップに追加する非常に便利な冗長ファイル メーカーは次のとおりです。http://www.ice-graphics.com/ICEECC/IndexE.html