文書の過去の版を表示しています。


Windows Storage Server 2016の起動SSDの空き領域を使って記憶域階層を作る

PS C:\> Get-PhysicalDisk | ft FriendlyName,SerialNumber,CanPool,BusType,DeviceId,MediaType,Size

FriendlyName      SerialNumber CanPool BusType DeviceId MediaType             Size
------------      ------------ ------- ------- -------- ---------             ----
HP LOGICAL VOLUME                 True RAID    0        SSD           800132521984
HP LOGICAL VOLUME                 True RAID    1        Unspecified 12002258673664

対象のディスクはRAIDアレイになっているが、DeviceIdの0番がRAID-1のSSDアレイ、1番がRAID-10のHDDアレイである。本来はデバイスを直接記憶域システムで管理するのが望ましいとされている。

PS C:\> $Disks = Get-PhysicalDisk -CanPool $true
PS C:\> $Disks

FriendlyName      SerialNumber CanPool OperationalStatus HealthStatus Usage            Size
------------      ------------ ------- ----------------- ------------ -----            ----
HP LOGICAL VOLUME              True    OK                Healthy      Auto-Select 745.18 GB
HP LOGICAL VOLUME              True    OK                Healthy      Auto-Select  10.92 TB

ここがミソ、といってもふつーにOSが入っているSSD含めてPhsicalDisksに含めて渡してるだけなんだけど、なかなか気づかないよねっていう。

PS C:\Users\Administrator> New-StoragePool -FriendlyName TieredPool -PhysicalDisks $Disks -StorageSubSystemUniqueId (Get
-StorageSubSystem).UniqueId -LogicalSectorSizeDefault 4096

FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly
------------ ----------------- ------------ ------------ ----------
TieredPool   OK                Healthy      False        False

物理ディスクとして渡したら、既存のデータ全消去されてディスク全体が使われそうに思うじゃん…

PS C:\> Get-StoragePool TieredPool | Get-PhysicalDisk

FriendlyName      SerialNumber CanPool OperationalStatus HealthStatus Usage           Size
------------      ------------ ------- ----------------- ------------ -----           ----
HP LOGICAL VOLUME              False   OK                Healthy      Auto-Select   745 GB
HP LOGICAL VOLUME              False   OK                Healthy      Auto-Select 10.92 TB

記憶域階層を作るには、プールにSSDとHDDが最低1つずつ必要である。デバイスの種類は自動的に識別されるが、今回のようにデバイスが直接露出してない場合は往々にして識別できないので、手動で設定してやる。

メディアタイプを確認。

PS C:\> Get-StoragePool TieredPool | Get-PhysicalDisk | ft FriendlyName,DeviceId,MediaType,Size

FriendlyName      DeviceId MediaType             Size
------------      -------- ---------             ----
HP LOGICAL VOLUME 0        SSD           799937658880
HP LOGICAL VOLUME 1        Unspecified 12002017673216
<code>

なぜかSSDの方は正しく見えている(RAIDの設定ツール側でSSDは別扱いになっているので、そのせいもあるかも。)

よってDeviceID 1の方にHDDと指定してやる。

<code>
PS C:\> Get-StoragePool TieredPool | Get-PhysicalDisk | where DeviceId -eq 1 | Set-PhysicalDisk -MediaType HDD
PS C:\> Get-StoragePool TieredPool | Get-PhysicalDisk | ft FriendlyName,DeviceId,MediaType,Size

FriendlyName      DeviceId MediaType           Size
------------      -------- ---------           ----
HP LOGICAL VOLUME 0        SSD         799937658880
HP LOGICAL VOLUME 1        HDD       12002017673216
PS C:\> Get-StoragePool TieredPool | New-StorageTier -FriendlyName SSDtier -MediaType SSD


ObjectId               : {1}\\WIN-JCFBFMM4427\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageTier.ObjectId="
                         {fd905169-74f9-11e8-9d72-806e6f6e6963}:ST:{f1f261c1-646f-4ff3-90a2-985826bc72ca}{2305468e-37dc
                         -4b4a-87c8-770d886dba14}"
