Gibson> Download Garbage
  • Statement of purpose
  • Techniques
    • Intelligence Gathering
      • O365 Tenant ID
      • Internal domain enumeration
      • O365 email enumeration
      • Passive nmap (smap)
      • Large IP list handling
      • Host Enumeration
    • Initial Access
      • Mail scanning
      • VBA
    • Execution
      • DLL Hijacking
      • Windows LOLBINS
        • DLLs - LOLBIN Execution
        • Executables - LOLBIN Execution
        • Scripts - LOLBIN Execution
    • Privilege Escalation
      • Windows
        • Initial Enumeration
      • Linux
    • Defense Evasion
      • Clear windows event logs
      • Bypassing proxies and firewalls
      • Microsoft Windows Defender
    • Credential Access
      • Extract credentials from LSASS dump
      • Extract credentials from registry hives
      • LSA secrets extraction
      • Dumping LSASS.exe
      • Dumping registry hives
      • Dump the domain (Domain Controllers)
      • Browser cookies & passwords
      • Wi-Fi passwords
      • Clipboard
    • Infrastructure
    • Web application testing
      • XSS - Cross site scripting
        • Weaponising XSS
    • Other
      • Buffer Overflow resources
        • Buffer Overflow Python Template
        • Buffer Overflow Python Fuzzer
      • C Reverse Shell
      • Creating Tiered Storage in Windows 10
      • Default Credentials
    • Red Team Infrastructure
      • Cobalt Strike Team Server
      • Pre-redirector (free domains!)
      • HTTPS Redirector
      • Multi functional WebApp
      • Malleable C2 profiles
      • Gophish Docker reverse proxy
    • Malware
  • Tools
    • Tools
Powered by GitBook
On this page
  • Why do this?
  • Benchmarks
  • 6TB WD Elements shucked drive stats
  • 6TB WD Elements shucked drive + 256GB NVMe cache stats
  • Steps
  • Check disks
  • Add the all the disks to be included in the virtual disk into a Storage Pool.
  • View disks in storage pool
  • Define the two tiers and add relevant drives to each
  • Get total size of each tier
  • Create virtual disk (unformated)
  • Format as GPT
  • Create usable partition
  • Initialise and print details

Was this helpful?

  1. Techniques
  2. Other

Creating Tiered Storage in Windows 10

Advanced avilities of "storage spaces" is restricted in Windows 10 (desktop) GUI, however, is availble through powershell. This is a great way to use an SSD you have around to speed up a large HDD.

PreviousC Reverse ShellNextDefault Credentials

Last updated 4 years ago

Was this helpful?

Why do this?

Tiering is typically only accessable through the Windows Server Storage Spaces UI but is fully funtional using Windows 10 via it's powershell modules. This allows desktop users to utilse an SSD as a cache for a much larger drive. Storage spaces will automatcially determine what kind of cache type it will utilise when made. Details about which type of cache will be used can be found here:

Write speeds will be significantly increased for HDDs UP TO THE SIZE OF YOUR CACHE DRIVE. Once the cache is full it will take some time to write to disk.

I've found this is great to boost performance when gaming vs using the raw HDD alone; let me know how you get on!

Warning: Should the SSD fail, any data on it that has yet to be written to the HDD will be lost. You can use multiple SSDs as redundent cache to accomodate this, however, I'll leave that as an exercise to the reader. Happy to help on twitter (top bar) if you need a hand.

Benchmarks

6TB WD Elements shucked drive stats

6TB WD Elements shucked drive + 256GB NVMe cache stats

Steps

Check disks

#List disks
Get-PhysicalDisks

If disks are listed as "can pool" = False, use diskpart to clear formatting. Even if the disk appears empty, but diskpart has a * in GPT, it will show up as "Can Pool" = False. A restart may be needed.

Add the all the disks to be included in the virtual disk into a Storage Pool.

Via GUI:

Access "Storage Spaces" > Create new pool > 
>select disks to be included > next. 
Before setting up a virtual disk, exit the page. 

Or via Powershell:

$storagesysfriendly = Get-StorageSubsystem
$disks = Get-PhysicalDisk |? {$_.CanPool -eq $true}
$StoragePoolName = "StoragePool1" 
New-StoragePool -StorageSubSystemFriendlyName $storagesysfriendly -FriendlyName $StoragePoolName -PhysicalDisks $disks

View disks in storage pool

Get-StoragePool 
Get-StoragePool -FriendlyName $StoragePoolName | Get-PhysicalDisk | Select FriendlyName, MediaType

Define the two tiers and add relevant drives to each

$SSDTierName = "SSDT"
$HDDTierName = "HDDT"
$SSDTier = New-StorageTier -StoragePoolFriendlyName $StoragePoolName -FriendlyName $SSDTierName -MediaType SSD
$HDDTier = New-StorageTier -StoragePoolFriendlyName $StoragePoolName -FriendlyName $HDDTierName -MediaType HDD

Get total size of each tier

$DriveTierResiliency = "Simple"
if ($SSDTierSize -eq $null){
    $SSDTierSize = (Get-StorageTierSupportedSize -FriendlyName $SSDTierName -ResiliencySettingName $DriveTierResiliency).TierSizeMax
    $SSDTierSize = [int64]($SSDTierSize * $UsableSpace)
}
if ($HDDTierSize -eq $null){
    $HDDTierSize = (Get-StorageTierSupportedSize -FriendlyName $HDDTierName -ResiliencySettingName $DriveTierResiliency).TierSizeMax 
    $HDDTierSize = [int64]($HDDTierSize * $UsableSpace)
}
Write-Output "TierSizes: ( $SSDTierSize , $HDDTierSize )"

Create virtual disk (unformated)

$TieredDriveLetter = "F"
$TieredDiskName = "TieredDisk"
New-VirtualDisk -StoragePoolFriendlyName $StoragePoolName -FriendlyName $TieredDiskName -StorageTiers @($SSDTier, $HDDTier) -StorageTierSizes @($SSDTierSize, $HDDTierSize) -ResiliencySettingName $DriveTierResiliency -AutoWriteCacheSize -AutoNumberOfColumns

Format as GPT

Get-VirtualDisk $TieredDiskName | Get-Disk | Initialize-Disk -PartitionStyle GPT

Create usable partition

Get-VirtualDisk $TieredDiskName | Get-Disk | New-Partition -DriveLetter $TieredDriveLetter -UseMaximumSize

Initialise and print details

Initialize-Volume -DriveLetter $TieredDriveLetter -FileSystem NTFS -Confirm:$false -NewFileSystemLabel $TieredDriveLabel
Get-Volume -DriveLetter $TieredDriveLetter

References:

Understanding the cache in Storage Spaces Directdocsmsft
Logo
GitHub - freemansoft/win10-storage-spaces: Scripts for creating an destroying Fault Tolerant multi-tier storage spaces on Windows 10GitHub
Configuring a Multi-Resilient Volume on Windows Server 2016 | StarWind BlogStarWind Blog
Logo
4 Gigabyte Test File
64 Gigabyte Test file
Logo