ついに動き出すNAS自作計画
我が家のローカルエリアネットワーク内にはBUFFALO TeraStation LAN接続HDD TS-H2.0TGL/R5という名のNAS(Network Attached Storage)がある。2007年か2008年ごろ、まだリーマンショックで全財産を吹き飛ばす前に買った記憶があるのでもう13年近く運用していることになるだろうか。途中で中のHDDを総入れ替えしたが、それももう8年前の話だ。
大容量NAS TeraStationLiving TS-H2.0TGL/R5のHDDを入れ替えてみる
購入した当初は500GBのHDD4台構成だったのを、2TB4台に入れ替えたのだが、どうも転送速度が遅いのが気になってきた。転送速度が10MB/sくらいしか出ていないのだ。おそらく、元々500GBのHDDを積んでいて同型の一番容量の多いラインナップでも1.5TBのHDDでRAIDを組むことを前提に設計されているので、2TBのHDDは荷が重すぎたのだ。CPUが貧弱だったり、メモリが足りなかったりしているのだと思われる。1GbEのNICでネットワークに参加しているので、もっと早くてしかるべきだ。これでは100MbpsのNICで足りてしまうではないか。そろそろ次世代機にリプレースするべきだと思い続け、NAS自作計画自体は持ち上がってはいたものの、故障しているわけではなくデータ保管庫としては使えてしまっていた。そんな状況の中、NAS自作計画はケースや電源など、価格変動の少ないパーツをちょこちょこと買いためているのみで計画は遅々として進んでいなかったのだが、買いためたパーツがあと一息でPCを組める程度にたまってきたため、ままならない現実からの逃避や気晴らしのため、重い腰を上げてNAS自作に取り掛かることにしたのである。
コツコツ貯めたPCケースと電源装置
まずは、NAS自作計画の為に買いためたパーツたちを紹介しよう。予算の都合上たくさんのHDDを積む構成にすると破産してしまうので、現行と同じでデータ格納部分はHDD4台構成にして、システム部分はSSD2台のミラーリングにする方向で考える。その要件を満たすためには、4つのホットスワップベイを持ったケース、6つのsataポートを持ったマザーボードを採用する必要があった。
最初に買ったのがこのPCケースである。RADIX Alritと言う小型サーバー製品のケースとして使用されていたものが中古品で売られていたのを見つけて状態もよさそうだったので購入した。mini-ITX規格のマザーボードを収容でき、鍵付きホットスワップベイを4つ備え、PCIeの拡張スロットもハイブラケットのものが使える。RADIX Alritシリーズのこのケースより新しいモデルもあるが、ローブラケットしか使えなかったため、少々年代は古くなるがこのケースを採用した。
次に電源だが、このケースに入るのはFlexATX規格のものに限られる。コンシューマー向けに入手可能なFlexATX電源にはあまり選択肢がない。amazonで検索するとヒットするSilverStone Flex-ATX 電源ユニット 80PLUS Gold認証 SST-FX350-Gがワット数も350Wと余裕たっぷりでちょうどよさそうだった。
中核を担うマザーボード
マザーボードだが、sataが6つついてるmini-itxのボードというのは、新しめのボードだとなかなかなかった。サーバー用途のちょっと高めの製品だとsataがたくさんついてるものもちらほらある。ちらほらあるが、やっぱりお高い。なので、手ごろなのがないかとebayでmini-ITXのボードを検索していると、中古ならとっても魅力的な製品が沢山あった。そのなかでもCPUオンボードの製品を選べば、マザーボードとCPUと冷却装置を別々にそろえるよりさらにお得にパーツをそろえることができそうだった。そんな中で目に留まったのが、Supermicro社製 X10SDV-4C-TLN2Fなのである。
4コア8スレッドのXeon D-1520がオンボードでCPUクーラーもFANもついている。Broadwell世代で少し前のCPUだが、Xeonなのはサーバーっぽくてカッコいい。TDPも45Wとべらぼうに電気を食うこともない。NAS用のみならず、いろんなサーバーも同居させて使うならちょうどよいではないか。さらに PCIe3 x16スロットを備え、10Gbase-Tが2つもついてる。m.2のSSDも搭載可能でナウい。sata3が6つついててちょうどいい。そしてIPMIチップが乗っているのでサーバーの電源ONやシャットダウン、iKVM経由の遠隔操作なんかができちゃってとっても便利だ。BIOSの設定変更なんかもLAN経由でできてしまう。コンソールをいじるためにいちいち実機の前に行く必要がない。メモリもECC Reistered の DDR4 RDIMMに対応している。中古だが、冷却をちゃんとすればサーバーグレードの製品なので長持ちしてくれると思う。
後述するが、今回のNASはXigmaNASを使ってzfsで1台をパリティディスクにして使う構成にするつもりである。そうすると、もしシステムが壊れたりマザボが爆発してもHDDが無事ならzfsに対応したシステムにHDDを移植することでzfsごと移植して復旧することが可能だ。長持ちさせるなら新品のパーツでそろえるべきだが、交換前提でシステムを組むならば、マザーボードは中古でもデータの保全が可能であると判断した。こうした自分でメンテナンスする想定ができるのも、既製品のNASではなく自作PCでNASを作るメリットであると思う。純正部品に縛られることなく柔軟な保守部品調達が可能となるのだ。
愛のメモリー
メモリーにはレジスターバッファがある物とない物がある。レジスターバッファがない物をUDIMM、あるものをRDIMMと言ったりする。加えて、エラー補正機能がある物とない物がある。ある物をECC、ない物をnon-ECCと言う。エラー補正機能とレジスターバッファは独立した機能なので、それぞれある物とない物の組み合わせで4種類のメモリーが存在することになるが、non-ECCのRDIMMと言うのはほぼ見かけないので、ECC UDIMM、non-ECC UDIMM、ECC RDIMMの実質3種類のメモリがある。レジスターバッファの有り無しのメモリの間に互換性は無い。加えて、エラー補正機能有り無しのメモリの間にも互換性が無い。それぞれ両対応のシステムと言うのも存在するので、どのメモリをサポートしているのかはマザーボードやマザーボードに乗せたCPUとの組み合わせに依存することとなり、マザーボードの説明書きをよく読んでメモリを選択する必要がある。
Intelのシステムで自作PCを組む場合、サーバー向けのXeonでなければECCメモリは使えない。なのでcore-iシリーズなどのコンシューマー向けのシステムではnon-ECC UDIMMを使うことになる。Xeonを乗せたシステムでは、ECC UDIMMが使えたり、ECC RDIMMが使えたり使えなかったりするのでシステムによって確認が必要だ。AMDのシステムの場合、コンシューマー向けのRyzenでもマザーボードによってはECCメモリが使える場合があるが、レジスターバッファには対応していないのでnon-ECC UDIMMか、ECC UDIMMを選ぶ必要がある。どちらにしろどのメモリが使えるのかはマザーボードの注意書きをよく読んで選ばなければならない。
X10SDV-4C-TLN2Fの場合、乗ってるのがXeon D-1520で、マニュアルを読んでみると ”Up to 128GB ECC RDIMM DDR4 2133MHz or 64GB ECC/non-ECC UDIMM in 4 sockets”と書いてある。よってECC RDIMMとnon-ECC UDIMM、ECC UDIMMのどれでも使えるが、ECC RDIMMを使ったほうがでっかいメモリが積めるという事になる。X10SDV-4C-TLN2FではDDR4の2133Hzまでのメモリにしか対応していないのであまり動作周波数の早いメモリを買っても仕方がない。NASやfreeBSDベースのサーバーにして遊ぶ用途で瞬間的な速度が必要なゲームをしたりするわけではないのでそれほど動作クロックの早いものは必要ない。あんまり動作クロックの早くないメモリは安い。使おうとしているXigmaNASはECCメモリの仕様を推奨しているし、せっかくのXeonなのでebayでECC RegisteredのRDIMMの16GBのやつを買った。non-ECCのメモリよりだいぶ安く買えた。
肝心かなめのストレージ
今回組む小型サーバーの主要な用途はNASである。ストレージ選びが一番重要だと言っても過言ではない。システム領域のストレージはsata接続のSSD2台でミラーリングすることにした。安定性が何より大事なのだ。システム領域にはさほど大きな容量は必要ない。使おうとしているXigmaNASのハードウェア要求仕様によるとシステムストレージの最小容量4GBだが、WebサーバーとかDBサーバーとか監視サーバーとか入れて遊ぼうと思ってるので、500GBくらいあると容量を気にせず遊べると思う。 X10SDV-4C-TLN2F はM.2のスロットもついているのだが、1つしかないのでミラーリングできない。SATA接続の500GBのSSDとして、Western Digital 内蔵SSD 500GB WD Blue WDS500G2B0A-ECを使うことにした。
データ格納用のストレージにはSSDを使うと速度が速くて素晴らしいのだが、データ単位当たりのコストを考えて速度を犠牲にしても流行HDDを選択するのが合理的だと考えた。24時間365日稼働させてRAIDアレイを組むような用途には、書き込み方式にCMR(Conventional Magnetic Recording)を使用すべきである。XigmaNASもSMR(Shingled Magnetic Recording)を採用したHDDは非推奨とされている。 SMR はデータを重ね合わせて書き込むことで大容量化する技術だが、データ密度を高めた結果RAIDなんかで使うとデータが壊れやすいという事らしい。しかしながらNAS用と銘打たれて販売されているHDDでも必ずしもCMR方式を使っているとは限らないようだ。CMR方式でNAS用と銘打たれたHDDは、そうでないものに比べて高い。ここまでだいぶコストをかけてしまったので懐が厳しい。30年続く不況の上に新型コロナ禍の波は、私の財布を直撃している。ここは無茶を承知でSMR方式のHDDを採用してみようと思う。S.M.A.R.Tなどを監視し、不具合が出る様であれば順次入れ替えていくという方式を取りたい。やっぱり高耐久HDD買わないとだめだねと言うのは身をもって体験してみないと実感できないのではないか。使わなかったらどうなるのか。気になる。raidz-1で1台まで壊れてもいいよと言う状況で運用するならば、即arrayが壊れてアクセス不能という状況に陥ることもないと信じ、身をもって実験してみたい。ということで、SMR方式で安価で人気の、Seagate BarraCuda 8TB ST8000DM004を4台で32TB、raidz-1で1台分がパリティで使用されるので保存可能領域は24TBになる様に組んでみたい。
最後に10GbEのNICの超早いネットワーク
うちには例の祭りの折に購入した例のAT-X510-28GTXがある。光ケーブルでの10GbEの環境があるのだ。これは使わない手はない。ハイブラケットのカードが刺さるケースを探していたのも、将来的に小型ゲーミングPCに鞍替えした時にグラボを搭載できるようにと言う意味もあるが、うちにある10GbEのNICカードがハイブラケットだったからという理由もある。
X10SDV-4C-TLN2F には10GbEがデュアルLANで2つもついているが、10Gbase-Tなのだ。 10Gbase-T は使用する電力が2~3Wと高く発熱が酷いという問題がある。SFP+では1W程度であることを要求しているので、SFP+のポートに10Gbase-Tのモジュールを刺すと熱すぎてどえらいことになりかねない。ケーブルもノイズに強い高品質なケーブルを選ぶ必要がある。マザーボード側も冷却をかなり頑張らないと通信が不安定になりがちだ。筐体の中の温度が上がるのはシステムの寿命を縮めてしまう。なので X10SDV-4C-TLN2F にSFP+のポートを追加できるカードを刺して、10GBASE-SRの光ファイバーで通信するのが発熱も少なく通信も安定してトレンディーである。
これで材料はそろった。長くなってしまったので今回はここまで。次回はこれらを組んでPCにしつつNAS兼お遊びサーバーとして完成させていきたいと思う。震えて待て!
10GBase-SR SFP+モジュール, 10G 850nm MMF, 最大300m, 光トランシーバ, Cisco SFP-10G-SR、Meraki MA-SFP-10GB-SR、Netgear、Ubiquiti UF-MM-10G、Mikrotik、Fortinet、D-Link、Supermicro、TP-Linkなど互換
10Gtek 10G PCI-E NIC ネットワークカード, Intel X520-DA1/X520-SR1に相当, シングルSFP+ポート PCI Express イーサネット LANアダプターサポートWindows Server/Linux/VMware, PCI-E2.0 X 8, PCサーバ用