|
Facebookは最近、重要なコンピューティングクラスタ管理の問題を解決するために、Linuxカーネルコンポーネントと関連ツールのセットをオープンソース化しました。これらのプロジェクトは、リソース制御、リソース利用、ワークロード分離、負荷分散、測定と監視をカバーしており、BPF、Btrfs、Netconsd、Cgroup2、PSI、Oomdなどが挙げられます。 Facebook によれば、これらのプロジェクトは現在、同社のすべてのインフラストラクチャ実稼働環境、および他の多くの企業や組織の環境で大規模に使用されているという。 BPF BPFは、Linuxカーネルにおける非常に柔軟で効率的なコード実行エンジンであり、様々なフックポイントでバイトコードを実行し、カスタムコードの使用を可能にします。BPFはデータフィルタリングに広く使用されていますが、その命令セットは非常に汎用性と柔軟性に優れているため、ネットワーク以外にも、トレースやセキュリティ(サンドボックスなど)といった多くのユースケースをサポートし、実現することができます。 https://facebookmicrosites.github.io/bpf/ Btrfs Btrfsは、既存のデータセンターインフラストラクチャを基盤として構築された次世代ファイルシステムです。高度な機能、フォールトトレランス、修復、そして容易な管理に重点を置いたコピーオンライト(CoW)ファイルシステムです。Btrfsは、大規模なストレージサブシステムの問題を解決し、管理するために設計されており、スナップショット、オンラインデフラグ、プーリング、統合されたマルチデバイスサポートなどの機能をサポートしています。 https://facebookmicrosites.github.io/btrfs/ ネットコンスド Netconsdは、Linuxのnetconsoleメッセージを軽量に配信するUDPベースのnetconsoleデーモンです。Linuxカーネルからログデータを受信・処理し、構造化されたデータとして提供することで、運用エンジニアがクラスタ内の問題を迅速に特定できるようにします。 https://facebookmicrosites.github.io/netconsd/ Cグループ2 Cgroup2は、ワークロードをグループ化して構造化し、各グループに割り当てるシステムリソースの量を制御するために使用される次世代Linuxカーネルメカニズムです。メモリ、I/O、およびCPU用のコントローラを備えており、ワークロードの分離、各ワークロードのリソース割り当ての優先順位と構成の決定も可能にします。 https://facebookmicrosites.github.io/cgroup2/ PSI PSI(Pressure Stall Information)は、メモリ、CPU、I/Oという3つの主要リソースに対する新しいストレス指標を用いて、リソース不足を定量化する仕様を提供します。これらのストレス指標は、今回のオープンソースリリースで公開された他のカーネルおよびユーザー空間ツールと組み合わせることで、インテリジェントな開発および対応においてリソース不足の検出を可能にします。PSI統計情報は、差し迫ったリソース不足の早期警告を提供し、よりプロアクティブできめ細やかな対応を可能にします。 https://facebookmicrosites.github.io/psi/ うーむ Oomdは、システム上で実行されているプロセスのコンテキストと優先度をより正確に把握できる、ユーザー空間のOOM(Out of Memory)プロセスキラーです。不要なプロセスの一時停止や終了、システム内のメモリの再割り当てなど、OOM状態への対応を設定できます。 |