D アーカイブのための構成ディレクティブ

この付録では、Oracle Hierarchical Storage Manager ファイルシステムを構成するディレクティブと、関連するソフトウェア操作の一覧を表示します。それぞれのディレクティブは、1 つ以上のコンマ区切りフィールドで構成された 1 つのテキスト行です。関連するディレクティブは、一緒に Oracle HSM コマンド (.cmd) ファイルに格納されます。

この付録の残りには、3 つの主要な種類のディレクティブの概要が記載されています。

追加情報については、Oracle HSM のマニュアルページを参照してください。

Oracle HSM コマンドファイルは、ここで説明されているようにコマンド行から構成することも、Oracle HSM Manager software を使用して構成することもできます。Oracle HSM Manager の詳細は、オンラインヘルプを参照してください。

アーカイブディレクティブ

このセクションには、archiver.cmd ファイルを構成するアーカイブディレクティブの使用法に関する情報が記載されています。アーカイブディレクティブは、ファイルのコピー、使用されるメディア、およびアーカイブソフトウェアの全体的な動作を制御するアーカイブセットを定義します。

アーカイブディレクティブには 4 つの基本タイプがあります。

グローバルディレクティブとファイルシステムディレクティブの両方が、ファイルのアーカイブ方法を制御します。ただし、アーカイバは、グローバルディレクティブを評価する前にファイルシステム固有のディレクティブを評価します。そのため、ファイルシステムディレクティブは、競合が存在する場合にグローバルディレクティブをオーバーライドします。同様に、ファイルシステムディレクティブ内では、最初に表示されるディレクティブによって後続の競合するディレクティブがオーバーライドされます。

グローバルアーカイブディレクティブ

グローバルディレクティブはアーカイバ全体の動作を制御し、構成済みのすべてのファイルシステムに合わせて動作を最適化することを可能にします。グローバルディレクティブは、単一のキーワードまたは等号 (=) のあとに追加データフィールドを伴うキーワードで構成されます。グローバルディレクティブは、archiver.cmd ファイルを開始し、最初のファイルシステムディレクティブで終了します。

archivemeta: メタデータをアーカイブするかどうかの制御

archivemeta 指示は、ファイルシステムメタデータをアーカイブするかどうかを制御します。ファイルシステム内でファイルの移動やディレクトリ構造の変更が頻繁に行われる場合は、ファイルシステムメタデータをアーカイブします。ただし、ディレクトリ構造が適度に安定している場合は、メタデータのアーカイブを無効にして、リムーバブルメディアドライブが行うアクションを減らすことができます。デフォルトでは、メタデータはアーカイブされません。

このディレクティブの形式は、次のとおりです。

archivemeta=state

state には、on または off を指定します。デフォルトは off です。

メタデータのアーカイブ処理は、Version 1 と Version 2 のどちらのスーパーブロックを使用するかによって、次のように異なります。

  • Version 1 ファイルシステムの場合、アーカイバはディレクトリ、リムーバブルメディアファイル、セグメント索引 i ノード、シンボリックリンクをメタデータとしてアーカイブします。

  • Version 2 ファイルシステムの場合、アーカイバはディレクトリおよびセグメントインデックス i ノードをメタデータとしてアーカイブします。リムーバブルメディアファイルおよびシンボリックリンクは、データブロックではなく i ノードに格納されます。これらはアーカイブされません。シンボリックリンクは、データとしてアーカイブされます。

archmax: アーカイブファイルサイズの制御

archmax ディレクティブは、アーカイブ (.tar) ファイルの最大サイズを指定します。target-size 値に達すると、アーカイブファイルにそれ以上のユーザーファイルが追加されることはありません。複数のサイズの大きいユーザーファイルが、1 つのアーカイブファイルに書き込まれます。

デフォルト値を変更するには、次のディレクティブを使用します。

archmax=media target-size

ここで media は、付録A および mcf のマニュアルページで定義されているメディアタイプの 1 つ、target-size は、アーカイブファイルの最大サイズです。この値はメディアによって異なります。デフォルトでは、光ディスクに書き込まれるアーカイブファイルは最大 5M バイトです。テープの場合の最大アーカイブファイルのデフォルトサイズは、512M バイトです。

アーカイブファイルのサイズとして、大きいサイズを設定した場合も、小さいサイズを設定した場合も、それぞれに利点と欠点があります。たとえば、テープにアーカイブする場合、archmax を大きいサイズに設定すると、テープドライブの停止と開始の頻度が下がります。しかし、大きいアーカイブファイルを書き込むと、テープの終わりが早すぎて、大量のテープが無駄になる可能性があります。ベストプラクティスとしては、メディア容量の 5% を超える値に archmax 指示を設定しないでください。

archmax 指示は、個々のアーカイブセットに対して設定することもできます。

bufsize: アーカイババッファーサイズの設定

デフォルトでは、アーカイブ対象ファイルは、メモリーバッファーを使用してアーカイブメディアにコピーされます。bufsize ディレクティブを使用すると、デフォルト値以外のバッファーサイズを指定したり、オプションでバッファーをロックしたりできます。状況によっては、これらのアクションにより、パフォーマンスを向上させることができます。さまざまな number-blocks 値を試すことができます。このディレクティブの形式は、次のとおりです。

bufsize=media number-blocks [lock]

ここでは:

  • media は、付録Amcf のマニュアルページで定義されているメディアタイプの 1 つです

  • number-blocks は、[2-1024] の範囲の数値です。デフォルトは 4 です。この値にメディアタイプの dev_blksize 値が乗算され、その結果がバッファーサイズとして使用されます。dev_blksize 値は defaults.conf ファイルで指定されます。詳細は、defaults.conf のマニュアルページを参照してください。

  • lock は、アーカイブコピーの作成時にアーカイバがロックバッファーを使用できるかどうかを指示します。

    lock が指定されている場合、sam-arcopy の動作中は、アーカイバがメモリー内のアーカイブバッファーにファイルロックを設定します。この動作により、入出力リクエストごとにバッファーをロックまたはロック解除することに伴うオーバーヘッドが回避され、その結果システムの CPU 時間を短縮できます。

    lock 引数は、大容量メモリーを備えた大型システムだけで指定する必要があります。十分なメモリーがないと、メモリー不足状態となります。lock 引数が有益なのは、アーカイブ対象のファイルに対して直接入出力が使用可能となっている場合のみです。デフォルトでは、lock は指定されておらず、アーカイブ用を含むすべての直接入出力バッファーに、ファイルシステムによってロックが設定されています。

-bufsize および -lock アーカイブセットコピーパラメータを使用すると、アーカイブセットごとにバッファーサイズとロックを指定できます。詳細は、アーカイブのコピーディレクティブを参照してください。

drives: アーカイブに使用するドライブ数の制御

デフォルトの場合、アーカイバはアーカイブ用自動ライブラリにあるすべてのドライブを使用します。使用するドライブ数を制限するには、drives ディレクティブを使用します。このディレクティブの形式は、次のとおりです。

drives=media-library count

ここで media-library は、mcf ファイルで定義された自動ライブラリのファミリセット名、count は、アーカイブで使用できるドライブの数です。

この目的でアーカイブセットコピーパラメータ -drivemax-drivemin、および -drives を使用することもできます。詳細は、アーカイブのコピーディレクティブを参照してください。

examine: アーカイブスキャンの制御

examine ディレクティブは、アーカイバがアーカイブの準備ができているファイルを特定するために使用する method を設定します。

examine=method

