人生エクソダスしてなにものからも自由になりたかった

遁世したい。でもできない中年男の独白。

win10での「ミラー高速パリティ記憶域」細かい話

 前回の記事

jinsei-exodus.hatenadiary.jp

 を書いてからまた状況が変わったので気づいたこと含めて書き残す。

 

 具体的には”①構成していたHDD(ST8000DM004)が1台不良ディスクになった”、”②SSDを3枚にしてSSD*3+HDD*3-1で仮想ストレージをつくった”

 ST8000DM004がぶっ壊れたのはSMRとかいうRAIDと全く相反する記録様式だったからだと思うので、RAIDに組み込むなら絶対CMRにするべきだったのだ。それに最安値と言いつつSM8000DM004が14000円台をうろうろしている間にWD80EAZZ(キャッシュ128MB、5640RPM)が同レベルの価格になってきている。

<<追記>>

Seagateの名誉のために訂正する事が生まれた。

買い直したWD80EAZZが、利用時間100時間にも満たないうちに不良ディスクとしてはじき出され、危うくエラーによって利用不能になるところだった。

このときの対処法はよく言う「-usage retired」ではなく、仮想ディスクと記憶域プールの消去だった。

しかしそれでも駄目だったのでSATAケーブルを別のHDDとつなぎ直し、再起動後なぜかリストアした記憶域プール(逆に他のすべてのHDD・SSDが警告アイコンがついた)を再度削除して、ようやくまっさらな状態にできた。

原因は特定の電源ケーブルから分岐ケーブルで電源を取りすぎたため、100%使用中のときの電力供給が追い付かず、HDDがWindowsの認識から外れたためだった。

分岐ケーブルの配置場所と接続先を見直し、ようやくエラーのない世界になった。

 

 

 記憶域について調べた時、例の構成比SSD:HDD=20:80の式に則った海外のページがあったが、そこでの事例が「128GBのSSD9台、10TBのHDD9台を取り込んだ記憶域でSSD:HDD=200GB:800GBの階層記憶域をつくる」というものだった。

 そこでまず驚いたのはSSDが9台でも”ミラー”になること(ミラーリングは偶数)、SSDのティアをつくるときに「-ResiliencySettingName Mirror」の記述は必要ないことだ。

 つまり

 Get-StoragePool 記憶域 | New-StorageTier -FriendlyName SSD -MediaType SSD

だけで勝手にミラーになる。

 

 ここで疑問に思ったのが”mirror”とは果たしてSSDうしのミラーリングのことなのだろうかということだ。

 AMD StoreMIはHDDとSSDミラーリングで、HDDのデータを同期したSSDからデータを読み取り、SSD内で変更した部分をHDDに反映させるシステムだ。つまりSSD2台の間でミラーリングしているわけではない。

 この仮説に基づいて記憶域を作ろうとした(SSDは全容量ただ足しただけ)がエラーにより作れなかった。つまり物理ディスク的なミラーではなくてもミラーリングには違いないということだ。

 「ミラーリング(RAID1)は偶数」という思い込みで話を進めていたが、実は2台以上のミラーリングはRAID1E、分散ミラーリングとなるようだ。コスパがいまいちで、そもそも台数増やしていくならパリティ/デュアルパリティでの構成が無難でメジャーなので誰も話題にしないだけだ。

 これはミラー高速パリティというものをよくわかってない話で、容量を見ればミラー部分+パリティ部分になっているのがわかる。

 

 さて、

 実際につくった記憶域の内容はこんな感じである。

 仮作成なのでSSDとHDDが乱立しているがどうせまた削除するので関係ない。

※今ある"friendlyname"-SSD/HDD(この場合"記憶-SSD"と"記憶-HDD")を活かしたいなら、

 Remove-StorageTier -AsJob

 を打ち込めばその後"-FriendlyName"を打ち込む欄が出てくる。済んだら空欄のままEnterを打てば実行され、余計なStorageTierは消える。このときはエラーで実行できなかったが、普通に“remove-storagetier -friendlyname HDD,SSD”で余計なものを一括削除できる。

<<追記>>

この"SSD""HDD"という空のstoragetierは消さない方が良い。

