メインコンテンツへスキップ

テイネの麓からZFSプールへ:真夏のN54L 16GBメモリ極限延命戦記

·2204 文字·5 分
著者
hidetti

はじめに:夏だけど、頭の中は年中パウダー
#

2012年生まれの可愛い相棒「HP ProLiant MicroServer N54L」。令和も中盤の2026年現在、あえてこのTurion II Neoという激渋プロセッサと、最大16GBという極限のメモリ制約を持つ名機をセルフホストの要塞として延命させる――。

これが、我がブログ『Carve, Powder, and Commit』の記念すべき最初のハックログ!

今はすっかり緑に包まれた7月のテイネ山(手稲山)を眺めながら、「早く冬にならないかな…」とスノーボードの動画をディグる日々。スケートボードでのオフトレや愛車のメンテで汗だくになったあと、冷房をガンガンに効かせた部屋で冷たいコーラを片手にシェルを叩く。ZFSプールにコマンドをカチ撃ちする瞬間こそ、インフラ屋として最高に脳汁が出る時間だ。

今回は、この愛すべき無骨なキューブ筐体を現代のセルフホスト環境で生き残らせるための、血と汗と(コーラの)涙のチューニング記録をお届けする。


1. TrueNAS SCALE × ZFS:16GBメモリの極限サバイバル
#

ZFSという最強のファイルシステムは、デフォルト状態だと「あればあるだけメモリを食い尽くす」という超大食漢。しかし、我がN54Lの最大積載メモリは16GB。ここにモダンなTrueNAS SCALEを載せ、さらにMemosやHome Assistant、Immich(家族写真のバックアップ)などのコンテナ群を共存させるのは、まさにリソースの極限の「削り出し」だった。

まずは、暴走しがちな ZFS ARC(キャッシュ)の制限設定 から着手。

メモリ空間を「ARCに8GB」、「OSとコンテナ群に8GB」と脳内で美しく二分するパッチを適用。さらに、リソースをジワジワ食うリアルタイム監視ツール(netdata)などの余計なサービスを徹底的にシバいて停止させた。

結果として、14年落ちのTurion CPUに一切のスパイク(負荷突入)を起こすことなく、安定の CPU負荷0% を維持する平穏なリソースプールが完成。大成功である。


2. 夏のゲリラ豪雨と激しい落雷に勝つ:電源防衛戦略
#

冬の猛吹雪も怖いが、夏のテイネの麓だって油断できない。そう、「ゲリラ豪雨と激しい落雷」 である。バリバリと響く雷による瞬低(瞬間電圧低下)や突然の停電は、書き込み中のZFSプールにとって一撃必殺の致命傷になり得る。

我が家は太陽光発電と家庭用蓄電池を完備しているけれど、電力切り替え時の数ミリ秒の瞬低を無効化する「ラストワンマイルの防衛線」が欲しい。

そこで配備したのが、オムロン製UPS「BW55T」

TrueNAS SCALE上で blazer_usb ドライバ(および ippon サブドライバ)をマウントし、UPSとのシリアル通信のバイパスを確立。停電を検知したら360秒(6分)以内に安全にシステムをランディングさせる自動シャットダウン戦略を構築した。もちろん、Home Assistantへのステータス同期もバッチリ。

ここで、TrueNASが再起動したときにUSBのアクセス権限がリセットされてUPSを見失うという可愛いバグに直面。これに対しては、システム起動時の設定(Post Init Script)に以下のコマンドを登録して力技で解決!

chmod 666 /dev/bus/usb/00*/* 2>/dev/null || true

これで、外がどんな雷雨だろうとも、入力電圧101Vを1パケットの零れもなく維持する「電源の絶対安全圏」を確保。これで夏のお出かけ中も枕を高くして眠れる。


3. Cloudflare Tunnel:黄金の盾で要塞化
#

セルフホストしたMemosやImmichの家族写真を外部から安全に利用するため、自宅のグローバルIPを1ミリもインターネットの海に晒さない 「Cloudflare Tunnel」 のトポロジーを採用した。

自宅ルーターのポート開放を完全にゼロにした上で、内部からトンネルを確立。さらにフロントにはCloudflare WAF(Web Application Firewall)という「黄金の盾」を配置し、海外IPからの邪悪なポートスキャンや攻撃パケットは、エッジサーバーの手前ですべて火花を散らして弾き飛ばされる。一方で、プライベートな管理画面へのアクセスはTailscale(VPN)を必須とし、バックヤードの防衛線も完璧に要塞化している。


🛠️ 技術備忘録:N54L要塞化のコンフィグ(再現用)
#

今後の再構築や再現性のために、今回の「テイネの麓仕様」のコアコンフィグをここにストックしておく。

① ZFS ARCの8GB制限(sysfs設定)
#

メモリの半分をAppコンテナ空間として確実に確保するための設定値。

echo 8589112320 > /sys/module/zfs/parameters/zfs_arc_max

② NUT(Network UPS Tools)ドライバ設定
#

オムロン BW55Tからipponプロトコル経由で、電圧・負荷・バッテリー残量を正確にトラッキングするための補助引数(Extra Arguments)。

  • Driver: blazer_usb
  • Subdriver: ippon
  • 引数: subdriver=ippon, vendorid=0590, productid=005b

🛡️ 現在の要塞ステータス(ALL GREEN)
#

このログを打ち込んでいる現在も、我が要塞のインフラレイヤーは完璧な調和を保っている。

  • CPU / RAM: 0.05 / 16GB(ARC 8GB制限によりコンテナ空間が深呼吸中)
  • オムロン BW55T: 101V / 100%(常時追従・360秒自動落城タイマー起動)
  • Network: ステルスモード(Cloudflare Tunnel + Tailscale要塞化)
  • ZFS Pool: HEALTHY(深夜帯のスクラブ・バックアップ自動タスク化)

真夏に汗をかき、冬を夢見て、キーボードにコミットする。 テイネの麓に構えたこのN54L延命戦記は、まだまだ始まったばかりだ。