パソコンやスマホに関することを気ままに書いていきます!

PC ブログ 自作

【階層記憶域】Windows「ミラーリングによって高速化されたパリティ」の構築方法

投稿日:

スポンサーリンク

はじめに

今回はWindows10で「ミラーリングによって高速化されたパリティ」の構築方法を紹介します!
使用しているOSはWindows10 Proですが、WindowsServerでも基本的には同じやり方で構築できます。

「ミラーリングによって高速化されたパリティ」とは

そもそも階層記憶域による「ミラーリングによって高速化されたパリティ」って何!?と思う方もいると思うので最初に解説します。
簡単に言うと大容量&高速&冗長性&(コスパ)を兼ね備えた仮想ディスクのことです。

一般的に大容量で耐障害性のあるドライブを構築しようとした場合、複数台のHDDを使ってRAID5のドライブを構築すると思います。
しかし、RAID5はHDDに書き込む際にパリティを計算する必要があり、1台のHDDへ書き込む際よりも遅くなってしまいます。
そこで、SSDを使うことで高速化し、大容量かつ冗長性のあるドライブを構築することが出来ます。
SSDのみでストレージを構築すれば速度が早く大容量なドライブを構築できますが、予算もかなり必要です…
価格を抑えるためにもSSDとHDDを使うことでコスパが良くなります。

まず、送られてきたデータはSSD層の通常領域に書き込まれます。
通常領域がいっぱいになるとライトバックキャッシュに書き込まれます 。
その後、ライトバックキャッシュがいっぱいになるとHDD層へ 書き込まれます 。
1日1回ディスクの最適化が行われ、SSD層に保存されているデータはHDDへ書き込まれます。
その際に、よくアクセスするデータはSSD層に保存され、あまり使われていないデータはHDDに保存されるようです。
(参考サイトはこちら)
SSD層は2台でミラーリングしているため、どちらか一方が故障しても大丈夫です。
HDD層は3台以上のHDDを使って各ディスクにパリティを書き込んでいるため1台までの故障であればデータを失うことはありません。
ただし、SSD層(ライトバックキャッシュ)がいっぱいになるとパリティを計算しながらHDDへ書き込むため速度が低下します。
これに関しては大容量のSSDを使うことで解決できます。まあ毎日数百GBのデータを転送することは少ないと思うので250~500GBくらいのSSDを使っておけば大丈夫だと思います。

構築方法

使用予定のHDDとSSDを接続します。
CrystalDiskInfoで全てのディスクが認識しているか確認しておくと確実です。
各ディスクのシリアルナンバーをメモしておくとスムーズに進むと思います。

コントロールパネルから記憶域をクリックし、「新しいプールと記憶域の作成」へ進みます。

必要なディスクを選択します。
(今回、上から2つめと3つめは違うプールで使うためチェックを外しています。)
もしここで必要なディスクを追加できないようであれば後からコマンドで追加するため、ひとまず表示されている必要なディスクを選択してください。
WindowsServer2016だと同モデルのディスクが2つ存在した場合、1つしか追加できませんでした。
この場合、後ほどコマンドで追加します。

記憶域の作成画面が表示されますがこの画面では階層記憶域を作れないので右下にあるキャンセルをクリックします。

するとプールが作られました。
選択したディスクが入っているか確認します。
ここでプール名を変更しておくと今後管理が楽です。
僕の場合、デフォルト「記憶域プール」から「Data」へ変更しました。

続いてPowerShellを管理者モードで開いてコマンドを入力していきます。

まずは下記コマンドで接続されているディスクを確認します。

Get-PhysicalDisk

ここで接続しているディスクのメディアタイプが異なる場合は下記コマンドを入力し変更します。 XXXXXXXXは変更が必要なディスクのシリアルナンバーを入力してください。
HDDからSSDへ変更する場合は -MediaType SSD として、
SSDからHDDへ変更する場合は -MediaType HDD と入力します。

Get-PhysicalDisk -SerialNumber XXXXXXXX | Set-PhysicalDisk -MediaType <HDD or SSD>

先ほど、プールにディスクを追加できなかった場合は下記の作業を行ってください。

プールに追加したいディスクのシリアルナンバーを確認します。
下記コマンドを入力し、オブジェクトにシリアルナンバーのディスクを指定します。XXXXXXXXは指定したいディスクのシリアルナンバーを入力してください。

Get-PhysicalDisk$PDToAdd = Get-PhysicalDisk -SerialNumber XXXXXXXX

続いて、指定したディスクをプールに追加するコマンドを入力します。XXXXは先ほど変更したプール名を入力します。僕の場合はDataPoolとなります。

Add-PhysicalDisk -PhysicalDisks $PDToAdd -StoragePoolFriendlyName XXXXPool

ではプールに組み込まれている物理ディスクをの確認です。 以降、XXXXは先ほど変更したプール名を入力してください。

