windows:create_storage_tier_on_wss2016_boot_ssd

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
最新のリビジョン 両方とも次のリビジョン
windows:create_storage_tier_on_wss2016_boot_ssd [2018-07-19 19:25]
Decomo
windows:create_storage_tier_on_wss2016_boot_ssd [2018-08-09 17:34]
Decomo
行 3: 行 3:
 ===== 前書き ===== ===== 前書き =====
  
-Windowsの記憶域プールでは、構成するドライブを丸ごと割り当てている事例が多またそうしなければならない印象ある。実際には別用途で使っているドライブを組み込み、既存データと記憶域プールでドライブを共有することも出来るようだ。+Windowsの記憶域プールでは、構成するドライブを丸ごと割り当てている事例が多い。そして何となくそうしなければならない印象すらある。しかし実際には別用途で使っているドライブの空き領域プールに組み込み、既存データと記憶域プールでドライブを共有することも出来るようだ。
  
-というわけで、Windows Storage Server 2016が入っているRAID-1なSSDアレイを既存のOS領域はそのままに、記憶域プールに組み込記憶域階層として使えるか試してみた。+というわけで、Windows Storage Server 2016が入っているRAID-1なSSDアレイを既存のOSパーティションはそのままに、記憶域プールに組み込んで記憶域階層のSSD層として使えるか試してみた。
  
-1つのRAIDアレイをOS用と記憶域用で共有するなら、RAIDカード機能で以てそれぞれ論理ドライブとするのがふつー(?)だと思うが、HP B140iでは論理ドライブが使えなかったため、已む無く今回の構成&実験を行ったというのが実情だったりする。+もっとも、こういう場合、RAIDカード側でアレイをOS用と記憶域階層用の仮想ドライブに分けるのが普通だと思う。今回使ったRAIDカード(実態はソフトウェアRAID)のHP B140iでは仮想ドライブが使えなかったため、已む無くような構成&実験を行ったというのが実情だったりする。
  
 ===== 試した環境 ===== ===== 試した環境 =====
行 24: 行 24:
 </WRAP>| </WRAP>|
 ^OS|Windows Storage Server 2016 Standard| ^OS|Windows Storage Server 2016 Standard|
 +
 +下図のディスク0の未割り当て領域と、ディスク1全体を使って記憶域階層を作成する。
 +{{ :windows:disk_layout_before_assigned_ssd_tier.png |}}
  
 ===== 手順 ===== ===== 手順 =====
 +
 +実際のところ、普通の手順で記憶域階層を作るだけである。
  
 ==== 現在のディスクを確認 ==== ==== 現在のディスクを確認 ====
行 38: 行 43:
 </code> </code>
  
-対象のディスクはRAIDアレイになっている。DeviceIdの0番がRAID-1のSSDアレイ、1番がRAID-10のHDDアレイである。本来はデバイスを直接記憶域システムで管理するのが望ましいとされている。+対象のディスクはRAIDアレイになっている。DeviceIdの0番がRAID-1のSSDアレイ、1番がRAID-10のHDDアレイである。言うまでもないが、本来はデバイスを直接記憶域システムで管理するのが望ましいとされている。
  
 ==== プールを構成するディスクを列挙&確認 ==== ==== プールを構成するディスクを列挙&確認 ====
行 54: 行 59:
 ==== 記憶域プールを作成 ==== ==== 記憶域プールを作成 ====
  
-ここがミソ、といってもふつーにOSが入っているSSD含めPhsicalDisksに含めて渡してるだけんだけど、なかなか気づかないよねっていう。+ここがミソ、といってもOSが入っているSSD含め、記憶域プールを構成したいディスク群をいつも通りPhsicalDisksに渡す。物理ディスクとして渡すと、何とくディスク全体が使われて既存データが消えちゃいそうで、なかなか気づかない&実行できないよねっていう。 
 <code> <code>
-PS C:\Users\Administrator> New-StoragePool -FriendlyName TieredPool -PhysicalDisks $Disks -StorageSubSystemUniqueId (Get +PS C:\> New-StoragePool -FriendlyName TieredPool -PhysicalDisks $Disks -StorageSubSystemUniqueId (Get-StorageSubSystem).UniqueId -LogicalSectorSizeDefault 4096
--StorageSubSystem).UniqueId -LogicalSectorSizeDefault 4096+
  
 FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly
