管理データ管理オブジェクト

オブジェクトスキャン

RustFS のオブジェクトスキャナーについて、設計、実装、監視を説明します。

このガイドでは、RustFS オブジェクトスキャナーの設計と実装を扱います。イレイジャーコーディングとの連携、スクラブと修復、スケジュール、メトリクス、トラブルシューティングを含みます。

概要

RustFS のオブジェクトスキャナーはストレージエンジンに組み込まれ、オブジェクトの整合性を定期的に確認し、スケジュールされた操作を実行します。 スキャナーはディスク使用量の統計を収集し、ライフサイクルルールを評価し、オブジェクトのレプリケーションを実行し、破損したオブジェクトのデータ修復を開始します。

アーキテクチャと設計原則

スキャナーのアーキテクチャ

RustFS のスキャナーはハッシュサンプリングを使い、性能への影響を抑えるため、オブジェクト名のハッシュに基づいて 1024 個につき 1 個を検査対象に選びます。 スキャナーはイレイジャーコーディング層と連携します。欠損または破損したシャードを検出すると、残りの冗長シャードからそのシャードをオンラインで再構築します。

データの検証と復旧

RustFS のデータ検証は、メタデータの整合性を確認し、データを読み取って検証することで、潜在的な不良セクタを検出します。オブジェクトスキャナーはビットロットなどの問題を検出し、必要に応じて修復処理を開始します。

スキャンモードとスケジュール

RustFS は、性能と信頼性のバランスを取る 3 つのスキャンモードに対応しています。読み取り時のインライン検査、定期的なバックグラウンドスキャン、手動のフルスキャンです。 Ceph の osd_scrub_begin_hour 設定と同様に、管理者はスキャンの開始時刻と頻度を設定できます。たとえば、軽量チェックは既定で 1 日に 1 回実行されます。

監視とメトリクス

スキャナーは、タスクの総数、失敗数、所要時間の分布を Prometheus メトリクスとして報告します。例として rustfs_scanner_jobs_total、rustfs_scanner_failures_total、rustfs_scanner_duration_seconds があります。 スキャンの失敗率と所要時間にアラートを設定すると、ストレージやネットワークの問題を早期に検出して診断できます。

On this page