method は次のいずれかのディレクティブです。

  • デフォルトである noscan は継続アーカイブを指定します。最初のスキャンのあと、内容が変更されてアーカイブが必要なときにのみ、ディレクトリがスキャンされます。ディレクトリおよび i ノード情報はスキャンされません。このアーカイブ方法は、特にファイル数が 1,000,000 を超えるファイルシステムで、スキャンアーカイブよりも高いパフォーマンスが得られます。

  • scan は、スキャンアーカイブを指定します。ファイルシステムディレクトリがはじめてスキャンされた後で、常に i ノードがスキャンされます。

  • scandirs はスキャンアーカイブを指定します。ディレクトリは常にスキャンされます。i ノード情報はスキャンされません。

    アーカイバは、no_archive 属性が設定されたディレクトリをスキャンしません。そのため、変更されていないファイルが含まれるディレクトリに対してこの属性を設定することで、スキャン時間を短縮できます。

  • scaninodes は、スキャンアーカイブを指定します。i ノードは常にスキャンされます。ディレクトリ情報はスキャンされません。

interval: アーカイブ間隔の指定

アーカイバは、マウントされているすべてのアーカイブ対応ファイルシステムのステータスを定期的にチェックします。タイミングは、各ファイルシステムでのスキャン操作間の時間であるアーカイブ間隔によって制御されます。アーカイブ間隔を変更するには、interval ディレクティブを使用します。

継続アーカイブが設定されておらず、startagestartsize、または startcount のどのパラメータも指定されていない場合にのみ、interval ディレクティブは完全スキャンを開始します。継続アーカイブが設定されている (examine=noscan) 場合、interval ディレクティブはデフォルトの startage 値として機能します。このディレクティブの形式は、次のとおりです。

interval=time

time には、ファイルシステムのスキャンを行う時間間隔を指定します。デフォルトでは、time は秒単位と見なされ、値は 600 (10 分) です。別の時間単位 (分や時など) も指定できます。

アーカイバは、samu ユーティリティーの arrun コマンドを受信すると、すべてのファイルシステムのスキャンをすぐに開始します。archiver.cmd ファイルで examine=scan ディレクティブも指定されている場合は、arrun または arscan が実行されたあとで、スキャンが実行されます。

ファイルシステムに hwm_archive マウントオプションが設定されている場合は、アーカイブ間隔を自動的に短縮できます。ファイルシステムの利用率が高位境界値を超えると、アーカイバはスキャンを開始します。high=percent マウントオプションは、高位境界値をファイルシステムに設定します。

アーカイブ間隔の指定方法の詳細は、archiver.cmd および mount_samfs のマニュアルページを参照してください。

logfile: アーカイバログファイルの指定

アーカイバは、アーカイブ、再アーカイブ、またはアーカイブ解除された各ファイルに関する情報を含むログファイルを出力できます。ログファイルは、アーカイブアクションを連続的に記録したものです。デフォルトでは、アーカイバログファイルは有効になりません。ログファイルを指定するには、logfile ディレクティブを使用します。このディレクティブの形式は、次のとおりです。

logfile=pathname

pathname には、ログファイルの絶対パスとファイル名を指定します。logfile 指示は、個々のファイルシステムに対して設定することもできます。

アーカイバログファイルは、破損したり失われたりしたファイルシステムを回復するために不可欠であり、モニタリングと分析に役立つことがあります。そのため、アーカイバログを有効にして、バックアップしてください。詳細は、『Oracle Hierarchical Storage Manager and StorageTek QFS インストールおよび構成ガイド』を参照してください。

notify: イベント通知スクリプトの名前変更

notify 指示は、アーカイバのイベント通知スクリプトファイルの名前を設定します。このディレクティブの形式は、次のとおりです。

notify=filename

filename に、アーカイバのイベント通知スクリプトを含むファイルの名前、またはフルパスを指定します。デフォルトのファイル名は /etc/opt/SUNWsamfs/scripts/archiver.sh です。

アーカイバはこのスクリプトを実行して、さまざまなイベントをサイト固有の方法で処理します。このスクリプトは、第 1 引数のキーワード emergalertcriterrwarningnoticeinfodebug のいずれかで呼び出されます。

そのほかの引数については、デフォルトのスクリプトで説明されています。詳細は、archiver.sh のマニュアルページを参照してください。

ovflmin: ボリュームオーバーフローの制御

ボリュームオーバーフローが有効になっていると、アーカイバは複数のボリュームにまたがるアーカイブファイルを作成できます。ファイルサイズが指定された最小サイズを超えると、アーカイバはこのファイルの残りの部分を同じタイプの別のボリュームに書き込みます。各ボリュームに書き込まれたファイル部分のことを、「セクション」と呼びます。sls コマンドは、アーカイブコピーの一覧を表示して、各ボリュームにあるファイルの各セクションを示します。

アーカイバは、ovflmin 指示によってボリュームオーバーフローを制御します。デフォルトでは、ボリュームオーバーフローは使用不可となっています。ボリュームオーバーフローを有効にするには、archiver.cmd ファイルで ovflmin ディレクティブを使用します。このディレクティブの形式は、次のとおりです。

ovflmin = media minimum-file-size

ここで media付録Aおよび mcf のマニュアルページで定義されているメディアタイプの 1 つで、minimum-file-size はボリュームオーバーフローをトリガーする最小ファイルのサイズです。ovflmin 指示は、個々のアーカイブセットに対して設定することもできます。

ボリュームオーバーフローは、及ぼす影響を検討したうえで慎重に使用してください。複数のボリュームをまたぐファイルの場合は、障害回復とリサイクルが非常に難しくなります。ボリュームオーバーフローファイルでは、チェックサムは生成されません。チェックサムの使用方法の詳細は、ssum のマニュアルページを参照してください。

scanlist_squash: スキャンリストの連結の制御

scanlist_squash パラメータは、スキャンリストの連結を制御します。デフォルトの設定は無効 (off) です。このパラメータはグローバルに使用することも、特定のファイルシステム用に使用することもできます。

on にすると、アーカイバが共通の親ディレクトリから下に再帰的にスキャンできるように、このディレクティブはディレクトリツリー内のサブディレクトリのスキャンリストを統合します。多数のファイルとサブディレクトリがファイルシステム内で変更されている場合、スキャンリストの統合によって、アーカイブパフォーマンスが大幅に低下することがあります。

setarchdone: archdone フラグ設定の制御

setarchdone グローバルディレクティブは、アーカイブされることがないファイルで archdone フラグが設定されるかどうかを制御します。このディレクティブの形式は、次のとおりです。

setarchdone=state

stateon または off のいずれかです。examine ディレクティブが scandirs または noscan に設定されている場合、デフォルトは off です。

archdone フラグは、フラグ付きのファイルを無視するようにアーカイブ処理に指示します。通常、ファイルの指定されたコピーがすべて作成されたら、ファイルがあとで変更されるまで、またはファイルがあとで変更されないかぎり、後続のアーカイブ操作でファイルがスキップされるように、アーカイブ処理は archdone フラグを設定します。

ただし、setarchdoneon に設定されている場合、アーカイブ処理は、アーカイブ基準を満たさないためにアーカイブされることがない、アーカイブされていないファイルを特定してフラグを付けます。これによって将来のアーカイブのオーバーヘッドを削減できますが、ファイルの評価によってオーバーヘッドが即時に増加して、パフォーマンスに悪影響を与える可能性があります。

wait: アーカイバ起動の遅延

