タグ: 10G

  • 4畳半に作った自宅ラボ環境を紹介|Proxmox・10GbE・NASで構築

    自宅ラボ用に19インチラックをDIYし、サーバーやネットワーク機器の電源を守るためにUPSも導入しました。

    今回は、それらの機器を含めて、現在運用している自宅ラボ環境を紹介したいと思います。

    自作PCが好きで、最初はLinuxを触るところから始まりました。

    その後、Proxmoxを使った仮想化環境を作り、サーバーが増え、ネットワークを10GbE化し、NASやバックアップサーバーも導入。

    気が付けば、4畳半の部屋に自宅ラボができていました。

    そして最終的には、機器を整理するために19インチラックまで自作することになりました。

    この記事では、現在の自宅ラボのハードウェア、ネットワーク、サーバー構成、そして実際に動かしているサービスをまとめて紹介します。


    自宅ラボの全体像

    現在の自宅ラボは、大きく分けると以下のような構成になっています。

    • Proxmox VE 3ノード
    • NAS兼GPUサーバー
    • TrueNAS
    • Proxmox Backup Server
    • 10GbEネットワーク
    • iSCSIを利用したストレージ環境
    • ZFSによる冗長化
    • Dockerを利用した各種サービス

    以前は機器を床や一般的な棚に置いていましたが、サーバーやネットワーク機器が増えるにつれて管理が難しくなってきました。

    そこで、現在はDIYした木製の19インチラックを中心に機器をまとめています。

    ラックについては、以前の記事で製作過程を紹介しています。

    自宅ラボは「最初から大規模な環境を作ろう」と思って始めたものではありませんでした。

    自作PCから始まり、Linux、Proxmox、ネットワーク、ストレージと興味が広がっていった結果、少しずつ現在の環境になりました。


    自宅ラボの主なハードウェア

    現在使用している主な機器はこちらです。

    ネットワーク機器

    • YAMAHA RTX1200
    • Allied Telesis AT-x510L-28GT
    • XikeStor SKS8310-8X
    • XikeStor SKS1200-4GPY2XF-P
    • Buffalo WSR-1166DHPL2

    メインのネットワークにはAllied Telesisのスイッチを使用し、SAN用には別の10GbEネットワークを構築しています。

    家庭用のネットワークと、自宅ラボのネットワークを分けているのも現在の環境の特徴です。


    サーバーはProxmox VEを中心に構築

    自宅ラボの中心になっているのは、Proxmox VEです。

    現在は3台の自作PCでProxmoxクラスターを構成しています。

    Proxmoxノード(2U)

    • pve01
    • pve02
    • pve03

    それぞれAMD Ryzen 3 4100を搭載した自作PCで、10GbE NICを追加しています。

    仮想マシンやコンテナを複数のノードで動かすことで、さまざまなサービスを試せる環境になっています。

    Proxmoxを使い始めたことで、「1台のPCにLinuxをインストールして使う」だけだった環境から、仮想化を利用した本格的な自宅サーバー環境へ発展しました。


    NAS兼GPUサーバー(3U)

    自宅ラボには、NASとGPU処理を担当するサーバーもあります。

    このサーバーには、

    • AMD Ryzen 5 3400G
    • メモリ64GB
    • AMD Radeon RX 9060 XT 16GB
    • 10GbE NIC

    を搭載しています。

    GPUを搭載しているため、通常のNAS用途だけではなく、AI関連の処理にも使用しています。

    現在はProxmox上でAI用の環境も構築しており、OllamaやStyle-Bert-VITS2などをDockerで動かしています。

    自作PCとして使っていた機器を、その後どう活用するか。

    自分の場合は、その答えのひとつが「自宅ラボのサーバーにする」でした。


    TrueNASとストレージ環境

    ストレージ用には、PRIMERGY TX1320 M3を使用してTrueNAS SCALEを動かしています。

    自宅ラボでは、ZFSを利用してストレージを冗長化しています。

    また、SAN用に分離したネットワークを用意し、iSCSIを利用してProxmoxノードへストレージを提供しています。

    ※夏場は室温上昇によるSASディスクの騒音問題が発生し、NAS機能をGPUサーバに移しています。

    現在のネットワークは、大きく以下のように分けています。

    家族用ネットワーク

    192.168.11.0/24

    自宅ラボ用ネットワーク

    192.168.2.0/24

    Proxmoxクラスタ用ネットワーク

    10.1.1.0/24

    SAN用ネットワーク

    10.2.2.0/24

    用途ごとにネットワークを分けることで、管理しやすい環境を目指しています。

    特にProxmoxクラスタやストレージ関連の通信を、普段使っているネットワークと分けているのが特徴です。


    10GbEネットワークを導入

    自宅ラボでは10GbEネットワークも構築しています。

    最初から10GbEが必要だったわけではありません。

    しかし、仮想マシンを複数運用するようになり、ストレージをネットワーク経由で利用するようになると、高速なネットワークにも興味が出てきました。

    現在は10GbEネットワークを利用して、

    • Proxmoxノード間の通信
    • SANへの接続
    • ストレージへのアクセス

    などを行っています。

    自宅で10GbE環境を構築するのは少し大げさにも見えますが、「自宅で試せる環境がある」ということ自体が自宅ラボの面白さだと思っています。

    仕事で触る技術でも、実際に自分で構築してみると理解が深まります。


    バックアップ専用サーバーも用意

    仮想化環境を作ると、次に気になってくるのがバックアップです。

    現在はProxmox Backup Server専用の自作PCを用意しています。

    バックアップサーバーには、

    • Intel Core i3-8100T
    • メモリ16GB ECC
    • NVMe SSD
    • HDD 1TB×2
    • HDD 500GB×1

    を搭載しています。

    Proxmoxの仮想マシンやコンテナを運用するだけではなく、「障害が発生したときにどう復旧するか」まで考えるのも自宅ラボの楽しさのひとつです。

    新しいサービスを作るたびに、バックアップ対象も増えていきます。

    その結果、専用のバックアップサーバーを用意することになりました。

    ディスクはシングル構成でVMデータと、Immich、Sambaなどのデータでディスクを分けています。


    自宅ラボで実際に動かしているサービス

    自宅ラボでは、単純にサーバーを並べているだけではありません。

    Proxmox上で仮想マシンやコンテナを作成し、さまざまなサービスを運用しています。

    DNS・ネットワーク関連

    LAN内の名前解決用として、

    • Bind9
    • AdGuard Home
    • Tailscale

    などを利用しています。Bind9はLPICの資格試験勉強のために構築したものです。


    監視環境

    モニタリング用のサーバーでは、

    • Grafana
    • PostgreSQL
    • Python

    などを使用しています。

    SwitchBotの温湿度計やスマートプラグも利用しており、サーバー室の温度や電力を監視しています。

    異常があった場合には、Discordへ通知が届くようにしています。

    サーバーが増えると、「ちゃんと動いているか」を確認する仕組みも必要になります。

    自宅ラボではありますが、監視の仕組みを作ることで、運用する楽しさも増えました。


    Nextcloud

    Nextcloudも自宅ラボで運用しています。

    Docker上で、

    • Nextcloud
    • MariaDB
    • Nginx
    • Redis
    • Tailscale

    などを組み合わせています。

    スマートフォンからもアクセスできるため、自分の環境やナレッジを保存する用途などに利用しています。


    AIサーバー

    GPUを搭載したサーバーを活用し、AI関連のサービスも動かしています。

    現在は、

    • Ollama
    • Style-Bert-VITS2

    などをDockerで運用しています。

    自宅にGPUサーバーがあることで、クラウドサービスを利用するだけでは分からない部分も実際に試せるようになりました。


    家計簿Webアプリ

    自宅ラボでは、自分で作成した家計簿Webアプリも運用しています。

    FlaskやMariaDBなどを使用し、AIサーバーとも連携しています。

    レシートを読み取り、購入履歴や支出を管理する仕組みを作っています。

    自宅ラボがあると、「こんなものを作ってみたい」と思ったときに、すぐサーバーを用意して試せるのが便利です。


    Immich

    家族の写真や動画の保存にはImmichを使用しています。

    Docker上で、

    • Immich
    • PostgreSQL
    • Redis
    • Nginx
    • Tailscale

    などを運用しています。

    スマートフォンで撮影した写真や動画を保存し、タブレットやテレビから家族で閲覧できる環境を作っています。

    自宅ラボは技術を試す場所というイメージがありますが、実際には家族が使えるサービスを作ることも増えてきました。


    UPSも導入

    サーバーやネットワーク機器が増えてくると、気になるのが停電や瞬断です。

    そこで、サーバー用とネットワーク機器用にUPSを導入しています。

    現在使用しているのは、

    • APC UPS 500:サーバー用
    • APC UPS 400S:ネットワーク用

    です。

    サーバー用のUPSには、

    • Proxmoxノード
    • NAS兼GPUサーバー
    • SAN用スイッチ

    などを接続しています。

    UPSを導入した理由については、別の記事でも詳しく紹介しています。


    自宅ラボを始めて変わったこと

    最初は、自作PCにLinuxをインストールして遊んでいただけでした。

    しかし、Proxmoxを知ったことで仮想化に興味を持ちました。

    仮想マシンを作る。

    ↓

    サービスを増やす。

    ↓

    サーバーが増える。

    ↓

    ネットワークを高速化・冗長化したくなる。

    ↓

    ストレージが必要になる。

    ↓

    バックアップも必要になる。

    ↓

    そして、最終的にはラックまで必要になる。

    こうして振り返ると、自宅ラボは少しずつ大きくなっていったことが分かります。

    最初から現在のような環境を作る予定はありませんでした。

    その時々で「これを試してみたい」と思ったものを追加していった結果です。


    自宅ラボは完成しない

    現在の環境でも、まだまだ改善したい部分があります。

    新しい技術を試したくなれば、新しい仮想マシンやコンテナを作ることもあります。

    機器が増えれば、ラックの使い方も変わります。

    ネットワーク構成を変更したくなることもあります。

    自宅ラボは、一度完成したら終わりではありません。

    むしろ、

    「完成しないこと」そのものが自宅ラボの面白さなのかもしれません。

    既製品や既存の構成で満足できなければ、自分で考えて変更してみる。

    うまくいかなければ、また改善する。

    19インチラックをDIYしたのも、その延長線上にあります。

    自作PCから始まり、LinuxやProxmoxを使うようになり、気が付けば自宅ラボになって、最終的にはラックまで自作していました。

    これからも、自宅ラボで新しい技術を試したり、環境を改善したりしながら、記事として記録していきたいと思います。


    まとめ

    現在の自宅ラボでは、

    • Proxmox VE 3ノード
    • NAS兼GPUサーバー
    • TrueNAS
    • Proxmox Backup Server
    • 10GbEネットワーク
    • ZFS・iSCSIによるストレージ環境
    • UPS
    • Dockerを利用した複数のサービス

    を運用しています。

    ひとつひとつの機器やサービスは、また別の記事で詳しく紹介していく予定です。

    この記事が、自宅ラボをこれから作ってみたい人や、「自宅でサーバーを動かすとどんな環境になるの?」と思っている人の参考になれば嬉しいです。

    そして、これからも自宅ラボは少しずつ変化していくと思います。

    その変化も含めて、楽しんでいきたいと思います。