このチュートリアル用のスライド

チュートリアル用ショートスライド (Grid基本環境等)
チュートリアル用ショートスライド (データ管理等)

ATLAS Grid環境でのRucioによるデータ管理の方法

ATLASデータの管理は、DQ2と呼ばれるデータマネージメントシステムで行われていました。DQ2は2016年12月で完全にフェーズアウトしRucioによってATLASのデータの管理がなされています。ATLASではファイルを束ねたデータセットまたは、データセットを束ねたデータセットコンテナという単位で管理されています。このデータセットコンテナはデータセットだけでなくデータセットコンテナを束ねて作ることもできます。Rucioではファイル/データセット/データセットコンテナは同一にScopeとオブジェクト名の組み合わせで表現されます。ここで、Scopeとは以下のように定義されています。
Data TypeScopeExample
Useruser.[ATLAS CERN account]user.ABCD
Groupgroup.[group name]group.perf-tau
Detector[Project]data12_8TeV
Monte Carlo[Project]mc11_7TeV

このScopeとデータセット名を組み合わせたものを(DI) data identifierと呼び、以下のように表現されます。
  • scope:(ファイル名)
  • scope:(データセット名)
  • scope:(データセットコンテナ名)

AMI

ATLASでは、Atlas Metadata Interface (AMI)というツールが用意されていて、そこで条件を指定してRucioのデータセットの検索などを行うことができます。


AMI CLI
AMIのコマンドライン・インターフェースから検索してみましょう。
$ setupATLAS
$ lsetup pyami
$ ami list datasets --type AOD data16_13TeV%physics_Main%
data16_13TeV.00284285.physics_Main.merge.AOD.f662_m1453_r8067_p2645
data16_13TeV.00284285.physics_Main.merge.AOD.f662_m1453_r8505_r8506_p2777
data16_13TeV.00284285.physics_Main.merge.AOD.f662_m1453_r8515_r8516_p2777
data16_13TeV.00284285.physics_Main.merge.AOD.f662_m1453_r8594_r8595_p2777
...
--typeオプションでデータセットの種類を、その後にデータセット名のパターンを指定しています。%は任意の文字が入ります。

また、各種データセットの属性(年、ピリオド、データタイプ等)で検索もできます。 Run2の実DataとMCはTwiki - Data and Monte Carlo Datasets for Analysis等にまとめられています。
2016年のRunデータ、ピリオドA1
$ ami list runs -y 2016 -p A1
289496
289645
289646
...
2016年の検出データ、ピリオドA1
$ ami list datasets data16_13TeV%periodA1.%
data16_13TeV.periodA1.physics_Main.PhysCont.AOD.t0pro20_v01
data16_13TeV.periodA1.physics_Main.PhysCont.DAOD_STDM2.grp16_v01_p2623
data16_13TeV.periodA1.physics_Main.PhysCont.DAOD_STDM4.grp16_v01_p2623
data16_13TeV.periodA1.physics_Main.PhysCont.DAOD_STDM5.grp16_v01_p2623
data16_13TeV.periodA1.physics_Main.PhysCont.DAOD_STDM7.grp16_v01_p2623
データセットの詳細を確認してみましょう。
$ ami show dataset info data16_13TeV.00284285.physics_Main.merge.AOD.f662_m1453_r8067_p2645
logicalDatasetName : data16_13TeV.00284285.physics_Main.merge.AOD.f662_m1453_r8067_p2645
nFiles : 0
totalEvents : 0
totalSize : NULL
runNumber : 284285
period : J6
prodsysStatus : NO EVENTS YET
dataType : AOD
beamType : NULL
conditionsTag : NULL
geometryVersion : NULL
streamName : physics_Main
version : f662_m1453_r8067_p2645
lastModified : 2016-06-09 18:35:05
amiStatus : VALID
created : 2016-06-09 18:35:04
inContainer : 0
added_comment : NULL
keyword : NULL
prodsysIdentifier_0: 8650873
taskStatus_0 : UNKNOWN:METADATA ERROR
TIDState_0 : added
task_lastModified_0: 2016-06-10 09:24:25
データセットの起源(RAW等)も発見できます。
$ ami show dataset prov data16_13TeV.00284285.physics_Main.merge.AOD.f662_m1453_r8067_p2645
...

AMI WebUI
ATLAS Metadataの情報はAMI WebUIからも確認できます。