wait ディレクティブを使用すると、アーカイバは、samcmd コマンド、samu インタフェース、または Oracle HSM Manager からの開始シグナルを待機します。このディレクティブの形式は、次のとおりです。

wait

デフォルトでは、sam-fsd 初期化コマンドの実行時にアーカイバは自動的に開始します。

wait 指示は、個々のファイルシステムに対して設定することもできます。

ファイルシステムディレクティブ

ファイルシステムディレクティブは、特定のファイルシステムのアーカイブ動作を定義します。

fs: ファイルシステムの指定

fs=file-system-name ディレクティブでは、指定されたファイルシステム file-system-name にのみ適用される一連のアーカイブディレクティブが導入されます。このディレクティブの形式は、次のとおりです。

fs=file-system-name

file-system-name は、mcf ファイルで定義されているファイルシステム名です。

fs= ディレクティブのあとに配置された汎用ディレクティブとアーカイブセット関連付けディレクティブは、指定したファイルシステムにのみ適用されます。

copy-number [archive-age]: ファイルシステムメタデータの複数コピーの指定

ファイルシステムメタデータには、ファイルシステムにおけるパス名が含まれます。メタデータの複数のコピーが必要な場合は、archiver.cmd ファイルの fs= ディレクティブの直後にコピー定義を配置します。

copy-number [archive-age]

時間は、整数と時間の単位の 1 つ以上の組み合わせで表されます。単位には、s (秒)、m (分)、h (時)、d (日)、w (週)、および y (年) が含まれます。ディレクトリが頻繁に変更される場合に、複数のメタデータコピーを指定すると、これによってファイルシステムがメタデータテープボリュームをマウントする頻度が高くなる可能性があります。そのため、デフォルトでは、Oracle HSM は、メタデータの単一のコピーのみを作成します。

この例では、fs=samma1 ファイルシステムについてメタデータのコピー 1 が 4 時間 (4h) 後に、コピー 2 が 12 時間 (12h) 後に作成されます。

# General Directives
archivemeta = off
examine = noscan
# Archive Set Assignments
fs = samma1
1 4h
2 12h

ファイルシステムディレクティブとしての intervallogfilescanlist

いくつかの指示は、すべてのファイルシステムを対象とするグローバル指示として指定することも、1 つのファイルシステムだけを対象とする指示として指定することもできます。これらの指示については、次のセクションで説明されています。

archive-set-name: アーカイブセット割り当てディレクティブ

アーカイブセット割り当てディレクティブは、同時にアーカイブされるファイルを指定します。次で説明する幅広い選択基準を使用すると、非常に細かくファイルを指定できます。ただし、やむをえない場合を除いて、使用は避けてください。通常は、可能なかぎり包括的なアーカイブセットを最小数だけ構成するようにしてください。アーカイブセットでは、アーカイブメディアのセットが排他的に使用されます。そのため、過度に制限された割り当て基準によって個別に定義されたアーカイブセットが多数あると、メディアの利用率が低くなり、システムのオーバーヘッドが高くなり、パフォーマンスが低下します。極端なケースでは、ライブラリ内に十分な容量が残っているにもかかわらず、使用可能なメディアの不足が原因でジョブが失敗する可能性があります。

アーカイブセット割り当て指示の形式は、次のとおりです。

archive-set-name path [-access interval [-nftv]] [-after date-time] [-minsize size] [-maxsize size] [-user username] [-group groupname] [-name regex]

ここでは:

  • archive-set-name は、管理者によって定義されたアーカイブセットの名前です。

    名前には、最大 29 文字の大文字と小文字 [A-Za-z]、数字 [0-9]、および下線 (_) を任意の組み合わせで含めることができますが、先頭文字は文字である必要があります。空白文字を含むその他の文字は含めることができず、独自のアーカイブセットには Oracle HSM の特殊なアーカイブセット no_archiveall の名前は使用できません。

  • path は、ファイルシステム内でアーカイブ処理を開始するサブディレクトリのマウントポイントを基準とする相対パスを指定します。開始ディレクトリとそのサブディレクトリ内のすべてのファイルがアーカイブされます。ファイルシステム内のすべてのファイルを含めるには、ドット (.) 文字を使用します。パスの先頭にスラッシュ (/) を使用することはできません。

  • -access は、interval によって指定された期間アクセスされていないファイルを再アーカイブします。interval は整数で、s (秒)、m (分)、h (時)、d (日)、w (週)、および y (年) のいずれかの単位があとに付きます。

    このパラメータを使用すると、あまり使用されないファイルの再アーカイブを、高コストのメディアから低コストのメディアにスケジュールできます。ソフトウェアは、ファイルのアクセス時間と変更時間の妥当性検査を行い、これらの時間がファイルの作成時間以降であり、さらにファイルの検証時間以前であることを確認します。-nftv (ファイル時間の検証なし) パラメータは、この検証を無効にします。

  • -after は、date-time のあとで作成または変更されたファイルのみをアーカイブします。date-time は、YYYY-MM-DD [hh:mm:ss] [Z] 形式の式であり、YYYYMMDDhhmm、および ss は、それぞれ年、月、日、時、分、および秒を表す整数です。オプションの Z パラメータは、タイムゾーンを協定世界時 (UTC) に設定します。デフォルトは 00:00:00 と現地時間です。

  • -minsize および -maxsize は、指定された size より大きいか小さいファイルのみをアーカイブします。size は整数で、b (バイト)、k (K バイト)、M (M バイト)、G (G バイト)、T (T バイト)、P (P バイト)、E (E バイト) のいずれかの単位があとに付きます。

  • -user username および -group groupname は、指定されたユーザーまたはグループ (あるいはその両方) に属するファイルのみをアーカイブします。

  • -name は、正規表現 regex で定義されたパターンに一致するパスおよびファイル名を含むすべてのファイルをアーカイブします。

アーカイブのコピーディレクティブ

アーカイバは、デフォルトでアーカイブセット内のファイルのアーカイブ経過時間が 4 分であるときに、それらのファイルに対してアーカイブのコピーを 1 つ書き込みます。デフォルトの動作を変更するには、アーカイブのコピーディレクティブを使用します。アーカイブのコピーディレクティブは、関連するアーカイブセット割り当てディレクティブの直あとに配置する必要があります。

アーカイブのコピーディレクティブは、1234 のいずれかの copy-number 値から始まります。この数字のあとに、そのコピーのアーカイブ特性を指定する 1 つまたは複数の引数が続きます。アーカイブのコピーディレクティブの形式は、次のとおりです。

