449 Views
October 18, 25
スライド概要
OSC 2025 Onlineで発表した資料です。
Ubuntu Japanese LoCo Team member
余っているミニ PC を活用して Incus Cluster を構築しよう 柴田充也 Ubuntu Japanese Team 2025-10-18 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 1 / 62
本日の話:余っているミニ PC を活用して Incus Cluster を構築しよう • 最初に、皆さんご存知のミニ PC とはなんぞやという話 • 次に、分散ストレージシステムである Ceph の構築 • 最後に、複数のミニ PC を使って Incus Cluster を作る話 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 2 / 62
本日の話:余っているミニ PC を活用して Incus Cluster を構築しよう • 最初に、皆さんご存知のミニ PC とはなんぞやという話 • 次に、分散ストレージシステムである Ceph の構築 • 最後に、複数のミニ PC を使って Incus Cluster を作る話 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 2 / 62
本日の話:余っているミニ PC を活用して Incus Cluster を構築しよう • 最初に、皆さんご存知のミニ PC とはなんぞやという話 • 次に、分散ストレージシステムである Ceph の構築 • 最後に、複数のミニ PC を使って Incus Cluster を作る話 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 2 / 62
ミニ PC、使っていますか? 皆さんはもうすでに ミニ PC を持っていますよね? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 4 / 62
ミニ PC、使っていますか? 皆さんはもうすでに 4 台以上のミニ PC を持っていますよね? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 5 / 62
ミニ PC、使っていますか? 皆さんはもうすでに 4 台以上のミニ PC を持っていますよね? ただしそれらの多くは電源オフのままだったりしませんか? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 5 / 62
ミニ PC、使っていますか? 皆さんはもうすでに 4 台以上のミニ PC を持っていますよね? ただしそれらの多くは電源オフのままだったりしませんか? 今回はそんなあなたのためだけの話です! 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 5 / 62
ミニ PC の特徴 • だいたい 10cm から 20cm 四方ぐらいのミニサイズ 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 6 / 62
ミニ PC の特徴 • だいたい 10cm から 20cm 四方ぐらいのミニサイズ • 数万円から十数万円とそこそこ安いことが多い 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 6 / 62
ミニ PC の特徴 • だいたい 10cm から 20cm 四方ぐらいのミニサイズ • 数万円から十数万円とそこそこ安いことが多い • それなりに強力でゲーミング用もある 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 6 / 62
ミニ PC の特徴 • だいたい 10cm から 20cm 四方ぐらいのミニサイズ • 数万円から十数万円とそこそこ安いことが多い • それなりに強力でゲーミング用もある • 一部のモデルは巨大な AC アダプターが付いてくる 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 6 / 62
ミニ PC の特徴 • だいたい 10cm から 20cm 四方ぐらいのミニサイズ • 数万円から十数万円とそこそこ安いことが多い • それなりに強力でゲーミング用もある • 一部のモデルは巨大な AC アダプターが付いてくる • 勝手に増殖していく 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 6 / 62
「勝手に増殖していく」ってどういうこと? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 7 / 62
「勝手に増殖していく」ってどういうこと? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 7 / 62
「勝手に増殖していく」ってどういうこと? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 7 / 62
「勝手に増殖していく」ってどういうこと? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 7 / 62
「勝手に増殖していく」ってどういうこと? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 7 / 62
なぜ増殖するのか? • 強い光を当てましたか? • 水をかけましたか? • 真夜中に食べ物を与えましたか? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 8 / 62
なぜ増殖するのか? • 強い光を当てましたか? ⇒ いいえ • 水をかけましたか? • 真夜中に食べ物を与えましたか? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 8 / 62
なぜ増殖するのか? • 強い光を当てましたか? ⇒ いいえ • 水をかけましたか? ⇒ いいえ • 真夜中に食べ物を与えましたか? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 8 / 62
なぜ増殖するのか? • 強い光を当てましたか? ⇒ いいえ • 水をかけましたか? ⇒ いいえ • 真夜中に食べ物を与えましたか? ⇒ いいえ 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 8 / 62
なぜ増殖するのか? • 強い光を当てましたか? ⇒ いいえ • 水をかけましたか? ⇒ いいえ • 真夜中に食べ物を与えましたか? ⇒ いいえ それにも関わらず家にあるミニ PC は増えていくのです 不思議ですよね? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 8 / 62
ミニ PC が増えると問題なの? 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 9 / 62
ミニ PC が増えると問題なの? 家族からの視線がだんだん冷たくなります 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 9 / 62
視線が冷たくなるのを避けるにはどうすれば? 家族に対してきちんと説明しましょう: • 複数ノード構成のミニ PC 群をクラスタリングし、 スケーラブルなホーム・コンピュート基盤の構築 • 分散型リソースをシナジーさせ、 ファミリー・ユニット向けのイネーブルメントを実現 • UX デリバリーをファミリー・オリエンテッドな KPI にアライン • バリュー・ドリブンなサービス提供により、 テック ROI のバリデーションを実施 • アセットのビジビリティ向上を通じて、 インターナル・ステークホルダーのバイインを促進 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 10 / 62
視線が冷たくなるのを避けるにはどうすれば? 家族に対してきちんと説明しましょう: 」 • 複数ノード構成のミニ PC 群をクラスタリングし、? スケーラブルなホーム・コンピュート基盤の構築 んだ る い て ファミリー・ユニット向けのイネーブルメントを実現 っ 言 • UX デリバリーをファミリー・オリエンテッドな KPI にアライン を 何 • バリュー・ドリブンなサービス提供により、 は テック ROI のバリデーションを実施 前 お • アセットのビジビリティ向上を通じて、 「 • 分散型リソースをシナジーさせ、 インターナル・ステークホルダーのバイインを促進 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 10 / 62
端的に言うと 余っているミニ PC を Incus Cluster にして活用しよう! そして、家族向けに便利なサービスを提供しましょう! 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 11 / 62
Incus Cluster node01 node02 node03 node04 NVMe SSD NVMe SSD NVMe SSD NVMe SSD ESP /boot ESP /boot ESP /boot ESP /boot Ceph LVM LVM LVM LVM Incus Cluster 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 12 / 62
Incus とは? • コンテナと仮想マシンを管理するシステム • Linux Containers プロジェクトの一部1 として LXD からフォーク • リモート管理用に REST API を備えている • Windows/macOS 用のクライアントツールも用意されている • CLI インターフェースがメインだが Web UI もある • Apache 2.0 ライセンス 1 https://linuxcontainers.org/incus/ 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 13 / 62
Incus Cluster とは? • 複数の Incus サーバーを単一のシステムとして操作する仕組み • すべてのノードに対して共通のインターフェースで操作できる • 設定ファイルや状態なども共有する • 自動的に負荷分散なども行ってくれる 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 14 / 62
なぜ ESXi とか Proxmox VE を使わないの? Incus の利点: • FOSS だけで構築できる • 好きな Linux ディストリビューションや Linux カーネルの上で動かせる • 5 年の長期サポート(LTS)を利用可能 Incus の弱い点: • 別途 OS のインストールとメンテナンスが必要1 • 商用サポートは提供されていない • Web UI はあるものの、CLI のほうが重視されている 1 Incus OS という Incus を動かすだけの Immutable OS も開発中 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 15 / 62
Ubuntu でベースシステムを構築する • 少なくとも 3 ノードが必要、今回は 4 ノード準備 • すべてのノードに Ubuntu 24.04 LTS をインストール • 今回はミニ PC ごとにそれぞれネットワークを 1 ポートずつ使用 • 理想的には管理用とインスタンス用にわけられると良い • 2 個以上のネットワークポートを持つミニ PC を優先的に選ぼう • 今回はミニ PC ごとにそれぞれ 1 台の SSD のみ使用 • Ubuntu 用と Incus 用でストレージが分けられるならそのほうが良い 今回は説明の簡略化のために、 ネットワークとストレージ設定を最低限の設定にとどめています。 プロダクション用途向けの設定ではない点に注意してください。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 17 / 62
ホスト名と IP アドレス 本資料では次のように設定しています: • node01: 192.168.0.131 • node02: 192.168.0.132 • node03: 192.168.0.133 • node04: 192.168.0.134 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 18 / 62
ストレージレイアウト LVM を使って標準的な Ubuntu サーバーの設定を使用します。それぞれの Ubuntu 向けのルートファイルシステムは 100GiB とします。 • Partition 1: ESP 1GiB • Partition 2: /boot 2GiB • Partition 3: LVM • /dev/ubuntu-vg/ubuntu-lv: rootfs (100 GiB) • 残りの領域:あとで Incus 用に使用 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 19 / 62
node01 node02 node03 node04 NVMe SSD NVMe SSD NVMe SSD NVMe SSD ESP /boot ESP /boot ESP /boot ESP /boot ストレージレイアウト LVM LVM LVM LVM Incus Cluster 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 20 / 62
インストール後の設定:ホスト名の設定 $ sudo tee -a /etc/hosts << EOF 192.168.0.131 node01 192.168.0.132 node02 192.168.0.133 node03 192.168.0.134 node04 EOF 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 21 / 62
インストール後の設定:IP Forwarding • 今回は Ceph を使用 • Ceph の設定時に、Docker か Podman がインストールされる1 • 同じホスト上で Incus と Docker を動かすと netfilter の設定が衝突する • たとえば Incus のブリッジネットワークを使うと、Docker がそのブリッジ ネットワークのすべてのパケットをドロップしてしまう • その結果、Incus のインスタンスはインターネットと通信できなくなる $ sudo iptables -L FORWARD -v Chain FORWARD (policy DROP 0 packets, 0 bytes) 1 Ceph can be set up without them, but it’s more difficult. 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 22 / 62
インストール後の設定:IP Forwarding いくつかの回避方法1 があります: • ブリッジネットワークを使わない(推奨) • Docker を起動する前に IP forwarding を有効化する(簡単) $ echo 'net.ipv4.ip_forward=1' | \ sudo tee /etc/sysctl.d/99-incus.conf net.ipv4.ip_forward=1 $ echo 'net.ipv6.conf.all.forwarding=1' | \ sudo tee -a /etc/sysctl.d/99-incus.conf net.ipv6.conf.all.forwarding=1 1 https://linuxcontainers.org/incus/docs/main/howto/network_bridge_firewalld/ 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 23 / 62
インストール後の設定:IPv4 Forwarding • IPv6 向けには、Docker 28.0.0 以降が必要になる1 • 2025 年 10 月上旬に、Ubuntu 24.04 LTS にも 28.2.2 が投入された2 • Ubuntu リポジトリの docker.io を使っている場合は更新が必要 1 2 https://docs.docker.com/engine/network/packet-filtering-firewalls/ https://bugs.launchpad.net/ubuntu/+source/docker.io-app/+bug/2112523 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 24 / 62
Ceph について • Ceph は分散ストレージシステム • 異なるマシンのストレージを 1 台のストレージのように見せる • Incus は Ceph をサポートしている • Ceph を使わないと、Incus のイメージはローカルノードにしか保存されない • Ceph を使うと、ノード間のマイグレーションが簡単になる • Ceph はレプリケーションもサポートしているので耐障害性もあがる 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 26 / 62
Ceph 用に論理ボリューム(LV)を作る node01 node02 node03 node04 NVMe SSD NVMe SSD osd1 LVM osd2 LVM osd3 LVM ESP /boot NVMe SSD ESP /boot ESP /boot NVMe SSD ESP /boot Ceph osd4 LVM Incus Cluster 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 27 / 62
Ceph 用に論理ボリューム(LV)を作る それぞれのノードで、Ceph の OSD(Object Storage Device)で使用する論理ボ リュームを作成します。 node01$ sudo lvcreate -L 700G -n ceph-osd1 ubuntu-vg node01$ sudo lvchange --yes --setactivationskip n ubuntu-vg/ceph-osd1 node02$ sudo lvcreate -L 700G -n ceph-osd2 ubuntu-vg node02$ sudo lvchange --yes --setactivationskip n ubuntu-vg/ceph-osd2 node03$ sudo lvcreate -L 300G -n ceph-osd3 ubuntu-vg node03$ sudo lvchange --yes --setactivationskip n ubuntu-vg/ceph-osd3 node04$ sudo lvcreate -L 700G -n ceph-osd4 ubuntu-vg node04$ sudo lvchange --yes --setactivationskip n ubuntu-vg/ceph-osd4 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 28 / 62
それぞれのノードに Ceph をインストール Ceph のブートストラップノードになる node01 に cephadm をインストールし ます。 node01$ sudo apt install cephadm ceph-common それ以外のノードには、Ceph のクラスターに参加するために Docker をインス トールします。 node02$ sudo apt install ceph-common docker.io node03$ sudo apt install ceph-common docker.io node04$ sudo apt install ceph-common docker.io 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 29 / 62
ブートストラップノードの設定 node01$ sudo cephadm bootstrap --mon-ip 192.168.0.131 Verifying podman|docker is present... (snip) Ceph Dashboard is now available at: URL: https://node01:8443/ User: admin Password: bub066ubvw (snip) Bootstrap complete. • cephadm は Web UI も設定してくれます • ただし今回は Web UI は使用しません 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 30 / 62
Ceph のクラスターにノードを追加する • ノードを追加するには、node01 から root で SSH ログインできる必要がある • それぞれのノードに公開鍵をコピーしておく node01$ cat /etc/ceph/ceph.pub (admin ノードの公開鍵が表示される) node02$ sudo vi /root/.ssh/authorized_keys (上記の公開鍵を貼り付ける) 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 31 / 62
Ceph のクラスターにノードを追加する node01 から次のコマンドを実行します: node01$ sudo ceph orch host add node01 192.168.0.131 Added host 'node01' with addr '192.168.0.131' node01$ sudo ceph orch host add node02 192.168.0.132 node01$ sudo ceph orch host add node03 192.168.0.133 node01$ sudo ceph orch host add node04 192.168.0.134 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 32 / 62
それぞれのノードにそれぞれのストレージを追加する node01 から次のコマンドを実行します: node01$ sudo ceph orch daemon add osd node01:/dev/ubuntu-vg/ceph-osd1 Created osd(s) 0 on host 'node01' node01$ sudo ceph orch daemon add osd node02:/dev/ubuntu-vg/ceph-osd2 node01$ sudo ceph orch daemon add osd node03:/dev/ubuntu-vg/ceph-osd3 node01$ sudo ceph orch daemon add osd node04:/dev/ubuntu-vg/ceph-osd4 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 33 / 62
それぞれのノードのステータスを確認する node01$ sudo ceph osd status ID HOST USED AVAIL WR OPS WR DATA 0 node01 26.5M 699G 0 0 1 node04 27.1M 699G 0 0 2 node03 27.1M 299G 0 0 3 node02 27.1M 699G 0 0 余っているミニ PC を活用して Incus Cluster を構築しよう RD OPS 0 0 0 0 RD DATA 0 0 0 0 STATE exists,up exists,up exists,up exists,up 2025-10-18 34 / 62
それぞれのノードのストレージ情報を確認する node01$ sudo ceph osd df ID CLASS WEIGHT REWEIGHT SIZE 0 ssd 0.68359 1.00000 700 GiB 3 ssd 0.68359 1.00000 700 GiB 2 ssd 0.29300 1.00000 300 GiB 1 ssd 0.68359 1.00000 700 GiB TOTAL 2.3 TiB MIN/MAX VAR: 0.84/2.00 STDDEV: 0.00 余っているミニ PC を活用して Incus Cluster を構築しよう RAW USE 27 MiB 28 MiB 28 MiB 28 MiB 110 MiB DATA ... 652 KiB ... 1.2 MiB ... 1.2 MiB ... 1.2 MiB ... 4.2 MiB ... 2025-10-18 35 / 62
Web UI のポート番号変更 • Ceph の Web UI はポート 8443 を使用する • これは Incus Cluster の管理用ポートと衝突している • Ceph Web UI 側のポートを次の手順で変更する $ sudo ceph config set mgr mgr/dashboard/ssl_server_port 8444 $ sudo ceph orch restart mgr 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 36 / 62
Incus のインストール Ubuntu での Incus のインストール方法は 2 種類存在します: • Zabbly リポジトリ:最新版をインストール可能 • Ubuntu リポジトリ:24.04 だと Incus 6.0 LTS のみインストール可能 Ubuntu 24.04 LTS と Incus 6.0 LTS の組み合わせなら Ubuntu リポジトリが簡単。 すべてのノードで次のコマンドを実行します: $ sudo apt install incus $ sudo apt install --no-install-recommends qemu-system-x86 \ ovmf qemu-system-modules-spice qemu-utils 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 38 / 62
incus-admin グループへの参加 各ノードで Incus の管理コマンドを実行したいのであれば、すべてのノードで以下 を実行します: $ sudo usermod -aG incus-admin $USER 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 39 / 62
ブートストラップサーバーの初期化 最初の一台はブートストラップサーバーとして設定が必要になります。今回は node01 で次のコマンドを実行します: node01:~$ incus admin init Would you like to use clustering? (yes/no) [default=no]: yes What IP address or DNS name should be used to reach this server? [default=192.168.0.131]: Are you joining an existing cluster? (yes/no) [default=no]: What member name should be used to identify this server in the cluster? [default=node01]: Do you want to configure a new local storage pool? (yes/no) [default=yes]: no Do you want to configure a new remote storage pool? (yes/no) [default=no]: no Would you like to use an existing bridge or host interface? (yes/no) [default=no]: Would you like stale cached images to be updated automatically? (yes/no) [default=yes]: Would you like a YAML "init" preseed to be printed? (yes/no) [default=no]: ネットワークとストレージはのちほど設定します。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 40 / 62
ストレージの設定 node01$ incus storage create ceph-pool ceph node01$ incus profile device add default root disk \ path=/ pool=ceph-pool node01$ incus storage info ceph-pool info: (snip) total space: 759.86GiB shibata@node01:~$ sudo ceph osd pool get ceph-pool size size: 3 合計 2.7TiB で 3 レプリケーション設定なので、実際に使える容量は 760GiB です。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 41 / 62
Ceph のノードへの接続設定
それぞれのノードが Ceph にアクセスできるように、次の Ceph の鍵をすべての
ノードにコピーします。
node01$ sudo cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = <secrete key>
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
node01$ cat /etc/ceph/ceph.conf
# minimal ceph.conf for ef06bdb6-7130-11f0-917a-5847ca74fdbb
[global]
fsid = ef06bdb6-7130-11f0-917a-5847ca74fdbb
mon_host = [v2:192.168.0.131:3300/0,v1:192.168.0.131:6789/0] ...
余っているミニ PC を活用して Incus Cluster を構築しよう
2025-10-18
42 / 62
Ceph のノードへの接続設定 nod02、node03 などで次のコマンドを実行します: $ sudo vi /etc/ceph/ceph.client.admin.keyring (write node01's value) $ sudo vi /etc/ceph/ceph.conf (node01 の ceph.conf の中身を書き込み) $ sudo chmod 600 /etc/ceph/ceph.client.admin.keyring 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 43 / 62
Incus 用のアクセス鍵の発行 それぞれのノードが Incus Cluster に参加できるように、管理ノードである node01 上でアクセス用の鍵を発行します。 node01$ incus cluster add node02 Member node02 join token: (ここにトークンが表示されます) 同様に他のノードのトークンも作成します: node01$ incus cluster add node03 node01$ incus cluster add node04 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 44 / 62
各ノードの初期化と登録 管理ノード以外のノードで Incus の初期化を行います。Incus Cluster に参加する ためには管理者権限で実行する必要があります。 node02$ sudo incus admin init Would you like to use clustering? (yes/no) [default=no]: yes What IP address or DNS name should be used to reach this server? [default=192.168.0.132]: Are you joining an existing cluster? (yes/no) [default=no]: yes Please provide join token: (paste long token string) All existing data is lost when joining a cluster, continue? (yes/no) [default=no] yes Choose "source" property for storage pool "ceph-pool": Would you like a YAML "init" preseed to be printed? (yes/no) [default=no]: 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 45 / 62
ネットワークデバイスの追加 • Incus Cluster の初期設定ではネットワークデバイスは追加されない • これはノードごとに使える NIC が異なるため • すべてのノードで同じ名前のネットワークを作る必要がある • 作成後にネットワークをアクティベートしなければならない • ここでは簡単のためにブリッジネットワークを使う 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 46 / 62
ネットワークデバイスの追加 node01:~$ incus network create --target node01 incusbr0 Network incusbr0 pending on member node01 node01:~$ incus network create --target node02 incusbr0 node01:~$ incus network create --target node03 incusbr0 node01:~$ incus network create --target node04 incusbr0 作成したら、それぞれのネットワークはペンディングモードになるので、次の手順 でアクティベートします: $ incus network create incusbr0 Network incusbr0 created 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 47 / 62
ネットワークデバイスの追加 アクティベートしたネットワークをデフォルトプロファイルに追加しておきます: node01:~$ incus profile device add default eth0 nic \ nictype=bridged parent=incusbr0 name=eth0 Device eth0 added to default node01 に設定するだけで、他のノードにも設定が反映されます。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 48 / 62
インスタンスの起動 これでインスタンスの作成の準備が整いました。インスタンスを起動すると、利用 可能なノードから自動的に選択されます。 $ incus launch images:ubuntu/24.04 noble $ incus list +-------+---------+ +----------+ | NAME | STATE | | LOCATION | +-------+---------+ ... +----------+ | noble | RUNNING | | node01 | +-------+---------+ +----------+ 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 49 / 62
インスタンスの起動 それぞれのノードの Ceph のストレージが消費されていることがわかります。 $ sudo ceph osd df ID CLASS WEIGHT 0 ssd 0.68359 3 ssd 0.68359 2 ssd 0.29300 1 ssd 0.68359 REWEIGHT SIZE 1.00000 700 GiB 1.00000 700 GiB 1.00000 300 GiB 1.00000 700 GiB TOTAL 2.3 TiB MIN/MAX VAR: 0.82/1.75 STDDEV: 0.03 余っているミニ PC を活用して Incus Cluster を構築しよう RAW USE 562 MiB 609 MiB 472 MiB 520 MiB 2.1 GiB 2025-10-18 50 / 62
インスタンスの起動 「--target」オプションで特定のノードを指定して起動できます。 $ incus launch images:ubuntu/24.04 noble2 --target node02 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 51 / 62
Ceph と VM インスタンスの問題 • Incus 6.0 では Ceph と VM インスタンスの組み合わせは未サポート • Incus 6.4 で修正されたらしいが未確認 • VM インスタンスを使うためには VM 側のカーネルでも Ceph をサポートする 必要がある 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 52 / 62
ノードの管理 メンテナンスのために特定のノードを再起動する場合は、次の手順を実施します。 • Incus Cluster からノードを一時的に削除する • Ceph のリバランス機能を一時的に無効化する • メンテナンス作業を実施する • Ceph と Incus Cluster にそのノードを再度参加させる Incus のストレージバックエンドとして Ceph を使用している場合、メンテナンス 対象のノードで動いていた Incus のインスタンスは、自動的に別のノードに移動し ます。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 53 / 62
ノードをメンテナンスモードに変更する $ incus cluster evacuate node04 instances on node04 will be mode to other nodes. $ incus cluster list +--------+ +-----------+--------------------------------+ | NAME | | STATE | MESSAGE | +--------+ ... +-----------+--------------------------------+ | node04 | | EVACUATED | Unavailable due to maintenance | +--------+ +-----------+--------------------------------+ $ sudo ceph osd set noout $ sudo ceph osd set norebalance これで node04 は再起動も含めて、メンテナンス可能な状態になりました。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 54 / 62
ノードを復旧させる Ceph のクラスターが「HEALTH_OK」になったあとに、Incus Cluster に復帰させ ます。 $ sudo ceph osd unset noout $ sudo ceph osd unset norebalance $ sudo ceph status cluster: id: ef06bdb6-7130-11f0-917a-5847ca74fdbb health: HEALTH_OK $ incus cluster restore node04 node04 で動いていたインスタンスは、上記のタイミングで自動的に node04 に 戻ってきます。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 55 / 62
まとめ • ミニ PC は安価な PC サーバーとしても使えます • 複数台用意しても、タワー型 PC よりも小さなサイズにまとまります • 同時に動かしても消費電力はそこまで大きくなりません1 • M.2 NVMe SSD はどうしても容量が少なめになります • 複数のドライブに対して RAID を適切に構築・運用するのは大変です 1 今回使用した 4 台のミニ PC だと、Incus/Ceph 上で 4 個の Ubuntu インスタンスを動かした状 態でも、100W 程度でした。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 57 / 62
まとめ • ミニ PC は安価な PC サーバーとしても使えます • 複数台用意しても、タワー型 PC よりも小さなサイズにまとまります • 同時に動かしても消費電力はそこまで大きくなりません1 ⇒ これは Incus Cluste を構築するのに適しています • M.2 NVMe SSD はどうしても容量が少なめになります • 複数のドライブに対して RAID を適切に構築・運用するのは大変です 1 今回使用した 4 台のミニ PC だと、Incus/Ceph 上で 4 個の Ubuntu インスタンスを動かした状 態でも、100W 程度でした。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 57 / 62
まとめ • ミニ PC は安価な PC サーバーとしても使えます • 複数台用意しても、タワー型 PC よりも小さなサイズにまとまります • 同時に動かしても消費電力はそこまで大きくなりません1 ⇒ これは Incus Cluste を構築するのに適しています • M.2 NVMe SSD はどうしても容量が少なめになります • 複数のドライブに対して RAID を適切に構築・運用するのは大変です ⇒ 複数のミニ PC を Ceph でまとめてしまえば、 これらの制約を回避できます。 1 今回使用した 4 台のミニ PC だと、Incus/Ceph 上で 4 個の Ubuntu インスタンスを動かした状 態でも、100W 程度でした。 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 57 / 62
XDDC: Cross Distribution Developer Camp • FLOSS な OS 間で情報共有しようという試み • 日本語関連はどの OS も苦労している • (不)定期的なもくもく会や合宿などを開催 • 気になる人はまずはもくもく会や Slack まで • もくもく会:https://xddc.connpass.com/ • Slack:https://floss-os-jp.slack.com/ • 次回は 10 月 19 日(日・明日!)開催(会場は東京幡ヶ谷駅そばの会社) 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 59 / 62
Ubuntu Japanese Team で書いている記事 gihyo.jp:Ubuntu Weekly Topics/Recipe • https://gihyo.jp/list/group/Ubuntu-Weekly-Topics • https://gihyo.jp/list/group/Ubuntu-Weekly-Recipe • 2008 年から続くほぼ週刊の長期連載 • Ubuntu の最新情報や便利な使い方などをお届け PC Watch:Ubuntu 日和 • https://pc.watch.impress.co.jp/docs/column/ubuntu/ • 2022 年からおおよそ隔週で連載開始 • 媒体の性質上、(頭おかしい)ハードウェア寄りの記事が多め 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 60 / 62
Ubuntu オフラインミーティング • Ubuntu のリリースを肴に飲み食いするイベント • Ubuntu 24.04 LTS から復活したよ! • 前回の開催レポート: https://gihyo.jp/admin/serial/01/ubuntu-recipe/0871 • 次は 2025 年 11 月 24 日(祝・月)に東京六本木のグリー様で開催予定 • 開催日は GREE さんの connpass 参照:https://gree.connpass.com/ 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 61 / 62
GNOME.Asia Summit 2025 • (たぶん初めて)日本で開催される GNOME の国際イベント • 2025 年 12 月 13 日・14 日(土日)、東京飯田橋の IIJ 様 • 日本の Linux デスクトップ元年っぷりを世界にアピールしよう! • 詳細:https://events.gnome.org/event/303/ 余っているミニ PC を活用して Incus Cluster を構築しよう 2025-10-18 62 / 62