HPSS FAQ

最終更新 2008/08/20 14:30

1. ftp経由でHPSSへ書き込むと、COSの上限以上のサイズには書き込めない。COS=20(上限128MB)の領域を使っているユーザが128MB以上のファイルを書くためには、明示的にCOS=30指定して書き込むことが必要。. 1

2. COS=80を指定した書き込みの際、ファイルサイズが10GBまでに制限される。UNIXファイル経由でのhpssputで回避可能。  3

3. CERN ROOTrootコマンドでHPSS APIを含むダイナミックリンクライブラリをロード後、コールしHPSS API 関数が“Operation not permitted“となる。. 6

4. hpssls [マウントポイント] ではディレクトリ名しか表示されない。hpssls [マウントポイント]/.とする事で [マウントポイント] 直下のファイルリストを取得可能。. 7

5.HPSS領域ファイルhpsspurge不可。. 7

6.HPSSの同時多数アクセスについて。. 8

7.HPSS Migration/Purge/Stagingについて。. 9

8. VFS上でのfindについて。. 10

 

 

 

1. ftp経由でHPSSへ書き込むと、COSの上限以上のサイズには書き込めない。COS=20(上限128MB)の領域を使っているユーザが128MB以上のファイルを書くためには、明示的にCOS=30指定して書き込むことが必要。

【日付】2006/05/18

 

【現象】ftp経由でHPSS領域へ書き込むと、COSの制限以上のサイズには書き込めない。

COSの上限は、ファイルセット毎に異なる。

1.       /hpss/ps/klea_gCOS=9で上限160GB

2.       /hpss/ce/ccx_g, /hpss/ce/lcg, /hpss/ce/srb, /hpss/ce_g/bessCOS=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 COS set to 20.
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 16:00 /hpss/ce_g/ibm/ibm-yama/2.2GB

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_COSCOSを指定します。詳しくは下記を参照ください。

        http://kekcc.kek.jp/service/cc/uguide/HPSS620-Wrapper.htm

 

 

 

2. COS=80を指定した書き込みの際、ファイルサイズが10GBまでに制限される。UNIXファイル経由でのhpssputで回避可能。

【日付】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 使用
 
      前述の回避策をご実行ください。

 

 

 

3. CERN ROOTrootコマンドでHPSS APIを含むダイナミックリンクライブラリをロード後、コールしたHPSS API 関数が“Operation not permitted“となる。

【日付】2006/07/06

【現象】 CERN ROOTrootコマンドで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ビット版)

 

 

 

4. hpssls [マウントポイント] ではディレクトリ名しか表示されない。hpssls [マウントポイント]/.とする事で [マウントポイント] 直下のファイルリストを取得可能。

【日付】2006/07/14

【現象】

hpssls [マウントポイント] ではディレクトリ名しか表示されない

(ここで [マウントポイント] とはHPSSFileset/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$

 

 

 

5.HPSS領域ファイルhpsspurge不可。

【日付】2007/02/06

【現象】

HPSS領域に属したファイルはhpsspurge(データのパージ:ディスク領域からの削除)ができない(仕様)。

(旧HPSS領域ファイル = 3590テープに格納されている旧COSのファイル)

【回避手段 その1

・旧HPSS領域のデータを新HPSS領域(3592テープ)へコピーする

→ 新HPSS領域ファイルはhpsspurge可能です。

hpssmvCOSを変更できないので、コピーを実施ください。以下に実行例を記します。

$ hpsscat /hpss/ce/ibm/testfile | hpssput /hpss/ce_g/ibm/testfile

【回避手段 その2

・システムによってPurgeされるのを待つ

 

 

 

6.HPSSの同時多数アクセスについて。

【日付】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ファイルあたり13使用されます

書き込み時など、多いときには瞬間的に10程度使用される事もあります

 

実行例の通り、HPSS の同時最大アクセス可能数は 450 となります。

よって、通常 200程度の HPSS ファイルオープンが可能となっています。

しかし、書き込み頻発時など、HPSS アクセス数が増加している際には、この数は更に減少します事にご留意ください。

 

     このアクセス数情報は 5分毎に更新されます

     2007/12/05 のメンテナンスにて、障害予防措置の為、最大同時アクセス可能数を450から250に変更しました

     2008/05/07 のメンテナンスにて、最大同時アクセス可能数を250から450に戻しています

 

 

 

7.HPSS Migration/Purge/Stagingについて。

【日付】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$

 

MigrationPurgeは以下のようなポリシーで実行されています。

 

Migrationポリシー 】

COS

チェック間隔

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ポリシー 】

COS

Purgeを開始する使用率(%

Purgeが終了する使用率(%

Purgeの条件

アクセスが無かった時間(分)※

9

80

70

60

10

90

70

60

20

90

70

60

30

90

70

60

80

90

70

60

 

※「アクセス」=「書き込み or 読み込み」になります

 

 

 

8. VFS上でのfindについて。

【日付】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オプションでも同じ効果が得られますが、この場合シンボリックリンクのリンク先を辿る挙動となる事にご注意ください。

 

以上