HPSS 6.2とHPSS 7.3の変更点 

作成日2010年05月7日 最終更新日 2010年8月25日

目次

1.      HPSS 6.2HPSS 7.3の変更点 - アクセス環境... 1

2.      機構内ネットワーク接続のLinuxホストからのHPSSアクセス... 2

3.      HPSSプログラミングの変更点... 2

3.1.      data structureの変更点... 2

3.2.      APIの変更点の概要... 3

3.3.      APIの変更点の詳細... 5

4.      変更履歴... 7

 

 

1.      HPSS 6.2HPSS 7.3の変更点 - アクセス環境

HPSS6.2からHPSS 7.3HPSSサーバがupgradeした後に、HPSS7.3でのアクセス環境の条件は以下のとおりです

             

    そのまま使える 

    HPSS73を導入すれば使える(導入しないと使えない) *1 

□  引数を変えれば使える *2

      リコンパイルすれば使える *3

× 利用できない。

                           

HPSS 73 access               

 

RHEL4

RHEL5.4

VFS

×

*1

scp

kftp

□ *2

*2

pftp

hpssput, hpsscat

API application

△ *3

△ *3

 

*1

Note: cw103,cw104,hcfs1,hcfs2などのセンター管理のVFSホストについてはHPSS 7.3 サーバupgradeと同時にVFSHPSS 6.2からHPSS 7.3へ、RHEL5.2から5.4upgradeします。(注:VFSRHEL5.4のみサポートです。RHEL4の場合にはVFSuninstallします)

*2

HPSS 6.2まではkftpへ与える第二引数が4020でしたが、HPSS 7.3から6021へ変更になりました。 

変更前 /usr/kerberos/bin/ftp hco01.cc.kek.jp 4020

変更後 /usr/kerberos/bin/ftp hco01.cc.kek.jp 6021

*3

HPSS 6.2HPSS 7.3API仕様には一部変更がありますが、大きな変更では無く、ソースの書き換えが必要なケースは稀です。ただし、バイナリ互換は無いので、APIアプリケーションについては、リコンパイルが必須です。ソースの書き換えが必要かどうかの判断については、後述の『3.HPSS プログラミングの変更点』を参照ください。

 

2.      機構内ネットワーク接続のLinuxホストからのHPSSアクセス

 

機構内ネットワーク接続のLinuxホストにHPSS 6.2のクライアントモジュールを導入し、かつ、 pftp, hpssput, hpsscat, 自作HPSS API applicationご利用の方は、HPSS 7.3用のクライアントモジュールを導入する必要があります。下記のURLからdownloadして導入ください。なお、HPSS 7.3 クライアントモジュールの前提として、RHEL 5.4ベースにOSを変更する必要があります。

http://kekcc.kek.jp/service/hpss/uguide/hpss/hpss73_reg_test_p.html

 

機構内ネットワーク接続のLinuxホストにて、scp, Kerberos-ftpによりHPSSご利用の場合には、引き続き、OS付属のscp, Kerberos-ftpを利用下さい。HPSS7.3を導入する必要はありません。

ただし、HPSS 6.2まではkftpへ与える第二引数が4020でしたが、HPSS 7.3から6021へ変更になりました。詳しくは前節および下記URLを参照ください。

http://kekcc.kek.jp/service/hpss/uguide/hpssuserman73j.html#use_ftp

 

3.      HPSSプログラミングの変更点

 プログラミングのためのHPSS client APIについては、下記を参照ください。

http://kekcc.kek.jp/service/hpss/uguide/hpssuserman73j.html#use_api

 

3.1.      data structureの変更点

HPSS 6.2に比べてHPSS 7.3は、data structureに変更があります。下記のdata structureの下記のメンバーを利用している場合には、必要に応じてソースプログラムを修正ください。

 

Data Structure

変更箇所

備考

1

api_dist_file_info_t

メンバー削除あり 

 

2

bf_attrib_t

メンバー追加

 

3

bf_xattrib_t

メンバー追加

 

4

bfs_callback_addr_t

メンバー削除も追加もあり

 

5

hpss_Attrs_t

メンバー削除も追加もあり

hpssls, hpsscpで利用

6

hpss_cos_hints_t

メンバー追加

hpssput, hpsscpで利用

7

hpss_cos_md_t

メンバー追加

 

8

hpss_saddr_t

新しい型(hpss 6222pには無い)

 

9

hpss_sockaddress_t

新しい型(hpss 6222pには無い)

 

10

ns_ACLConfArray_t

 使われ方が変わった

hpss_GetACL()とhpss_GetACLHandle()の中の型が*から**へ変わった。

 

 

3.2.      APIの変更点の概要

