既存の記憶域階層にHDDを追加してディスク容量を拡張する

Windows Storage Server 2016で、SSDとHDDの記憶域階層に確保している仮想ドライブの容量が不足してきたので、HDDを追加して容量を増やしてみたメモ。

  • Windows Storage Server 2016 バージョン1607
  • SSD層640GB, HDD層10TBの記憶域階層に確保した10TBのNTFS仮想ディスク
    • SSD層:HP Dynamic Smart Array B140iで構築したSSD×2のRAID-1から切り出した論理ドライブ
    • HDD層:同じくHDD×2×3のRAID-10から切り出した論理ドライブ

B140iは既存の論理ドライブを拡張することができない。幸い、HDD交換で増えた領域に論理ドライブを作ることはできるので、新たな論理ドライブを記憶域プールに追加するという方法を取った。

ハードウェアRAIDの論理ドライブで記憶域プールを作成するのは非推奨なのに加え、ハードウェアRAIDで1つにまとめたボリュームから作った2つの論理ドライブを記憶域プールで再度1つにまとめている。下図の通り、かなりキモい構成である。

大まかな手順は以下のとおりである。

  1. 記憶域プールにHDDを追加
  2. 記憶域階層のHDD層の容量を拡大
  3. 仮想ドライブの容量を拡大

まずは現状の確認。

対象の記憶域プールは「TieredPool」で、その上に載っている仮想ディスク「TieredDisk」を最終的に拡張する。

TieredPoolはHDDとSSDからなる記憶域階層プール、TieredDiskは同プールを丸ごと使った約11TBの仮想ディスクである。

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

DeviceId FriendlyName                Size MediaType
-------- ------------                ---- ---------
0        HP LOGICAL VOLUME   799937658880 SSD
1        HP LOGICAL VOLUME 12002017673216 HDD
PS C:\Users\Administrator> Get-VirtualDisk

FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach     Size
------------ --------------------- ----------------- ------------ --------------     ----
TieredDisk                         OK                Healthy      False          11.52 TB

エクスプローラから見ると↓こんな感じ。

既存のHDD層の残り容量(TierSizeMax/仮想ディスクを拡張できる容量)は約15GBである。

PS C:\Users\Administrator> Get-StorageTierSupportedSize TieredDisk_HDDtier

SupportedSizes TierSizeMin TierSizeMax TierSizeDivisor
-------------- ----------- ----------- ---------------
{}               268435456 16374562816       268435456

まずは追加すべきドライブを確認。

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

FriendlyName        SerialNumber CanPool BusType DeviceId MediaType             Size
------------        ------------ ------- ------- -------- ---------             ----
HP LOGICAL VOLUME                   True RAID    4        Unspecified 18000133136384
HP LOGICAL VOLUME                  False RAID    0        SSD           799937658880
HP LOGICAL VOLUME                  False RAID    1        HDD         12002017673216

リストの最初、DeviceIdが4のデバイスが今回追加するドライブである。さくっと追加。

PS C:\Users\Administrator> $adddisk = Get-PhysicalDisk | WHERE DeviceId -eq 4
PS C:\Users\Administrator> echo $adddisk

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

PS C:\Users\Administrator> Add-PhysicalDisk -PhysicalDisks $adddisk -StoragePoolFriendlyName TieredPool
PS C:\Users\Administrator> Get-StoragePool TieredPool | Get-PhysicalDisk | FT DeviceId, FriendlyName, Size, MediaType

DeviceId FriendlyName                Size MediaType
-------- ------------                ---- ---------
4        HP LOGICAL VOLUME 17999939502080 Unspecified
0        HP LOGICAL VOLUME   799937658880 SSD
1        HP LOGICAL VOLUME 12002017673216 HDD

実のところ、本デバイスはハードウェアRAID上に構築された論理ドライブなので、メディアタイプがUnspecifiedになってしまっている。こいつをHDDに変えると、HDD層として使えるようになる。

PS C:\Users\Administrator> Get-StoragePool TieredPool | Get-PhysicalDisk | WHERE DeviceId -eq 4 | Set-PhysicalDisk -MediaType HDD
PS C:\Users\Administrator> Get-StoragePool TieredPool | Get-PhysicalDisk | FT DeviceId, FriendlyName, Size, MediaType

DeviceId FriendlyName                Size MediaType
-------- ------------                ---- ---------
4        HP LOGICAL VOLUME 17999939502080 HDD
0        HP LOGICAL VOLUME   799937658880 SSD
1        HP LOGICAL VOLUME 12002017673216 HDD

現在の記憶域階層の状況を確認。

PS C:\Users\Administrator> Get-StorageTier | FT FriendlyName, Size, MediaType

FriendlyName                 Size MediaType
------------                 ---- ---------
SSDtier                         0 SSD
TieredDisk_SSDtier   678604832768 SSD
TieredDisk_HDDtier 11984837804032 HDD
HDDtier                         0 HDD

SSDtier, HDDtierは記憶域階層プールTieredPool作成時に割り当てた各階層、TieredDisk_SSDtier, TieredDisk_HDDtierは仮想ディスクTieredDiskに割り当てられた各階層を表す。プールの全領域がTieredDiskに割り当てられていることがわかる。

TieredDisk_HDDtierの拡張可能サイズを調べる。

PS C:\Users\Administrator> Get-StorageTierSupportedSize TieredDisk_HDDtier

SupportedSizes TierSizeMin    TierSizeMax TierSizeDivisor
-------------- -----------    ----------- ---------------
{}               268435456 18015508758528       268435456

冒頭のGet-StorageTierSupportedSize結果と比べて16TBほど増えたことが分かる。拡張対象であるTieredDiskのHDD層TieredDisk_HDDtierを27.2TB(≒既存10.9TB+増設分16TBーマージン)に拡張する。

PS C:\Users\Administrator> Resize-StorageTier TieredDisk_HDDtier -Size 27.2TB

拡張可能容量を調べると、減っている事が分かる。

PS C:\Users\Administrator> Get-StorageTierSupportedSize TieredDisk_HDDtier

SupportedSizes TierSizeMin TierSizeMax TierSizeDivisor
-------------- ----------- ----------- ---------------
{}               268435456 93415538688       268435456

無事にHDD層の拡張ができると、WindowsからはHDDを拡張したように見える。

あとはパーティション(上図で言う所のDドライブ)を広げてやれば、仮想ディスクの容量が増える。

……ハズだったんだけど、NTFSの最大クラスタ数制限に引っかかって拡張できないというオチがついた/(^o^)\

結局、RAID-10ボリュームを作り直して真っ当な構成で記憶域を再構築し、10TBのデータをバックアップから復元する羽目になった…。

でもまぁ、記憶域階層の拡張が出来ることは実証できたのでヨシとしよう。

  • windows/expand_hdd_tier_in_tiered_storage_pool_adding_hdd_on_wss2016.txt
  • 最終更新: 2020-03-06 20:45
  • by Decomo