Foxing は、Linux ファイルシステム用の eBPF で駆動されるレプリケーション エンジンを目指しています。

2026/03/30 23:30

Foxing は、Linux ファイルシステム用の eBPF で駆動されるレプリケーション エンジンを目指しています。

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

Foxing は Linux ファイルシステム(XFS、Btrfs、F2FS、Ext4)向けの本番レベルで eBPF を駆使した複製エンジンです。カーネルイベントを捕捉し、ターゲットディレクトリに非同期で再生することでほぼリアルタイムなミラーリングを実現します。本プロジェクトは主に 2 つのコンポーネントから構成されています。

  • fxcp – 自動適応型 CoW / reflink、io_uring、および BLAKE3 Merkle デルタ検出を用いた高速で増分コピーを行うスタンドアロンのスマートコピーツール。
  • foxingd – サブミリ秒レイテンシで継続的にイベント駆動型ミラーリングを実施する eBPF デーモン。

ベンチマークでは、fxcp が大きなファイルワークロードで rsync/cp より最大 54 倍速く、NFS スループットも向上(例:100 MB 転送時に約 3.6 倍)することが示されています。foxingd は単一ファイルのレプリケーション遅延を 15–21 ms(XFS→NFS、XFS→tmpfs)で提供し、バッチ操作は 30 ms 未満です。

Foxing は FXAR v2 アーカイブフォーマットを導入しています:ギアハッシュチャンク化(2 KB–2 MB)、BLAKE3 コンテンツアドレス可能ストレージ、バイナリインデックス、シーク可能アーカイブ、ストリーミングパイプサポート、並列エクスポート/インポート、および NFS セッションプーリング。コマンドライン機能には構造化 JSON 出力(

fxcp -a --json
)、詳細な終了コード、スナップショット管理(
snap list/prune/stats/export/import/restore
)、グロブパターンでの選択的リストア、圧縮マトリクス(zstd、lZ4、gzip、xz)、および上書き前に reflink スナップショットを作成する
--snapshot
フラグが含まれます。

構造はマルチステージパイプラインです:カーネル BPF プローブ → ラングバッファ → 再順序/フィルタ → ディスパッチャー → ワーカー → SmartCopier。適応コピー戦略(NFS コンパウンド RPC、FICLONE、sendfile、io_uring)はファイルシステムとファイルサイズに基づいて自動的に選択されます。

安全機構としては、ループ防止(デバイス/PID フィルタリング)、部分書き込み保護(

.tmp.uuid
ファイルを用いたアトミックモード、MARS バージョニングによるデルタモード)、fsync バリアと完全メタデータレプリケーションによる一貫性保証、マウント監視(デバイス ID トラッキング、fsync ライビネスプローブ)、ハイドレーションクリーンアップ、および ENOSPC 時のグローバル緊急削除が挙げられます。

Prometheus メトリックはポート 9100 (

foxing_events_dropped
,
foxing_worker_copy_in_flight
等) に公開され、リアルタイムステータスを表示する TUI が付属します。Foxing は Linux 6.12+(x86_64 または aarch64)で動作し、Fedora/RHEL COPR および Debian/Ubuntu パッケージとして入手可能です。ソースビルドには Cargo nightly と clang/llvm/bpftool/libbpf-dev が必要です。

容量計画に関しては、XFS/Btrfs/ext4 ではファイル単位のメタデータコストがほぼ無視できる一方で、xattrs をサポートしない環境では約 4 KB/インオブジェクトのサイドカー ファイルが使用されます。ターゲットはバージョニング履歴とファイルシステムオーバーヘッド用に約 5 % の余剰容量を確保すべきです。

Foxing は GPL‑2.0-or-later の下でリリースされています。これにより、企業は本番ファイルシステムの高速・低負荷バックアップを実現し、NFS ターゲットへのネットワーク負荷を軽減し、統合ツールによるスナップショット管理を簡素化できます。将来のリリースでは適応コピー戦略の改良、Prometheus メトリックの拡張、およびループ防止や部分書き込み保護といった安全機能のさらなる強化が予定されています。