登録方法などはこちらから確認できます。 Webページの"Dataset Browser"へと進み、ボックスにデータセット名のパターンを指定することで検索ができます。 もう一つ、便利な機能として、"AMI-Tags"へと進み、ボックスにタグを指定するとそのタグのコンディションが確認できます。 どういうことかと言うと、データセットにはf,r,m,pといったタグが付与されていますね。例えばf594をAMI-Tagsで検索してみると、 AtlasProduction_20.1.5.5で処理したデータであることや、様々なコンディションが確認することが出来ます。 同ページにある"TagCollector"というのはATLAS softwareのリリースを管理するツールです。ATLAS softwareの開発者や管理者になった場合に使用します。

Rucio

Rucioを使ってデータのダウンロードを行ってみましょう。Rucioの環境設定をします。

$ setupATLAS
$ lsetup rucio
$ voms-proxy-init -voms atlas
Rucioコマンドが使えるかチェックしてみます。
$ rucio whoami
status : ACTIVE
account : gkawamur
account_type : USER
created_at : 2014-01-17T08:04:28
suspended_at : None
updated_at : 2014-01-17T08:04:28
deleted_at : None
email : gen.kawamura@cern.ch
いくつかコマンドを試してみましょう。
$ rucio list-rses | grep TOKYO
TOKYO-LCG2_DATADISK
TOKYO-LCG2_DET-MUON
TOKYO-LCG2_LOCALGROUPDISK
TOKYO-LCG2_PERF-JETS
TOKYO-LCG2_PERF-MUONS
TOKYO-LCG2_PHYS-EXOTICS
TOKYO-LCG2_PHYS-HIGGS
TOKYO-LCG2_PHYS-SUSY
TOKYO-LCG2_SCRATCHDISK
TOKYO-LCG2_TRIG-DAQ
TOKYOで設定されている、Rucio Storage Element (RSE)を抜き出してみました。名前から推測出来ますが、 例えばTOKYO-LCG2_DET-MUONというのはミューオン検出器専用のストレージです。 rucio list-dids で、データセットを検索してみます、例えば、data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAODを名前に含むデータセットを検索します。
$ rucio list-dids data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD*
...
| data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_JETM4.f611_m1463_p2384_tid06035505_00            | DATASET |
| data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_HIGG5D1.f611_m1463_p2384_tid06035502_00          | DATASET |
| data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466                      | DATASET |
| data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_EGAM2.f611_m1463_p2384_tid06035485_00            | DATASET |
| data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_HIGG2D2.f611_m1463_p2395_tid06180148_00          | DATASET |
...
上記のうち、例えばdata15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466のレプリカを持っているサイトを検索します。
$ rucio list-dataset-replicas data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466
+----------------------+---------+---------+
| RSE                  |   FOUND |   TOTAL |
|----------------------+---------+---------|
| TRIUMF-LCG2_DATADISK |       1 |       1 |
| RRC-KI-T1_DATADISK   |       1 |       1 |
| TOKYO-LCG2_DATADISK  |       1 |       1 |
| CERN-PROD_DERIVED    |       1 |       1 |
+----------------------+---------+---------+
TOKYO-LCG2_DATADISKにもこのデータセットがあることが分かります。次に、このデータセットに含まれるファイルのリストを表示します。
$ rucio list-files data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466
ファイル名、GUID、チェックサム、ファイルサイズの順で表示されます。 さて、data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466._0001.1というファイルが見つかりました。このデータセットをダウンロードしてみましょう。
$ rucio download data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466._0001.1
----------------------------------
Download summary
----------------------------------------
DID data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466._0001.1
Total files : 1
Downloaded files : 1
Files already found locally : 0
Files that cannot be downloaded : 0
目的のデータセットがダウンロード出来ました。今回は1ファイルだけダウンロードしましたが、scope":データセット名"と指定することで、 データセットに含まれるファイルが一括ダウンロードされます。Rucioクライアントのその使用方法の詳細については、 Rucio Client How Toを参照してください。

Rucioでのレプリカ管理

一般ユーザでも、各Tier1にを中心として構成されるATLASの各国のコンピューティング・サイト間で、レプリカ(いわゆるコピー)を作成することができます。他のサイトのATLASSCRATCHDISKやテープからTOKYO-LCG2のLOCALGROUPDISKへレプリカを作成することができます。TOKYO-LCG2_LOCALGROUPDISKとはアトラス日本メンバー専用のディスクストレージのことで、/atlas/jpのVO roleを持っている人であれば利用することが出来ます。 一定時間経過すると自動的に消去される各サイトのSCRATCDISKとは違い、ある程度長い間データを保管できますので、例えばグリッドへ投入するジョブの入力用データを置いておく場所として使うことができます。レプリカ作成はRucioのCLIあるいはRucio WebUI(R2D2)を使って行うことができます。