HPSS 6.2に比べてHPSS 7.3は、APIに変更があります。下記のAPIを利用している場合には、必要に応じてソースプログラムを修正くださ

 

API

変更箇所

備考

1

hpss_AccessHandle

引数の削除

ファイルのアクセス可・不可をチェックする。
エンドユーザは通常 hpss_GetListAttrs()により属性を調査するため、この関数を使うことは稀と考えられる。
理由:ご提供済みサンプルプログラムではhpss_GetListAttrs()で属性を調査している。
引数が減っている。

2

hpss_ClientAPIInit

引数の削除

スレッド状況をHPSS APIのために初期化する。通常のHPSS APIコールにより自動的に達成されるため、エンドユーザが呼ぶことは稀と考えられる。
理由:ご提供済みサンプルプログラムでは使っていない。
引数が減っている。

3

hpss_CreateHandle

引数の削除

HPSSファイルを新規オープンし、hpss_vattr_t *AttrsOutに結果を返す。
エンドユーザは通常hpss_Open() によりファイルをオープンするため、この関数を使うことは稀と考えられる。
理由:ご提供済みサンプルプログラムではhpss_Open()によりファイルをオープンしている。
引数が減っている。

4

hpss_FileGetAttributesHandle

引数の削除

ファイル属性を調査し、hpss_fileattr_t *AttrOutに結果を返す。
エンドユーザは通常 hpss_GetListAttrs()により属性を調査するため、この関数を使うことは稀と考えられる。
理由:ご提供済みサンプルプログラムではhpss_GetListAttrs()で属性を調査している。
引数が減っている。

5

hpss_FilesetCreate

引数の削除

新規ファイルセットを作成する。
エンドユーザが呼ぶことはない。(権限が無いので作成できない)
引数が減っている。

6

hpss_GetACL

引数の型が*から**へ変わっている

ACL情報を入手する。
ご提供済みサンプルプログラムでは使っていないが、代替関数の紹介はしていないので、利用ユーザがいるかもしれない。
引数の型が変わっている。

7

hpss_GetACLHandle

引数の型が*から**へ変わっている

ObjHandleにより特定されるファイルのACLを返す。
エンドユーザは通常ObjHandleを用いないため、この関数を使うことは稀と考えられる。
引数の型が変わっている。

8

hpss_GetAttrHandle

引数の削除

ObjHandleにより特定されるファイルの属性を返す。
エンドユーザは通常ObjHandleを用いないため、この関数を使うことは稀と考えられる。
エンドユーザは通常 hpss_GetListAttrs()により属性を調査するため、この関数を使うことは稀と考えられる。
引数が減っている。

9

hpss_GetRawAttrHandle

引数の削除

ObjHandleにより特定されるシンボリックリンクまたはジャンクションポイントの属性を返す。
エンドユーザは通常ObjHandleを用いないため、この関数を使うことは稀と考えられる。
エンドユーザは通常 hpss_GetListAttrs()により属性を調査するため、この関数を使うことは稀と考えられる。
引数が減っている。

10

hpss_OpenBitfile

引数の削除

BitFileIDにより特定されるファイルをオープンする。
エンドユーザは通常hpss_Open() でファイルをオープンする、エンドユーザは通常BitFileIDを用いない、以上2つの理由により、この関数を使うことは稀と考えられる。
引数が減っている。

11

hpss_OpenBitfileVAttrs

増えている引数、減っている引数がある。

既にオープン済みのファイルの属性を調査する。
エンドユーザは通常 hpss_GetListAttrs()により属性を調査するため、この関数を使うことは稀と考えられる。
増えている引数と、減っている引数がある。

12

hpss_OpenHandle

引数の削除

ObjHandleにより特定されるファイルへの接続を確立する。
エンドユーザは通常ObjHandleを用いないため、この関数を使うことは稀と考えられる。
引数が減っている。

13

hpss_ReopenBitfile

引数の削除

BitFileIDにより特定されるファイルへの接続を確立する。
エンドユーザは通常BitFileIDを用いないため、この関数を使うことは稀と考えられる。
引数が減っている。

14

hpss_ThreadCleanup

引数の削除

HPSS APIに消費されていたリソースを開放する。
エンドユーザは通常hpss_Close()によりリソースを開放するため、この関数を使うことは稀と考えられる。
引数が減っている。

15

hpss_CreateDMHandle

HPSS 7.3で無くなった。

HPSS7.3で提供終了。

16

hpss_CreateWithHints

HPSS 7.3で無くなった。

HPSS7.3マニュアルに記載なし、HPSS7.3で提供終了。理由:既存のhpss_Createと同一なので、存在理由が無いから。

17

hpss_OpenWithHints

HPSS 7.3で無くなった。

