4.6. RADOS
rgw
デーモンはスタックオーバーフローによりクラッシュしなくなった
以前は、可変長配列のスタックベースの割り当てを含み、デーモンの数が 10,000 を超える大規模なクラスターでスタックオーバーフローが発生していました。その結果、Ceph Object Gateway デーモンがクラッシュしました。
この修正により、可変長配列のスタックベースの割り当ては使用されなくなり、スタックオーバーフローが回避され、Ceph Object Gateway デーモンは期待どおりに動作するようになりました。
プールの削除により、OSDMap から pg_upmap_primary
マッピングが削除されるように
以前は、プールを削除しても OSDMap から pg_upmap_primary
マッピングは削除されませんでした。その結果、pg_upmap_primary
マッピングは確認されましたが、プールと pgid
が存在しなくなったため、削除できませんでした。
この修正により、プールが削除されるたびに、OSDMap からの pg_upmap_primary
マッピングが自動的に削除されるようになりました。
破棄された OSD は ceph node ls
コマンドでリストされなくなった
以前は、破棄された OSD は状態が示されないままリストされていたため、ユーザーの混乱を招き、cephadm が誤ってそれらを迷子として報告する原因となっていました。
この修正により、コマンドは、破棄された OSD を表示する前にそのステータスをチェックして除外し、出力の信頼性および正確性が確保されるようにします。
ISA-L イレイジャーコードプラグインの AVX512 サポートが有効に
以前は、ビルドスクリプトの問題が原因で、プラグインは AVX512 命令セットを活用できず (CPU が AVX512 命令セットをサポートしていても)、パフォーマンスが低下していました。
この修正により、ビルドスクリプトで AVX512 サポートが正しく有効になり、プラグインが利用可能な CPU 機能を活用してパフォーマンスを向上できるようになります。
bluefs ( -- ceph_assert (delta.offset == fnode.allocated)
) の再生中に複数の OSD がクラッシュする
以前、RocksDB の SST ファイルが拡大しないように修正が実装されましたが、バグが含まれていました。その結果、BlueFS ログが破損し、無視できるにもかかわらず OSD の起動を妨げるエラーが発生しました。
この修正により、フラグがエラーをスキップし、BlueFS が更新されてエラーが発生しなくなります。現在、RocksDB ディスク領域の過膨張を防ぐための元の修正が意図したとおりに機能します。
BlueFS ログが競合状態により破損しなくなった
以前は、BlueFS の切り捨て操作とリンク解除操作でまれに、ログが削除されたファイルを参照することがありました。これにより BlueFS ログが破損し、OSD の起動中にアサーションエラーが発生し、クラッシュループが発生しました。
この修正により、適切なロックを使用して操作が正しく順序付けられるようになり、ログの破損が防止され、アサーションの失敗が解消されます。