Veritas™ File System プログラマーズリファレンスガイド - Linux

Last Published:
Product(s): InfoScale & Storage Foundation (7.3.1)
  1. Veritas File System Software Developer's Kit
    1.  
      Software Developer's Kit について
    2. File System Software Developer's Kit の機能
      1.  
        API ライブラリインターフェース
      2.  
        FCL(File Change Log)
      3.  
        マルチボリュームサポート
      4.  
        Veritas File System I/O
    3.  
      Software Developer's Kit RPM
    4.  
      必要なライブラリとヘッダーファイル
    5. コンパイル環境
      1.  
        異なるコンパイラによる再コンパイル
  2. FCL(File Change Log)
    1. FCL ファイルについて
      1.  
        記録される変更
      2. FCL(File Change Log)ファイルの使用
        1.  
          領域の使用状況
        2.  
          システムの完全スキャンの削減
        3.  
          ファイル履歴のトレース
      3.  
        FCL ログ記録のアクティブ化
      4. FCL ファイルのレイアウト
        1.  
          FCL(File Change Log)スーパーブロック
        2.  
          FCL(File Change Log)レコード
    2. レコードタイプ
      1.  
        特殊レコード
      2.  
        一般的なレコードの順番
    3. FCL(File Change Log)チューニングパラメータ
      1.  
        チューニングパラメータで FCL の拡張サイズを処理するには
    4. FCL(File Change Log)のアプリケーションプログラミングインターフェース
      1.  
        操作性
      2.  
        後方互換
      3. API 関数
        1.  
          FCL レコードにアクセスするための関数
        2.  
          FCL でオフセットとタイムスタンプをシークするための関数
        3. vxfs_fcl_open
          1.  
            戻り値
        4. vxfs_fcl_close
          1.  
            パラメータ
        5. vxfs_fcl_getinfo
          1.  
            戻り値
        6. vxfs_fcl_read
          1.  
            パラメータ
          2.  
            入力
          3.  
            出力
          4.  
            戻り値
        7. vxfs_fcl_getcookie
          1.  
            パラメータ
        8. vxfs_fcl_seek
          1.  
            パラメータ
          2.  
            戻り値
        9. vxfs_fcl_seektime
          1.  
            パラメータ
          2.  
            戻り値
        10. vxfs_fcl_sync
          1.  
            パラメータ
      4. FCL(File Change Log)レコード
        1.  
          定義
        2.  
          fcl_iostats 構造体
        3.  
          fcl_acsinfo 構造体
        4.  
          レコードの構造体のフィールド
      5. FCL(File Change Log)レコードのコピー
        1.  
          インデックス保守アプリケーション
        2. 使用状況プロファイルのコンピューティング
          1.  
            初期設定
          2.  
            手順の例
          3.  
            オフホスト処理
      6. Veritas File System と FCL のアップグレードとダウングレード
        1.  
          FCL バージョン 4 へのバージョン 3 ファイルの変換
        2.  
          Veritas File System バージョンのダウングレード
    5. パス名の逆引きルックアップ
      1.  
        i ノード
      2.  
        vxfs_inotopath_gen
  3. マルチボリュームサポート
    1.  
      MVS について
    2.  
      MVS の利用
    3. ボリュームアプリケーションプログラミングインターフェース
      1.  
        ボリュームセットの管理
      2.  
        ファイルシステムのボリュームセットの問い合わせ
      3.  
        ファイルシステム内のボリュームの変更
      4.  
        ボリュームのカプセル化とカプセル化の解除
    4. 割り当てポリシーアプリケーションプログラミングインターフェース
      1.  
        ファイル割り当ての指示
      2.  
        ポリシーの作成と割り当て
      3.  
        定義されたポリシーの問い合わせ
      4.  
        ポリシーの実施
    5.  
      データ構造
    6. ポリシーとアプリケーションプログラミングインターフェースの使用
      1.  
        割り当てポリシーの定義と割り当て
      2.  
        ボリュームアプリケーションプログラミングインターフェースの使用
  4. 名前付きデータストリーム
    1.  
      名前付きデータストリームについて
    2.  
      名前付きデータストリームの使用
    3.  
      名前付きデータストリームのアプリケーションプログラミングインターフェース
    4.  
      名前付きデータストリームの一覧表示
    5.  
      名前付きデータストリームの名前空間
    6.  
      ほかのシステムコールにおける動作の変更
    7.  
      名前付きデータストリームの問い合わせ
    8.  
      アプリケーションプログラミングインターフェース
    9.  
      コマンドリファレンス
  5. Veritas File System I/O
    1.  
      Veritas File System I/O について
    2.  
      凍結と解凍
    3. キャッシュアドバイザリ
      1.  
        ダイレクト I/O
      2.  
        同時 I/O
      3.  
        非バッファ I/O
      4.  
        その他のキャッシュアドバイザリ
    4. エクステント
      1. エクステント属性
        1.  
          属性の詳細
      2.  
        領域予約: ファイルへの事前領域割り当て
      3.  
        固定エクステントサイズ
      4.  
        エクステント属性のアプリケーションプログラミングインターフェース
      5. 割り当てフラグ
        1.  
          領域の予約での割り当てフラグ
        2.  
          予約領域の解放
        3.  
          非永続的な予約
        4.  
          予約領域を超えた書き込みの禁止
        5.  
          連続した予約領域
        6.  
          ファイルサイズに予約領域を含める
        7.  
          ファイルの増加分の読み取り
      6.  
        固定エクステントサイズでの割り当てフラグ
      7.  
        エクステント属性 API の使用方法
      8.  
        固定エクステントサイズの設定
  6. シン再生
    1.  
      シンストレージについて
    2.  
      シン再生について
    3. シン再生のアプリケーションプログラミングインターフェース
      1.  
        vxfs_ts_reclaim の戻り値