本文

Foxing
高精度ファイルシステムレプリケーション


概要

Foxing(旧 xfs‑mirror)は、Linux ファイルシステム(XFS・Btrfs・F2FS・Ext4)向けの本番環境対応 eBPF 主導レプリケーションエンジンです。カーネル側ファイルシステムイベントをキャプチャし、非同期でターゲットディレクトリへ再生することで、ほぼリアルタイムにミラーリングを実現します。また、一貫性保証も強固です。

コンポーネント

コンポーネント目的
fxcp単体で動作する「スマートコピー」ツール。
rsync
/
cp
の代替として使えます。CoW / reflink、
io_uring
、BLAKE3 Merkle デルタ検出を自動調整し、BPF も root も不要です。
foxingdeBPF デーモン。サブミリ秒レイテンシで継続的にイベントをミラーリングします。

パフォーマンスハイライト

ワークロードrsynccpfxcpfxcp vs rsync
10 K 小ファイル(4 KB)607 ms424 ms607 ms同等
10 大ファイル(100 MB)1 236 ms4 ms23 ms54倍速
混合(5 K ファイル、2.1 GB)3 998 ms239 ms383 ms10倍速
スパースファイル(10 × 50 MB)764 ms3 ms21 ms36倍速

NFS 4.2 ベンチマーク(XFS NVMe → NFS HDD)

ワークロードrsyncfxcpfxcp vs rsync
5 000 tiny ファイル12.8 s11.5 s1.11倍速
NFS→NFS 100 MB(同一サーバ)297 ms82 ms3.62倍速
100 MB スループット322 ms386 ms0.83倍 (259 MB/s)

foxingd デーモンレイテンシ(BPF イベント駆動)

ワークロードXFS→XFSXFS→NFSXFS→tmpfs
単一ファイル作成 (4 KB)17 ms19 ms16 ms
単一ファイル作成 (64 KB)16 ms18 ms17 ms
名前変更伝搬15 ms21 ms16 ms
バッチ10×4 KB187 ms209 ms190 ms

fxcp は最適戦略(NFS コンパウンド RPC、reflink、sendfile、io_uring)を自動選択し、foxingd は BPF イベントキャプチャで単一ファイルレプリケーションレイテンシを 15–21 ms に抑えます。


v0.8.1 ハイライト

  • FXAR v2 – gear‑hash 可変チャンク(2 KB–2 MB)、BLAKE3 コンテンツアドレス化ストレージ、バイナリインデックス。
  • ランダムアクセス復元が可能なシーク可能アーカイブ。
  • ストリーミングパイプサポート (
    fxcp snap export | ssh …
    )。
  • Rayon での並列エクスポート/インポート、NFS セッションプールで最大4つのコンパウンド RPC を同時実行。
  • アーカイブ形式を自動検出し、tar にフォールバック。
  • 事前ディスク空きチェック、ターゲット CPU 自動チューニング(AVX2/AVX‑512)。

v0.8.0 ハイライト

  • 構造化 JSON 出力 (
    fxcp -a --json
    )。
  • ライブ進捗表示 (
    --progress
    )。
  • 詳細な終了コード:
    0
    成功、
    1
    部分失敗、
    2
    完全失敗。
  • Systemd 連携(
    sd_notify
    )。

v0.7.x ハイライト

  • スナップショット管理 (
    snap list/prune/stats/export/import/restore
    )。
  • CoW ストレージ統計と glob パターンでの選択的復元。
  • 圧縮マトリクス(zstd、lz4、gzip、xz)。
  • --snapshot
    --throttle
    フラグ。
  • マルチソースコピー、インクルード/エクスクルードフィルタリング、ハイドレーションクリーニング、WAL ストーム検出。

クイックスタート

fxcp(root も BPF も不要)

# ビルド
cargo build --release -p fxcp

# 基本コピー
fxcp -a /source /destination

# 複数ソース
fxcp -a /src1 /src2 /src3 /destination/

