1 Rookie
•
356 メッセージ
0
17
DD VTLをリテンションロックで保護したい
いつもお世話になっております。
DD VTLをリテンションロックで保護したいのですがVTLの自動リテンションロックができないとの記載があります。
スクリプトで制御するとして、どのようなスクリプトにすればよいでしょうか。
1 Rookie
•
356 メッセージ
0
17
いつもお世話になっております。
DD VTLをリテンションロックで保護したいのですがVTLの自動リテンションロックができないとの記載があります。
スクリプトで制御するとして、どのようなスクリプトにすればよいでしょうか。
Top
Uehara Y.
Community Manager
Community Manager
•
5K メッセージ
1
2024年7月16日 03:34
はい。その認識で間違いないです。
Dell EMC DD OS Version 7.0 Administration Guidに以下記載がありました。
You can retention-lock one or more tapes using the vtl tape modify command, described in the DD OS Command Reference Guide.
Lab(DDOS 7.7.4)を利用して確認してみましたが、Tape情報が保存されているMTreeのRetention LockをEnableにした後、「vtl tape modify」でRetention Lockをかけることができました。
# vtl tape modify A12345LA retention-lock 20240720
... modified 0 tape(s)...
**** Invalid retention period "20240720".
Retention period requires a number followed by units (e.g. day or mo or year).
# vtl tape modify A12345LA retention-lock 1day
... modified 1 tape(s)...
上記ログから分かるように、コマンドシンタックスでは<period>だけではなく<date>でも指定出来るようだったのですが、date指定では「Period」が間違えているというエラーが出たので、そのエラーメッセージに従い例ではdayを指定して設定しています。
(day以外にもmoとyearが設定できるようです)
なお、vtl tape modifyコマンドのcountオプションは、指定したバーコードを含み、それ以降何本のテープに対してRetention Lockを一気にかけるかを指定するものでした。
# vtl tape modify A12345LA count 2 retention-lock 2day
... modified 2 tape(s)...
# vtl tape show all
Processing tapes....
Barcode Pool Location State Size Used (%) Comp Modification Time
-------- ----------- ------------------ ------ -------- ----------------- ---- -------------------
A00001LA vtltestpool testvtl slot 1 RW 2000 GiB 0.0 GiB ( 0.00%) 0x 2024/02/24 21:36:13
A12345LA Default testvtl slot 2 RO/RL* 3 GiB 0.0 GiB ( 0.00%) 0x 2024/07/18 14:42:05
A12346LA Default testvtl slot 3 RO/RL* 3 GiB 0.0 GiB ( 0.00%) 0x 2024/07/18 14:42:05
A12347LA Default testvtl slot 4 RW 3 GiB 0.0 GiB ( 0.00%) 0x 2024/07/18 14:42:05
A99000L7 Tape-WIN22 Tape-WIN22 slot 1 RW 10 GiB 10.0 GiB (99.53%) 10x 2024/06/05 17:03:19
試してはいませんが、もうひとつのpoolオプションは、該当するプールに属するTapeのみにコマンドを発行するために利用するものであると考えられます。
これらの結果を鑑みると、スクリプトを書く場合には、最初にvtl tale show allコマンドで設定が必要なTapeのバーコード情報をもってきて、そのバーコードに対して一つ一つvtl tape modifyコマンドを実行する、またはある特定のPoolに属する特定の数(しかもそのTapeのバーコードが並んでいる場合)に対してpoolオプションとcountオプションを利用して設定を行う、などが考えられます。
当初の回答では、KBの内容に引っ張られてご質問内容から離れて(VTL用ではない)スクリプト作成に走ってしまい、見当違いの回答をしてしまいました。申し訳ございませんでした。
Uehara Y.
Community Manager
Community Manager
•
5K メッセージ
0
2024年7月12日 09:12
user001aさん
ロックをかけたいファイルのatimeを変更すればよいということなので、対象のファイルすべてにtouchコマンドなどでatimeを設定すればいいはずです。
シェルスクリプトは得意ではないので、Pythonで書いてみると以下のような感じかと。
(といいつつ、なぜか以下のスクリプトはうまく行く時といかない時があったので何か改良が必要そうです・・・)
import os
import subprocess
from datetime import datetime
# マウントポイント指定
nfs_mount_point = "/mnt/dd"
# atimeに設定したい日時=Retentionが切れる日時を指定
new_atime = datetime(2030, 1, 1, 0, 0, 0)
# アクセス時刻を文字列形式に変換
new_atime_str = new_atime.strftime("%Y%m%d%H%M.%S")
# マウントポイント配下の全てのファイル情報を取得して、それらに対してtouch -a -tコマンドを実行してatimeを変更
for root, dirs, files in os.walk(nfs_mount_point):
for name in files:
file_path = os.path.join(root, name)
print(file_path)
https://dell.to/45YMRhp(['touch', '-a', '-t', new_atime_str, file_path])
print("全てのファイルのatimeを変更し、Retention Lockの設定を完了しました。")
user001a
1 Rookie
1 Rookie
•
356 メッセージ
0
2024年7月12日 11:47
ご支援ありがとうございます。
VTLなのですが、外部ホストからファイルとして操作できるものでしょうか?
また、情報が後出しで申し訳ありませんがDDに接続するホストがAS/400(IBMi)でした。
よろしくお願いいたします。
user001a
1 Rookie
1 Rookie
•
356 メッセージ
0
2024年7月12日 12:29
下記のコマンドがあったのですが、 <date>でロックの開始日を指定して、 <period>で指定した期間で解除される、といった具合でしょうか?マニュアルにも説明がなく、詳しい情報をいただけますと助かります。
vtl tape modify <barcode> [count <count>] [pool <pool>]
retention-lock {<date> | <period>}
Modify the write protect state or the
retention lock state of a specified
tape or tapes
user001a
1 Rookie
1 Rookie
•
356 メッセージ
0
2024年7月16日 03:41
詳細なご確認をいただきましてありがとうございました