PassThroughClass       :
PassThroughIds         :
PassThroughNamespace   :
PassThroughServer      :
UniqueId               : {2305468e-37dc-4b4a-87c8-770d886dba14}
AllocatedSize          : 0
AllocationUnitSize     : Auto
ColumnIsolation        : PhysicalDisk
Description            :
FaultDomainAwareness   : PhysicalDisk
FootprintOnPool        : 0
FriendlyName           : SSDtier
Interleave             : 262144
MediaType              : SSD
NumberOfColumns        : Auto
NumberOfDataCopies     : 2
NumberOfGroups         : 1
ParityLayout           :
PhysicalDiskRedundancy : 1
ProvisioningType       : Fixed
ResiliencySettingName  : Mirror
Size                   : 0
Usage                  : Data
PSComputerName         :
PS C:\> Get-StoragePool TieredPool | New-StorageTier -FriendlyName HDDtier -MediaType HDD


ObjectId               : {1}\\WIN-JCFBFMM4427\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageTier.ObjectId="
                         {fd905169-74f9-11e8-9d72-806e6f6e6963}:ST:{f1f261c1-646f-4ff3-90a2-985826bc72ca}{9811c7f1-a66e
                         -45e9-af52-9269998e5bda}"
PassThroughClass       :
PassThroughIds         :
PassThroughNamespace   :
PassThroughServer      :
UniqueId               : {9811c7f1-a66e-45e9-af52-9269998e5bda}
AllocatedSize          : 0
AllocationUnitSize     : Auto
ColumnIsolation        : PhysicalDisk
Description            :
FaultDomainAwareness   : PhysicalDisk
FootprintOnPool        : 0
FriendlyName           : HDDtier
Interleave             : 262144
MediaType              : HDD
NumberOfColumns        : Auto
NumberOfDataCopies     : 2
NumberOfGroups         : 1
ParityLayout           :
PhysicalDiskRedundancy : 1
ProvisioningType       : Fixed
ResiliencySettingName  : Mirror
Size                   : 0
Usage                  : Data
PSComputerName         :

SSD, HDDそれぞれのティアを取得

PS C:\> $SSD = Get-StorageTier -FriendlyName SSDtier
PS C:\> $HDD = Get-StorageTier -FriendlyName HDDtier

記憶域階層に仮想ディスクを作成

PS C:\> Get-StoragePool TieredPool | New-VirtualDisk -FriendlyName TieredDisk -ResiliencySettingName Simple -StorageTiers $SSD,$HDD -WriteCacheSize 8GB -StorageTierSizes 632GB,10.9TB

FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size ———— ——————— —————– ———— ————– —- TieredDisk OK Healthy False 11.52 TB </code>

ライトキャッシュは8GBにしてみた(デフォルトでは1GB)。この指定はSSD層を構成するSSD毎のキャッシュ量らしいので注意。

セクタサイズとライトキャッシュを確認してみる。

PS C:\> Get-VirtualDisk -FriendlyName TieredDisk | ft LogicalSectorSize,PhysicalSectorSize,WriteCacheSize

LogicalSectorSize PhysicalSectorSize WriteCacheSize
----------------- ------------------ --------------
             4096               4096     8589934592

以下の環境でベンチマークを取った。

  • HP ProLiant ML150 Gen9
    • Xeon E5-2620v3 (6C12T/2.4GHz)
    • DDR4-2133 16GB (8GBx2)
    • B140i/ZM
      • SSD層
        • Intel DC S3500 800GB×2
          • システム:100GiB
          • 記憶域用:640GiB
      • HDD層
        • WD Red 4TB×6
          • 記憶域用:10.9TiB

ライトキャッシュが8GBなので、テーストデータ4GB/16GB/32GBでCrystalDiskMarkを実行した。