Rucio CLIによるレプリカ作成
例: TOKYO-LCG2_SCRATCHDISKへの転送。以下の例ではdata15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466というデータセットを指定していますが、既にレプリカが目的のRSEにある場合はレプリカは作成されません。適宜自分のデータセット等で置き換えてください。適当な例がない場合は、Pandaジョブの(サイズが小さい)適当なログファイル用データセットなどで試せます。rucio lsやrucio list-filesなどで転送前にデータセットを確認してみてください。転送後、SCRATCHDISKのデータセットは2週間ほどで消去されます。

$ rucio add-rule data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466 --grouping DATASET 1 "TOKYO-LCG2_SCRATCHDISK"
ルール実行後Transfer IDをチェック

例: TOKYO-LCG2_LOCALGROUPDISKへの転送。データは永続的に保持されます。自分自身でデータを管理する必要があります。
$ rucio add-rule data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466 --grouping DATASET 1 "TOKYO-LCG2_LOCALGROUPDISK"
ルール実行後Transfer IDをチェック

転送状況の確認 (https://rucio-ui.cern.ch/list_rules でも確認できます)
$ rucio rule-info 9a6595b7040842e5ad42b9d1d6bb3fff
Id: 9a6595b7040842e5ad42b9d1d6bb3fff
Account: gkawamur
Scope: data15_13TeV
Name: data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466
RSE Expression: TOKYO-LCG2_SCRATCHDISK
Copies: 1
State: REPLICATING
Locks OK/REPLICATING/STUCK: 0/1/0
Grouping: DATASET
Expires at: 2017-01-02 19:49:02
Locked: False
Weight: None
Created at: 2016-12-18 19:49:03
Updated at: 2016-12-18 19:49:03
Error: None
Subscription Id: None
Source replica expression: None
Activity: User Subscriptions
Comment: None
Ignore Quota: False
Ignore Availability: False
Purge replicas: False
Notification: NO
End of life: 2017-04-10 13:53:09

レプリカの確認
$ rucio list-file-replicas data15_13TeV:data15_13TeV.00272529.physics_Main.merge.DAOD_ZMUMU.f611_m1453_f611_m1466

Rucio WebUI(R2D2)によるレプリカ作成
Request Ruleインターフェース使用すれば、Rucio CLIと同様にレプリカを作成できます。ブラウザにユーザー証明書が必要です。
また、pathenaやprun (こちらを参照してください)を使う場合に、出力先SE--destSEオプションで指定することで、ジョブの出力をこのLOCALGROUPDISKに書き込むことが出来ます。

FAX

Rucioでのデータの移動・取得方法を学んだところで、ファイルを転送せずにROOTから直接グリッドストレージにあるファイルをリモートIO経由で読みこんでみましょう。

$ setupATLAS
$ lsetup fax root
この設定で、デフォルトのSEはTokyoサイトになっています。
$ echo $STORAGEPREFIX
RucioデータセットのファイルのgLFN (global logical file name)を取得します。
$ ami list datasets data16_13TeV.%physics_Main.merge.DAOD_HIGG1D1%
...
data16_13TeV.00311563.physics_Main.merge.DAOD_HIGG1D1.f758_m1710_p2840
...
$ fax-get-gLFNs data16_13TeV.00310738.physics_Main.merge.DAOD_HIGG1D1.f756_m1704_p2840
...
root://lcg-se01.icepp.jp:1094//atlas/rucio/data16_13TeV:DAOD_HIGG1D1.09697332._000257.pool.root.1
取得したgLFNを使って、ROOTから直接読み込みます。
$ root
root [0] TFile *f = TFile::Open("root://lcg-se01.icepp.jp:1094//atlas/rucio/data16_13TeV:DAOD_HIGG1D1.09697332._000257.pool.root.1");
root [1] f->ls()
AODをROOTで読もうとしたので、たくさんwarningが出てしまいました。RootCoreを正しく設定すればこの方法で直接アクセスすることが出来ます。 今回は、TokyoサイトのFAX IOからファイルを読み込みましたが、他のFAX ホストからでも(一番近いファイルを)読み込むことができます。

参考文献、リンク等

ATLASソフトウェア講習会2016.01 データ管理
Rucio Documentation
ATLAS-D meeting 2015 Rucio Tutorial, Thomas Beermann
ATLAS-D meeting 2016 Grid/Rucio Tutorial, Gen Kawamura
pyAMI ATLAS documentation
ATLAS Software Tutorial, Feb 2016
FAX end-user Tutorial

ページのトップへ戻る