ブラウズポリシーやリテンションポリシーの期間を過ぎているかチェックしてセーブセットやメディアのステータスを変更する作業は、nsrim というコマンドが行っています。
ポリシーの期間を過ぎても、nsrim コマンドが実行されなければステータスが変更されません。
対処としては2通りありますので、それぞれについて解説します。
nsrim自動実行を利用する場合
9.1.1以降の場合
基本的に、nsrim コマンドは「Server Protection」ポリシー/「Server Backup」ワークフローによって実行されます。
このワークフローによるnsrim自動実行は、デフォルトで毎日10時に実行されます。(実行時間は任意の時間に変更可能です)
ポリシーの期間を過ぎているかどうかは、以下の流れで確認されます。
- expiration actionは、「Server Protection」ポリシーの「Server Backup」ワークフローで自動的に作成されます。
このexpiration actionは、セーブセットのリテンション期限に基づいて、メディアデータベース内のセーブセットをnsrim を使用して期限切れにします。
- nsrim では、メディアデータベース内のセーブセットごとのリテンション期限を秒単位でチェックして、期限が切れている場合は期限切れに設定します。(AFTDデバイスの場合はセーブセット削除)
例として、リテンションポリシーを1weekにしている場合について説明します。
- 1/1 1:00:00 にバックアップを開始して正常終了したデータのリテンションポリシーの期間は、1週間後(1/8)の23:59:59までとなります。
1/8 10:00:00 に実行された nsrim では削除されません。
1/9 10:00:00 以降に実行された nsrim で削除されます。
つまり1/9 10:00:00開始の「Server Backup」ワークフローのnsrimによって削除されます。
リテンションポリシーを1weekにしていると、1/8 1:00:00 開始の時点では1/1 1:00:00にバックアップしたデータのリテンションポリシーは切れていません。
よって今回の場合設定方針としては、以下のようになります。(Server bakcupワークフローが 10 時に自動実行される場合を前提としています)
- バックアップ時間が10時以前の場合
リテンションポリシーは設定した期間の23:59:59までです。
1週間のサイクルだと、リテンションポリシーの設定を6日にしても1/8 1:00のバックアップ開始時には再利用可能になっていません。
したがって、バックアップサイクルよりも2日少ない日数にすることを推奨します。
今回の場合は7日(1week)-2日で5日に設定することになります。
- バックアップ時間が10時以降の場合
リテンションポリシーは設定した期間の23:59:59までです。
1週間のサイクルだと、リテンションポリシーを1日減らして6日とすればいいはずです。
ただし、「Server Backup」ワークフローのバックアップ終了時間が延びてしまったために実際にバックアップ実行時に再利用可能になってない可能性もあります。
したがって、バックアップサイクルよりも2日少ない日数にすることを推奨します。
今回の場合は7日(1week)-2日で5日に設定することになります。
以上の説明のように、Workflowによるnsrim自動実行を利用する場合は、
リテンションポリシーの期間が過ぎてからnsrimが動くタイミングがあるかどうかを考えて設計してください。
8.2.x以前の場合
基本的に、nsrim コマンドが実行されるタイミングはsavegrpコマンドの実行完了時(注意事項1参照)です。このsavegrpによるnsrim自動実行は、前回のsavegrpによるnsrim自動実行から23時間以上経過している場合にのみ実行され、23時間未満だと実行されません。
savegrpによるnsrim自動実行時刻は、/nsr/mm/nsrim.prvファイルのタイムスタンプで確認できます。
ポリシーの期間を過ぎているかどうかは、メディアデータベースに登録されているバックアップ開始時刻を基準にして秒単位まで確認されます。
例として、リテンションポリシーを1weekにしている場合についてバージョンごとに説明します。
- 7.5.1以降の場合
1/1 1:00:00 にバックアップを開始して正常終了したデータのリテンションポリシーの期間は、1週間後(1/8)の23:59:59までとなります。
1/8 1:00:00 に実行された nsrim では削除されません。
1/9 0:00:00 以降に実行された nsrim で削除されます。
つまり1/9 1:00:00開始のバックアップ終了時のnsrimで削除されます。
- 6.1.1~7.2.1の場合
1/1 1:00:00 にバックアップを開始して正常終了したデータのリテンションポリシーの期間は1週間後(1/8)の1:00:00までとなります。
1/8 1:00:00 までに実行された nsrim では削除されません。
1/8 1:00:01 以降に実行された nsrim で削除されます。
つまり1/8 1:00:00開始のバックアップ終了時のnsrimで削除されます。
リテンションポリシーを1weekにしていると、1/8 1:00:00 開始の時点では1/1 1:00:00にバックアップしたデータのリテンションポリシーは切れていません。
バージョン7.2.1までは1/8 1:00:00、バージョン7.5.1からは1/9 1:00:00 開始のバックアップが終了した時点でnsrimが実行されて、そこではじめてメディアのステータスが「再利用可能」に変更されることになります。
よって今回の場合設定方針としては、以下のようになります。
- 7.5.1以降の場合
リテンションポリシーは設定した期間の23:59:59までです。
1週間のサイクルだと、リテンションポリシーの設定を6日にしても1/8 1:00のバックアップ開始時には再利用可能になっていません。
バックアップ開始時刻を1:00ではなく23:59にするなど、バックアップ終了およびnsrimの実行が翌日になる場合はリテンションポリシーの期間を6日に設定しても再利用可能となります。ただし、後述している6.1.1~7.2.1の場合と同様に直前のバックアップ終了時間が延びてしまったために次回のnsrimが起動しない可能性もあります。
したがって、バックアップサイクルよりも2日少ない日数にすることを推奨します。
今回の場合は7日(1week)-2日で5日に設定することになります。
- 6.1.1~7.2.1の場合
毎日バックアップが実行される環境では、リテンションポリシーを1日減らして6日とすればいいはずです。
しかし、実際の運用では以下の図(黒縦線:開始時間、赤縦線:終了時間)のように直前のバックアップ終了時間が延びてしまったために次回のnsrimが起動しないといった場面も散見されます。
そのため製品部門としては1日ではなく2日引いて5日とすることを推奨しております。
今回の例では毎日バックアップしている(毎日savegrpが動作する)ので5日でよいのですが、
そうではなくて、月曜~金曜は毎日バックアップするが、土日はsavegrpが動かない環境だと、
日曜日にsavegrpが動作しないため、5日では月曜のリテンションが切れません。
この場合、さらに金曜のsavegrp実行後に切れるように3日(5-2=3)にしなければなりません。
以上の説明のように、savegrpによるnsrim自動実行を利用する場合は、
リテンションポリシーの期間が過ぎてからnsrimが動くタイミングがあるかどうかを考えて設計してください。
nsrimを個別実行して対応する場合
savegrpによるnsrim自動実行とは異なり、nsrimを個別に単独で実行することができます。
この方法は、バックアップにsavegrpではなくsaveコマンドを使用したり、
savegrpを使うのだけれどもあまりにも変則的に実施されるのでnsrimが何時動作するのか把握しきれないバックアップをする場合等に有効です。
実行するには、UNIX系OSであればcron、ジョブスケジューラ(例:JobCenter)等を利用するのが一般的です。毎日バックアップが行われていない時間、例えば昼の12時などに実行すればよいかもしれません。
変則的にバックアップを実行する場合も、
システム構築側が望んだときにステータスが「再利用可能」になるように考えて適切な時刻にnsrimが実行されるよう構築してください。
nsrim単独実行については以下の点に注意してください。
- nsrimは基本的にオプションなしで実行いただければ結構ですが、
特殊な条件をつけたい場合についてはmanページをご確認ください。
- savegrpによるnsrim自動実行と異なり、
nsrim単独で実行した場合は23時間以上経過していなくても実行可能です。
- nsrim単独実行の場合nsrim.prv ファイルのタイムスタンプは更新されません。
nsrim.prv ファイルは savegrp コマンドによって更新されるためです。
[注意事項]
- savegrpを実行する場合でも
NetWorkerのバックアップスケジュールでスキップ(skip)を指定した場合や、
コマンドラインのオプションでスキップの指定をした場合(savegrp -lskip)には
nsrim は実行されません。
- 7.5.1以降のバージョンで日や週などの単位でポリシーを設定した場合、
設定した期間の23:59:59までが保存期限となりました。
つまり、ポリシーの切れる時刻が7.2.1以前より遅くなりました。
ただし、ポリシーを1日以下の時間で設定するとその場合は時間どおりに切れます。
(例:12時間で設定した場合は時間どおりに切れます。)
日や週で指定される場合が多いと思われますが、もしポリシーを1日以下にされる場合、
この点にご注意ください。
- バックアップをfullとincrを組み合わせて行っている場合、
fullとincrのリテンションポリシーは依存関係があるので注意してください。
具体的には、incrのバックアップデータのリテンションポリシーが
すべて期限切れにならないと、
incrの起点になっているfullのバックアップデータは
たとえリテンションポリシーが切れていても再利用可になりません。
この点に注意してリテンションポリシー期間を設定してください。
[補足情報]
上記以外でも動作仕様上 nsrim が実行されるタイミングがあります。それは、
高度なファイルタイプデバイス (adv_file 形式)を使用している場合に限り、
ファイルシステムがフルになった場合、実行されるというものです。