名前

vfs_preopen — 番号付けられたファイルを読むアプリケーションのために読み込み遅延を隠す

書式

vfs objects = preopen

説明

このVFSモジュールは、 samba(7)システムの一部である。

このモジュールは、とても厳しいレイテンシ要求下で番号付け られた複数のファイルを読むアプリケーションを支援する。これが 発生する1つの領域は、フレーム毎に1つのファイルを読むビデオ ストリーミングアプリケーションである。

このモジュールを使う場合、ファイルをオープンし、一定のバイト 数のデータを読みシステムキャッシュに入れるヘルパプロセスが複数 起動され、そのため、その後、実際のアプリケーションからの要求が 来ても、ディスクアクセスが不要になる。

このモジュールはスタック可能である。

オプション

preopen:posix-basic-regex = BOOL (既定値: no)

preopen:posix-basic-regex = yes は、 preopen:names オプションの意味を変更する。 詳細については以下を参照。

preopen:names = /pattern1/pattern2/

preopen:names はプレオープンヘルパがその仕事を行うための トリガとなるファイル名パターンを指定する。ファイルは番号の 昇順であることを仮定している。そのため、もしも、読みたい ファイルの名前が、FRAME00000.frm FRAME00001.frm と番号 づけられているならば、これらをリストするために、 preopen:names=/FRAME*.frm/ と記述する。 既定のアルゴリズムは、次のフレームの名前を計算するため、 最初の(少なくとも 3桁の)数字を使う。

preopen:posix-basic-regex = yes は、 preopen:names オプションの意味を変更する。 すなわち、POSIX Basic Regular Expression' 文字列がパターンとして 使われることを意味する。フレーム番号の増分を表す数字の位置を指定する ために、'\('で始まり'\)'で終わる 'subexpression' が、各パターンで 1つだけ必要であるということである。 Movie7599Frame0v1234.txt, Movie7599Frame1v1234.txt, Movie7599Frame2v1234.txt から Movie7599Frame9v1234.txt というようなファイル名を得るには、 1桁の数字にちょうど一致するために、 preopen:names = /.*Frame\([0-9]\).*\.txt/ を使うが、これは実際の例とは異なり、ここでできうる可能性を示している。

preopen:num_bytes = BYTES

ヘルパが呼び出すバイトを指定する。既定値は1である。

preopen:helpers = NUM-PROCS

フォークされるヘルパプロセス数を指定する。既定値は1である。

preopen:queuelen = NUM-FILES

事前にオープンしておくファイル数を指定する。既定値は、次の ファイルから連続して10ファイルである。

preopen:match_log_level = LOGLEVEL

ロジックの使用をデバッグ又は監査するため、このオプションを使用して、 'preopen:names' のパターンに実際に一致するファイル名の 詳細をログレベルで指定し、ログに記録することができる。

'preopen:founddigits_log_level' and 'preopen:push_log_level' も参照のこと。

既定値は log level 5 である。 'preopen' デバッグクラスの特別な扱いのため、 smb.conf(5) 中の、'log level' セクションも参照のこと。

preopen:nodigits_log_level = LOGLEVEL

preopen の設定をデバッグ又は監査するため、このオプションを指定して、 'preopen:names' のパターンに実際に一致するファイル名の 詳細をログレベルで指定するが、同時に予期される数字を含まないものを、 ログに記録することができる。 これは通常、ファイル名中の数字の位置をより正確に定義するため、 設定を調整、注意するため、管理者が使うものである。

既定値は、log level 1 である。 'preopen' デバッグクラスの特別な扱いのため、 smb.conf(5) 中の 'log level' 節も参照のこと。

preopen:founddigits_log_level = LOGLEVEL

preopen の設定をデバッグ又は監査するため、このオプションを指定して、 'preopen:names' のパターンに実際に一致するファイル名の 詳細をログレベルで指定し、同時に有効な予期される数字を含むものを ログに記録することができる。これは、preopen をキューイングするために、 十分な情報が含まれていることを意味する。

既定値は log level 3 である。 'preopen' デバッグクラスの特別な扱いのため、 smb.conf(5) 中の 'log level' 節も参照のこと。

preopen:reset_log_level = LOGLEVEL

一致したファイル名が 'preopen:names' とは異なるパターンに 属している場合、異なった親ディレクトリ、あるいは最後に見つかったファイル名とは 大きく異なる場合、モジュールは、内部キュー状態をリセットする必要がある。 これは、以前のキュー状態に属するヘルパプロセスが、preopen をこれ以上プッシュしない ことを意味する。このようなキューリセットをデバッグあるいは監査するためには、 このオプションを使用してログレベルの詳細を指定し、ログを取る。

既定値は log level 5 である。 'preopen' デバッグクラスの特別な扱いのため、 smb.conf(5) 中の 'log level' 節も参照のこと。

preopen:push_log_level = LOGLEVEL

preopen の設定をデバッグ又は監査するため、このオプションを指定して、 実際に preopen ヘルパプロセスにプッシュされるファイル名について、 詳細をログレベルで指定し、ログに記録することができる。 これは、それらがまもなく実際に preopen されることを意味する。

既定値は log level 3 である。 'preopen' デバッグクラスの特別な扱いのため、 smb.conf(5) 中の 'log level' 節も参照のこと。

preopen:queue_log_level = LOGLEVEL

内部キュー処理の詳細をデバッグするため、 このオプションを使ってログレベルの詳細を指定し、ログできる。

既定値は log level 10 である。 'preopen' デバッグクラスの特別な扱いのため、 smb.conf(5) 中の 'log level' 節も参照のこと。

バージョン

このマニュアルページは Samba バージョン 4.17.0 用である。

著者

オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew Tridgell によって作成された。現在 Samba は Samba Team に よって、Linuxカーネルの開発と同様のオープンソースプロジェクト として開発が行なわれている。

The PREOPEN VFSモジュールは、 Volker LendeckeとIBMの開発者にによって作成され、寄贈された。

日本語訳

このドキュメントは、Samba 4.15.0 - 4.17.0 に対応する。

このドキュメントの翻訳は

  • 太田俊哉 (ribbon@samba.grjp)

によって行なわれた。