前言#
これは継続的なシリーズのテーマ記事となります。最初は家庭の homelab の構築から始まり、徐々にいくつかの高度なシステム、ネットワーク、サービスの学習に進んでいきます。できるだけ初心者の視点で簡単でわかりやすい言葉で説明します。シリーズ記事では家庭ネットワーク、ルーター、Linux、データストレージ、NAS、サービス化などが取り上げられます。もし途中で何か問題が発生した場合は、気軽にメッセージをください。
搭建 homelab 起因#
homelab: 家庭内での(通常はやや古い)素晴らしい実験室
言葉の直訳から言うと家庭の homelab と言えますが、これをネットワークやサービスに拡張すると、面白いことがたくさんできます。例えば:
- NAS ストレージ:リソースのダウンロード、あらゆるデータの保存(写真、女の子、学習資料、コードなど)
- 映画ライブラリ:最もシンプルなネットワーク共有フォルダーから、映画管理、再生、トランスコードを一体化した Jellyfin、Plex サービスまで
- ネットワーク管理:デバイスの帯域制限、トラフィック監査、ファイアウォールポリシー
- アプリケーション開発:サイドプロジェクトのための開発環境、キャッシュ、データストレージなど
- DevOps:ansible、salt、k8s を使用して複数のサーバー、VM、または lxc を操作・維持
もしあなたがソフトウェアアプリケーション開発者であれば、homelab はスキルを拡張するための素晴らしい実験の場です。ネットワークトポロジー、Linux システム、安全管理などを学ぶことができます。ほとんどの人は NAS サーバーについて多少は聞いたことがあるでしょうが、実際にはそれも homelab の実践的な応用の一つです。
その名前に驚かないでください。本質的には、あるオペレーティングシステム上で、上記に挙げたサービスや挙げていないサービスをいくつか実行するだけです。
自建考虑的点#
上記のポイントがどれほど魅力的であっても、自分の家庭の homelab を構築する必要が本当にあるのか慎重に考える必要があります。結局のところ、一式を整えるにはかなりの労力と資金が必要ですので、需要がないのに需要を作り出さないようにしましょう。
本シリーズの内容では、オープンソースで無料のソリューションを優先的に考慮します。本当に満たせない場合は、商業的なソリューションも共有します。
商业成品方案#
商業製品は主にソフトウェアサービスを販売し、ネットワーク管理、データストレージなどのソリューションを提供します。市場で主流のものは以下の通りです:
- 群晖: ハードウェアとセットで販売され、あらゆる面で非常に満足のいくソフトウェアシステムで、初心者にも非常に優しい
- 威联通: ハードウェアとセットで販売されるソフトウェアで、群晖よりも価格が優位ですが、ソフトウェアシステムは群晖に比べて劣ります
- UnRaid: 商業的な NAS システムですが、迅速な拡張、Docker および VM 管理を提供します
- UniFi OS: 主に Dream Machine に搭載されたシステムで、全体的に価格が非常に高い
通常、商業製品はワンストップソリューションであり、調達する場合、費用は自作よりも多くの資金が必要です。これは homelab の考慮範囲には含まれませんので、ここでは簡単に触れるだけにします。
开源 & 免费方案#
自作の homelab は必然的にハードウェアとソフトウェアから始める必要があります。準備が整ったら、ネットワークトポロジーを決定します。
硬件筛选#
国内外のハードウェア環境には非常に大きな違いがあります。国内には多くの洋ゴミや魔改造ハードウェアの議論があります。例えば、あなたが聞いたことがあるかもしれない E3/E5 神教やゴミ屋などの用語です。
もしあなたがこの分野の専門家であれば、かなりの金額を節約できるでしょう。そうでない場合でも、データの安全性のためにお金をしっかり使うことを忘れないでください。盲目的にゴミ屋のハードウェアを手に入れないようにしましょう。ゴミを拾うことにはリスクがあり、一部のハードウェアは非常に高くオーバークロックされることがあり、そのコストパフォーマンスは非常に低く、手に入れる価値がありません。
最も重要な部分は、CPU、メモリ、マザーボード、ネットワーク、ハードディスクです。
- CPU とメモリは理解しやすく、CPU のコア数やメモリ容量が多いほど性能が向上します。映像再生に要求がある場合は、CPU に良いコアサポートが必要です。
- マザーボードはネットワークポートの数や拡張スロットに依存します。ネットワークポートの数とハードディスクの数が少ない場合は、拡張スロットを使って補う必要があります。
- ネットワークの状況は非常に重要です。WiFi 6 の伝送速度は千兆有線には及びません。自宅のモデムとルーターは最低でも千兆ネットワークを要求し、有線もできるだけ CAT5e/CAT6 規格にしましょう。
- NAS の使用シーンはハードディスクの容量と規格に対する要求が高く、SSD は必須ではありませんが、資金に余裕があれば全て SSD にするのも悪くありません。
ここでの各トピックは非常に大きなテーマであり、外部リソースを整理してこの分野の知識を補充することを考えています。市場にはいくつかの完成品ハードウェアのソリューションもありますので、考慮することができます:
- インテル NUC:小型のモデルは性能が弱いわけではなく、最新の 12 世代の NUC はあらゆる面で非常に良い選択です
- レノボ ThinkCentre シリーズ:NUC より少し大きいですが、このシリーズは非常に大規模で歴史も長く、価格が適切な中古や改造品も多くありますが、手間がかかることがあります
- HP MicroServer Gen シリーズ:Gen8/Gen10 は現在の主流の homelab ソリューションで、正統なサーバーの仕様と特性を持っています。(私は現在 Gen 8 を使用しています)
- 様々な開発ボード:例えば、Raspberry Pi は 3B から始まり、いくつかの homelab の使用シーンを実現できます。国内外の資料が豊富で、アクセサリーも多くあります。唯一の欠点は、新型コロナの影響で国内での価格が高止まりしていることです。他の成熟した開発ボードを考慮することもできます。
- 様々なマイニングマシン:ブロックチェーンの流行により、マイニング業界には多くのマイニングマシンが溢れています。例えば、Starlink、Green Disk、Honey Badger などがあり、一部のハードウェアのパラメータは良好で、手に入れた後に調整や静音ファンの変更を行えば使用可能です。
最も簡単なバージョンは、長期間稼働可能な使用しなくなったノートパソコンやデスクトップコンピュータを見つけることです(消費電力が高すぎる場合は、本当に諦めましょう)。
软件部署方案#
ハードウェアの準備が整ったら、どのソフトウェアデプロイメントソリューションを組み合わせるかを考えます。通常、次の 3 つの大きなカテゴリに分けられます:
- 伝統的なデプロイメント(Traditional Deployment)
- 仮想化デプロイメント(Virtualization Deployment)
- コンテナ化デプロイメント(Containerd Deployment)
通常、ハードウェアの性能が良好な場合、伝統的なデプロイメントのソリューションは採用されません。単一ホストの優先順位は:コンテナ化 > 仮想化 > 伝統的なデプロイメント。マシンの性能が良く、技術的な興味がある場合の優先順位は:仮想化 > コンテナ化 > 伝統的なデプロイメントです。
传统部署#
伝統的なデプロイメントは通常、Bare-metal マシン上で行われるため、私はこれらを同一視しています。ハードウェアホストに Windows、macOS、*nix(Unix/Linux)などのオペレーティングシステムをインストールした後、サービスを直接インストールしてデプロイします。特に何も特別なことはありません。
市場には、システムのインストール、環境の設定、後期のメンテナンス、データバックアップの作業を解決するための多くの運用ツールがあります。例えば、Salt、Ansible、Puppet などは一定の学習コストがあり、すぐに使えるわけではなく、ハードウェアの機能を 100% 発揮することも問題です。
虚拟化部署#
- ESXi: VMware 社が開発したハードウェア仮想化ソリューションで、インターフェースがシンプルで使いやすく、自身の機能が強力で、有料で使用します
- Proxomx: Debian を基に開発された企業向け仮想化システムで、ハードウェアパススルーをサポートし、拡張可能なクラスターを持ち、習得難易度はやや高い、略称 PVE
オープンソースのソリューションにはあまり選択肢がないため、PVE は市場で最も成熟しており、コミュニティも非常に活発なソリューションです。
奇妙な問題に直面しても、検索エンジンを活用すれば解決できます。
容器化部署#
- Docker: 現代のコンテナ化の先駆者で、自身が引き起こした大規模な脱退により、以下の 2 つのソリューションが生まれました
- Containerd: Docker の親会社から始まり、CNCF 財団で成長し、nerdctl を提供して docker CLI の代わりになります
- Podman: Red Hat 社が主導する Docker 互換のソリューションです
一言でまとめると、理解できなければ docker を使えば大丈夫です。
基础系统#
伝統的なデプロイメントを選択する場合は、あなたが慣れていてニーズを満たすオペレーティングシステムを自由に使用すれば良いです。
应用服务#
ソフトウェアとハードウェアの基盤が整った後、あなたは非常に多くのアプリケーションサービスに直面し、homelab を拡張し豊かにする必要があります。
初阶方案#
软路由#
- openwrt: 国内で最近非常に主流のソリューションで、国内にはimmortalwrtという分岐バージョンがあります
- 梅林: ASUS が開発したオープンソースのルーターのファームウェアで、国内にはkoolcenterという改版があります
- dd-wrt: ルーターを刷る初期の頃の懵懂なファームウェアで、ハードウェアのサポート度と更新頻度に制限され、次第に遠ざかっています。当時は多 WAN をサポートしていた tomato です
网关#
- nginx: 老舗の伝統的なゲートウェイで、ウェブサイトサービスをホスティングまたはリバースプロキシするために使用されます
- caddy v2: 現代的なデザインの HTTP/2 で、Let’s encryptをサポートするゲートウェイです
DNS#
- dnsmasq: すべての基盤で、DNS と DHCP サービスを設定するために使用されます
- pi-hole: プライバシー保護と広告フィルタリングを主眼に置いたルーティングシステムで、海外のユーザーによく使用されます
- adguard home: プライバシー保護と全網広告フィルタリングに特化したサービスで、ユーザーフレンドリーな UI を提供します
- smartDNS: DNS 解析を加速し、分流する DNS サービスです
- mosdns: smartDNS と adguard home の利点を兼ね備えた DNS サービスですが、設定が面倒です
防火墙#
- iptables: Linux で一般的な内蔵ファイアウォールです
- nftables: iptables の公式強化版で、将来的には徐々に移行されるトレンドです
- pfSense: 海外で一般的に使用されるオープンソースのファイアウォールです
NAS#
- OpenMediaValut: ハードウェア依存が低い門戸の広い NAS システムです
服务部署#
- portainer: 簡単で使いやすいコンテナ化デプロイメントソリューションです
影音#
- Jellyfin: 映画やドラマなどのメディア再生サービスで、ソース資料の収集や視聴データの同期サービスをサポートします
应用#
- Bitwarden: オープンソースで完全に 1Password の代替となる全プラットフォームのパスワード生成管理サービスで、Rust で書き直されたVaultwardenの使用を推奨します
- ZoneMinder: オープンソースの多路カメラ&録画管理サービスです
さらに多くのアプリケーションについては、私の自建服务集合をチェックしてください。
高级进阶#
以下に紹介するのは、私の個人的な能力の範囲内で思いついた点に限ります。能力が限られているため、どうかご容赦ください。
网关#
- traefik: オープンソースのリバースプロキシおよび負荷分散の総合ツールです
NAS#
- TrueNAS: 海外でデータストレージの第一選択肢で、ZFS ファイルシステムに基づき、メモリサイズがディスク容量の上限を決定します。前身は FreeNAS です
服务部署#
- Kubernetes: 現代のコンテナオーケストレーションシステムで、いわゆるクラウド YAML エンジニアの究極のツールです 😆
小结#
homelab の遊び方の可能性は無限大です。想像力を最近国内で流行しているいわゆる AIO ブームに制限しないでください:
すべてを pve でデプロイし、さらに openwrt + docker を使用して各自のサービスをデプロイする際に問題が発生した場合は別として、
本当にサーバーがダウンした場合、すべてが一緒に失われます。
また、サーバーの消費電力についてあまり気にしないでください。電力消費が 35W でも 65W でも、あまり電気代は節約できません。
以下は良い例です。X99-T8D + E5 2696V3*2 + 金河田 6100 デュアル電源を使用していますが、
開発者は主に自分のシーンに適した使用のために使用しているので、無駄ではありません。
最後のアドバイスとして、国内の情報相談サイトの OpenWrt や NAS の記事は見るだけで良いです。あまり真剣に考えないでください。
その時間を使うよりも、公式ドキュメントや公式コミュニティの議論をもっと見た方が良いです