TrueNasをHyper-V上で稼働させN100マシンでUSBHDDを複数記憶域プールにしてアタッチする

我ながら久しぶりにWindowsのWindows Server的な部分を触り、満足しています。もともとインフラSEとして仕事していたときは、毎日Windows Serverを触っていましたので、ある意味相棒ですが、会社が変わってしまうとクラウドネイティブになってしまって、どうも触る機会が減ってしまいました。

インフラエンジニアはやはり、インフラ触っててなんぼですよね。そしてやらかして覚えていく。失敗から学ぶほうがきっと近道だと思えるぐらいには。

多段USB HDDケースを買うと一つの疑問がわいてくる

Amazonを彷徨い歩いていると、この手の製品は2万円前後から手に入ります。4台もHDDを搭載できるケースがこの価格帯であれば、「これ、NASだったらいいのにな」なんて妄想もして、ありもしない背面のLANポートを期待してしまうものです。

前回投稿した内容では、まっとうにNASのバックアップ装置として利用することしか想定していませんでした。

が、先日購入したN100のミニPCのパフォーマンスも一緒に思い出してしまいます。

と、この二つのコスパを目の前にすると、「NAS、結構安く作れるんじゃないのか?」となるわけです。ちょっと前までは、「たくさんHDDが積めるPCケースを探して、SATAボードを追加して、マザーを買って、CPU買って・・・」などとやっていたことが、簡単に構築できてしまうわけですから。

SynologyのNASシリーズと比較

オープンソースによって無料で利用できるNAS向けOSは今となっては決定版みたいなものがTrueNASというものらしく、これがまた柔軟性が高かったり、低リソースで利用できたり、ブラウザ越しに管理できたりと、市販のNASに迫るものになっています。

しかし、現行でSynology DS423+が稼働していて、特段不満もなかったり、Windows Serverの記憶域の時よりもアクセススピードが速いということもあり、乗り換える理由に乏しいんじゃないかという懐疑的な部分もあります。いったんは代表的なスペックを比較します。なお、以下に書くTrueNAS用のPCは一般的なN100搭載のミニPCを想定します。

Synology DS423+TrueNAS
(N100ミニPC+多段USBケース)
CPUCeleron J4125N100
メモリー最大6GB8GB~16GB
ネットワーク1Gbps x 21Gbps~2.5Gbps
x1~2
RAIDSynology Hybrid RAID、 Basic、JBOD、RAID 0,1,5,6,10RAID0,1,Z1,Z2,Z3,dRAID1,2,3
搭載数HDDx4、MVNex2構成ハードに依存
付加機能アプリによって追加可能アプリによって追加可能
価格(HDDを除く)\80,000前後ミニPC本体 \25,000円前後
HDDケース \20,000円前後

この表から見るとN100の方が圧倒的にパフォーマンスが高く、金額も約半額で済みます。だいぶ魅力的。唯一家庭用として引っかかる部分は、HDDの容量がちぐはぐでもRAIDを構築できるSynology Hybrid RAIDの存在ぐらいでしょうか。

とはいえ、RAIDも家庭用として考えた時に、リスクにもなりえます。

RAIDのメリットは、

  • HDDが1発故障しても稼働を続けられる。
  • HDDの活性交換が可能。

いずれも、稼働が止まってしまうと事業が止まりかねない法人向けのメリットの側面が強いです。バックアップさえしっかりしていれば、家庭用としては稼働が止まってもそこまで致命的でもありません。

それに対するリスクは、

  • 故障とは言いきれない故障に気づきにくい。
  • RAID構造も時には壊れる。

私も経験がありますが、NASからデータをすべて移行するときでもないと、定期的にデータスクラブなどでテストしておかないと、アクセス頻度の少ないファイルが壊れていることには気づきません。その壊れているファイルの根本原因が、HDD本体にある場合などは目も当てられません。

そのように、家庭用にRAIDはリスク面が大きくなることもあるので、RAIDを利用せずに使うということになれば、TrueNASのほうがパフォーマンスも高く値段も安いシステムが構築できてしまいます。

それでも容量違いRAIDを組みたい!