copy-number [archive-age] [-release [attribute] [-norelease][-stage[attribute] [unarchive-age]

ここでは:

  • オプションの archive-age パラメータは、新規または変更済みのファイルがアーカイブ対象になる前に、ディスクキャッシュ内に存在しなければならない時間です。整数と時間単位の 1 つ以上の組み合わせで archive-age を指定します。単位には s (秒)、m (分)、h (時間)、d (日)、w (週)、および y (年) が含まれます。デフォルトは 4m (4 分) です。

  • オプションの -release パラメータは、アーカイブコピーが作成された直後に、ファイルで使用されているディスク領域が解放されるように Oracle HSM リリーサソフトウェアをクリアします。オプションの解放属性は、-a-n、または -d です。-a (結合ステージング) 属性は、アーカイブセットから解放されたファイルのいずれかにアクセスしたときに、ソフトウェアがこれらのファイルをすべてステージングするように要求します。-n 属性は、ソフトウェアがアーカイブメディアからファイルを直接読み取り、ステージングしないように要求します。-d 属性は、デフォルトのステージング動作をリセットします。

  • オプションの -norelease パラメータは、-norelease マークが付けられたコピーがすべて作成されるまで、ファイルで使用されているディスク領域を解放するように Oracle HSM リリーサソフトウェアをクリアしません。

  • -release -norelease は同時に使用され、-release -norelease フラグが付けられたすべてのコピーが作成された直後に、Oracle HSM ソフトウェアがファイルで使用しているディスク領域を解放するように要求します。Oracle HSM は、リリーサプロセスの実行を待機しません。

  • オプションの -stage パラメータ。オプションの解放属性-a-c copy-number-f-I-i input_file-w-n-p-V-x-r-d です。ここでは:

    -a は、アーカイブセットのファイルのいずれかにアクセスしたときに、これらのファイルをすべてステージングするように要求します。

    -c copy-number は、ソフトウェアが指定したコピー番号からステージングするように要求します。

    -n は、ソフトウェアがアーカイブメディアからファイルを直接読み取り、ステージングしないように要求します。

    -w は、各ファイルが正常にステージングされるまでソフトウェアが待機してから、続行するように要求します (-d または -n では無効です)。

    -d は、デフォルトのステージング動作をリセットします。

  • unarchive-age パラメータは、ファイルのアーカイブコピー再利用のため、メディア上の空き領域にアーカイブ解除する前に、アーカイブ内に存在しなければならない時間を指定します。時間は、整数と時間単位を 1 つ以上組み合わせて表現されます。単位には s (秒)、m (分)、h (時間)、d (日)、w (週)、および y (年) が含まれます。

下記の例には、アーカイブセット allsamma1 の 2 つのコピーディレクティブが含まれています。1 つ目のディレクティブは、アーカイブ経過時間が 5 分 (5m) に達するまで、コピー 1 を解放しません。2 つ目のディレクティブは、アーカイブ経過時間が 1 時間 (1h) に達するまでコピー 2 を解放せず、アーカイブ解除期間の 7 年 6 か月 (7y6m) に達するとコピー 2 をアーカイブ解除します。

# Archive Set Assignments
fs = samma1
logfile = /var/adm/samma1.archive.log
allsamma1 .
    1 -norelease 5m
    2 -norelease 1h 7y6m 

コピーパラメータ

コピーパラメータは、アーカイブセットで指定されたコピーの作成方法を定義します。archiver.cmd ファイルのアーカイブセットのコピーパラメータセクションは、params ディレクティブで始まり endparams ディレクティブで終わります。

params
allsets -sort path -offline_copy stageahead
allfiles.1 -startage 10m -startsize 10M -drives 10 -archmax 1G
allfiles.2 -startage 1h -startsize 1G -drives 2 -archmax 10G -reserve set
endparams

各コピーパラメータの形式は、次のとおりです。

archive-set-name[.copy-number][R] [-startage time] [-startcount count] [-startsize size] [-archmax maximum-size] [-bufsize=number-blocks] [-drivemax maximum-size] [-drivemin minimum-size] [-drives number] [-fillvsns] [-lock] [-offline_copy method] [-sort criterion] [-rsort criterion] [-recycle_dataquantity size] [-recycle_hwm percent] [-recycle_ignore] [-recycle_mailaddr mail-address] [-recycle_mingainpercentage] [-recycle_vsncountcount ] [-recycle_minobs percentage] [-unarchagetime_ref] [-tapenonstop] [-reserve keyword ] [-priority multiplier ranking] 

ここでは:

  • archive-set-name は、ファイルシステムディレクティブでアーカイブセット割り当てディレクティブによって定義されているアーカイブセットの名前か、指定されたコピーパラメータを定義済みのすべてのアーカイブセットに適用する特殊なディレクティブ allsets です。個々のアーカイブセットのパラメータを指定する前に、最初に allsets のパラメータを設定します。そうしないと、個々のアーカイブセットのパラメータによって allsets の指定がオーバーライドされ、その目的が果たされなくなります。

  • .copy-number は、指定されたコピーパラメータの適用を、copy-number で指定されたアーカイブコピーに制限します。ここで copy-number は、[1-4] の範囲の整数であり、オプションの R は、パラメータの適用を再アーカイブのコピーに制限します。

  • -startage time は、最初のファイルがアーカイブ要求に追加されたときから、アーカイブ処理が実際に開始されたときまでの間の間隔を指定します。time に整数と時間単位の 1 つ以上の組み合わせを指定します。単位には s (秒)、m (分)、h (時)、d (日)、w (週)、および y (年) が含まれます。デフォルトは 2h (2 時間) です。

  • -startcount count は、アーカイブ要求内のファイルの最小数を指定します。アーカイブ処理を待機しているファイルの数がこのしきい値に達すると、アーカイブ処理が開始されます。デフォルトでは、count は設定されません。

  • -startsize size は、アーカイブ要求の最小サイズをバイト単位で指定します。アーカイブ処理を待機しているファイルの合計サイズがこのしきい値に達すると、アーカイブ処理が開始されます。デフォルトでは、size は設定されません。

  • -archmax は、アーカイブファイルのサイズを maximum-size までに制限します。ここで maximum-size は、メディアによって異なります。磁気テープの場合、デフォルトの最大アーカイブファイルサイズは 512M バイトです。光ディスクに書き込まれるアーカイブファイルは、最大 5M バイトです。

    同じ名前のグローバルアーカイブディレクティブについては、archmax: アーカイブファイルサイズの制御を参照してください。

  • -bufsize= media-type number-blocks は、アーカイブメディアに書き出されるときにアーカイブファイルを保持するバッファーのサイズを number-blocks*dev_blksize に設定します。ここで number-blocks は、バッファーされるテープブロックの数を表す [2-32] の範囲の整数、dev_blksize は、defaults.conf ファイルでメディアタイプに指定されたブロックサイズです。デフォルトは 4 です。

  • -drivemax は、1 台のドライブを使用してアーカイブされるデータの量を maximum-size メガバイト以下に制限します。ここで maximum-size は整数です。デフォルトでは、maximum-size は指定されていません。

    -drives パラメータを使用して複数のドライブが指定されている場合、1 台の任意のドライブに書き込まれるデータの量を制限すると、ワークロードを平準化して、ドライブ全体の利用率を改善できます。

  • -drivemin minimum-size は、1 台のドライブを使用してアーカイブされるデータの量を minimum-size メガバイト以上に制限します。ここで minimum-size は整数です。デフォルトは、-archmax 値 (指定されている場合)、または defaults.conf ファイルに一覧表示されたメディアタイプの値です。

    ドライブに書き込まれるデータの量に下限を設定すると、ドライブの利用率と効率性を改善できます。minimum-size は、転送時間がメディアのロード、位置設定、およびアンロードに必要な時間を大幅に上回るよう十分な長さに設定してください。-drivemin を指定すると、データ転送が十分に長い場合にのみ複数のドライブが使用されます。

  • -drives number は、アーカイブ処理で使用されるドライブ数を number までに制限します。ここで number は整数です。デフォルトは 1 です。

    アーカイブセットに含まれるファイルのサイズが大きい、またはファイルの数が多い場合、ドライブの最大数を大きく設定すると、パフォーマンスを改善できます。使用可能なドライブの動作速度が異なる場合は、複数のドライブを指定することで、このようなばらつきを平準化して、アーカイブ処理の効率性を高めることもできます。

  • -fillvsns は、小さいアーカイブファイルを使用して、より完全にアーカイブメディアボリュームを満杯にするようにアーカイブ処理プロセスに強制します。

    デフォルトでは、アーカイバはアーカイブコピー内のすべてのファイルを保持するのに十分な領域のあるボリュームを選択します。このため、アーカイブファイルが大きくなり、多数のカートリッジにある残りの容量に収まらなくなります。その結果、メディア全体が十分に利用されなくなります。この問題は -fillvsns パラメータで対処できますが、その代償としてメディアのマウント、位置設定操作、およびアンマウントが多くなり、これらのすべてによってアーカイブ処理およびステージング処理のパフォーマンスが低下します。

  • -lock は、直接入出力を使用してアーカイブコピーを作成するときに、ロックバッファーを使用するように指示します。ロックバッファーを使用することによってバッファーのページングが回避され、直接入出力のパフォーマンスが改善されます。

    使用可能なメモリーが制限されているシステム上で -lock パラメータを指定すると、メモリー不足の状態になる可能性があります。デフォルトでは、ロックバッファーは指定されていないため、ファイルシステムがアーカイブバッファーの制御を保持します。

  • -offline_copy method は、すでにファイルがディスクキャッシュから解放されているときに、アーカイブコピーを作成する方法を指定します。method には directstageaheadstageall、または none を指定できます。

    単一のアーカイブコピーが作成された直後にファイルが解放される可能性があるため、残りのコピーはオフラインのコピーから作成する必要があります。-offline_copy メソッドを指定すると、使用可能にできるドライブの数とディスクキャッシュの空き領域に合わせて、コピープロセスを調整できます。

    direct は、2 台のドライブを使用して、オフラインボリュームからアーカイブボリュームに直接ファイルをコピーします。適切なバッファー領域を確保するには、このメソッドを使用するときに、stage_n_window マウントオプションで設定された値を大きくします。

    stageahead は、アーカイブファイルをコピー先に書き込む間に、次のアーカイブファイルをステージングします。

    stageall は、1 台のドライブを使用して、アーカイブ処理の前にすべてのファイルをディスクキャッシュにステージングします。このメソッドを使用する場合は、ディスクキャッシュがファイルを保持できるだけの大きさであることを確認してください。

    none (デフォルト) は、アーカイブボリュームにコピーする前に、必要に応じてファイルをディスクキャッシュにステージングします。

  • -sort は、アーカイブ処理の前に、criterion でファイルをソートします。ここで criterion は、ageprioritysize、または none です。

    age は、変更時間 (最古から最新まで) でのソートを指定します。

    path (デフォルト) は、フルパス名でのソートを指定します。これにより、同じディレクトリに存在するファイルがアーカイブメディア上にまとめられます。

    priority は、アーカイブ処理のソートを優先順位高から低の順に指定します。

    size は、ファイルをファイルサイズ最小から最大の順でソートします。

    none は、ソートを指定せず、ファイルシステムで発生した順序でファイルをアーカイブします。

  • -rsort criterion は、-sort と同様に、ただし逆順でファイルを criterion でソートします。

  • -recycle_dataquantity size は、リサイクラが再アーカイブ対象としてスケジュールするデータの量を size バイトに制限します。ここで size は整数です。

    リサイクラは、有効なアーカイブファイルのアーカイブボリュームを空にする必要があるときに、再アーカイブ処理をスケジュールします。リサイクル対象として選択したボリュームの実際の数は、-recycle_vsncount パラメータによって異なる可能性もあることに注意してください。デフォルトは 1073741824 (1G バイト) です。

  • -recycle_hwm percent は、リムーバブルメディアのリサイクル処理が開始されるメディアの最大利用率 (高位境界値または hwm) を設定します。ディスクメディアの場合、このパラメータは無視されます (下記の -recycle_minobs を参照)。デフォルトは 95 です。

  • -recycle_ignore では、リサイクルプロセスの通常実行は許可されますが、アーカイブセット内では実際にメディアのリサイクルは実行できません。テスト用に使用されます。

  • -recycle_mailaddr mail-address は、リサイクラの情報メッセージを mail-address に転送します。デフォルトでは、メールは送信されません。

  • -recycle_mingain は、リサイクル対象のボリュームの選択を、少なくとも指定した percentage の空き領域が増加する数に制限します。デフォルトは 50 です。

  • -recycle_vsncount は、リサイクラが再アーカイブ処理をスケジュールするボリュームの数を count に制限します。リサイクル対象として選択したボリュームの実際の数は、-recycle_dataquantity パラメータによって異なる可能性もあります。ディスクメディアの場合、このパラメータは無視されます。デフォルトは 1 です。

  • -recycle_minobs は、有効なファイルの再アーカイブ処理および元の tar ファイルの最終的な削除をトリガーする、ディスク常駐のアーカイブファイル内にある古いファイルの percentage を設定します。リムーバブルメディアの場合、このパラメータは無視されます (上記の -recycle_hwm を参照)。デフォルトは 50 です。

  • -unarchage は、アーカイブ解除期間を計算するための参照時間を time_ref に設定します。ここで time_ref は、ファイルアクセス時間を表す access (デフォルト) または変更時間を表す modify です。

  • -tapenonstop は、リムーバブルメディアファイルを閉じることなく、アーカイブファイルの最後に単一のテープマークとファイルの終わり (EOF) ラベルを書き込みます。これによって、複数のアーカイブファイルの転送が高速化されますが、アーカイブセット全体がテープに書き込まれるまでテープカートリッジをアンロードできなくなります。デフォルトでは、Oracle HSM ソフトウェアは、アーカイブファイルの最後にあるファイルの終わりラベルのあとに 2 つの追加のテープマークを書き込むことで、テープファイルを閉じます。

  • -reserve keyword は、指定されたアーカイブセットを排他的に使用するためにリムーバブルメディアボリュームを予約します。アーカイブセットのファイルを保持するために最初にボリュームを使用すると、ソフトウェアは、指定された 1 つ以上のキーワード fsset と、dir (ディレクトリ)、user、または group のいずれかまたはこれらの両方に基づいて、一意の予約名をボリュームに割り当てます。

    fs は、ファイルシステム名を予約名に含めます。arset.1 -reserve fs

    set は、アーカイブセット割り当てディレクティブからのアーカイブセット名を予約名に含めます (all -reserve set)。

    dir は、アーカイブセット割り当てディレクティブで指定されたディレクトリパスの最初の 31 文字を予約名に含めます。

    user は、アーカイブファイルに関連付けられたユーザー名を含めます。arset.1 -reserve user

    group は、アーカイブファイルに関連付けられたグループ名を含めます。arset.1 -reserve group

    状況によっては、セット別にボリュームを予約すると便利なことがあります。ただし、ソフトウェアでメディアを選択する場合よりも本質的に非効率です。ボリュームを予約する場合は、システムは、より頻繁にカートリッジのマウント、アンマウント、および配置を行う必要があり、オーバーヘッドが増加してパフォーマンスが低下します。予約スキームの制約が大きいと、使用可能なメディアが十分に利用されず、極端な例では使用可能なメディアがないためにアーカイブ処理が失敗することがあります。

  • -priority multiplier ranking は、前述の sort priority パラメータとともに使用したときのファイルのアーカイブの優先順位を変更します。ranking は、[(-3.400000000E+38)-3.400000000E+38] (-3.402823466x1038 - 3.402823466x1038) の範囲の実数で、multiplier は、次のリストから選択した相対的な ranking を変更するアーカイブ特性です。agearchive_immediatearchive_overflowarchive_loadedcopiescopy1copy2copy3copy4offlinequeuewaitre-archivereqreleasesizestage_loaded、および stage_overflow

    優先順位の詳細は、archiver および archiver.cmd のマニュアルページを参照してください。

ボリュームシリアル番号 (VSN) プールディレクティブ

archiver.cmd ファイルの VSN プールセクションにより、ボリュームシリアル番号 (VSN) 関連付けディレクティブで 1 つの単位として指定できるアーカイブメディアボリュームの名前付きのコレクションが定義されます。

このセクションは vsnpools ディレクティブで始まり、endvsnpools ディレクティブまたは archiver.cmd ファイルの最後で終わります。VSN プール定義の構文は次のとおりです。

vsn-pool-name media-type volume-specification

ここでは:

  • vsn-pool-name は、プールに割り当てる名前です。

  • media-type は、付録A および mcf のマニュアルページで一覧表示されている 2 文字の Oracle HSM メディアタイプ識別子です。

  • volume-specification は、ボリュームシリアル番号に一致する 1 つ以上の正規表現のスペース区切りリストです。正規表現構文の詳細は、Solaris regcmp のマニュアルページを参照してください。

この例では、4 つの VSN プール (users_pooldata_poolproj_pool、および scratch_pool) を定義します。スクラッチプールは、VSN 関連付け内の一部のボリュームを使い切ったとき、または別の VSN プールが空の状態になったときに使用されるボリュームセットです。指定した 3 つのプールのいずれかがボリューム不足になった場合、アーカイバはスクラッチプール VSN を選択します。

vsnpools
users_pool li ˆVOL2[0-9][0-9]
data_pool li ˆVOL3.*
scratch_pool li ˆVOL4[0-9][0-9]
proj_pool li ˆVOL[56].*
endvsnpools

ボリュームシリアル番号 (VSN) 関連付けディレクティブ

archiver.cmd ファイルの VSN 関連付けセクションでは、アーカイブセットにアーカイブメディアボリュームを割り当てます。このセクションは vsns ディレクティブで始まり、endvsns ディレクティブで終わります。

ボリューム割り当てディレクティブの形式は、次のとおりです。

archive-set-name.copy-number [media-type volume-specification] [-pool vsn-pool-name]

ここでは:

  • archive-set-name は、アーカイブセット割り当てディレクティブが指定のボリュームに関連付けるアーカイブセットに割り当てた名前です。

  • copy-number は、アーカイブセット割り当てディレクティブが指定のボリュームに関連付けるコピーに割り当てた番号です。これは、[1-4] の範囲の整数です。

  • media-type は、付録A および mcf のマニュアルページで一覧表示されている 2 文字の Oracle HSM メディアタイプ識別子です。

  • volume-specification は、ボリュームシリアル番号に一致する 1 つ以上の正規表現のスペース区切りリストです。正規表現構文の詳細は、Solaris regcmp のマニュアルページを参照してください。

  • -pool vsn-pool-name は、事前に指定された、単位として指定できるアーカイブメディアボリュームの名前付きコレクションです。ボリュームシリアル番号 (VSN) プールディレクティブを参照してください。

この例では、メディアを 2 行の VSN 指定に関連付けるさまざまな方法を示します。

vsns
archiveset.1 lt VSN001 VSN002 VSN003 VSN004 VSN005
archiveset.2 lt VSN0[6-9] VSN10
archiveset.3 -pool data_pool
endvsns

ステージングディレクティブ

書き込みは、ニアラインまたはオフラインの記憶装置からオンライン記憶装置に、ファイルデータをコピーして戻すことです。

ステージャーは、samd デーモンが実行されたときに起動します。ステージャーのデフォルトの動作は次のとおりです。

  • ステージャーは、ライブラリ内のすべてのドライブを使用しようとする。

  • 書き込みバッファーサイズはメディアタイプ別に決定され、書き込みバッファーはロックされない。

  • ログファイルへの書き込みは行われない。

  • 一度にアクティブであることが可能な書き込み要求は、最大 1000 個。

/etc/opt/SUNWsamfs/stager.cmd ファイルにディレクティブを挿入すると、ステージャーの動作をサイトに合わせてカスタマイズできます。

ファイルが -n (never stage) オプションでアーカイブされていなければ、アプリケーションでオフラインファイルが必要なときに、そのアーカイブコピーがディスクキャッシュにステージングされます。アプリケーションがファイルをすぐに利用できるようにするため、読み取り操作が書き込み操作のすぐあとを追跡するので、ファイル全体が書き込まれる前にアクセスを開始できます。

書き込みエラーとしては、メディアエラー、メディアを利用できない、自動ライブラリを利用できない、などがあります。ステージングエラーが返された場合、Oracle HSM ソフトウェアは次に使用可能なファイルのコピーを検索しようとします (そのようなコピーが存在し、アーカイブコピーのメディアを読み取るために使用できるデバイスがある場合)。

stager.cmd ファイル

stager.cmd ファイルには、デフォルト動作をオーバーライドするための指示を指定できます。ステージャーを構成して、ファイルをただちに書き込んだり、ファイルをまったく書き込まなかったり、部分的に書き込んだり、ほかの書き込みアクションを指定したりできます。たとえば、非書き込み属性を使用すると、ファイルをオンラインで書き込まずにアーカイブメディアから直接データにアクセスできるため、大きいファイルから小さいレコードにアクセスするアプリケーションに有益です。

このセクションでは、ステージャー指示について説明します。ステージャーディレクティブの詳細は、stager.cmd のマニュアルページを参照してください。Oracle HSM Manager software を使用している場合は、「ファイルシステムの概要」ページまたは「ファイルシステムの詳細」ページからステージングを制御できます。ファイルシステムをブラウズし、個々のファイルのステータスを表示できます。また、フィルタを使用して特定のファイルを表示し、書き込むファイルを選択することができます。書き込み元のコピーを選択することも、システムにコピーを選択させることもできます。

この例は、指定可能なディレクティブをすべて設定したあとの stager.cmd ファイルを示しています。

drives=dog 1
bufsize=od 8 lock
logfile=/var/adm/stage.log
maxactive=500

drives: ステージングに使用するドライブ数の指定

デフォルトでは、ステージャーはファイルの書き込みを行うときに利用可能なすべてのドライブを使用します。ステージャーによってすべてのドライブが使用中の状態のままになると、アーカイバのアクティビティーに支障を来す恐れがあります。drives 指示は、ステージャーが利用できるドライブの数を指定します。このディレクティブの形式は、次のとおりです。

drives=library count

ここでは:

  • library は、mcfファイルに表示されるライブラリのファミリセット名です。

  • count は、使用されるドライブの最大数です。デフォルトでは、このライブラリ用として mcf ファイルに構成されているドライブ数。

この例では、dog ファミリセットのライブラリにある 1 台のドライブだけをファイルのステージングに使用するように指定します。

drives = dog 1

bufsize: ステージングバッファーサイズの設定

デフォルトでは、書き込み対象ファイルは、アーカイブメディアからディスクキャッシュに復元される前に、メモリーバッファーに読み取られます。bufsize ディレクティブを使用して、バッファーサイズを指定したり、オプションでバッファーをロックしたりできます。これらの操作により、パフォーマンスを向上させることができます。さまざまな number-blocks 値を試すことができます。このディレクティブの形式は、次のとおりです。

bufsize= media-type number-blocks [lock]

ここでは:

  • media-type は、付録A および mcf のマニュアルページで一覧表示されている 2 文字の Oracle HSM メディアタイプ識別子です。

  • number-blocks は、[2-8192] の範囲の整数です。この値は defaults.conf ファイルに指定された media-type_blksize 値で乗算されます。number-blocks の値が高ければ高いほど、多くのメモリーが使用されます。デフォルトは 16 です。

  • lock は、各ステージング操作の期間内にロックバッファーを使用するように指示します。これにより、入出力要求ごとのステージングバッファーのロックまたはロック解除に関連するオーバーヘッドが回避され、パフォーマンスが改善されます。使用可能メモリーが制限されたシステム上で lock パラメータを指定すると、メモリー不足の状態になる可能性があります。デフォルトでは、ロックバッファーは指定されていないため、ファイルシステムがアーカイブバッファーの制御を保持します。

    lock 引数が有効であるのは、ステージング対象のファイルで直接入出力が有効になっている場合のみです。直接入出力の有効化についての詳細は、setfasam_setfa、および mount_samfs のマニュアルページを参照してください。

logfile: ステージングログファイルの指定

Oracle HSM ソフトウェアがファイルステージングイベント情報を収集し、それをログファイルに書き込むように要求できます。デフォルトでは、ログファイルへの書き込みは行われません。logfile ディレクティブは、ステージャーがログ情報を書き込むことができるログファイルを指定します。ステージャーは、書き込みを行なったファイルごとに 1 つまたは複数の行をログファイルに書き込みます。この 1 行には、ファイル名、書き込みを行なった日時、ボリュームシリアル番号 (VSN) などが含まれます。このディレクティブの形式は、次のとおりです。

logfile=filename [event-list]

ここで filename は、ログファイルのフルパス名、event-list は、ログが記録されるイベントタイプのスペース区切りリストです。

  • all は、すべてのステージングイベントのログを記録します。

  • start は、ファイルのステージングが開始されたときにログを記録します。

  • finish (デフォルト) は、ファイルのステージングが終了したときにログを記録します。

  • cancel (デフォルト) は、オペレータがステージングを取り消したときにログを記録します。

  • error (デフォルト) は、ステージングエラーのログを記録します。

次のディレクティブは、/var/adm/ ディレクトリにステージングログを作成します。

logfile=/var/adm/stage.log

ステージャーログエントリの形式は、次のとおりです。

status date time media-type volume position.offset inode filesize filename copy user group requestor equipment-number validation

ここでは:

  • status は、開始を表す S、取り消しを表す C、エラーを表す E、完了を表す F です。

  • date は、yyyy/mm/dd 形式の日付です。ここで yyyy は年を表す 4 桁の数字、mm は月を表す 2 桁の数字、dd は日を表す 2 桁の数字です。

  • time は、hh:mm:ss 形式の時間です。ここで hhmm、および ss は、それぞれ時間、分、秒を表す 2 桁の数字です。

  • media-type は、付録A および mcf のマニュアルページで一覧表示されている 2 文字の Oracle HSM メディアタイプ識別子です。

  • volume は、ステージング対象のファイルを保持するメディアのボリュームシリアル番号 (VSN) です。

  • position.offset は、ボリューム上のアーカイブ (tar) ファイルの先頭位置を表す 16 進数と、アーカイブファイルの先頭から相対的なステージング済みファイルのオフセットを表す 16 進数をドットで区切ったペアです。

  • inode は、ステージング済みファイルの i ノード番号と生成番号をドットで区切ったものです。

  • filesize は、ステージング済みファイルのサイズです。

  • filename は、ステージング済みファイルの名前です。

  • copy は、ステージング済みファイルを含むコピーのアーカイブコピー番号です。

  • user は、ファイルを所有するユーザーです。

  • group は、ファイルを所有するグループです。

  • requestor は、ファイルを要求したグループです。

  • equipment-number は、mcf ファイルに定義された、ファイルのステージング元であるドライブの装置番号です。

  • validation は、ステージング済みファイルが検証済み (V) または未検証 (-) のどちらであるかを示します。

次の例に、一般的なステージャーログの一部を示します。

S 2014/02/16 14:06:27 dk disk01 e.76d 2557.1759 1743132 /sam1/testdir0/filebu 1 root other root 0 -
F 2014/02/16 14:06:27 dk disk01 e.76d 2557.1759 1743132 /sam1/testdir0/filebu 1 root other root 0 -
S 2014/02/16 14:06:27 dk disk02 4.a68 1218.1387 519464 /sam1/testdir1/fileaq 1 root other root 0 -
S 2014/02/16 14:06:43 dk disk01 13.ba5 3179.41 750880 /sam1/testdir0/filecl 1 root other root 0 -
F 2014/02/16 14:06:43 dk disk01 13.ba5 3179.41 750880 /sam1/testdir0/filecl 1 root other root 0 -

maxactive: ステージング要求数の指定

maxactive ディレクティブでは、一度にアクティブにできる書き込みリクエストの数を指定できます。このディレクティブの形式は、次のとおりです。

maxactive=number

ここで number は、[1-500000] の範囲の整数です。デフォルトは 4000 です。

この例は、キューに同時に存在できるステージング要求が 500 個までであることを指定しています。

maxactive=500

copysel: ステージング時のコピー選択順序の指定

ステージングディレクティブ copysel は、ファイルシステムごとにステージャーのコピー選択順序を設定します。

copysel=selection-order

selection-order は、最初から最後の順でのコピー番号のコロン区切りリストです。デフォルトの選択順序は 1:2:3:4 です。

詳細は、stager.cmd のマニュアルページを参照してください。この例は、ファイルシステム samfs1 および samfs2 のデフォルト以外のコピー選択順序を設定する stager.cmd ファイルを示しています。

logfile = /var/opt/SUNWsamfs/log/stager
drives = hp30 1
fs = samfs1
copysel = 4:3:2:1
fs = samfs2
copysel = 3:1:4:2

プレビュー要求ディレクティブ

Oracle HSM プロセスで、現在ドライブにロードされていないリムーバブルメディアボリュームが要求されると、その要求がプレビューキューに追加されます。キューに入れられた要求は、デフォルトでは先入れ先出し (FIFO) 順で処理されます。ただし、ファイル /etc/opt/SUNWsamfs/preview.cmd を編集することにより、デフォルトの動作をオーバーライドできます。Oracle HSM ライブラリ制御デーモン (sam-amld) は停止するまで、これらのディレクティブを使用の開始時に読み取ります。キューの優先順位を動的に変更することはできません。

ディレクティブには次の 2 つのタイプがあります。

  • グローバルディレクティブはファイルの先頭に置かれ、すべてのファイルシステムに適用されます。

  • ファイルシステムディレクティブは、fs=directive 形式を取り、個々のファイルシステムに固有です

次のセクションでは、プレビューキューを制御するように preview.cmd ファイルを編集する方法について説明します。

グローバルディレクティブ

純粋なグローバルディレクティブは、次のとおりです。

vsn_priority: ボリューム優先順位の調整

vsn_priority ディレクティブは、優先順位の高いボリュームとしてフラグが付けられたボリューム (VSN) の優先順位を、指定された値だけ高くします。ディレクティブの形式は、次のとおりです。

vsn_priority=value

ここで value は実数です。デフォルトは 1000.0 です。

次のコマンドを使用して、ボリュームに高い優先順位のフラグを設定します。

chmed +p media-type.volume-serial-number

ここで media-type は、付録A および mcf のマニュアルページに一覧表示されている 2 文字の Oracle HSM メディアタイプのいずれかです。volume-serial-number は、ライブラリ内にある優先順位の高いボリュームを一意に識別する英数字の文字列です。詳細な情報については、chmed のマニュアルページを参照してください。

age_priority: キュー内で待機する時間に応じた優先順位の調整

age_priority ディレクティブは、要求がキュー内に存在する時間に対して指定された相対的な優先順位を変更します。これにより、たとえば、優先順位が高く新しい要求より古い要求が無制限に優先されるようなことを回避できます。このディレクティブは、キュー内で待機する時間の相対的な重み付けを変更する乗数を指定します。形式は次のとおりです。

age_priority=weighting-factor

ここで weighting-factor は、1.0 よりも大きい、よりも小さい、または等しい実数です。ここでは:

  • 1.0 よりも大きい値を指定すると、集計優先順位を計算するときに、キュー内で待機する時間に指定された重み付けが大きくなります。

  • 1.0 よりも小さい値を指定すると、合計優先順位を計算するときに、キュー内で待機する時間に指定された重み付けが小さくなります。

  • 1.0 と等しい値を指定すると、キュー内で待機する時間に指定された相対的な重み付けは変更されません。

デフォルトは 1.0 です。

グローバルディレクティブまたはファイルシステム固有のディレクティブ

次のディレクティブは、グローバルに、またはファイルシステムごとに適用できます。

hwm_priority: ディスクキャッシュがほぼ満杯になったときの優先順位の調整

hwm_priority ディレクティブは、ファイルシステムの利用率が高位境界値 (hwm) を上回ったときに、アーカイブ要求とステージング要求に指定された相対的な重み付けを調整します。高位境界値は、リリーサプロセスが起動され、アーカイブメディア上のコピーを含むファイルで占有されたディスク領域の再利用が開始されるポイントです。このような状況で、アーカイブ処理用に指定された相対的な重み付けを大きくすると、解放プロセスはステージングされたアーカイブコピーおよび新しいファイル用に追加容量を解放できます。ディレクティブの形式は、次のとおりです。

hwm_priority=weighting-factor

ここで weighting-factor は実数です。デフォルトは 0.0 です。

hwm_priority: ディスクキャッシュがほぼ空になったときの優先順位の調整

lwm_priority ディレクティブは、ファイルシステムの利用率が低位境界値 (lwm) を下回ったときに、アーカイブ要求とステージング要求に指定された相対的な重み付けを調整します。低位境界値は、リリーサプロセスが停止するポイントです。このような状況で、アーカイブ処理用に指定された相対的な重み付けを小さくして、ステージング要求の優先順位を高くすると、ディスクキャッシュ内に配置されるファイルが増え、メディアマウントの要求が減り、ファイルシステムのパフォーマンスが向上します。ディレクティブの形式は、次のとおりです。

lwm_priority=weighting-factor

ここで weighting-factor は実数です。デフォルトは 0.0 です。

lhwm_priority: ディスクキャッシュが満杯になったときの優先順位の調整

hlwm_priority ディレクティブは、ディスクキャッシュが満杯に近づき、キャッシュの利用率が低位境界値と高位境界値 (lwmhwm) の間であるときに、アーカイブ要求とステージング要求に指定された相対的な重み付けを調整します。このような状況で、アーカイブ処理用に指定された相対的な重み付けを大きくすると、解放プロセスはステージングされたアーカイブコピーおよび新しいファイル用に追加容量を解放できます。ディレクティブの形式は、次のとおりです。

lhwm_priority=weighting-factor

ここで weighting-factor は実数です。デフォルトは 0.0 です。

hlwm_priority: ディスクキャッシュが空になったときの優先順位の調整

hlwm_priority ディレクティブは、ディスクキャッシュが空に近づき、キャッシュの利用率が高位境界値と低位境界値 (hwmlwm) の間であるときに、アーカイブ要求とステージング要求に指定された相対的な重み付けを調整します。このような状況で、アーカイブ処理用に指定された相対的な重み付けを小さくして、ステージング要求の優先順位を高くすると、ディスクキャッシュ内に配置されるファイルが増え、メディアマウントの要求が減り、ファイルシステムのパフォーマンスが向上します。ディレクティブの形式は、次のとおりです。

hlwm_priority=weighting-factor

ここで weighting-factor は実数です。デフォルトは 0.0 です。

preview.cmd ファイルのサンプル

指定されたメディアマウント要求の集計優先順位は、次の式に従って、すべての重み付け係数で設定された値を使用することで決定されます。

priority = vsn_priority + wm_priority + (age_priority * time-waiting-in-queue)

ここで wm_priority は、現在有効な境界値優先順位 (hwm_prioritylwm_priorityhlwm_priority、または lhwm_priority) であり、time-waiting-in-queue は、ボリューム要求がキューに入れられている秒数です。優先順位の計算の詳細な説明については、preview.cmd のマニュアルページの PRIORITY CALCULATION のセクションを参照してください。

データへのアクセスが非常に重要である場合やリムーバブルメディアドライブが不足している場合などの特殊な状況では、preview.cmd ファイルでディレクティブを使用すると、さらにファイルシステムアクティビティーを操作上の要件および使用可能なリソースに適合させることができます。格納されたデータの整合性は、preview.cmd ファイルの設定による影響を受けないため、アーカイブ要求とステージング要求の適切なバランスが見つかるまで、自由に試すことができます。

次の理由の一方または両方のために、デフォルトの優先順位計算の調整が必要になることがあります。

  • ユーザーおよびアプリケーションがファイルにアクセスしたときに使用できるように、アーカイブ要求の前にステージング要求が処理されるようにする。

  • ファイルシステムが満杯に近づいたときに、アーカイブ要求にもっとも高い優先順位が与えられるようにする。

次の preview.cmd ファイルのサンプルは、上記に示した状況に対処します。

# Use default weighting value for vsn_priority:
vsn_priority=1000.0
age_priority = 1.0
# Insure that staging requests are processed before archive requests:
lwm_priority = -200.0
lhwm_priority = -200.0
hlwm_priority = -200.0
# Insure that archive requests gain top priority when a file system is about to fill up:
hwm_priority = 500.0

lwm_prioritylhwm_priority、および hlwm_priority の重み付けを負の値にすると、ディスクキャッシュ内の領域が使用可能であるときは常に、ステージング要求の優先順位がアーカイブ要求よりも高くなります。これにより、要求があったときは常にデータアクセスが可能になります。キュー内で複数の要求が 100 秒間待機していて、ファイルシステムが低位境界値を下回っている場合は、次のようになります。

  • 優先ボリュームに対するアーカイブマウント要求の集計優先順位は 1000+(-200)+(1x100)=900

  • 優先ボリュームに対するステージングマウント要求の集計優先順位は 1000+0+(1x100)=1100

  • 非優先ボリュームに対するステージングマウント要求の集計優先順位は 0+0+(1x100)=100

ただし、ディスクキャッシュがほぼ空になったときは、アーカイブ要求を優先する必要があります。ファイルシステムが満杯になったときに、アーカイブされているファイルが非常に少ない場合は、アーカイブされたファイルのステージングや新しいファイルの取り込みに使用できる領域がありません。キュー内で複数の要求が 100 秒間待機していて、ファイルシステムが高位境界値を上回っている場合、次のようになります。

  • 優先ボリュームに対するアーカイブマウント要求の集計優先順位は 1000+500+(1x100)=1600

  • 優先ボリュームに対するステージングマウント要求の集計優先順位は 1000+0+(1x100)=1100

  • 非優先ボリュームに対するステージングマウント要求の集計優先順位は 0+0+(1x100)=100