投稿日:2022年1月5日
前回に続いてIBM i のファイル共有機能についてご紹介します。今回はIBM i – IBM i 間のファイル共有機能である、QFileSvr.400についてご紹介します。(図1)
図1. IBM i – IBM i のファイル共有昨日 QFileSvr.400
QFileSvr.400の概要
QFileSvr.400ファイルシステムはIBM i OS同士でTCP/IP(またはSNA LU6.2)を通じてターゲットサーバーとなるIBM i のIFSディレクトリをアクセス可能とする機能です。ソースのIBM i サーバー上では /QFileSvr.400/(ターゲットのTCP/IP IBM iホスト名)という名前でサブディレクトリを作成することでアクセス可能となります。図1ではローカルのソースサーバーIBM i 上で/QFileSvr.400/IBMISYS02以下にアクセスすると、リモートのIBMISYS02のIFSディレクトリにアクセスすることができます。これによりIBM i以外のサーバーやストレージを介することなく、IBM i 同士だけでのファイル共有が可能となります。IBM i OSコマンドを使ったファイルのコピー操作やディレクトリ作成などの操作が可能です。
QFileSvr.400のセットアップ方法
- 前提としてIBM i からTCP/IPホスト名で相手のIBM iが通信できる必要(DNS名前解決できる必要)があります。CFGTCPコマンド オプション12で相手のホスト名を登録する等を行います。
- 2. ソースIBM i サーバー上でターゲットIBM iサーバーのディレクトリを/QFileSvr.400下に作成します。以下のコマンドを実行します。
MKDIR DIR(‘/QFileSvr.400/IBMISYS02’)※ *IBMISYS02はターゲットのIBM i サーバーのTCP/IPホスト名 - アクセスに使用するユーザープロファイルをソースIBM i サーバー、ターゲットIBM iサーバーに登録します。ユーザーIDも同一とします。(別な方法として、EIM(エンタープライズIDマッピング)によるKerberosケルベロス認証でアクセスすることも可能です。)
- 任意の方法でターゲットIBM i サーバーにアクセスします。例として、5250端末からWRKLNKコマンドでアクセスする場合、以下のようなコマンドでターゲットIBM i のIFSにアクセスできます。
WRKLNK ‘/QFILESVR.400/IBMISYS02/home/GOMA’
オブジェクト・リンクの処理 ディレクトリー. . : /QFILESVR.400/IBMISYS02/home/GOMA オプションを入力して,実行キーを押してください。 2=編集 3=コピー 4=除去 5=表示 7=名前の変更 8=属性の表示 11=現行ディレクトリーの変更... OPT eボニ゙ゥhn、メ]h jbポ 属性 テキスト テスト1209.TXT STMF 新規テキスト > STMF bird-1.JPG STMF qsh_trace STMF test0816.txt STMF AAAA.TXT STMF CUSTQRY.PCML STMF DEMO0210.CSV STMF IMPV7.2 DIR 続く... パラメーターまたはコマンド ===> F3=終了 F4=プロンプト F5=最新表示 F9=コマンドの複写 F12=取り消し F17=位置指定 F22=全フィールドの表示 F23=eポニュ]続き
QFileSvr.400のユースケース例1 : FTPにおいてIBM i ソースサーバーにアクセスを一元化する
想定ユースケース: WINDOWSやその他クライアントからIBM i にFTP転送する際、クライアントからの接続先をIBM i ソースサーバーに一元化し、直接ターゲットIBM iサーバーへのアクセスを制限する(図2)。 ターゲットIBM iサーバーのセキュリティを高めたいなど直接アクセスを制限したい場合に検討可能な構成です。当然ですが、IBM i ターゲットシステム上でのIFSセキュリティ付与やユーザープロフィール管理、セキュリティ設定などをきちんと実施することは必須事項です。
図2. ユースケース霊1 FTPにおいてIBM iソースサーバーにアクセスを一元化する
図2において、FTPクライアントとIBM i ターゲットサーバー間でファイル送受信する際のFTPコマンド例を以下に掲げます。 IBMISYS01はソースIBM i サーバーの名前です
C:\FTP IBMISYS01 ユーザー (IBMISYS01 (none)): GOMA パスワード: ftp> QUOTE SITE NAMEFMT 1 ftp> LCD C:\FTPWORK ftp> CD /QFileSvr.400/IBMISYS02/home/GOMA ftp> PUT FILE1.xxx ftp> GET FILE2.xxx ftp> DELETE /QFileSvr.400/IBMISYS02/home/GOMA/FILE1.xxx ftp> QUIT
QFileSvr.400のユースケース例2 : 1つのIBM i OSコマンドで、ソースIBM i サーバーのDb2 for iからCSVエクスポートしてターゲットIBM i サーバーに保管する
想定ユースケース: ソースIBM iシステムのDb2 for i のデータベースファイルからCSVファイルをエクスポートして、リモートのターゲットIBM i サーバーのIFSに保管します。この操作を1つのコマンドで実行します。(図3)
図3. ユースケース例2 1つのIBM i OSコマンドでDb2 for iからのCSVエクスポートとリモートシステムへの保管を実行
Db2 for i からCSVをエクスポートするIBM i OSコマンドはCPYTOIMPFです。CPYTOIMPFの出力先フォルダーに/QFileSvr.400以下のフォルダーを指定するとリモートのターゲットサーバー上にCSVを生成できます。図3の例では以下のようなコマンドを実行します。
CPYTOIMPF FROMFILE(DEMOLIB/TOKMSP) TOSTMF('/QFileSvr.400/LUCY02/home/GOMA/tokmsp.csv') RCDDLM(*CRLF)
QFileSvr.400のTips
- ソースIBM iサーバーをシャットダウン・Re-IPLすると/QFIleSvr.400下のターゲットサーバー名のディレクトリは消去されるため、Re-IPL毎にターゲットIBM iサーバーのディレクトリ再作成が必要となります。
- QFileSvr.400ディレクトリ配下における、大文字と小文字の区別はターゲットサーバー上のIFSディレクトリ・ファイルの属性と同一となります。また、QFileSvr.400ファイルシステムではシンボリックリンクは使用できません(1つのオブジェクトに対し1つのリンクのみ)
- QFileSvr.400 によるアクセスはIBM i 7.3と7.4など異なるOSバージョン間でも動作します。
- IBM i 6.1以降はIPv4アドレスに加えて、IPv6アドレスも使用可能です。
- パス名の各要素の最大長は255、全パスの最大長は16MBです。
- リモートのターゲットIBM iサーバーでは接続時にポート449を使用します。
- QFileSvr.400の要求は QSERVERサブシステム内のQPWFSERVSOジョブで実行されます。
- QFileSvr.400ファイルシステムでは使用できないCLコマンドやIBM i のAPIがいくつかあります。詳細は下記参考情報のページを参照してください。例としてADDLNK、CHGAUT、CHGOWN、RST、SAVなどのコマンドが使用できません。APIでは chown()、 link()、symlink()などが使用できません。
- QFileSvr.400の接続をTLSでセキュア化が可能です。
参考情報
IBM Knowledge Center / IBM i 7.4 : IBM i ファイル・サーバー・ファイル・システム (QFileSvr.400)
https://www.ibm.com/docs/ja/i/7.4?topic=systems-i-file-server-file-system-qfilesvr400