差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
windows:create_storage_tier_on_wss2016_boot_ssd [2018-06-25 21:42] Decomo |
windows:create_storage_tier_on_wss2016_boot_ssd [2018-08-09 17:36] (現在) 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カードの機能で以てそれぞれ論理ドライブとするのがふつー(? | + | もっとも、こういう場合、RAIDカード側でアレイをOS用と記憶域階層用の仮想ドライブに分けるのが普通だと思う。今回使ったRAIDカード(実態はソフトウェアRAID)のHP B140iでは仮想ドライブが使えなかったため、已む無くこのような構成&実験を行ったというのが実情だったりする。 |
===== 試した環境 ===== | ===== 試した環境 ===== | ||
- | * HP ProLiant ML150 Gen9 | + | ^マシン|HP ProLiant ML150 Gen9| |
- | | + | ^CPU|Xeon E5-2620v3 (6C12T/ |
- | | + | ^メモリ|DDR4-2133 16GB (8GBx2)| |
- | | + | ^ストレージ|B140i/ZM< |
- | * SSDアレイ (RAID-1) | + | * SSDアレイ (RAID-1) |
- | * Intel DC S3500 800GB×2 | + | * Intel DC S3500 800GB×2 |
- | * システム: | + | * システム: |
- | * 記憶域用: | + | * 記憶域用: |
- | * HDDアレイ (RAID-10) | + | * HDDアレイ (RAID-10) |
- | * WD Red 4TB×6 | + | * WD Red 4TB×6 |
- | * 記憶域用: | + | * 記憶域用: |
- | | + | </ |
+ | ^OS|Windows Storage Server 2016 Standard| | ||
+ | |||
+ | 下図のディスク0の未割り当て領域と、ディスク1全体を使って記憶域階層を作成する。 | ||
+ | {{ : | ||
===== 手順 ===== | ===== 手順 ===== | ||
+ | |||
+ | 実際のところ、普通の手順で記憶域階層を作るだけである。 | ||
==== 現在のディスクを確認 ==== | ==== 現在のディスクを確認 ==== | ||
行 37: | 行 43: | ||
</ | </ | ||
- | 対象のディスクはRAIDアレイになっている。DeviceIdの0番がRAID-1のSSDアレイ、1番がRAID-10のHDDアレイである。本来はデバイスを直接記憶域システムで管理するのが望ましいとされている。 | + | 対象のディスクはRAIDアレイになっている。DeviceIdの0番がRAID-1のSSDアレイ、1番がRAID-10のHDDアレイである。言うまでもないが、本来はデバイスを直接記憶域システムで管理するのが望ましいとされている。 |
==== プールを構成するディスクを列挙&確認 ==== | ==== プールを構成するディスクを列挙&確認 ==== | ||
行 53: | 行 59: | ||
==== 記憶域プールを作成 ==== | ==== 記憶域プールを作成 ==== | ||
- | ここがミソ、といってもふつーにOSが入っているSSD含めてPhsicalDisksに含めて渡してるだけなんだけど、なかなか気づかないよねっていう。 | + | ここがミソ、といってもOSが入っているSSDを含め、記憶域プールを構成したいディスク群をいつも通りPhsicalDisksに渡す。物理ディスクとして渡すと、何となくディスク全体が使われて既存データが消えちゃいそうで、なかなか気づかない&実行できないよねっていう。 |
< | < | ||
- | 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 | ||
行 63: | 行 69: | ||
</ | </ | ||
- | 物理ディスクとして渡したら、既存のデータ全消去されてディスク全体が使われそうに思うじゃん… | + | ↓こんな感じで、未割り当て領域に記憶域用のパーティションが自動で作られて使われる。tierの綴りが間違ってるのはご愛嬌。 |
+ | |||
+ | {{: | ||
==== 記憶域プールを確認 ==== | ==== 記憶域プールを確認 ==== | ||
+ | |||
+ | 意図したディスクでプールが作られたか確認。 | ||
< | < | ||
行 78: | 行 88: | ||
==== メディアタイプの強制設定 ==== | ==== メディアタイプの強制設定 ==== | ||
- | 記憶域階層を作るには、プールにSSDとHDDが最低1つずつ必要である。デバイスの種類は自動的に識別されるが、今回のようにデバイスが直接露出してない場合は往々にして識別できないので、手動で設定してやる。 | + | 記憶域階層を作るには、プールにSSDとHDDが最低1つずつ必要である。デバイスの種類は自動的に識別されるが、今回のようにデバイスが直接露出してない場合は往々にして正しく識別されないので、手動で設定してやる。 |
メディアタイプを確認。 | メディアタイプを確認。 | ||
行 88: | 行 98: | ||
HP LOGICAL VOLUME 0 SSD | HP LOGICAL VOLUME 0 SSD | ||
HP LOGICAL VOLUME 1 Unspecified 12002017673216 | HP LOGICAL VOLUME 1 Unspecified 12002017673216 | ||
- | < | + | </code> |
- | なぜかSSDの方は正しく見えている(RAIDの設定ツール側でSSDは別扱いになっているので、そのせいもあるかも。) | + | 今回の事例だと、SSDの方は正しく見えている(RAIDの設定ツールの方でSSDにはSSDのフラグが立っていた影響かも。) |
- | よってDeviceID 1の方にHDDと指定してやる。 | + | よってDeviceID 1の方にHDDと指定してやる。下記コマンドレットの'' |
< | < | ||
行 104: | 行 114: | ||
</ | </ | ||
- | ==== SSD層とHDD層の設定 ==== | + | ==== ライトバックの設定 ==== |
+ | |||
+ | ライトバックを有効にする。(記憶域階層のライトキャッシュバックではなく、一般的な書き込み方式の方。) | ||
< | < | ||
- | PS C: | + | PS C: |
+ | PS C:\> Get-StoragePool TieredPool | ft FriendlyName, | ||
+ | FriendlyName IsPowerProtected | ||
+ | ------------ ---------------- | ||
+ | TieredPool | ||
+ | </ | ||
+ | |||
+ | ==== SSD層とHDD層の作成 ==== | ||
+ | |||
+ | 記憶域プールにtierを作成する。 | ||
+ | |||
+ | SSD層 | ||
+ | < | ||
+ | PS C:\> Get-StoragePool TieredPool | New-StorageTier -FriendlyName SSDtier -MediaType SSD | ||
ObjectId | ObjectId | ||
行 139: | 行 164: | ||
</ | </ | ||
+ | HDD層 | ||
< | < | ||
PS C:\> Get-StoragePool TieredPool | New-StorageTier -FriendlyName HDDtier -MediaType HDD | PS C:\> Get-StoragePool TieredPool | New-StorageTier -FriendlyName HDDtier -MediaType HDD | ||
- | |||
ObjectId | ObjectId | ||
行 175: | 行 200: | ||
==== 記憶域階層に仮想ディスクを作成 ==== | ==== 記憶域階層に仮想ディスクを作成 ==== | ||
- | SSD, HDDそれぞれのティアを取得 | + | SSD, HDDそれぞれの層を取得 |
< | < | ||
PS C:\> $SSD = Get-StorageTier -FriendlyName SSDtier | PS C:\> $SSD = Get-StorageTier -FriendlyName SSDtier | ||
行 184: | 行 209: | ||
< | < | ||
PS C:\> Get-StoragePool TieredPool | New-VirtualDisk -FriendlyName TieredDisk -ResiliencySettingName Simple -StorageTiers $SSD,$HDD -WriteCacheSize 8GB -StorageTierSizes 632GB, | PS C:\> Get-StoragePool TieredPool | New-VirtualDisk -FriendlyName TieredDisk -ResiliencySettingName Simple -StorageTiers $SSD,$HDD -WriteCacheSize 8GB -StorageTierSizes 632GB, | ||
- | </ | ||
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach | FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach | ||
行 191: | 行 215: | ||
</ | </ | ||
- | ライトキャッシュは8GBにしてみた(デフォルトでは1GB)。この指定はSSD層を構成するSSD毎のキャッシュ量らしいので注意。 | + | /-ライトバックキャッシュは8GBにしてみた(デフォルトでは1GB)。-/ |
+ | |||
+ | '' | ||
+ | |||
+ | * (SSD層の最大値) = (SSD層の最大容量)-(ライトバックキャッシュ容量)-(記憶域システムの管理用領域) | ||
+ | * (HDD層の最大値) = (HDD層の最大容量)-(記憶域システムの管理用領域) | ||
+ | |||
+ | 現状、記憶域システムが使う容量を算出する方法がないので、適当に差っ引くしかない。結構ギリギリまで攻めても大丈夫っぽいが、本当に大丈夫かどうかはわからない…。 | ||
+ | |||
+ | セクタサイズとキャッシュサイズを確認してみる。 | ||
- | セクタサイズとライトキャッシュを確認してみる。 | ||
< | < | ||
PS C:\> Get-VirtualDisk -FriendlyName TieredDisk | ft LogicalSectorSize, | PS C:\> Get-VirtualDisk -FriendlyName TieredDisk | ft LogicalSectorSize, | ||
行 203: | 行 235: | ||
===== ベンチマーク ===== | ===== ベンチマーク ===== | ||
- | |||
ライトキャッシュが8GBなので、テーストデータ4GB/ | ライトキャッシュが8GBなので、テーストデータ4GB/ | ||
- | データがキャッシュに全部載るかどうかで違いが出ると予想していたが、殆ど同じ結果となった。16GB以上でも全部SSDに大して書き込まれてるように見える…。記憶域階層の最適化でSSDが良く使われるデータで一杯になれば、また違いがでるのかしら? | + | /-データがキャッシュに全部載るかどうかで違いが出ると予想していたが、殆ど同じ結果となった。16GB以上でも全部SSDに大して書き込まれてるように見える…。記憶域階層の最適化でSSDが良く使われるデータで一杯になれば、また違いがでるのかしら?-/ → 書き込みはまずSSDの空き領域に対して行われるため妥当な結果である。 |
^4GB|{{ : | ^4GB|{{ : | ||
行 272: | 行 303: | ||
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
- | * | + | * [[http:// |
* [[http:// | * [[http:// | ||