## 定義 ストレージ QoS(Quality of Service for Storage)とは、マルチテナント環境や大規模並列クラスタにおいて、共有ストレージリソース(ディスク帯域、ネットワーク帯域、I/O 処理スレッド、メタデータ処理能力等)に対する個々のクライアント・ジョブ・テナント・操作種別の消費レートを制御・保証し、特定の高負荷タスクによるリソース占有(うるさい隣人問題)や飢餓を抑止して、予測可能かつ公平な I/O 性能を提供する機構の総称である。 ネットワーク分野の帯域制御(トークンバケットフィルタ等)と異なり、ストレージ RPC は破棄(drop)するとアプリケーションの I/O エラーに直結するため、要求をキューに滞留させて遅延・整流する非ワークコンサービング(non work-conserving)なスケジューリング、または空き帯域を動的に再配分する適応型制御が要求される。(Source: [[@2017__SC__A Configurable Rule based Classful Token Bucket Filter Network Request Scheduler for the Lustre File System]]) ## 未解決の問い - 計算資源スケジューラ(SLURM、Kubernetes 等)と並列ストレージ QoS の疎結合な連携において、ジョブ投入時の帯域予約情報をストレージ層へ動的伝播する標準的 API はどのように設計されるべきか。 - 単一ファイルが数百のストレージターゲットにストライピングされる環境で、集中コントローラ方式(GRL)の収集遅延と制御精度のトレードオフを緩和する完全分散協調型レート制御は成立するか。 - バッファード I/O におけるクライアント側キャッシュと RPC 集約(aggregation)が引き起こす、見かけ上の IOPS と実効データ帯域幅の乖離を、サーバ側のみでいかに補正できるか。 ## 未編纂の観察 - **ネットワーク QoS とストレージ QoS の決定的相違はパケット破棄の可否にある**: ネットワークルータにおけるレート制御は許容レート超過パケットを破棄(drop)することで送信側 TCP の輻輳制御を駆動するが、ストレージ RPC の破棄はアプリケーションのファイル操作(POSIX read/write)の I/O エラーを直接引き起こす。したがってストレージ QoS は、超過要求をクラス別キューに保持して処理順序・遅延を操作するスケジューリング方式が必須となり、サーバ側の待ち行列メモリおよびタイムアウト管理が不可避の制約となる。(Source: [[@2017__SC__A Configurable Rule based Classful Token Bucket Filter Network Request Scheduler for the Lustre File System]]) - **分散ファイルシステムにおける大域 QoS はストライピングの存在により二重の調停を要する**: 単一サーバ内の局所的スケジューリング(NRS TBF)だけでは、ファイルが多数の OSS に分散配置されている場合に、クライアントが各サーバから並行して帯域を消費しクラスタ全体の上限を突破してしまう。そのため、サーバローカルの即時レート制御層と、クラスタ全体の資源利用率を監視して各サーバの割当レートを動的に再配分する大域協調層(GRL)の階層構造が必要となる。(Source: [[@2017__SC__A Configurable Rule based Classful Token Bucket Filter Network Request Scheduler for the Lustre File System]]) - **実行時 RPC 調停と初期配置最適化はストレージ QoS の直交・相補的アプローチである**: サーバ側 RPC スケジューラ(NRS TBF)が要求到着後の公平性やレート制限を保証するのに対し、ファイル作成時の大域的配置最適化(MCMF 法)はそもそも特定 OST/OSS やネットワークパスへの負荷集中を未然に防ぐ。初期配置が偏っている場合、後段の RPC 調停だけで公平性を維持しようとすると高負荷ターゲットで過剰なキューイング遅延やスループット低下を招くため、配置レベルでの動的ロードバランシングと到着レベルでの RPC QoS 制御を組み合わせることが真の QoS 保証に不可欠である。(Source: [[@2017__IEEE BigData__I O Load Balancing for Big Data HPC Applications]], [[@2017__SC__A Configurable Rule based Classful Token Bucket Filter Network Request Scheduler for the Lustre File System]]) ## 関連 - [[並列ファイルシステム]] - [[Lustre]] - [[HPCジョブスケジューリング]] - [[structures/000 Index|000 Index]] ## 出典 - [[@2017__SC__A Configurable Rule based Classful Token Bucket Filter Network Request Scheduler for the Lustre File System]] - [[@2017__IEEE BigData__I O Load Balancing for Big Data HPC Applications]]