# rsync と同様に削除
fxcp -a --delete /source /destination

# インクルード/エクスクルード
fxcp -a --exclude '*.tmp' --include 'important.tmp' /source /destination

# ドライラン
fxcp -a -n /source /destination

# foxingd 用署名生成
fxcp -a --generate-sigs /source /destination

foxingd(eBPF デーモン)

# 依存関係インストール(Fedora/RHEL)
sudo dnf install clang llvm libbpf-devel bpftool

# ビルド
cargo build --release -p foxingd

# TUI とともに起動
sudo ./target/release/foxingd daemon --config config.toml --tui

# ワンショット同期
./target/release/foxingd sync -a /source /destination

# ステータス&メトリクス確認
foxingd status
foxingd metrics

インストール

OSパッケージ
Fedora/RHEL (COPR)
sudo dnf copr enable aenertia/foxing

sudo dnf install fxcp foxingd
Debian/Ubuntu
.deb
パッケージはリリースにて配布

デーモンを有効化して起動:

sudo systemctl enable --now foxingd

設定(TOML)

最小構成例 (

/etc/foxing.toml
):

worker_count = 4
queue_max    = 200_000

[[sources]]
path = "/mnt/data"

  [[sources.targets]]
  path                = "/mnt/backup"
  profile             = "SSD"           # NVMe, SSD, HDD, Network, NFS, SdCard, Auto
  enable_versioning   = true
  max_versions        = 5
  max_versions_size_mb= 10_240

fxcp は設定不要で、すべてを自動検出します。


コマンド

foxingd

コマンド説明
daemon
デーモン起動(フォアグラウンドまたは systemd)。
sync -a
rsync と同等のワンショット同期。
status
デーモン状態確認。
metrics
Prometheus メトリクス (
http://localhost:9100/metrics
) を表示。
check
設定検証。
explain
設定チートシートを出力。

スナップショット(MARS)

foxingd snapshot list /mnt/backup/database.db
foxingd snapshot revert /mnt/backup/database.db 105432
foxingd snapshot copy /mnt/backup/database.db 105432 /tmp/db_restore.db
foxingd snapshot cleanup /mnt/backup/database.db --dry-run
foxingd snapshot force /mnt/backup/database.db --tag "pre-migration"

fxcp

fxcp -a /source /destination
fxcp -a /src1 /src2 /src3 /destination/
fxcp -a --delete /source /destination
fxcp -a --generate-sigs /source /destination
fxcp -a -e '*.tmp' -e '.git' /source /destination
fxcp -a --exclude-from excludes.txt --include-from includes.txt /source /destination
fxcp -a -n /source /destination
fxcp --cleanup /target
fxcp snap list /backup
fxcp snap prune --older-than 30d --keep-last 10 /backup
fxcp snap export /backup -o backup.fxar
fxcp snap inspect backup.fxar --list
fxcp snap restore backup.fxar --file 'data/*.db' --latest -o /tmp/

容量計画

  • メタデータコスト – XFS/Btrfs/Ext4 のネイティブ xattr (
    user.foxing.*
    ) はほぼ無視できるオーバーヘッド。xattr 未対応の場合は
    .foxing_meta
    サイドカーを 4 KB 単位で使用。
  • 余剰容量 – スナップショットとファイルシステムオーバヘッドを考慮し、ターゲットにはソースの 5 % 以上の空き容量を確保。
  • 安全停止 – ターゲットが空き領域不足に陥った場合、foxingd はレプリケーションを安全に一時停止し、破損を防止。

安全機構

機能説明
ループ防止eBPF 内でデバイス・PID フィルタリングし、ターゲットやデーモン自身のイベントを除外。
部分書き込み保護アトミックモード(
.tmp.uuid
→ rename)とデルタモード(MARS で in‑place 更新)。
一貫性
fsync
による全体バリア、xattr・ACL・タイムスタンプの完全複製、クラッシュ時の再起動サポート。
マウント監視デバイス ID トラッキングと fsync ライブプローブ;障害時はワーカーを一時停止し、ジャーナルで変更を記録。
ハイドレーションクリーニング再起動時にソースに存在しないファイルを全スキャンして削除し、一致性を保証。
緊急パージ
ENOSPC
発生時、古いスナップショットを自動的に削除し、レプリケーション継続。