Get-StoragePool XXXXPool | Get-PhysicalDisk | ft FriendlyName,SerialNumber,CanPool,BusType,DeviceId,EnclosureNumber,MediaType,Size -AutoSize

SSD層とHDD層を作成します。SSD層はミラーでHDD層はパリティです。最後の-NumberOfColumns ですが、今回は使用しているHDDが3台あるので3にしています。

Get-StoragePool XXXX | New-StorageTier -FriendlyName SSDtier -MediaType SSD -ResiliencySettingName Mirror
Get-StoragePool XXXX | New-StorageTier -FriendlyName HDDtier -MediaType HDD -ResiliencySettingName Parity -NumberOfColumns 3

ここで記憶域プールに組み込まれている物理ディスクの容量を確認します。

Get-StoragePool XXXXPool | Get-PhysicalDisk | Format-Table MediaType,Size

続いてライトバックキャッシュの容量とSSD層、HDD層の容量を設定します。
このキャッシュサイズですが、多ければ良いというわけではなく、最大でも16GBまでが推奨されているようです。
今回は16GBを設定します。
XXXXXXXXXXは上記コマンドで確認した容量を入力してください。

$WriteCacheSize = 16GB
$SSDSize = XXXXXXXXXX * 0.9 - $WriteCacheSize
$HDDSize = XXXXXXXXXX * 2 * 0.9

0.9倍する理由ですが、パリティが複雑なため1~2割程度差し引いた容量に設定する必要があるらしいです。

次に仮想ディスクを作成します。-FriendlyName XXXXXXは仮想ディスク名です。僕はDataとしています。

$SSD = Get-StorageTier -FriendlyName SSDtier
$HDD = Get-StorageTier -FriendlyName HDDtier
Get-StoragePool XXXXPool | New-VirtualDisk -FriendlyName XXXXXX -StorageTiers $SSD,$HDD -StorageTierSizes $SSDSize,$HDDSize -WriteCacheSize $WriteCacheSize

これで階層記憶域による仮想ディスクの作成が完了しました。

それでは、コントロールパネルに戻って記憶域を確認します。
「双方向ミラー」と表記されていますが、容量的には先ほどコマンドで設定した値なのでおそらく正常に構築されているはずです。
フォーマットしないと使えないので「設定の変更」をクリック後、フォーマットを行います。

「ミラーリングによって高速化されたパリティ」はReFSというファイルシステムが必須なはずなのですが、NTFSでも作成できました。
Windows10では ReFSをサポートしていないためNTFSで作成することになります。

これでドライブが使えるようになりました!

ベンチマーク

それではCrystalDiskMarkでディスクの速度を計測してみます。

結果はRead:796.30MB/s Read:413.57MB/sとなりました。
読み込み速度はSSD1枚のときよりも早いです。おそらくですが、ミラーリングされている2台のSSDから読み出しているためだと思います。
通常のRAID5に比べてかなり速度が早いです。

まとめ

今回はHDDとSSDを使った階層記憶域による「ミラーリングで高速化されたパリティ」 の構築方法を紹介しました。
RAID5では速度に不満があるという方は構築してみる価値あると思います!
SATAタイプのSSDではなくNVMe M.2 SSDを使えばもっと高速なドライブが作れるはずです。
まあその分予算もかかってしまうので、お財布と相談しながらさらなる強化を目指したいですね。
もし、上記内容に間違いがありましたら教えていただけますと幸いです。
動画でも紹介しています↓

スポンサーリンク

-PC, ブログ, 自作


comment

メールアドレスが公開されることはありません。

関連記事

カメラの保管・メンテナンス用品を買った

目次1 はじめに2 保管用品2.1 ドライボックス3 メンテナンス用品3.1 ボディブラシ3.2 レンズペン3.3 ブロワー3.4 クリーニングペーパー4 まとめ はじめに 今回はカメラの保管用品とメ …

【ベンチマーク】Core2 Duo E8400

目次1 Core2 Duo E8400について2 検証構成3 検証結果3.1 Cinebench R153.2 Cinebench R203.3 CPU-Z Core2 Duo E8400について C …

MacOS MojaveとCatalinaをデュアルブートする方法

【2020/08/08追記】 先日リリースされたBigSurパブリックベータ版での方法を投稿しました。 BigSurをデュアルブートで使う方法 目次1 はじめに2 MojaveとCatalinaのデュ …

16コア32スレッドのCPUを買ったので換装する【Ryzen9 3950X】

目次1 はじめに2 品薄が続くCPU3 開封の儀4 どのパソコンにつけるのか5 BIOSアップデート6 取り付け6.1 1700Xを取り外す6.2 3950Xを取り付ける7 起動確認8 <まとめ …

Softbank光でIPv6とIPv4を利用しながらポート開放をする

目次1 はじめに2 まずやってみたこと2.1 光ユニットのポート開放2.2 PCからPPPoE接続3 IPv6とIPv4を同時に利用してポート開放する方法3.1 ONUでPPPoE設定をする3.2 P …