備忘録:記憶域の(まともな)作り方
(左からHDD単体、シンプル(RAID0相当)、パリティ(RAID5相当))
いつまでも放置しておくわけにはいかないので、記憶域の作成を頑張った。結論としては、シングルパリティ(RAID5相当)で十分パフォーマンスが出てGOODです。画像の右側がシングルパリティですが、Writeで100MB/s出て、かつランダムもなかなか出るので、ソフトウェアストレージとしてはかなり良い仕上がりです。素のWindows8でパリティ記憶域を作るとWrite10MB/sとか芸術的な状態だったのですが、中身を理解してチューニングと設定をすればこれくらいは出るってことで。。
必要情報はココから引っ張ってます。
◆環境
SATA INTEL SSD311 x2
NL-SAS MG04SCA500E x4
HBA LSISAS2008(ASUS PIKE2008)
記憶域のシングルパリティで性能出すにはSSD2台が必要のようです。Write 100MB出た!って言ってますが、たぶんIntel SSD311のWrite性能がそこまで、ってだけで、もっと速いSSD使えばもう少し伸びるんじゃないかなーと思います。NASとしては100MB/s出れば十分なので、SLCの安定性に期待します。
◆前準備
まず何はともあれPowerShellのcmdletを入れます。
全ての操作は管理者権限のPowerShellです。
◆記憶域プールの作成
とはいえ、記憶域プールは特にオプション無いのでコンパネから作成してOK。記憶域スペースは作成せずにキャンセル。というのも、コンパネから記憶域スペースを作るとパフォーマンスが出ません。。。PowerShellでの作成が必須です。
そしてライトキャッシュを有効化
Set-StoragePool -FriendlyName "記憶域プール" -IsPowerProtected $True
◆キャッシュ用SSDの設定
SSDのUsageをJournal(キャッシュとパリティ計算?用)に設定
Set-PhysicalDisk -FriendlyName "ATA INTEL SSDSA2VP02 SCSI Disk Device" -Usage Journal
◆記憶域スペースを作成(シンプル、キャッシュ無し)
New-VirtualDisk -StoragePoolFriendlyName "記憶域プール" -FriendlyName "シンプル記憶域" -ResiliencySettingName Simple -Size 4000000000000 -ProvisioningType Fixed -NumberOfColumns 4 -WriteCacheSize 0
◆記憶域スペースを作成(パリティ、キャッシュ8GB)
New-VirtualDisk -StoragePoolFriendlyName "記憶域プール" -FriendlyName "パリティ記憶域" -ResiliencySettingName Parity -UseMaximumSize -ProvisioningType Fixed -NumberOfColumns 4 -WriteCacheSize 8GB
HDDが4台なので4分割で格納するように指定します。(コンパネからだと3固定)。SSDのJournal領域があると、デフォルトで1GBのキャッシュが取られるようですが、シンプル(RAID0相当)の場合、キャッシュを経由すると遅くなるので明示的に0指定。パリティの場合はもっと詰みたいので8GBを指定。Journalが2台あるとx2で16GB使ってるっぽい。
一からやると敷居高いんですが、いったん理解するととても高性能なストレージを「OS標準機能で」作れるので大変よろしいです。とても知名度低いですけどね!
| 固定リンク
コメント
windows8?って調べたらserverOS
だけじゃなくてクライアントOSでも
使えるんだね
IRST(&ISRT)消してこっちやってみるのもありかな
投稿: ぐら | 2016/07/08 21:35
ですねー、サーバOSだとGUIがマトモらしいんですが、内容理解してればコマンドラインで何とでもなるようです。Win10だとGUIがサーバ並みにマトモとかいう話ですね(今回は8.1使用)。物理ドライブ数をやたら必要とするのが難点です。
投稿: Topika | 2016/07/08 23:21