監視と可観測性

Prometheus メトリクスは

http://localhost:9100/metrics
で公開されます。主要メトリクス:

  • foxing_events_dropped
    – キューが満杯になった際に失われたイベント数。
  • foxing_worker_copy_in_flight
    – ワーカーごとのアクティブコピー数。
  • foxing_delta_bytes_saved
    – デルタコピーで節約したバイト数。
  • foxing_tuner_state
    – ガバナー状態(steady、startup、drain、probeBW)。

テスト

make test-quick   # 約15秒の回帰テスト
make test         # 完全スイート
make test-json    # CI 用 JSON 出力

v0.8.1 のアドベンチャーストレステストは、リネームストーム、NFS ドロップ/再同期、大ファイルの中断・再開、ディスク圧迫、デルタコピー、FXAR エクスポート/インポートを網羅。


ドキュメント

  • API リファレンス – Rustdoc 自動生成。
  • スナップショット & エクスポート – 時点のスナップショット、.fxar アーカイブ、CoW ストレージ、選択的復元。
  • アーキテクチャ & 図解 – 処理パイプライン、マウント監視、エラー処理(Graphviz)。
  • ベンチマーク & 比較 – パフォーマンスデータ、MTTC マトリクス。
  • キュー・マーキング – CoDel/CAKE 理論をイベントディスパッチに適用。
  • 障害シナリオ – 切断、クラッシュ、ランサムウェア、容量枯渇。

命名の由来

“Foxing” は古い紙や鏡に現れる茶褐色の斑点(錆びた銀化物)を指します。Rust で書かれたミラーリングツールとして、プロジェクトの目的 ― 高速な NVMe ソース(クイックフォックス)が遅い HDD/ネットワークターゲット(ラッシードッグ)に効率的にミラーリングする ― を象徴しています。

同じ日のほかのニュース

一覧に戻る →

2026/04/03 1:10

Google が Gemma 4 のオープンモデルをリリースしました。

## Japanese Translation: > **概要:** Gemma 4は、Google の Gemini 3 研究に基づく軽量かつオープンソースの AI モデルであり、モバイル電話、IoT デバイス、およびパーソナルコンピュータ向けにパラメータあたり高い知能を提供するよう設計されています。テキスト・画像・音声といった多モーダルな推論をサポートし、140 言語で動作します。アーキテクチャはエージェント型ワークフローを取り入れており、モデルがタスクの計画、アプリの操作、関数呼び出し、およびユーザー好みのフレームワークによる振る舞いの微調整を行えるようにしています。Gemma 4 はユーザー自身のハードウェア上で実行できるため、効率的な開発と展開が可能です。ベンチマーク結果は優れた性能を示しており、IT Thinking(31B)、MMMLU(1365 タスク中約 85%)、MMMU Pro(76.9–44.2%)、AIME 2026 数学ノーツール(89.2–20.8%)、LiveCodeBench v6 コーディング(80.0–29.1%)、GPQA Diamond 科学知識(84.3–42.4%)および τ2‑bench エージェント型ツール使用小売(86.4–6.6%)において高いスコアを記録しています。これらのスコアは、Gemma 3 など以前のモデルを上回りつつ、デバイス内での展開に十分な効率性を保っていることを示し、消費者向けデバイスおよび企業用途に対して競争力があり低リソースで利用できる AI プラットフォームとして位置づけられます。

2026/04/03 3:22

**テイルスケールの新しい macOS ホーム**