というのも、いろいろ記憶域に関する参考記事では「capacity部分つまりHDDはNumberOfColumnsを実数(HDD4台なら"4")で打たなければならない」といわれているが、powershellで仮想ディスクを作ると記述を省略しても突っ込んだディスクが反映される。

つまり、SSDもHDDも、ResiliencySettingNameをmirrorかparityにするだけで勝手にcolumnが決まる。[システムとセキュリティ]→[記憶域]で仮想ディスクを作るから反映されないだけのようだ。

"SSD""HDD"を消してはいけない理由は、作った仮想ディスクではNumberOfColumnsが実数で反映されているが、"SSD""HDD"は<Auto>となっているからである。つまりこれを消してしまうと仮想ディスクのSSDとHDDの行数が台数分反映されなくなる。

 

 この記憶域の構成ストレージは 

 こんな容量である。

 なのでサイズの決め方も、 

 これで作成した。

 [SSDが3台なので全部足して2で割った値でも50%]という体裁になっている。

 ちなみに0.9掛けではなく0.85掛けなのは記憶域のパリティデータのために2割バッファを作ってくれという話を聞いて日和ったからである。

 

 ちなみに記憶域はHDDやSSDの容量をちゃんぽんできるので便利”と書いてある記事も多いが、これは闇鍋的にに記憶域プールを足し算で作る時はそうであるという話であって、階層記憶域を作るときティア作成で”-ProvisioningType Fixed”を打ち込んだ場合はディスク容量の小さい方に上限が設定されるので、通常のRAIDと同じく容量はそろえるべきである。

 SSDは500GB台といっても512GBだったり480GBだったりブレがある。私の環境だとCrucialの今亡き型番の525GBが最大値になるので、Seagateの500GBのSSDは限界ギリギリまで使われていてSSDの寿命的にも不安が大きい。

 HDDもカツカツまで使えば寿命が厳しくなるが、SSDはわざわざ”オーバープロビジョニング”とかいう言い方で7%~28%使用不可領域を作れと小ネタが流布されるくらい空き容量の確保はシビアな問題である。

 

 現実的にコストパフォーマンスを考えた場合[608.5GBの高速部分がある12.97((608.5/1024=0.594)+12.372)TBのストレージ]と言えば聞こえは良いが、500GB前後のSSDの安いやつで6000円、8TBのHDDが14000円、つまり6000*3+14000*3=60000円と考えると、コスパ悪目の16TBのHDDですら42000円、まして14TBのHDDは33000円で買える

 割に合わない。

 しかもAMD StoreMIでSSD+HDDをやるなら1TBのSSDを1万円で買ってくっつけてもまだ14TBで43000円、16TBで52000円。もちろんStoreMIはパーティション組めない・CrystalDiskInfoが使えないという超デメリットがあるが、そこを気にしないならStoreMIで済む。

 SSDのアクセス速度でHDDのキャパシティと言えば聞こえは良いが、SSDの容量が切れた瞬間書き込み90MB/sの鈍重なストレージに変身し、場合によってはエクスプローラがクラッシュする。メリットがあるとするなら写真や動画が多いフォルダでも読み込み・サムネの作成がSSD並みに早いことだ。場合に導入するSSDとHDDの数を考えると一般ユーザがここまでする必要があるか分からない。

 一方で安くなってきたとはいえSSDコスパが良いのは1TBまで(1万円台)。2TBのSSDで2万円台は危険物で25000円が相場、3TBは存在せず4TBは45000円~5万円。大容量ストレージはHDDの天下だ。しかもオワコンと言われている割に1台20TBのHDDがエンタープライズ向けではなく普通の市場に流通している。そしてSeagateMACH.2のようにヘッダを上と下で別々に動かすことでアクセス速度を2倍にする新技術も開発されており、これはSAS(12GB/s)だけだがSATAでも流通するようになれば文字通りSSD並のアクセス速度のHDDが席巻する。

 階層記憶域は速さと容量の両立のための技術としては面白いが、安価で大容量のSSDSSD並の速度のHDDが出てきたら必要なくなるのかもしれない。

 

 なお詳しくは自分で調べてみてほしいが、記憶域の構成ディスクに不良が発生した場合の取り外し処理が恐ろしく面倒臭く、記憶域を削除してしまえばええねんと思っていたらHDDがまるまる使えなくなってしまったので手順を自分で確認しておくことを強くお勧めする。