自宅で運用しているサーバには既に12TB分のストレージ を積んでいるが、最近は容量が枯渇してきていた。そのため、HDDを増設することにした。せっかく増設するならば、しばらく容量に関して思い悩まないようにするために思い切ってたくさん積みたいと思って、4TBx8台ほど積むことにした。後に述べるとおり、HDDケースとeSATA拡張カードも一緒に買った。
機材の選定と購入
HDDケース
既にHDDベイは使い切っているのでHDDケースも買う必要があった。8台詰めるケースとなるとその時点で選択肢はかなり少なくなるのだが、その中でもロジテックのガチャベイ LHR-8BNHEU3を購入した。これにした理由は、以下の2点からだ。 1) ケース側でRAIDを作らず、HDDを個別に認識できる 2) eSATA 6GとUSB3.0の両インターフェースを持っている。 1の要件は、サーバ側でZFSプールを作りたいと思っていたので必須だった。なお、同じケースののRAID対応版としてLHR-8BRHEU3があるのだが、こちらは 個別に認識させることはできない (RAID専用)なので注意が必要だ [1]。 2) に関しては転送速度を考慮してeSATAで繋ぎたかったけれど、eSATAは不安定 [2] という話も聞くのでバックアップとしてUSB接続もあるといいなーと思っていたからだ。そして、この後この時の判断は正しいことになる...(後述)
eSATA拡張カード
上述の通り、まずはeSATAで接続したかったのだが、マザボにはeSATAポートがついていないので、拡張カードを取り付けなければならない。良さそうなカードを探したが、これはなかなか大変な作業だった。
複数台のHDDを詰んだケースをeSATAで接続し、その時に各ディスクを個別に認識できるようにするためには、PC側のeSATAインターフェースがポートマルチプライヤに対応している必要がある。さもなければ、搭載されたディスクのうち1台しか動作しないという状況になる。しかし、拡張カードを探す際にポートマルチプライヤに対応しているかどうかを確認するのが大変だ。対応しているかどうかがサイトによっては書かれていなくてよく分からないし、書かれてない=対応していないかと思えば、レビューには対応していました!と書かれていたりもする。
加えて、だいたいどの製品のレビューを見ても、不安定だみたいなことが書かれており、これだ!みたいな製品がない。仕方ないのでエイヤッ!でStarTech PEXESAT322I を買った。これを読んでいる皆さまの予想通り、これは(僕の環境においては)ハズレだった。
HDD
NAS向けHDDとされているWD赤で固めたいところだけれども、そんな金はなく、かつ全部メーカー、同じロットのディスクで固めるとRAID組んでも同時に複数台故障しやすくなって死ぬ論の信者であるので[3]、バラバラに揃えた。
- SEAGATE BarraCuda <a href="https://hb.afl.rakuten.co.jp/hgc/1303275f.fc5b2595.13032760.5e7dbd9c/?pc=https%3A%2F%2Fproduct.rakuten.co.jp%2Fproduct%2F-%2F96c533f03c89b13f04d0fe5a11ad4158%2F&m=https%3A%2F%2Fproduct.rakuten.co.jp%2Fproduct%2F-%2F96c533f03c89b13f04d0fe5a11ad4158%2F&link_type=text&ut=eyJwYWdlIjoidXJsIiwidHlwZSI6InRlc3QiLCJjb2wiOjB9" target="_blank" rel="nofollow"" >ST4000DM004 4TB x 4
- WESTERN DIGITAL WD40EZRZ-RT2 4TB x 2
- TOSHIBA MD04ACA500 5TB x 2
東芝のHDD、何故か4TBだと思いこんで買ったら5TBだったのはご愛嬌。ST4000DM004だけ4台あるのは、他にいい感じの価格帯の4TBモデルを見つけられなかったので、一番安かったこれを4台にした。
構築
機材が到着してから早速ストレージの構築を行った。ケースLHR-8BNHEU3にHDDを取り付けるのは楽で、付属の専用マウンタをHDDにネジ止めしてからケースにガチャっと差し込むだけだった。製品名が「ガチャベイ」というだけある。
32TB分のHDD差した。 pic.twitter.com/aWArH86ILr
— ソーリーソーリーソーリー (@mecab) 2017年9月6日
サーバにもeSATA拡張カードを差し、HDDケース電源を入れ、サーバも起動すると、無事全てのディスクを認識し、普通に起動した。いつものようにZFSでraid-z2のストレージプールを作成した。
24TB RAID-Z2 プールができた! pic.twitter.com/dipmhR1a9t
— ソーリーソーリーソーリー (@mecab) 2017年9月6日
zpool list
で確認すると29TBが利用可能なようだ。しかしzfs list
で確認してUSED
とAVAIL
の値を足すと20TB。こちらが実際に利用できる容量だ。結構オーバーヘッド大きいなぁ...。
eSATAの認識不良と、USB3.0接続への変更
ここまでeSATA接続に関して不穏な空気を漂わせてきたが、結局この環境ではeSATAは不安定だった。構築後、大量のファイルを移行していると、一部のディスクを突然認識しなくなり、プールが利用不能になってしまった。ディスクを再接続し再起動してもランダムにディスクが見えなくなった。
仕方ないので潔くeSATAを諦めUSB接続に切り替えた。こちらはこれまで20日ほど連続稼動させているが特に何の問題もなく安定している。
ところで、ZFSストレージプールを作成する時には/dev/sd*
として見えているデバイス名を使うのではなく、/dev/disk/by-id
内のデバイス名を使うようにしている。これは前者は認識順によって変動する事がある非永続的でない名前である一方、後者はデバイスのシリアル番号から一意の名前を生成する永続的な名前である違いがある。ストレージの名前が何かの拍子でうっかり変わってしまうと良いことは無さそうなのでこちらが良さそうだ。(ところで、eSATA接続の際は明らかにデバイス名にシリアル番号が入ってるようなのだけど、USB接続の際は末尾の番号が変わってるだけだぞ...。大丈夫なのかなこれ。ケースに差した順(上から)な気もするし、ケース内で順番を入れ替えない限り大丈夫なのかな。)
感想とか
HDDケースが3.2万ほど、HDDが1台平均1.2万ほどだと思うので、トータルでだいたい13万円ぐらいかかった。4年ぐらいは持つと...いいな。すでに1/5ほど使ってて怖いのだが。とはいえ、とりあえず20TBのストレージがあると思うと心に余裕が出てくるので良い。心に余裕がなくなってきた人は、とりあえずHDDを買うと良いと思う。
あと、HDDケースLHR-8BNHEU3はファンが結構うるさい。ファンの回転数を手動でも設定できるが、最低速度にしてもうるさい。調べてみると自分でファンを交換した記事を見つけたので、そのうち試してみたい。