## Japanese Translation: > **概要:** > Tailscale のメニューバーアイコンは、2021 年以降の MacBook Pro でノッチに隠れてしまい、ユーザーがアプリにアクセスできなくなることがあります。Apple はノッチ内のアイコンを移動または回避するネイティブな方法を提供しておらず、そのため ICE や Bartender といったサードパーティ製ツールがよく利用されます。Tailscale は `occlusionState` を使用してアイコンが隠れたときに検知し、ポップアップで警告を表示します。ただし、この警告は蓋の開閉時やモニター変更時、その他ディスプレイの不具合時に誤って発火することがあります。 > 同社は新しいウィンドウ型 macOS インターフェイス(バージョン 1.96.2 でデフォルト有効)をリリースしました。このインターフェイスはメニューバーアプリと並行して動作し、ノッチの問題に影響されません。UI には Tailnet デバイスの検索可能な一覧、Ping/IP コピー、Taildrop ファイル転送、Exit‑Node 選択、エラー時に赤く表示される Dock アイコン、ミニプレイヤー、およびオンボーディングツアーが含まれており、Dock か Spotlight から起動できてメニューバーアプリを補完する形になります。ウィンドウ型クライアントで「Hide Dock icon」を有効にしたユーザーでも、隠れたアイコンの警告が発生する可能性があります。 > Tailscale は Windows 向けにも同様の UI を計画しており、macOS 体験を向上させるためにユーザーフィードバックを収集しています。Apple の将来的な解決策は、ノッチ内でアイコン描画を防止するか、メニューバー項目用のオーバーフロー機構を提供することになる可能性があり、ウィンドウ型アプリの普及に伴いポップアップ修正が不要になる可能性があります。

2026/04/03 1:00

**Azureの信頼を蝕んだ決定 – 元Azureコアエンジニアによる考察** - **機能過剰な約束** *約束された機能が遅れて提供されるか、まったく実装されないことで、ユーザーは誤解を受けたと感じました。* - **APIの安定性が一貫していない** *頻繁に破壊的変更が行われ、十分な非推奨期間が設けられないため、開発者の信頼感が揺らぎました。* - **価格設定の不透明さ** *事前告知のない調整や混乱を招く請求モデルにより、顧客は財務予測性を失いました。* - **セキュリティパッチの遅延** *重大な脆弱性が修正されるまで時間がかかり、クライアントは不必要なリスクにさらされました。* - **ドキュメント更新の遅れ** *プラットフォームのリリースに追いつかない文書は、ユーザーを信頼性の低いコミュニティ資料へと強制しました。* これら一連の決定が、Azureがかつて利用者から享受していた信頼を徐々に蝕んでしまいました。

## Japanese Translation: --- ### Summary 著者は、Microsoft が Overlake で使用されている小型 ARM SoC に **173 の Azure ノードエージェント** を移植する計画が非現実的であり、リスクが高く、Azure Core の評判や主要顧客・政府パートナーとの信頼を損なう可能性があると主張しています。核心となる問題は、ARM SoC の厳しいハードウェア制限―2 本ポートの FPGA メモリが 4 KB に限定されていること―にあり、このため多くのエージェントをサポートすることが不可能です。現在の Xeon ノードはすでに VM 密度(ノードあたり数十台の VM とハイパーバイザー容量約 1,024 台)で苦戦しており、ワークロードに対して性能ジッターを引き起こしています。 著者はまた、OpenAI、Anthropic Claude、SharePoint Online などの高プロファイルクライアントに影響を与える可能性のあるセキュリティリスクを指摘し、国家安全保障上の懸念を提起しています。これらの懸念を Microsoft の経営層(CEO、取締役会、Cloud + AI EVP)に伝えたにもかかわらず、著者は回答や是正措置を受けていません。 2023 年以降 Azure Core に関わり、Overlake カード設計の経験もある著者は、この欠陥のある計画を進めることが Azure Core の「デス・マーチ」になり得ると警告し、顧客信頼を侵食し米国政府関係者との関係に緊張を生む可能性があると述べています。この記事は、さらに詳細を知るために Part 2 への継続読了を促しています。

Foxing は、Linux ファイルシステム用の eBPF で駆動されるレプリケーション エンジンを目指しています。 | そっか~ニュース