凍結と解凍

ファイルシステムをフリーズすると、ファイルシステムへのすべての I/O 処理が一時的にブロックされ、ファイルシステム上で sync が実行されます。現在の操作が完了して、ファイルシステムはディスクに同期されます。ファイルシステムのフリーズ処理は、ファイルシステムの、ボリュームレベルで一貫性のある安定したイメージを取得するために必要な手順です。

ボリュームレベルで一貫性のあるファイルシステムイメージは、ファイルシステムスナップショットツールを使って取得し、使うことができます。フリーズ処理によって、ダーティなメタデータやユーザーデータが格納されたファイルシステムキャッシュ内のすべてのバッファおよびページがフラッシュされます。さらに、この操作によって、ファイルシステムがアンフリーズされるまで、ファイルシステムに対するすべての新しい操作が保留されます。

VxFS には、アプリケーションプログラムから VxFS ファイルシステムをフリーズおよびアンフリーズするための ioctl インターフェースが用意されています。このインターフェースとは、VX_FREEZEVX_FREEZE_ALL および VX_THAW のことです。

VX_FREEZE ioctl は、単一のファイルシステムに対して機能します。この ioctl を実行しているプログラムは、指定したファイルシステムをフリーズし、ファイルシステムをアンフリーズするまで、ファイルシステムに対するすべてのアクセスをブロックできます。ファイルシステムは、VX_FREEZE ioctl によって指定されたタイムアウト値の期限が切れるか、または VX_THAW ioctl がファイルシステムに対して実行されると、アンフリーズされます。

VX_THAW ioctl はフリーズされたファイルシステムに対して機能します。このインターフェースを使って、タイムアウト値が経過する前に、指定したファイルシステムをアンフリーズできます。

VX_FREEZE_ALL ioctl インターフェースは 1 つまたは複数のファイルシステムをフリーズします。VX_FREEZE_ALL ioctl は、フリーズ処理で複数のファイルシステムが指定された場合、原子的に実行します。VxFS は指定したファイルシステムへの同時アクセスをブロックし、1 回の書き込み処理で、複数のファイルシステムを変更する可能性のあるユーザー起動の書き込み処理を許可しません。VX_FREEZE_ALL は単一のファイルシステムでも使えるため、VX_FREEZE ioctl よりも VX_FREEZE_ALL の方が望ましいインターフェースです。

VX_FREEZE または VX_FREEZE_ALL ioctl を実行すると、クリーンなファイルシステムイメージが生成されます。このイメージは、ファイルシステムデバイスから分離した後でマウント可能になります。フリーズ要求に応じて、変更されたすべてのファイルシステムメタデータがディスクにフラッシュされます。ログ内には、分離したイメージをマウントする前に再生する必要がある保留中のファイルシステムトランザクションはありません。

VX_FREEZE インターフェースおよび VX_FREEZE_ALL インターフェースのどちらを使っても、ローカルにマウントされたファイルシステム、ローカルまたはリモートでマウントされたクラスタファイルシステムをフリーズできます。

次の表に、VxFS リリースとのフリーズ/アンフリーズの互換性を示します。

表: VxFS リリースとのフリーズ/アンフリーズの互換性

VxFS 3.5

VxFS 4.0

VxFS 4.1

VxFS 5.0 以降

VX_FREEZE

ローカルファイルシステム

ローカルファイルシステム

Cluster File System

ローカルファイルシステム

Cluster File System

ローカルファイルシステム

Cluster File System

VX_FREEZE_ALL

ローカルファイルシステム

ローカルファイルシステム

ローカルファイルシステム

Cluster File System

ローカルファイルシステム

Cluster File System

ファイルシステムをフリーズする場合は、ファイルシステムをターゲットにしている外部リソースへの影響を軽減するため、フリーズの適切なタイムアウト値を慎重に選択する必要があります。ファイルシステムがフリーズされている間、ユーザーまたはシステムのプロセスおよびリソースはブロックされます。指定したタイムアウト値が大きすぎると、リソースがブロックされる時間が長くなります。

ファイルシステムがフリーズしている間、VX_THAW ioctl に使うために、ファイルシステムのルートディレクトリからファイル記述子を取得しようとすると、ファイルシステムのフリーズ状態の結果として、呼び出し元のプロセスがブロックされます。ファイル記述子は、VX_FREEZE_ALL またはVX_FREEZE ioctl を発行する前に取得しておく必要があります。

タイムアウト期間が期限切れになる前に、VX_THAW ioctl を使い、VX_FREEZE_ALL ioctl によってフリーズされたファイルシステムをアンフリーズします。

プログラミングインターフェースは次のようになります。

include <sys/fs/vx_ioctl.h>
int             timeout;
int             vxfs_fd;
/*
 * A common mistake is to pass the address of "timeout".
 * Do not pass the address of timeout, as that would be
 * interpreted as a very long timeout period
 */
 if (ioctl(vxfs_fd, VX_FREEZE, timeout))
   {perror("ERROR: File system freeze failed");
}

ファイルシステムが複数ある場合:

int              vxfs_fd[NUM_FILE_SYSTEMS];
struct           vx_freezeall freeze_info;
freeze_info.num = NUM_FILE_SYSTEMS
freeze_info.timeout = timeout;
freeze_info.fds = &vxfs_fd[0];
if (ioctl(vxfs_fd[0], VX_FREEZE_ALL, &freeze_info))
   {perror("ERROR: File system freeze failed");
}
for (i = 0; i < NUM_FILE_SYSTEMS; i++)
    if (ioctl(vxfs_fd[i], VX_THAW, NULL))
       {perror("ERROR: File system thaw failed");
    }