【できるIBM i 7.4解剖】第12回 「IBM i – IBM i 間のネットワークファイル共有機能 QFileSvr.400」 | IBM i 総合情報サイト

【できるIBM i 7.4解剖】第12回
「IBM i – IBM i 間のネットワークファイル共有機能 QFileSvr.400」


投稿日: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のセットアップ方法

  1. 前提としてIBM i からTCP/IPホスト名で相手のIBM iが通信できる必要(DNS名前解決できる必要)があります。CFGTCPコマンド オプション12で相手のホスト名を登録する等を行います。
  2. 2. ソースIBM i サーバー上でターゲットIBM iサーバーのディレクトリを/QFileSvr.400下に作成します。以下のコマンドを実行します。
    MKDIR DIR(‘/QFileSvr.400/IBMISYS02’)

    ※ *IBMISYS02はターゲットのIBM i サーバーのTCP/IPホスト名

  3. アクセスに使用するユーザープロファイルをソースIBM i サーバー、ターゲットIBM iサーバーに登録します。ユーザーIDも同一とします。(別な方法として、EIM(エンタープライズIDマッピング)によるKerberosケルベロス認証でアクセスすることも可能です。)
  4. 任意の方法でターゲット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ポニュ]続き

上記の例ではリモートのターゲットIBM i サーバーの /home/GOMAディレクトリが表示されます。

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

※特記事項について
・当記事の内容は執筆者個人の見解によるものであり、IBM公式のものではありません。このため当記事内容につきましてIBM SWMAなどの公式なサポート窓口へのお問い合わせは一切ご遠慮くださいますようお願い致します。ご質問等ございましたら当サイトへお問い合わせいただけますと幸いです。

Copyright © IGUAZU