HN 日本語サマリー

← 一覧へ戻る
その他

スペアパーツから構築したカスタムホームサーバー

Custom home server built from spare parts (asmat.ca)

60 pointsby sotilrac25 コメント

要約

Googleなどのクラウドプロバイダーからのストレージ容量不足の警告とプライバシー懸念を受け、筆者は家族のファイル保管、写真バックアップ、常時稼働のダウンロードマシンとして機能するカスタムホームサーバーを構築しました。古いZotac MAGNUS EN1070Kをベースに、3Dプリントした拡張パーツでストレージ容量を増やし、多数のHDDを搭載したNASとして機能させました。TrueNASの代わりにKubuntuとDocker Composeを使用し、独自開発のダッシュボードと小型タッチスクリーンで操作性を向上させています。

全文翻訳

バナナNASになった

Googleをはじめとする、あらゆるエンシュイット化されたクラウドプロバイダー(あるいはディーラー)に促されて、私はこれを行うことになった。約1年間、私のスマートフォンはアカウントの空き容量が少なくなっていると警告し、写真のバックアップをNextcloudインスタンスに移行してスペースを解放した。すると、今度はバックアップがオフになっているとリマインダーが送られてくるようになった。Gmailも同様で、あちこちに便利な「アップグレード」ボタンが表示される。私は一生涯、自分の写真のためにスペースを借りたくはないし、ましてやGoogleにそれらを見られたくもない。家族のファイルを保管する場所、何年にもわたる写真の自動バックアップ、そして誰にも気づかれずに24時間Linux ISOをダウンロードできるマシンが欲しかった。NASが欲しいと思ったので、自分で作った。

[画像: 完成したビルド]

完成したビルド

パスカルの賭け

正直に言うと、ここ数年、特にGPUはコンピューターを買うのがますますクレイジーになっている。幸いなことに、私がこれまでに買ったすべてのコンピューターにはGPUが搭載されていた(いつその甘美で強力な行列計算が必要になるかわからないだろう)。そして、まさにその仕事にぴったりのコンピューターを持っていることが判明した。

登場したのはZotac MAGNUS EN1070Kだ。これはi5と古き良きGTX 1070を搭載したコンパクトなボックスだ。数年間、リビングルームのメディアセンターや時折のゲーミングリグとして使っていた。ロボットのプロトタイプでも同じモデルを使用しており、そこで素晴らしいパフォーマンスを発揮した。アイドル時の消費電力が低く、GPUでビデオをトランスコードでき、小さなローカルモデルも文句なく実行できる。このパスカルGPUアーキテクチャの選択が、最終的な結果にこれほど影響するとは、その時は知る由もなかった。

問題は、Zotacがシングル2.5インチドライブしか搭載できないように設計していたことだ。そこで、私はOnshapeで本体の拡張パーツを設計し、ガラス繊維強化ABSでプリントして取り付けた。内部にはICY Dockの5ベイホットスワップケージ、6台目のドライブ用のプリント製ホルダー、そしてPico PSUが搭載されている。これは、Zotacのアップグレードされた19.5VのACアダプターから、DC-DCコンバーターを介して供給されている(6台のドライブが同時に起動する際には、一瞬約125Wを消費する)。そして、空気を循環させるためにNoctuaファンを取り付けた。6つのSATAポートは、M.2スロットにあるASM1166アダプターから来ている。そのため、1TBのブートSSDは現在2.5インチベイに収まっている。

[画像: プリントされた拡張パーツの上に載せられたZotac]

プリントされた拡張パーツの上に載せられたZotac

その他のアップグレードは、私のジャンク箱から出てきたものだ。古いラップトップから取り出した2つのDDR4メモリが、メモリをプラットフォームの最大値である32GBまで引き上げた。手元にあったSSDがブートドライブとなり、以前のプロジェクトで使っていたWiFiカードが元のカードと交換された。購入したのはケージ、アダプター、そして残念ながらドライブだけだった。

苦労して手に入れた方法

今は2026年、私は6台のハードディスクドライブを購入した。買いたくはなかった。機械的に回転するストレージはもう過去のものだと思っていた。それだけの容量のSSDは、もし見つかったとしても、腎臓をいくつか売るほどの値段になるだろう。NASにとって、TBあたりの価格は非常に重要だ。私はそれを可能な限り実用的なレベルに抑えるよう最善を尽くした。誤解しないでほしい、ハードドライブも安くはない。AIデータセンターは、ファブが製造できるすべてのドライブ、メモリチップ、GPUを購入している。Western Digitalのハードドライブ生産は2026年すべて完売し、DRAMとNANDの契約価格は四半期でほぼ倍増し、残りは我々がどんな価格でも手に入れることになる。eBayには中古のNASドライブの良い市場があり、私は8TBのWD Red Plusのペアを適正な価格で手に入れることができた。

これらは単一のRAIDZ2プールに収められている。生容量43.7TB、実効容量29TBで、2台のドライブが同時に故障してもデータは失われない。私はライブプールからドライブを1台引き抜いてこれをテストした。読み書きは継続され、Sambaはサービスを提供し続け、数秒後にメールでアラートが届いた。そして、ドライブを元に戻すと自動的にリシルバリングされた。何も実際に燃えていないときに、それがどれほど満足感を与えるかを過小評価するのは難しい。

[画像: ベイ2番を引き抜いた状態]

ベイ2番を引き抜いた状態

私だからというわけではないが、プールは暗号化されており、家の中の別のキーサーバーから起動時にアンロックされる。そのため、これを盗んだとしても、それはかなり重いペーパーウェイトになるだろう。マシン自体が8.5kgあり、元の300W電源に取って代わった500Wの電源アダプターを含めると10kgを超える。