行 64: 行 69:
 </code> </code>
  
-物理ディスクとして渡したら既存タ全消去されてデスク全体が使われそうに思うじゃん…+↓こんな感じで未割り当て領域に記憶域用ション自動で作られて使われる。tierの綴りが間違ってるのはご愛嬌。 
 + 
 +{{:windows:disk_layout_after_assigned_ssd_tier.png|}}
  
 ==== 記憶域プールを確認 ==== ==== 記憶域プールを確認 ====
 +
 +意図したディスクでプールが作られたか確認。
  
 <code> <code>
行 79: 行 88:
 ==== メディアタイプの強制設定 ==== ==== メディアタイプの強制設定 ====
  
-記憶域階層を作るには、プールにSSDとHDDが最低1つずつ必要である。デバイスの種類は自動的に識別されるが、今回のようにデバイスが直接露出してない場合は往々にして識別できないので、手動で設定してやる。+記憶域階層を作るには、プールにSSDとHDDが最低1つずつ必要である。デバイスの種類は自動的に識別されるが、今回のようにデバイスが直接露出してない場合は往々にして正しく識別されないので、手動で設定してやる。
  
 メディアタイプを確認。 メディアタイプを確認。
行 89: 行 98:
 HP LOGICAL VOLUME 0        SSD           799937658880 HP LOGICAL VOLUME 0        SSD           799937658880
 HP LOGICAL VOLUME 1        Unspecified 12002017673216 HP LOGICAL VOLUME 1        Unspecified 12002017673216
-<code>+</code>
  
-なぜかSSDの方は正しく見えている(RAIDの設定ツールでSSDは別扱いになっているので、そのせいもあるかも。)+今回の事例だと、SSDの方は正しく見えている(RAIDの設定ツールの方でSSDSSDのフラグが立っていた影響かも。)
  
-よってDeviceID 1の方にHDDと指定してやる。+よってDeviceID 1の方にHDDと指定してやる。下記コマンドレットの''where DeviceId -eq 1''の数字の部分と'-MediaType'を適宜変えて設定してくだしあ
  
 <code> <code>
行 105: 行 114:
 </code> </code>
  
-==== SSD層とHDD層の設定 ====+==== ライトバックの設定 ==== 
 + 
 +ライトバックを有効にする。(記憶域階層のライトキャッシュバックではなく、一般的な書き込み方式の方。)
  
 <code> <code>
-PS C:\> Get-StoragePool TieredPool | New-StorageTier -FriendlyName SSDtier -MediaType SSD+PS C:\> Set-StoragePool TieredPool -IsPowerProtected $True 
 +PS C:\> Get-StoragePool TieredPool | ft FriendlyName,IsPowerProtected
  
 +FriendlyName IsPowerProtected
 +------------ ----------------
 +TieredPool               True
 +</code>
 +
 +==== SSD層とHDD層の作成 ====
 +
 +記憶域プールにtierを作成する。
 +
 +SSD層
 +<code>
 +PS C:\> Get-StoragePool TieredPool | New-StorageTier -FriendlyName SSDtier -MediaType SSD
  
 ObjectId               : {1}\\WIN-JCFBFMM4427\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageTier.ObjectId=" ObjectId               : {1}\\WIN-JCFBFMM4427\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageTier.ObjectId="
行 140: 行 164:
 </code> </code>
  
 +HDD層
 <code> <code>
 PS C:\> Get-StoragePool TieredPool | New-StorageTier -FriendlyName HDDtier -MediaType HDD PS C:\> Get-StoragePool TieredPool | New-StorageTier -FriendlyName HDDtier -MediaType HDD
- 
  
 ObjectId               : {1}\\WIN-JCFBFMM4427\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageTier.ObjectId=" ObjectId               : {1}\\WIN-JCFBFMM4427\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageTier.ObjectId="