HPSS7.3マニュアルに記載なし、HPSS7.3で提供終了。理由:既存のhpss_Openと同一なので、存在理由が無いから。

 

 

3.3.      APIの変更点の詳細

 

API

HPSS7.3

HPSS62

1

hpss_AccessHandle

int
hpss_AccessHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
int Amode, /* IN */
sec_cred_t *Ucred); /* IN */

int
hpss_AccessHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
int Amode, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_authz_token_t *AuthzTicket); /* OUT */

2

hpss_ClientAPIInit

int
hpss_ClientAPIInit(void);

int
hpss_ClientAPIInit(
apithrdstate_t **ThreadContext ); /* OUT */

3

hpss_CreateHandle

int
hpss_CreateHandle(
ns_ObjHandle_t ObjHandle, /* IN */
char *Path, /* IN */
mode_t Mode, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_cos_hints_t *HintsIn, /* IN */
hpss_cos_priorities_t *HintsPri, /* IN */
hpss_cos_hints_t *HintsOut, /* OUT */
hpss_vattr_t *AttrsOut); /* OUT */

int
hpss_CreateHandle(
ns_ObjHandle_t ObjHandle, /* IN */
char *Path, /* IN */
mode_t Mode, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_cos_hints_t *HintsIn, /* IN */
hpss_cos_priorities_t *HintsPri, /* IN */
hpss_cos_hints_t *HintsOut, /* OUT */
hpss_vattr_t *AttrsOut, /* OUT */
hpss_authz_token_t *AuthzTicket) /* OUT */

4

hpss_FileGetAttributesHandle

hpss_FileGetAttributesHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_fileattr_t *AttrOut ); /* OUT */

int
hpss_FileGetAttributesHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_authz_token_t *AuthzTicket, /* OUT */
hpss_fileattr_t *AttrOut ); /* OUT */

5

hpss_FilesetCreate

int
hpss_FilesetCreate(
hpss_uuid_t *CoreServerUUID, /* IN */
unsigned32 CreateOptions /* IN */
ns_FilesetAttrBits_t FilesetAttrBits, /* IN */
ns_FilesetAttrs_t *FilesetAttrs, /* IN */
hpss_AttrBits_t ObjectAttrBits, /* IN */
hpss_Attrs_t *ObjectAttrs, /* IN */
ns_FilesetAttrBits_t RetFilesetAttrBits, /* IN */
hpss_AttrBits_t RetObjectAttrBits, /* IN */
ns_FilesetAttrs_t *RetFilesetAttrs, /* OUT */
hpss_Attrs_t *RetObjectAttrs, /* OUT */
ns_ObjHandle_t *FilesetHandle ); /* OUT */

int
hpss_FilesetCreate(
hpss_uuid_t *CoreServerUUID, /* IN */
unsigned32 CreateOptions /* IN */
ns_FilesetAttrBits_t FilesetAttrBits, /* IN */
ns_FilesetAttrs_t *FilesetAttrs, /* IN */
hpss_AttrBits_t ObjectAttrBits, /* IN */
hpss_Attrs_t *ObjectAttrs, /* IN */
dmg_fileset_info_t *DMGFSInfo /* IN */
ns_FilesetAttrBits_t RetFilesetAttrBits, /* IN */
hpss_AttrBits_t RetObjectAttrBits, /* IN */
ns_FilesetAttrs_t *RetFilesetAttrs, /* OUT */
hpss_Attrs_t *RetObjectAttrs, /* OUT */
ns_ObjHandle_t *FilesetHandle ); /* OUT */

6

hpss_GetACL

int
hpss_GetACL(
char *Path, /* IN */
unsigned32 Options, /* IN */
ns_ACLConfArray_t *ACL ); /* OUT */

int
hpss_GetACL(
char *Path, /* IN */
unsigned32 Options, /* IN */
ns_ACLConfArray_t **ACL ); /* OUT */

7

hpss_GetACLHandle

int
hpss_GetACLHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
sec_cred_t *Ucred, /* IN */
unsigned32 Options, /* IN */
ns_ACLConfArray_t *ACL ); /* OUT */

int
hpss_GetACLHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
sec_cred_t *Ucred, /* IN */
unsigned32 Options, /* IN */
ns_ACLConfArray_t **ACL ); /* OUT */

8

hpss_GetAttrHandle

int
hpss_GetAttrHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
sec_cred_t *Ucred, /* IN */
ns_ObjHandle_t *HandleOut, /* OUT */
hpss_vattr_t *AttrOut); /* OUT */

int
hpss_GetAttrHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
sec_cred_t *Ucred, /* IN */
ns_ObjHandle_t *HandleOut, /* OUT */
hpss_authz_token_t *AuthzTicket, /* OUT */
hpss_vattr_t *AttrOut); /* OUT */

