keelOS を選ぶ理由
1 台のマシンで、何も止めずに。
自宅サーバーや小規模オフィスでは、NAS、ルーター、Windows デスクトップ、数台の Linux サーバーと、すべてを 1 台で動かしています。keelOS はまさにそのマシンのためのものです。以下の各項目は実機で計測した結果で、詳細はリンク先の記事(中国語)にあります。
ホストの再起動時に VM はどうなるか
| システム | 通常の VM | ディスクコントローラーをパススルーした NAS VM |
|---|---|---|
| Unraid 7 | シャットダウン、またはゲスト OS による休止状態(ゲストエージェントが必要) | 該当なし:ホスト自体が NAS |
| TrueNAS SCALE | シャットダウンして起動し直す | 該当なし:ホスト自体が NAS |
| Proxmox VE 9 | シャットダウンして起動し直す。ディスクへのサスペンドは手動のみ | シャットダウンして起動し直す |
| Hyper-V(Windows Server、DDA) | ディスクに保存し、再起動後に復元 | シャットダウン(パススルーしたデバイスがあると保存できない) |
| ESXi 8 | ディスクへのサスペンドが可能で、再起動後に再開 | シャットダウンして起動し直す(サスペンド不可) |
| keelOS | メモリ上で約 25 秒一時停止。TCP 接続は維持 | 同じく約 25 秒の一時停止。コントローラーは動作し続ける |
サスペンドや保存は、VM のメモリをディスクに書き出し、再起動後に読み戻す方式です。VM のメモリが大きいほど時間がかかり、パススルーしたデバイスを持つ VM では、上の表のどのプラットフォームでも使えません(出典は下記)。データセンターでは、ホストを再起動する前に VM を別のマシンへ移します。自宅には 2 台目のマシンがありません。
出典: Unraid 7.0 release notes · Proxmox forum: hibernate on host reboot · Proxmox forum: snapshots with passthrough · Microsoft: Discrete Device Assignment · VMware: DirectPath I/O · Broadcom KB 428701
ホストを更新しても VM は止まらない
小さなハイパーバイザーがゲストのメモリと vCPU の状態を保持し、FreeBSD ホストのアップグレードや再起動の間もメモリに常駐します。ゲストの一時停止は 24–26 秒で、TCP 接続は維持されます。連続 100 回のホスト再起動で失敗はなく、17 台の VM が 1 回の再起動のあとにそろって再開しました。
再起動をまたぐパススルー
NAS VM はディスクコントローラーや NVMe ドライブを丸ごと受け取り、本物のディスクを扱えます。SMART、ライトキャッシュ、実際のエラーもそのままです。IOMMU はハイパーバイザーが管理するため、ホストの再起動中も DMA は動作し続けます。最大負荷で書き込みを続けながら 14 回再起動しても、タイムアウトはなく、ZFS scrub のエラーはゼロでした。ネットワークには SR-IOV の VF を使えます。
Windows 11 がそのままインストールできる
仮想 TPM 2.0 と Secure Boot により、レジストリを書き換えることなくインストーラーのチェックを通過します。BitLocker も動作し、TPM の状態はホストを再起動しても保持されます。
メモリを無駄にしない
開発用ホストでは、44 GB のゲストメモリのうち 49% が、1 日後にはゼロページでした。keelOS はそれを回収してディスクキャッシュとしてホストに貸し出し、ゲストが書き込んだ時点ですぐに返します。オーバーコミットはしないので、メモリはいつでも返却できます。
時計が狂わない
一時停止はゲストの時計からは見えません。数十回のホスト再起動のあとも、FreeBSD と Linux のゲストの誤差は ±0.4 秒以内です。Windows Server 2003 が 3.6% 遅れる問題も解消しました。
Windows XP から Windows 11 まで
keelOS は bhyve に IDE、PCnet、UHCI のデバイスと SeaBIOS を追加しました。XP や Server 2003 は標準のドライバーのままインストールできます。ゲストに追加するものはありません。
ルーターを VM で
OpenWrt、ImmortalWrt、iStoreOS、OPNsense、pfSense CE、VyOS、RouterOS CHR がすべて動作し、多くは NIC の SR-IOV VF を使えます。オフィスの LAN をブリッジしてループさせてしまう、よくあるミスも keelOS が防ぎます。
土台は ZFS
各 VM は 1 つの ZFS データセットツリーで、構成、ファームウェア変数、ディスクをまとめてスナップショットできます。zfs send で VM を別の keelOS ホストへ移すのが次のステップです(予定)。
AI アシスタントにも任せられる
組み込みの MCP サーバーにより、AI アシスタントがホストの状態を報告し、コンソールを読み、VM を起動・作成できます。権限は範囲を絞ったトークンで制限され、操作は監査ログに記録されます。
軽量な設計
RAM 上で動く 1 つのイメージと、データベースを持たない 1 つの管理プログラム。Web インターフェース、コマンドライン、HTTPS API を備えています。任意の VM の画面に RDP で直接接続でき、ゲストには何もインストールしません。