HPSS FAQ
最終更新 2008/08/20
14:30
2. COS=80を指定した書き込みの際、ファイルサイズが10GBまでに制限される。UNIXファイル経由でのhpssputで回避可能。
3. CERN ROOTのrootコマンドでHPSS APIを含むダイナミックリンクライブラリをロード後、コールしたHPSS API 関数が“Operation not
permitted“となる。
4. hpssls [マウントポイント] ではディレクトリ名しか表示されない。hpssls [マウントポイント]/.とする事で [マウントポイント] 直下のファイルリストを取得可能。
7.HPSSの Migration/Purge/Stagingについて。
【日付】2006/05/18
【現象】ftp経由でHPSS領域へ書き込むと、COSの制限以上のサイズには書き込めない。
COSの上限は、ファイルセット毎に異なる。
1.
/hpss/ps/klea_gはCOS=9で上限160GB。
2.
/hpss/ce/ccx_g, /hpss/ce/lcg,
/hpss/ce/srb, /hpss/ce_g/bessはCOS=80で上限32GB。
3.
それ以外のファイルセットではCOS=20で、上限は128MB (134217728 byte)。それ以上のサイズのファイルを書き込むと、128MBのサイズで打ち切りになる。
【回避】COS=20のファイルセット利用のユーザが、128MB以上のファイルを書くためには、明示的にCOS=30(上限32GB)を指定要。
pftp, hpssput, HPSS client API, WrapperではCOS指定が出来るが、ftpではCOS指定ができない。
·
pftpでファイルを作成する場合
“quote site setcos 10”等のサブコマンドでCOSを指定します。又はサイズに応じて自動的にCOSが決定されます。詳細は、User’s Guideを参照ください。利用例を示します。
ftp> quote site setcos
20
200
ftp> put BM.tar
200 Command Complete (952320, "BM.tar",
0, 1, 1048576, 0).
200 Command Complete.
150 Transfer starting.
226 Transfer Complete.(moved = 952320).
952320 bytes sent in 0.1122 seconds (8.098 MBytes/sec)
200 Command Complete.
ftp>
·
HPSS
ツールhpssputでファイルを作成する場合
hpssputの引数 –c でCOS=30を指定します。コマンド例を示します。
ibm-yama@cw007$hpssput -c 30 /hpss/ce_g/ibm/ibm-yama/2.2GB
./2.2GB
hpssput:
"/hpss/ce_g/ibm/ibm-yama/2.2GB" 291241984 Bytes in 11.507 sec ->
24.072 MB/sec
ibm-yama@cw007$hpssls -l
/hpss/ce_g/ibm/ibm-yama/2.2GB
-rw-r--r-- 1 30496 28038 30
30496 6001 291241984 May 18
ibm-yama@cw007$
·
HPSS
client APIでファイルを作成する場合
hpss_Open()の引数でCOSを指定します。詳しくはProgrammer’s Referenceまたは、ワークサーバ上の/opt/hpss/kek/examplesのサンプルコードを参照ください。コーディング例を示します。
hpss_cos_hints_t hints_in,
hints_out;
hpss_cos_priorities_t hints_pri;
hints_in.COSId = cosid;
hints_pri.COSIdPriority = REQUIRED_PRIORITY;
hfd = hpss_Open(hpss_file, O_WRONLY | O_CREAT | (aflag?O_APPEND:0),
perms, &hints_in, &hints_pri,
&hints_out)
·
HPSS
wrapperでファイルを作成する場合
プログラム実行時の環境変数 HPSS_COSでCOSを指定します。詳しくは下記を参照ください。
http://kekcc.kek.jp/service/cc/uguide/HPSS620-Wrapper.htm
【日付】2006/06/23【更新日時】2006/08/23
【現象】COS=80を指定した書き込みの際、ファイルサイズが10GBまでに制限される。
【回避手段】UNIXファイル経由でのhpssputで回避可能。
【詳細】
HPSS システムにおきまして、下記条件に当てはまるファイル書き込みの際、書き込み最大サイズが 10GB までとなる制限値が存在する事が判明致しました。
【制限値の抵触条件】
・COS=80 を指定した書き込み
・ファイルサイズが判別できない状況での書き込み
・10GB 以上のファイルの書き込み
( COS=9, 30 を指定した書き込みの際は、10GBの制限値に抵触しません)
【制限に抵触する機能】
・Client API, wrapper
・標準入力を使用したhpssput
・Kerberos ftp, Normal ftp
・HPSS NFS
【回避策】
*** 回避策 1. hpssput を使用した回避策 ***
以下のように UNIX 領域より hpssput にて書き込みいただけますようお願い申し上げます。
$ hpssput ”HPSS 領域ファイル名” ”UNIX ファイル名”
標準入力を使用した hpssput による書き込みも、上記条件に当てはまればこの制限値に抵触致します。
お手数ではございますが、上記回避策をご実行いただけますようお願い申し上げます。
(詳細につきましては下記【抵触ケース 1 】に記載させていただいております)
例と致しまして、旧 HPSS 領域から新 HPSS 領域へのファイル移行等を行う際には、一度、
$ hpsscat ”旧 HPSS 領域ファイル名” > ”UNIX ファイル名”
とし、その後、
$ hpssput ”新 HPSS 領域ファイル名” ”UNIX ファイル名”
とご実行ください。
*** 回避策 2. Client API による回避策 ***
Client API をご利用の際には、下記例のような、入力ファイルサイズをチェックするためのロジックを実装ください。
当ロジックを使用しない場合、書き込み最大サイズは 10GB に制限されます。
if (stat(file, &stat_info) < 0)
{
fprintf(stderr, "Could not stat file \"%s\"\n", file);
perror("stat");
exit(1);
}
hints_in.MinFileSize = cast64m(stat_info.st_size);
hints_in.MaxFileSize = cast64m(stat_info.st_size);
hints_pri.MinFileSizePriority = REQUIRED_PRIORITY;
hints_pri.MaxFileSizePriority = REQUIRED_PRIORITY;
■■■ 問題に関する詳細情報 ■■■
【制限値抵触条件】
・ COS=80 を指定した書き込み
・ ファイルサイズが判別できない状況での書き込み
・10GB 以上の書き込み
( COS=9, 30 を指定した書き込みの際は、10GBの制限値に抵触しません)
【 10GB に制限される理由】
・HPSS システムにおける、ファイルの最小セグメントサイズ = 1MB
・HPSS システムにおける 1ファイルあたり使用可能なセグメントサイズ = 10000
上記の理由により、最小セグメントサイズを用いた書き込みは、1MB * 10000 = 10GB に制限されておりました。
【抵触ケース 1 】
・標準入力からの hpssput は、ファイルサイズを認識できない
・HPSS NFS, wrapper, Kerberos ftp, Normal ftp はファイルサイズを見ない
・よって、ファイルサイズが判別つかない為、これらのインターフェースを用いて COS=80 の領域に書き込む場合、固定で最小セグメントサイズが使用される
現在、これらのインターフェースでは 10GB を超える書き込みはできません。
お手数ではございますが、前述の回避策をご実行ください。
【抵触ケース 2 】
・Client API 使用
前述の回避策をご実行ください。
【日付】2006/07/06
【現象】 CERN ROOTのrootコマンドでHPSS
APIを含むダイナミックリンクライブラリをロード後、コールしたHPSS API関数が“Operation not permitted”となる。
【回避手段】
現在、HPSS対応のrootコマンドroot_hpssが導入されています。使用方法はrootコマンドと変わりません。
配置場所もrootコマンド同様、/software/ROOT/pro/bin以下となっております。
またライブラリのビルド時に、以下のHPSS認証APIライブラリをリンクする事でも回避可能です。
・
libhpsskrb5auth.so
・
libhpssunixauth.so
リンカオプション例:-L/opt/hpss/lib -lhpss -lhpssposix -lhpsskrb5auth -lhpssunixauth
-L/hpss_src/32api/lib -lhpsskrb5auth -lhpssunixauth -lhpss -lhpssposix (32ビット版)
【日付】2006/07/14
【現象】
hpssls
[マウントポイント] ではディレクトリ名しか表示されない
(ここで [マウントポイント] とはHPSSのFileset/FileFamilyに対応してマウントされているディレクトリを指す)
ibm-yama:/home/ce/ibm-yama$ hpssls /hpss/ce_g
/hpss/ce_g
ibm-yama:/home/ce/ibm-yama$
【回避手段】
hpssls
[マウントポイント]/. とする事で [マウントポイント]直下のファイルリストを取得可能
配下にibm, ibm-yamaをもつ /hpss/ce_g
に対しての例を以下に記載する
ibm-yama:/home/ce/ibm-yama$ hpssls /hpss/ce_g/.
ibm
ibm-yama
ibm-yama:/home/ce/ibm-yama$
【日付】2007/02/06
【現象】
旧HPSS領域に属したファイルはhpsspurge(データのパージ:ディスク領域からの削除)ができない(仕様)。
(旧HPSS領域ファイル = 3590テープに格納されている旧COSのファイル)
【回避手段 その1】
・旧HPSS領域のデータを新HPSS領域(3592テープ)へコピーする
→ 新HPSS領域ファイルはhpsspurge可能です。
hpssmvはCOSを変更できないので、コピーを実施ください。以下に実行例を記します。
$ hpsscat /hpss/ce/ibm/testfile
| hpssput /hpss/ce_g/ibm/testfile
–
【回避手段 その2】
・システムによってPurgeされるのを待つ
【日付】2007/08/22【更新日時】2008/05/07
【現象】
HPSSにはアクセス数による接続制限が存在します。
この制限値を超過した場合、HPSSアクセスは “Input/output error”, “Resource or device is busy”, “Connection refused”等のエラーメッセージで終了します。
【回避手段】
KEKCCワークサーバにおいて、hpssaccnumコマンドを実行する事でHPSSアクセス数を確認可能です。
当コマンドで得られる値を目安として、HPSSファイルオープン数やジョブ実行可能数をご検討いただければ幸いです。
[コマンド実行例]
ibm-yama:/home/ce/ibm-yama$ hpssaccnum
2008/05/07 12:00:17
-------------------------
Current connections = 2
Max connections = 450
-------------------------
ibm-yama:/home/ce/ibm-yama$
● アクセス数の定義
[HPSSアクセス数] = [HPSSセッション数]
HPSSセッションは、通常1ファイルあたり1〜3使用されます
書き込み時など、多いときには瞬間的に10程度使用される事もあります
実行例の通り、HPSS の同時最大アクセス可能数は 450 となります。
よって、通常 200程度の HPSS ファイルオープンが可能となっています。
しかし、書き込み頻発時など、HPSS アクセス数が増加している際には、この数は更に減少します事にご留意ください。
※ このアクセス数情報は 5分毎に更新されます
※ 2007/12/05 のメンテナンスにて、障害予防措置の為、最大同時アクセス可能数を450から250に変更しました
※ 2008/05/07 のメンテナンスにて、最大同時アクセス可能数を250から450に戻しています
【日付】2008/05/02
【現象】
HPSSでは、データはまずキャッシュディスク上に記録されます。
この状態ではデータはキャッシュディスク上にのみ存在しています。
データがキャッシュディスクからテープにコピーされる事をMigrationといいます。
Migrationされると、データはキャッシュディスク、テープの両方に存在する事になります。
データがキャッシュディスク上から削除される事をPurgeといいます。
Purgeされると、データはテープのみに存在する事になります。
データがどのような状態になっているかは、hpsslevelコマンドで確認できます。
(以下の例ではPurgeされている事が確認できます)
[コマンド実行例]
ibm-yama:/home/ce/ibm-yama$ hpsslevel /hpss/test_g/ibm/hosts
/hpss/test_g/ibm/hosts : Disk_Bytes = 0 Tape_Bytes = 15526 Tape_Name = 00035000 Relative_Position = 1157 This_file_is_on_tape_only.[purged_and_not_staged_yet]
ibm-yama:/home/ce/ibm-yama$
Purgeされた状態でデータへのアクセスを行うと、データはテープからキャッシュディスクにコピーされます。
これをStagingといいます。
Stagingはテープのシーク/ロードが発生しますので、キャッシュディスク上に存在するデータへのアクセスに比べると時間がかかります。事前にStagingしておくと、アクセス時間を短縮できます。
Stagingは hpssstageコマンドで実行できます。
[コマンド実行例]
ibm-yama:/home/ce/ibm-yama$ hpssstage /hpss/test_g/ibm/hosts
ibm-yama:/home/ce/ibm-yama$
ibm-yama:/home/ce/ibm-yama$ hpsslevel /hpss/test_g/ibm/hosts(←hpsslevelで状態を確認)
/hpss/test_g/ibm/hosts : Disk_Bytes = 15526 Tape_Bytes = 15526 Tape_Name = 00035000 Relative_Position = 1157 This_file_is_on_both_disk_and_tape.[migrated]
ibm-yama:/home/ce/ibm-yama$
MigrationとPurgeは以下のようなポリシーで実行されています。
【 Migrationポリシー 】
|
チェック間隔 |
Migrationの条件1 書き込みが無かった時間(分) |
Migrationの条件2 読み込みが無かった時間(分) |
9 |
120分間隔 または使用率80%に達したとき |
60 |
60 |
10 |
10分間隔 または使用率85%に達したとき |
10 |
60 |
20 |
10分間隔 または使用率85%に達したとき |
20 |
60 |
30 |
120分間隔 または使用率85%に達したとき |
60 |
60 |
80 |
10分間隔 または使用率85%に達したとき |
20 |
60 |
【 Purgeポリシー 】
|
Purgeを開始する使用率(%) |
Purgeが終了する使用率(%) |
Purgeの条件 アクセスが無かった時間(分)※ |
9 |
80 |
70 |
60 |
10 |
90 |
70 |
60 |
20 |
90 |
70 |
60 |
30 |
90 |
70 |
60 |
80 |
90 |
70 |
60 |
※「アクセス」=「書き込み or 読み込み」になります
【日付】2008/08/20
【現象】
VFS上で、Junction point( = HPSS FileSetのマウントポイント。例:/hpss/ce/ibm等)をまたがるようなfindを実施する時は注意が必要です。Junction pointをまたいだfindを実行する場合、/hpss/ceなどのようにJunction point直上のディレクトリを指定することになりますが、通常の実行方法ではこの場合、Junction point配下を検索出来ません。
例:
[ibm-mnak@cw005 ~]$ find
/hpss/ce -ls
53 0 drwxr-xr-x 2 root system 512
Feb 15 2006 /hpss/ce
179 0 drwxrwxr-x 8 9002 ce_ccx 512
Aug 6 21:42 /hpss/ce/ccx
370 0 drwxrwxr-x 7 9001 ce_cc
512 Aug 6 15:58 /hpss/ce/cc
518404 0 drwxrwxr-x
4 9010 ce_ibm 512
Aug 6 21:21 /hpss/ce/ibm
400489 0 drwxrwxr-x
4 9011
28040
512 Jul 1 2002 /hpss/ce/kaml
470412 0 drwxrwxr-x
8 9010 ce_ibm 512
Mar 16 2003 /hpss/ce/chep
732737 0 drwxrwxrwx
8 ce_srb ce_srb 512
Jun 7 2006 /hpss/ce/srb
1167993 0 drwxrwxr-x
3 root ce_ccx 512
May 18 2006 /hpss/ce/ccx_g
1167995 0 drwxrwxr-x
8 root ce_ccx 512
Jun 7 2006 /hpss/ce/lcg
(↑Junction
pointがリストされるだけで、Junction point配下は検索できない)
【回避手段】
findの -noleafオプションを使用してください。
これにより、Junction point配下も検索できるようになります。
-followオプションでも同じ効果が得られますが、この場合シンボリックリンクのリンク先を辿る挙動となる事にご注意ください。
以上