NFSv4.2 FlexFiles

投稿者: | 2025年4月27日

Flex Filesは、pNFSと呼ばれるアーキテクチャを利用して、ストレージデバイスを並列に利用できるようにします。これにより、ファイルシステムレベルでのパフォーマンス向上と、ストレージの拡張性が向上します。

RFC 8435 – Parallel NFS (pNFS) Flexible File Layout 日本語訳

draft-haynes-nfsv4-mojette-encoding-01 – The Mojette Transformation for the Erasure Coding of Files in NFSv4.2

RFC 9754: Extensions for Opening and Delegating Files in NFSv4.2

メリット

  • 性能向上:大容量ファイルや大量の小規模ファイルでのI/O性能が向上します。
  • 拡張性向上:ストレージ容量を簡単に拡張できます。
  • 運用効率向上:システム全体を停止させることなく、ストレージを拡張できます。
  • 高い可用性:

機能

概要

  • ファイルのメタデータ(メタデータサーバー上)とデータ(ストレージデバイス上)を分離
  • クライアント側のミラーリング

一覧

  • FlexFiles Layouts クライアントにファイルの分散配置情報(レイアウト)を提供し、直接データサーバー(DS)にアクセスさせる。
  • Layout Recall サーバーがクライアントにレイアウトの返却(リコール)を要求し、レイアウト管理の整合性を保つ。
  • Client Mirrorin データ更新時にクライアントサイド側でミラーリングされたコピーを更新。メタデータサーバーは、ミラーリングされたコピーの数と各ミラーの場所を決定します。
  • マルチパス 複数のストレージデバイスアドレスへのマルチパスをサポート
  • Device Address Management 各データサーバーのアドレス情報をクライアントに伝え、アクセス先の管理を行う。
  • クライアントI / Oエラーからの回復 データサーバー障害時に、メタデータサーバーはエラーを分析し、メディア障害の回復や欠落しているデータファイルの再構築など、必要な回復操作を決定。回復後新しいレイアウトをわたす。
  • Parallel Data Access クライアントが複数のデータサーバーに並列でアクセスし、高速な読み書きが可能に。
  • Sparse File Handling スパースファイル(空間を効率的に管理したファイル)のハンドリングに対応。
  • Layout Update ファイルの状態変更(サイズ拡張など)に応じて、サーバーとクライアント間でレイアウト情報を更新。
  • Erasure coding

レイアウト一覧

       enum layouttype4 {
           LAYOUT4_NFSV4_1_FILES   = 1,
           LAYOUT4_OSD2_OBJECTS    = 2,
           LAYOUT4_BLOCK_VOLUME    = 3,
           LAYOUT4_FLEX_FILES      = 4
       };
        
       struct layout_content4 {
           layouttype4             loc_type;
           opaque                  loc_body<>;
       };
        
       struct layout4 {
           offset4                 lo_offset;
           length4                 lo_length;
           layoutiomode4           lo_iomode;
           layout_content4         lo_content;
       };
        

コマンド一覧

  • LAYOUTGET
    クライアントがデータアクセスのためのレイアウト(データ配置情報)をサーバから取得する。
  • LAYOUTCOMMIT
    クライアントが、取得したレイアウトに基づくI/O操作が完了したことをサーバに通知する。
  • LAYOUTRETURN
    クライアントがレイアウトをサーバに返却する。必要なくなった場合やリコール時に使用。
  • LAYOUTRECALL(サーバ発行)
    サーバがクライアントに対して、貸し出していたレイアウトの返却を要求する。
  • GETDEVICEINFO
    クライアントがデータサーバ(DS)の情報(アドレスや属性など)を取得する。
  • GETDEVICELIST
    サーバが利用可能なデータサーバのリストをクライアントに提供する。
  • CB_LAYOUTRECALL(コールバック)

RFC9754

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です