ファンのみ

熱い話題だ。サーマルは悪い。一般的なスチールケースはドライブから熱を逃がすが、私のプリント製ケースはそれを断熱する。6つのベイのうち5つはアイドル時に45℃で、理想温度より10度高い。ダッシュボードは毎日それを警告してくる。エンクロージャーを何度か改良し、追加ファンを取り付けた。状況は少し改善されたが、まだ熱い。嬉しい発見は、Noctuaファンが確かに静かでよくできていることだ。

私の冷却戦略

幸い、冬が来るので、いじり回す時間がある。

アイキャンディ

ここで止めることもできた。OSをインストールして、次に進むことも。しかし、私はもっと欲しかった。具体的には、面白いUIを試したかった。このコンピューターは大きな画面に接続されることを意図していないので、根本的に違うことをする良い機会だと考えた。小さな画面を接続したのだ。

フロントにある1.47インチのタッチスクリーンには、あまりにも誇りを持っている。これは、ZotacのUSBコネクタのパッドにハンダ付けしたESP32-S3(EN1070Kには内部USBヘッダーがない)によって駆動されている。NASはシリアル経由でステータスをストリーミングし、C言語で書かれたファームウェアとLVGLが、プールヘルス、ドライブ温度、アプリステータス、ネットワークスループットなどを表示する7つの画面をレンダリングする。しばらくするとスリープ状態になり、タッチでウェイクアップする。マシンを通り過ぎるだけで、別のデバイスを手に取ることなく、何が起こっているかを一目で確認できる。それに、見た目も洗練されている。

ジェスチャー認識付きタッチスクリーンステータスパネル

最後の画面は電源メニューで、フロントパネルからマシンをシャットダウンしたり再起動したりできる。最後の瞬間に気が変わった場合に備えて、義務的な不気味なカウントダウンも付いている。

NASのシャットダウン

TrueNASの真実

このプロジェクトに入る前に、多くのYouTuberがTrueNASをビルドに推奨し、その多くの機能を喧伝しているのを見た。私は無邪気に彼らを信じ、完璧に見えるNASディストリビューションを使えるだろうと想定した。なんと残念なことか。

NASはルーターから離れた場所にあり、有線接続が利用できないため、WiFiで動作している(わかっている、恥ずかしい!)。これは予想よりも私を悩ませなかった。WiFi 6Eカードは、ボックスのギガビットポートのどちらよりも高い帯域幅を交渉でき、実際のスループットは893 Mbit/sを測定した。

しかし、驚いたことに、これがTrueNASを不可能にした。UIでもコンソールでも、ワイヤレスサポートが全くないのだ。最新リリースでは、プロプライエタリなNVIDIAドライバーを廃止し、オープンカーネルモジュールに切り替えたが、これはPascal GPUをサポートしていないため、1070も無駄な重りになっていただろう。2つのハードブロックに加えて、できることがほとんどないことに失望した。それはアプライアンスであり、ベースシステムからあなたを遠ざけたいのだ。私のディスプレイデーモンでさえ、/dev/ttyACM0経由で通信するものは、実行するのが厄介だろう。

そのため、NASはZFSを搭載したKubuntu 24.04で動作し、その他すべてはCaddyの背後にあるDocker Composeで動作し、自分で書いたダッシュボードを備えている。1ページ構成で、ボックス自体をエコーするようにアンバー(琥珀色)とブラックの配色だ。ハードウェアとサービスの完全なステータスを表示する。これはNASのすべての機能へのポータルだ。ダッシュボードに供給されるJSONは、ESP32にシリアライズされて送信されるものと同じだ(単一の真実の源で両方のUIを一致させる)。バックアップやスピードテストなどのトリガーを起動するためのActions APIもある。結局のところ、これは私が知っているどのNASダッシュボードよりもはるかに優れた機能を提供している。

各アプリはTLSで独自のホスト名を取得し、すべてがgitリポジトリになっており、makeターゲットでコンパイルファイル、systemdユニット、Python、C、ドキュメントをリンティングおよびテストしている。私はこれをゆっくりと独自のOSに変えており、提示可能になったら共有するつもりだ。

[画像: 家庭のオタクのニーズすべてに対応するサイバーパンクなワンストップショップ]

家庭のオタクのニーズすべてに対応するサイバーパンクなワンストップショップ

私たちがNASと呼ぶもの

名前とは何だろうか?NASは時代遅れの言葉だ。確かに、ネットワークに接続されたストレージだが、このボックスはメディアをサーブし、写真をインデックス化し、パスワードマネージャーを実行し、家庭のgitリポジトリをホストし、バックアップを保持し、ISOをダウンロードする。それは家庭のコンピューターであり、家が暖房や給湯器を持っているようなものだ。これが私が実際に欲しかったものだ。残念ながら、キャッチーな短い名前は(まだ)ない。

[画像: NAS、正面]

NAS、正面

私はしばらくの間、クラウドから離れてきた。そしてこれは私のこれまでの最大のステップだ。このマシンに置いたすべては私のものだ。私が監視できる場所に留まり、サブスクリプション、利用規約の更新、あるいは私の写真がそのトレーニングセットに属すると会社が決定することに依存しない。クォータ警告も止まった。私は家庭用コンピューターが標準になると予想している。それらは私たち自身のデータ、永続性、そして独立性に対する所有権を与えてくれる。そして、ほとんどの人はすでにハードウェアを、引き出しの中で眠らせているのだから。

[画像: i went bananas nas top][画像: i went bananas nas case joint][画像: i went bananas nas back][画像: i went bananas drive trays fanned]