データがキャッシュに全部載るかどうかで違いが出ると予想していたが、殆ど同じ結果となった。16GB以上でも全部SSDに大して書き込まれてるように見える…。記憶域階層の最適化でSSDが良く使われるデータで一杯になれば、また違いがでるのかしら?

4GB
CrystalDiskMark 6.0.1 x64 (C) 2007-2018 hiyohiyo

   Sequential Read (Q= 32,T= 1) :   954.489 MB/s
  Sequential Write (Q= 32,T= 1) :   456.697 MB/s
  Random Read 4KiB (Q=  8,T= 8) :   611.536 MB/s [ 149300.8 IOPS]
 Random Write 4KiB (Q=  8,T= 8) :   245.631 MB/s [  59968.5 IOPS]
  Random Read 4KiB (Q= 32,T= 1) :   251.855 MB/s [  61488.0 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :   176.885 MB/s [  43184.8 IOPS]
  Random Read 4KiB (Q=  1,T= 1) :    23.101 MB/s [   5639.9 IOPS]
 Random Write 4KiB (Q=  1,T= 1) :    45.986 MB/s [  11227.1 IOPS]

  Test : 4096 MiB [D: 0.0% (0.5/11383.9 GiB)] (x3)  [Interval=5 sec]
    OS : Windows Server 2016 Storage Server Standard [10.0 Build 14393] (x64)
    WSS2016 記憶域階層(SSD 640G/書込キャッシュ 8G)
16GB
CrystalDiskMark 6.0.1 x64 (C) 2007-2018 hiyohiyo

   Sequential Read (Q= 32,T= 1) :   945.471 MB/s
  Sequential Write (Q= 32,T= 1) :   431.246 MB/s
  Random Read 4KiB (Q=  8,T= 8) :   616.567 MB/s [ 150529.1 IOPS]
 Random Write 4KiB (Q=  8,T= 8) :   238.002 MB/s [  58106.0 IOPS]
  Random Read 4KiB (Q= 32,T= 1) :   251.890 MB/s [  61496.6 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :   152.648 MB/s [  37267.6 IOPS]
  Random Read 4KiB (Q=  1,T= 1) :    23.280 MB/s [   5683.6 IOPS]
 Random Write 4KiB (Q=  1,T= 1) :    45.708 MB/s [  11159.2 IOPS]

  Test : 16384 MiB [D: 0.0% (0.5/11383.9 GiB)] (x3)  [Interval=5 sec]
    OS : Windows Server 2016 Storage Server Standard [10.0 Build 14393] (x64)
    WSS2016 記憶域階層(SSD 640G/書込キャッシュ 8G)
32GB
CrystalDiskMark 6.0.1 x64 (C) 2007-2018 hiyohiyo

   Sequential Read (Q= 32,T= 1) :   959.648 MB/s
  Sequential Write (Q= 32,T= 1) :   436.868 MB/s
  Random Read 4KiB (Q=  8,T= 8) :   612.621 MB/s [ 149565.7 IOPS]
 Random Write 4KiB (Q=  8,T= 8) :   235.406 MB/s [  57472.2 IOPS]
  Random Read 4KiB (Q= 32,T= 1) :   250.300 MB/s [  61108.4 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :   161.983 MB/s [  39546.6 IOPS]
  Random Read 4KiB (Q=  1,T= 1) :    23.406 MB/s [   5714.4 IOPS]
 Random Write 4KiB (Q=  1,T= 1) :    45.752 MB/s [  11169.9 IOPS]

  Test : 32768 MiB [D: 0.0% (0.6/11383.9 GiB)] (x3)  [Interval=5 sec]
    OS : Windows Server 2016 Storage Server Standard [10.0 Build 14393] (x64)
    WSS2016 記憶域階層(SSD 640G/書込キャッシュ 8G)
  • windows/create_storage_tier_on_wss2016_boot_ssd.1529854590.txt.gz
  • 最終更新: 2018-06-25 00:36
  • by Decomo