行 176: 行 200:
 ==== 記憶域階層に仮想ディスクを作成 ==== ==== 記憶域階層に仮想ディスクを作成 ====
  
-SSD, HDDそれぞれのティアを取得+SSD, HDDそれぞれのを取得
 <code> <code>
 PS C:\> $SSD = Get-StorageTier -FriendlyName SSDtier PS C:\> $SSD = Get-StorageTier -FriendlyName SSDtier
行 185: 行 209:
 <code> <code>
 PS C:\> Get-StoragePool TieredPool | New-VirtualDisk -FriendlyName TieredDisk -ResiliencySettingName Simple -StorageTiers $SSD,$HDD -WriteCacheSize 8GB -StorageTierSizes 632GB,10.9TB PS C:\> Get-StoragePool TieredPool | New-VirtualDisk -FriendlyName TieredDisk -ResiliencySettingName Simple -StorageTiers $SSD,$HDD -WriteCacheSize 8GB -StorageTierSizes 632GB,10.9TB
-</code> 
  
 FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach     Size FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach     Size
行 192: 行 215:
 </code> </code>
  
-ライトキャッシュは8GBにしてみた(デフォルトでは1GB)。指定はSSD層を構成するSSDのキャッシュ量らしいので注意+<del>ライトバックキャッシュは8GBにしてみた</del>(デフォルトでは1GB)。→記憶域階層ライトバックキャッシュはSSD層が満杯になった後のランダムライト用キャッシュとして機能するため、おそらく8GBは過剰。標準の1GBかせいぜい多くても4GBもあれば十分だと思われる。 
 + 
 +''-StorageTierSizes''引数で、仮想ディスクに割り当てるSSD/HDD層の容量指定する。プール全部を1仮想ディスクに割り当てる場合は、最大値を自前計算する必要がある。 
 + 
 +  * (SSD最大値) = (SSD層の最大容量)-(ライトバックキャッシュ)-(記憶域システムの管理用領域) 
 +  * (HDD層の最大値) = (HDD層の最大容量)-(記憶域システムの管理用領域) 
 + 
 +現状、記憶域システムが使う容量を算出する方法がないので、適当に差っ引くしかない。結構ギリギリまで攻めても大丈夫っぽいが、本当に大丈夫かどうかはわからない…。 
 + 
 +セクタサイズとキャッシュサイズを確認してみる
  
-セクタサイズとライトキャッシュを確認してみる。 
 <code> <code>
 PS C:\> Get-VirtualDisk -FriendlyName TieredDisk | ft LogicalSectorSize,PhysicalSectorSize,WriteCacheSize PS C:\> Get-VirtualDisk -FriendlyName TieredDisk | ft LogicalSectorSize,PhysicalSectorSize,WriteCacheSize
行 204: 行 235:
  
 ===== ベンチマーク ===== ===== ベンチマーク =====
- 
  
 ライトキャッシュが8GBなので、テーストデータ4GB/16GB/32GBでCrystalDiskMarkを実行した。 ライトキャッシュが8GBなので、テーストデータ4GB/16GB/32GBでCrystalDiskMarkを実行した。
  
-データがキャッシュに全部載るかどうかで違いが出ると予想していたが、殆ど同じ結果となった。16GB以上でも全部SSDに大して書き込まれてるように見える…。記憶域階層の最適化でSSDが良く使われるデータで一杯になれば、また違いがでるのかしら?+<del>データがキャッシュに全部載るかどうかで違いが出ると予想していたが、殆ど同じ結果となった。16GB以上でも全部SSDに大して書き込まれてるように見える…。記憶域階層の最適化でSSDが良く使われるデータで一杯になれば、また違いがでるのかしら?</del> → 書き込みはまずSSDの空き領域に対して行われるため妥当な結果である。
  
 ^4GB|{{ :windows:wss2016_tiered_space_cdm_4gb.png |}}|<WRAP> ^4GB|{{ :windows:wss2016_tiered_space_cdm_4gb.png |}}|<WRAP>
  • windows/create_storage_tier_on_wss2016_boot_ssd.txt
  • 最終更新: 2018-08-09 17:36
  • by Decomo