とはいっても、容量違いRAIDには謎の魅力があります。容量がちぐはぐでも受け入れてくれるような、懐の深さによるものなのか、甘えていいよと言われれば人間甘えたくなるもの。容量違いも許してくれるなら、許してもらいたい!
そんなわけで、今回はこのTrueNASの弱点でもある容量違いRAIDを実現する方法を思いつきました。

検証環境

Windows 11 ProのクライアントHyper-Vを利用しました。ゲストOSはすでにUbuntuが稼働している状態ですが、今回のために、TrueNASとして仮想マシンを作成しています。

完成品イメージ

当たり前ですがUSBのHDDは今回容量がバラバラです。4TB、2TB、1TBの3本としました。これを記憶域スペースを使ってひとまとめにします。Hyper-Vや記憶域スペースを構築したことがある方は、この図からでも全然作れるとは思います。

記憶域スペースの作成

今や設定アプリからでも作れるようになりました。コマンドで苦労していたのに、Windowsも進化していってますね。ですが、今回はコンパネから作りました。

コントロールパネルの「記憶域」をクリック。

「新しいプールと記憶域の作成」をクリック。

当然、「はい」をクリック。

記憶域に参加させるドライブを選択して「プールの作成」をクリック。

設定は家庭用では容量、コスト、冗長性のバランスから、パリティが選びやすいです。ミラーでもいいけど、容量違いのRAIDではコスト利用効率が落ちます。この辺りはどれがベストかなんて言いきれないので、運用スタイルに合わせるしかありません。
我が家では、ケチケチNAS構成ですので、パリティにしておきます。容量はパリティの場合、全体の約2/3程度でいいと思います。容量違い構成なので、厳密には違いますが、いずれディスクを追加していったときなどにも調整するものなのでいったんは単純計算にします。

記憶域が完成しました。

Hyper-Vの仮想マシンに記憶域をアタッチ

続いて、「ディスクの管理」を開いて、作った記憶域をオフラインにしておきます。

オフラインにしたディスクは、Hyper-V上の仮想マシンに直接アタッチできるようになります。この機能を使って、記憶域プールをTrueNASの仮想マシンにアタッチしていきます。
Hyper-Vの操作系は簡略化して解説しますが、反応があればそのあたりをフォローします。

TrueNASの仮想マシンの設定から、「SCSIコントローラー」→「ハードドライブ」→「追加」をクリック。

「場所」については適当なものを選んでOKですが、「(使用中)」など書いてあるものについては回避します。
「物理ハードディスク」を選んで、作成した記憶域プール選択したら、「適用」をクリック。

ここまでで、TrueNASの仮想マシンとしては「物理的な大きいHDD一台」として認識されます。

TrueNASで性能確認

TrueNASでの領域作成では解説されているサイト様を参考にしました。

ただ、記憶域スペースによって複数ディスクのアレイ化はできているので、HDD一台として冗長性なしの状態で構築する点については注意する必要があります。

性能をCrystalDiskMarkにて計測してみました。

Synology DS423+のベンチマーク
今回作成のTrueNASベンチマーク

Synology DS423+はSATAの直接接続かつ、SSDのキャッシュがディスクとは別に搭載されています。
対して、今回作成のTrueNASはUSB接続のHDDが三台で、キャッシュSSDはありません。さらには仮想化のレイヤーをまたいでいるのに、この速度差であれば、十分実用的じゃないでしょうか。

総括

配信されているアプリや、互換性においてはメーカー製のSynology DS423+に一日の長はあると思います。品質は未知数であるものの、購入品なのでサポートもありますし、歴史もあるため情報も多く、トラブルも解決できる可能性は高いです。

ですが低コストでそれなりのスペックのNASを作りたいとなったら、TrueNAS+記憶域スペースは十分選択肢に入る性能であることが分かりました。Hyper-Vで環境がしっかりと別れるため、ホストに使用したミニPCはほかのゲストOSを稼働させて別の用途も兼用できます。この辺りに重きを置く場合は、むしろ今回の構成のほうがはまると思います。何よりホストマシンがWindowsであるため、工夫次第では無限大の拡張性となるでしょう。

次回、NASのリプレースを検討する際には、選択肢の一つとして考えておこうと思います。