9

hpss_GetRawAttrHandle

int
hpss_GetRawAttrHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
sec_cred_t *Ucred, /* IN */
ns_ObjHandle_t *HandleOut, /* OUT */
hpss_vattr_t *AttrOut); /* OUT */

int
hpss_GetRawAttrHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
sec_cred_t *Ucred, /* IN */
ns_ObjHandle_t *HandleOut, /* OUT */
hpss_authz_token_t *AuthzTicket, /* OUT */
hpss_vattr_t *AttrOut); /* OUT */

10

hpss_OpenBitfile

int
hpss_OpenBitfile(
hpssoid_t *BitFileID, /* IN */
int OFlag, /* IN */
sec_cred_t *Ucred); /* IN */

int
hpss_OpenBitfile(
hpssoid_t *BitFileID, /* IN */
int OFlag, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_authz_token_t *AuthzTicket ); /* IN */

11

hpss_OpenBitfileVAttrs

int
hpss_OpenBitfileVAttrs(
hpss_vattrs_t *FileAttrs, /* IN */
int OFlag, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_cos_hints_t *HintsOut, /* OUT */
u_signed64 *SegmentSize); /* OUT */

int
hpss_OpenBitfileVAttrs(
hpss_vattrs_t *FileAttrs, /* IN */
int OFlag, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_authz_token_t *AuthzTicket, /* IN */
hpss_cos_hints_t *HintsOut); /* OUT */

12

hpss_OpenHandle

int
hpss_OpenHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
int Oflag, /* IN */
mode_t Mode, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_cos_hints_t *HintsIn, /* IN */
hpss_cos_priorities_t *HintsPri, /* IN */
hpss_cos_hints_t *HintsOut, /* OUT */
hpss_vattr_t *AttrsOut); /* OUT */

int
hpss_OpenHandle(
ns_ObjHandle_t *ObjHandle, /* IN */
char *Path, /* IN */
int Oflag, /* IN */
mode_t Mode, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_cos_hints_t *HintsIn, /* IN */
hpss_cos_priorities_t *HintsPri, /* IN */
hpss_cos_hints_t *HintsOut, /* OUT */
hpss_vattr_t *AttrsOut, /* OUT */
hpss_authz_token_t *AuthzTicket); /* OUT */

13

hpss_ReopenBitfile

int
hpss_ReopenBitfile(
int Fildes, /* IN */
hpssoid_t *BitFileID, /* IN */
int Oflag, /* IN */
sec_cred_t *Ucred); /* IN */

int
hpss_ReopenBitfile(
int Fildes, /* IN */
hpssoid_t *BitFileID, /* IN */
int Oflag, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_authz_token_t *AuthzTicket ); /* IN */

14

hpss_ThreadCleanup

int
hpss_ThreadCleanUp(void);

int
hpss_ThreadCleanUp(
pthread_t ThreadID ); /* IN */

15

hpss_CreateDMHandle

HPSS7.3で提供終了。

int
hpss_CreateDMHandle(
ns_ObjHandle_t ObjHandle, /* IN */
char *Path, /* IN */
mode_t Mode, /* IN */
sec_cred_t *Ucred, /* IN */
hpss_cos_hints_t *HintsIn, /* IN */
hpss_cos_priorities_t *HintsPri, /* IN */
unsigned32 ConsistencyFlags, /* IN */
hpss_cos_hints_t *HintsOut, /* OUT */
hpss_vattr_t *AttrsOut, /* OUT */
hpss_authz_token_t *AuthzTicket) /* OUT */

16

hpss_CreateWithHints

HPSS7.3で提供終了。

今後は、hpss_Createを利用ください。

int
hpss_CreateWithHints(
char *Path, /* IN */
mode_t Mode, /* IN */
hpss_cos_hints_t *HintsIn, /* IN */
hpss_cos_priorities_t *HintsPri, /* IN */
hpss_cos_hints_t *HintsOut); /* OUT */

17

hpss_OpenWithHints

HPSS7.3で提供終了。

今後は、hpss_Openを利用ください。

int
hpss_OpenWithHints(
char *Path, /* IN */
int Oflag, /* IN */
mode_t Mode, /* IN */
hpss_cos_hints_t *HintsIn, /* IN */
hpss_cos_priorities_t *HintsPri, /* IN */
hpss_cos_hints_t *HintsOut); /* OUT */

 

以上

 

4.      変更履歴

 

2010/05/07作成

2010/07/21 題字の変更

2010/08/11 目次の追加。「引退」を「提供終了」へ変更。

2010/08/20 「アプリケーションのソースの書き換えが必要かどうかの判断」を追加

2010//08/25 kftpの第二引数の変更

END OF FILE