目的
ファイル・サーバーに非同期で書き込むことを可能にします。
構文
fs storebehind [-kbytes <asynchrony for specified names>] [-files <specific pathnames>+] [-allfiles <new default (KB)>] [-verbose] [-help] fs st [-k <asynchrony for specified names>] [-f <specific pathnames>+] [-a <new default (KB)>] [-v] [-h]
構文
fs storebehind コマンドを使用すると、アプリケーションがファイルをクローズするとき、キャッシュ・マネージャーはファイル・サーバーに遅延非同期書き込みを実行できます。デフォルトでは、キャッシュ・マネージャーはアプリケーション・プログラムがファイルをクローズするとき、即時に、そして同期的に、すべてのデータをファイル・サーバーに書き込みます。つまり、close システム・コールは、キャッシュ・マネージャーが実際にファイルの最終チャンクをファイル・サーバーに転送するまで戻らないということです。このコマンドは、キャッシュ・マネージャーがアプリケーションに制御を戻したときにファイル・サーバーに書き込めるように残すことができるファイルの KB 数を指定します。マシンで作業を行うユーザーは通常大きいファイルで作業を行うのでこれは有効ですが、「注意」セクションで説明されている複雑な問題が発生することもあります。
次の設定のどちらかまたは両方を単一コマンドで行います。
たとえば、以下の設定は、アプリケーションがファイルをクローズすると、キャッシュ・マネージャーは、ファイル・サーバーに書き込むファイルが残り 10 KB になるとすぐに制御をアプリケーションに戻すことができることを意味しています。
-allfiles 10
たとえば、以下の設定は、アプリケーションが bigfile および biggerfile ファイルのどちらかをクローズすると、キャッシュ・マネージャーは、ファイル・サーバーに書き込むファイルが残り 1 MB になるとすぐに制御をアプリケーションに戻すことができることを意味しています。
-kbytes 1024 -files bigfile biggerfile
一度明示値がファイルに設定されると、それを再度デフォルトで非同期的に格納するには、その値に -kbytes を設定することに注意してください。言い替えると、一度別の値がファイルに設定されると、自動的にファイルをデフォルトで非同期的に格納する引き数の組み合わせはないということです。
現在個々のファイルまたはすべてのファイルに適用されている設定を表示するには、コマンドの引き数をこの解説ページにある「出力」セクションで指定されている一定の組み合わせで使用します。
注意
以下の理由のため、ほとんどの場合、このコマンドを使用することは推奨されていません。
通常の状況では、非同期の設定は、キャッシュ・マネージャーが、他よりもアプリケーションにより速く制御を戻す結果になりますが、保証はありません。
遅延書き込みに失敗すると、アプリケーションに通知する方法はありません。それは、close システム・コールがすでに成功を示すコードを戻しているからです。
非同期的な書き込みは、書き込み操作によってファイルを格納するボリュームの割り当て量を超えた場合、ユーザーがそれに気付かない可能性が高くなります。常にそうであるように、ボリュームの割り当て量を超えたファイルの部分は失われ、以下のようなメッセージが表示されます。
No space left on device
データの脱落を回避するには、ファイルを格納しているボリュームに、書き込みが予想されるデータ量に使用可能なスペースがあるかどうかを検査することをお勧めします。
オプション
出力
コマンドのオプションがなにも組み込まれていない場合、または -verbose フラグだけが指定されている場合には、次のメッセージがデフォルトの保存非同期性 (ローカル・マシンで実行中のアプリケーションによって操作されていて、特定の非同期式が設定されていないすべてのファイルに適用する設定) をレポートします。
Default store asynchrony is x kbytes.
値 0 (ゼロ) は、同期書き込みを示しています。マシンが最後にリブートされてから、このコマンドに -allfiles 引き数が誰からも指定されなかった場合には、この値がデフォルトになります。
-files 引き数が、-kbytes 引き数なしに使用された場合には、出力は、デフォルトの保存非同期性とともに指定された各ファイルに適用される値を報告します。特定の値が以前からファイルに設定されていた場合には、次のメッセージがその値を報告します。
Will store up to y kbytes of file asynchronously. Default store asynchrony is x kbytes.
明示的な -kbytes 値が設定されていないため、デフォルトの保存非同期性をファイルに適用している場合には、代わりにメッセージは次のようになります。
Will store file according to default. Default store asynchrony is x kbytes.
-verbose フラグが、値を設定する引き数 (-files および -kbytes、または -allfiles、または 3 つすべて) と組み合わされている場合には、設定が即時に有効になったことを確認するメッセージが表示されます。他の引き数またはフラグを使用しない場合は、-verbose フラグがデフォルトの保存非同期性のみ報告します。
例
次のコマンドを指定すると、ファイル・サーバーに書き込みが可能な 100 KB が残っている状態で、キャッシュ・マネージャーは test.data ファイルをクローズしたアプリケーション・プログラムに制御を戻すことができます。 -verbose フラグは、新しい設定を確認する出力を作成します。デフォルトの非同期式記憶装置はゼロです。
% fs storebehind -kbytes 100 -files test.data -verbose Will store up to 100 kbytes of test.data asynchronously. Default store asynchrony is 0 kbytes.
必要となる特権
-allfiles 引き数を使用するには、発行者がローカル・スーパーユーザー root としてログインしなくてはなりません。
-kbytes および -files 引き数を組み込むには、発行者がローカル・スーパーユーザー root としてログインするか、各ファイルのディレクトリーの ACL にw (書き込み) アクセス権が必要です。
(引き数を使用しないか、-file 引き数を単独で、または -verbose 引き数を単独で使用することにより) 現在の設定を表示する場合は、特権は必要ありません。
関連情報